1 #include <creaImageIODicomDatabaseStructure.h>
6 const int table_size = 5;
7 const char* const table[]
18 const int mandatory_patient_fields_size = 1;
19 const Field::Description mandatory_patient_fields[]
22 Field::Description("ID",0,0,"Database ID",1)
23 // Flag is set to 1 to mean that it is a database use only field
24 // not visible by user
26 const int default_patient_fields_size = 4;
27 const Field::Description default_patient_fields[]
30 Field::Description("A0010_0010",0x0010,0x0010,"Name",0),
31 Field::Description("A0010_0020",0x0010,0x0020,"Patient ID",0),
32 Field::Description("A0010_0040",0x0010,0x0040,"Sex",0),
33 Field::Description("A0010_0030",0x0010,0x0030,"Birthday",0)
36 const int patient_query_fields_size = 4;
39 const int mandatory_study_fields_size = 2;
40 const Field::Description mandatory_study_fields[]
43 Field::Description("ID",0,0,"Database ID",1),
44 Field::Description("PARENT_ID",0,0,"Parent database ID",1)
47 const int default_study_fields_size = 7;
48 const Field::Description default_study_fields[]
51 Field::Description("A0020_0010",0x0020,0x0010,"Study ID",0),
52 Field::Description("A0008_0020",0x0008,0x0020,"Study Date",0),
53 Field::Description("A0008_0030",0x0008,0x0030,"Study Time",0),
54 Field::Description("A0020_000D",0x0020,0x000D,"Study Instance UID",0),
55 Field::Description("A0008_0050",0x0008,0x0050,"Study Accession Number",0),
57 Field::Description("A0008_1030",0x0008,0x1030,"Study Description",0),
58 Field::Description("A0008_0005",0x0008,0x0005,"Specific Character Set",0)
60 const int study_query_fields_size = 4;
63 const int mandatory_series_fields_size = 2;
64 const Field::Description mandatory_series_fields[]
67 Field::Description("ID",0,0,"Database ID",1),
68 Field::Description("PARENT_ID",0,0,"Parent database ID",1)
71 const int default_series_fields_size = 11;
72 const Field::Description default_series_fields[]
75 Field::Description("A0008_0021",0x0008,0x0021,"Series Date",0),
76 Field::Description("A0008_0031",0x0008,0x0031,"Series Time",0),
77 Field::Description("A0008_0060",0x0008,0x0060,"Modality",0),
78 Field::Description("A0020_000E",0x0020,0x000E,"Series Instance UID",0),
79 Field::Description("A0008_103E",0x0008,0x103E,"Description",0),
80 Field::Description("A0008_0080",0x0008,0x0080,"Institution Name",0),
81 Field::Description("A0008_0081",0x0008,0x0081,"Institution Adress",0),
82 Field::Description("A0008_1010",0x0008,0x1010,"Station Name",0),
83 Field::Description("A0008_1048",0x0008,0x1048,"Physician of Record",0),
84 Field::Description("A0008_1050",0x0008,0x1050,"Performing Physician s Name",0),
85 Field::Description("A0018_1030",0x0018,0x1030,"Protocol Name",0)
88 const int series_query_fields_size = 4;
93 const int mandatory_image_fields_size = 2;
94 const Field::Description mandatory_image_fields[]
97 Field::Description("ID",0,0,"Database ID",1),
98 Field::Description("PARENT_ID",0,0,"Parent database ID",1)
100 const int default_image_fields_size = 27;
101 const Field::Description default_image_fields[]
104 Field::Description("A0004_1500",0x0004,0x1500,"File name",0),
105 Field::Description("FullFileName",0,0,"Full file name",0),
106 Field::Description("A0008_0008",0x0008,0x0008,"Image Type",0),
107 Field::Description("A0008_0023",0x0008,0x0023,"Content Date",0),
108 Field::Description("A0008_0033",0x0008,0x0033,"Content Time",0),
109 Field::Description("A0020_0013",0x0020,0x0013,"Image Number",0),
110 Field::Description("A0020_0032",0x0020,0x0032,"Image Position Patient",0),
111 Field::Description("A0020_0037",0x0020,0x0037,"Image Orientation Patient",0),
112 Field::Description("A0020_0052",0x0020,0x0052,"Frame Reference UID",0),
113 Field::Description("A0020_1041",0x0020,0x1041,"Slice Location",0),
114 Field::Description("A0020_4000",0x0020,0x4000,"Image Comments",0),
115 Field::Description("A0028_0002",0x0028,0x0002,"Sample per pixels",0),
116 Field::Description("A0028_0004",0x0028,0x0004,"Photometric Interpretation",0),
117 Field::Description("A0028_0006",0x0028,0x0006,"Planar Configuration",0),
118 Field::Description("A0028_0008",0x0028,0x0008,"Number of Frames",0),
119 Field::Description("A0028_0010",0x0028,0x0010,"Rows",0),
120 Field::Description("A0028_0011",0x0028,0x0011,"Columns",0),
121 Field::Description("A0028_0030",0x0028,0x0030,"Pixel Spacing",0),
122 Field::Description("A0028_0100",0x0028,0x0100,"AlocatedBits",0),
123 Field::Description("A0028_0101",0x0028,0x0101,"StoredBits",0),
124 Field::Description("A0028_0103",0x0028,0x0103,"Pixel Representation",0),
125 Field::Description("A0028_1052",0x0028,0x1052,"Rescale Intercept",0),
126 Field::Description("A0028_1053",0x0028,0x1053,"Rescale Slope",0),
127 Field::Description("A0050_0004",0x0050,0x0004,"Calibration Image",0),
128 Field::Description("A0008_0016",0x0008,0x0016,"SOP Class UID",0),
129 Field::Description("OWNER", 0, 0, "Owner",0),
130 Field::Description("REGISTRATION",0, 0, "Registration",0)
133 const int image_query_fields_size = 1;
136 const int mandatory_fields_size[5] =
139 mandatory_patient_fields_size,
140 mandatory_study_fields_size,
141 mandatory_series_fields_size,
142 mandatory_image_fields_size
144 const Field::Description* mandatory_fields[5] =
147 mandatory_patient_fields,
148 mandatory_study_fields,
149 mandatory_series_fields,
150 mandatory_image_fields
152 const int default_fields_size[5] =
155 default_patient_fields_size,
156 default_study_fields_size,
157 default_series_fields_size,
158 default_image_fields_size
160 const Field::Description* default_fields[5] =
163 default_patient_fields,
164 default_study_fields,
165 default_series_fields,
168 const int query_fields_size[5] =
171 patient_query_fields_size,
172 study_query_fields_size,
173 series_query_fields_size,
174 image_query_fields_size
178 int DicomDatabaseStructure::TableBegin() { return DicomNode::Patient; }
179 int DicomDatabaseStructure::TableEnd() { return DicomNode::Image+1; }
182 const char* DicomDatabaseStructure::Table(int i) { return table[i]; }
184 int DicomDatabaseStructure::NbMandatoryFields(DicomNode::Type c)
186 return mandatory_fields_size[c];
188 const Field::Description& DicomDatabaseStructure::MandatoryField(DicomNode::Type c,
191 return mandatory_fields[c][i];
194 int DicomDatabaseStructure::NbDefaultFields(DicomNode::Type c)
196 return default_fields_size[c];
199 const Field::Description& DicomDatabaseStructure::DefaultField(DicomNode::Type c,
202 return default_fields[c][i];
205 int DicomDatabaseStructure::NbQueryFields(DicomNode::Type c)
207 return query_fields_size[c];
210 const Field::Description& DicomDatabaseStructure::QueryField(DicomNode::Type c,
213 return default_fields[c][i];
216 } // namespace creaImageIO