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)
24 const int default_patient_fields_size = 4;
25 const Field::Description default_patient_fields[]
28 Field::Description("A0010_0010",0x0010,0x0010,"Name",0),
29 Field::Description("A0010_0020",0x0010,0x0020,"Patient ID",0),
30 Field::Description("A0010_0040",0x0010,0x0040,"Sex",0),
31 Field::Description("A0010_0030",0x0010,0x0030,"Birthday",0)
34 const int patient_query_fields_size = 4;
37 const int mandatory_study_fields_size = 2;
38 const Field::Description mandatory_study_fields[]
41 Field::Description("ID",0,0,"Database ID",1),
42 Field::Description("PARENT_ID",0,0,"Parent database ID",1)
45 const int default_study_fields_size = 7;
46 const Field::Description default_study_fields[]
49 Field::Description("A0020_0010",0x0020,0x0010,"Study ID",0),
50 Field::Description("A0008_0020",0x0008,0x0020,"Study Date",0),
51 Field::Description("A0008_0030",0x0008,0x0030,"Study Time",0),
52 Field::Description("A0020_000D",0x0020,0x000D,"Study Instance UID",0),
53 Field::Description("A0008_0050",0x0008,0x0050,"Study Accession Number",0),
55 Field::Description("A0008_1030",0x0008,0x1030,"Study Description",0),
56 Field::Description("A0008_0005",0x0008,0x0005,"Specific Character Set",0)
58 const int study_query_fields_size = 4;
61 const int mandatory_series_fields_size = 2;
62 const Field::Description mandatory_series_fields[]
65 Field::Description("ID",0,0,"Database ID",1),
66 Field::Description("PARENT_ID",0,0,"Parent database ID",1)
69 const int default_series_fields_size = 11;
70 const Field::Description default_series_fields[]
73 Field::Description("A0008_0021",0x0008,0x0021,"Series Date",0),
74 Field::Description("A0008_0031",0x0008,0x0031,"Series Time",0),
75 Field::Description("A0008_0060",0x0008,0x0060,"Modality",0),
76 Field::Description("A0020_000E",0x0020,0x000E,"Series Instance UID",0),
77 Field::Description("A0008_103E",0x0008,0x103E,"Description",0),
78 Field::Description("A0008_0080",0x0008,0x0080,"Institution Name",0),
79 Field::Description("A0008_0081",0x0008,0x0081,"Institution Adress",0),
80 Field::Description("A0008_1010",0x0008,0x1010,"Station Name",0),
81 Field::Description("A0008_1048",0x0008,0x1048,"Physician of Record",0),
82 Field::Description("A0008_1050",0x0008,0x1050,"Performing Physician s Name",0),
83 Field::Description("A0018_1030",0x0018,0x1030,"Protocol Name",0)
86 const int series_query_fields_size = 4;
91 const int mandatory_image_fields_size = 2;
92 const Field::Description mandatory_image_fields[]
95 Field::Description("ID",0,0,"Database ID",1),
96 Field::Description("PARENT_ID",0,0,"Parent database ID",1)
98 const int default_image_fields_size = 27;
99 const Field::Description default_image_fields[]
102 Field::Description("A0004_1500",0x0004,0x1500,"File name",0),
103 Field::Description("FullFileName",0,0,"Full file name",0),
104 Field::Description("A0008_0008",0x0008,0x0008,"Image Type",0),
105 Field::Description("A0008_0023",0x0008,0x0023,"Content Date",0),
106 Field::Description("A0008_0033",0x0008,0x0033,"Content Time",0),
107 Field::Description("A0020_0013",0x0020,0x0013,"Image Number",0),
108 Field::Description("A0020_0032",0x0020,0x0032,"Image Position Patient",0),
109 Field::Description("A0020_0037",0x0020,0x0037,"Image Orientation Patient",0),
110 Field::Description("A0020_0052",0x0020,0x0052,"Frame Reference UID",0),
111 Field::Description("A0020_1041",0x0020,0x1041,"Slice Location",0),
112 Field::Description("A0020_4000",0x0020,0x4000,"Image Comments",0),
113 Field::Description("A0028_0002",0x0028,0x0002,"Sample per pixels",0),
114 Field::Description("A0028_0004",0x0028,0x0004,"Photometric Interpretation",0),
115 Field::Description("A0028_0006",0x0028,0x0006,"Planar Configuration",0),
116 Field::Description("A0028_0008",0x0028,0x0008,"Number of Frames",0),
117 Field::Description("A0028_0010",0x0028,0x0010,"Rows",0),
118 Field::Description("A0028_0011",0x0028,0x0011,"Columns",0),
119 Field::Description("A0028_0030",0x0028,0x0030,"Pixel Spacing",0),
120 Field::Description("A0028_0100",0x0028,0x0100,"AlocatedBits",0),
121 Field::Description("A0028_0101",0x0028,0x0101,"StoredBits",0),
122 Field::Description("A0028_0103",0x0028,0x0103,"Pixel Representation",0),
123 Field::Description("A0028_1052",0x0028,0x1052,"Rescale Intercept",0),
124 Field::Description("A0028_1053",0x0028,0x1053,"Rescale Slope",0),
125 Field::Description("A0050_0004",0x0050,0x0004,"Calibration Image",0),
126 Field::Description("A0008_0016",0x0008,0x0016,"SOP Class UID",0),
127 Field::Description("OWNER", 0, 0, "Owner",0),
128 Field::Description("REGISTRATION",0, 0, "Registration",0)
131 const int image_query_fields_size = 1;
134 const int mandatory_fields_size[5] =
137 mandatory_patient_fields_size,
138 mandatory_study_fields_size,
139 mandatory_series_fields_size,
140 mandatory_image_fields_size
142 const Field::Description* mandatory_fields[5] =
145 mandatory_patient_fields,
146 mandatory_study_fields,
147 mandatory_series_fields,
148 mandatory_image_fields
150 const int default_fields_size[5] =
153 default_patient_fields_size,
154 default_study_fields_size,
155 default_series_fields_size,
156 default_image_fields_size
158 const Field::Description* default_fields[5] =
161 default_patient_fields,
162 default_study_fields,
163 default_series_fields,
166 const int query_fields_size[5] =
169 patient_query_fields_size,
170 study_query_fields_size,
171 series_query_fields_size,
172 image_query_fields_size
176 int DicomDatabaseStructure::TableBegin() { return DicomNode::Patient; }
177 int DicomDatabaseStructure::TableEnd() { return DicomNode::Image+1; }
180 const char* DicomDatabaseStructure::Table(int i) { return table[i]; }
182 int DicomDatabaseStructure::NbMandatoryFields(DicomNode::Type c)
184 return mandatory_fields_size[c];
186 const Field::Description& DicomDatabaseStructure::MandatoryField(DicomNode::Type c,
189 return mandatory_fields[c][i];
192 int DicomDatabaseStructure::NbDefaultFields(DicomNode::Type c)
194 return default_fields_size[c];
197 const Field::Description& DicomDatabaseStructure::DefaultField(DicomNode::Type c,
200 return default_fields[c][i];
203 int DicomDatabaseStructure::NbQueryFields(DicomNode::Type c)
205 return query_fields_size[c];
208 const Field::Description& DicomDatabaseStructure::QueryField(DicomNode::Type c,
211 return default_fields[c][i];
214 } // namespace creaImageIO