| 403 | } |
| 404 | |
| 405 | void DICOMParser::InitTypeMap() |
| 406 | { |
| 407 | DICOMRecord dicom_tags[] = { |
| 408 | { 0x0002, 0x0002, DICOMParser::VR_UI }, // Media storage SOP class uid |
| 409 | { 0x0002, 0x0003, DICOMParser::VR_UI }, // Media storage SOP inst uid |
| 410 | { 0x0002, 0x0010, DICOMParser::VR_UI }, // Transfer syntax uid |
| 411 | { 0x0002, 0x0012, DICOMParser::VR_UI }, // Implementation class uid |
| 412 | { 0x0008, 0x0018, DICOMParser::VR_UI }, // Image UID |
| 413 | { 0x0008, 0x0020, DICOMParser::VR_DA }, // Series date |
| 414 | { 0x0008, 0x0030, DICOMParser::VR_TM }, // Series time |
| 415 | { 0x0008, 0x0060, DICOMParser::VR_SH }, // Modality |
| 416 | { 0x0008, 0x0070, DICOMParser::VR_SH }, // Manufacturer |
| 417 | { 0x0008, 0x1060, DICOMParser::VR_SH }, // Physician |
| 418 | { 0x0018, 0x0050, DICOMParser::VR_FL }, // slice thickness |
| 419 | { 0x0018, 0x0060, DICOMParser::VR_FL }, // kV |
| 420 | { 0x0018, 0x0088, DICOMParser::VR_FL }, // slice spacing |
| 421 | { 0x0018, 0x1100, DICOMParser::VR_SH }, // Recon diameter |
| 422 | { 0x0018, 0x1151, DICOMParser::VR_FL }, // mA |
| 423 | { 0x0018, 0x1210, DICOMParser::VR_SH }, // Recon kernel |
| 424 | { 0x0020, 0x000d, DICOMParser::VR_UI }, // Study UID |
| 425 | { 0x0020, 0x000e, DICOMParser::VR_UI }, // Series UID |
| 426 | { 0x0020, 0x0013, DICOMParser::VR_IS }, // Image number |
| 427 | { 0x0020, 0x0032, DICOMParser::VR_SH }, // Patient position |
| 428 | { 0x0020, 0x0037, DICOMParser::VR_SH }, // Patient position cosines |
| 429 | { 0x0028, 0x0010, DICOMParser::VR_US }, // Num rows |
| 430 | { 0x0028, 0x0011, DICOMParser::VR_US }, // Num cols |
| 431 | { 0x0028, 0x0030, DICOMParser::VR_FL }, // pixel spacing |
| 432 | { 0x0028, 0x0100, DICOMParser::VR_US }, // Bits allocated |
| 433 | { 0x0028, 0x0120, DICOMParser::VR_UL }, // pixel padding |
| 434 | { 0x0028, 0x1052, DICOMParser::VR_FL }, // pixel offset |
| 435 | { 0x7FE0, 0x0010, DICOMParser::VR_OW } // pixel data |
| 436 | }; |
| 437 | |
| 438 | int num_tags = sizeof(dicom_tags) / sizeof(DICOMRecord); |
| 439 | |
| 440 | doublebyte group; |
| 441 | doublebyte element; |
| 442 | DICOMTypeValue datatype; |
| 443 | |
| 444 | for (int i = 0; i < num_tags; i++) |
| 445 | { |
| 446 | group = dicom_tags[i].group; |
| 447 | element = dicom_tags[i].element; |
| 448 | datatype = static_cast<DICOMTypeValue>(dicom_tags[i].datatype); |
| 449 | Implementation->TypeMap.insert( |
| 450 | std::pair<const DICOMMapKey, DICOMTypeValue>(DICOMMapKey(group, element), datatype)); |
| 451 | } |
| 452 | } |
| 453 | |
| 454 | void DICOMParser::SetDICOMTagCallbacks( |
| 455 | doublebyte group, doublebyte element, VRTypes datatype, std::vector<DICOMCallback*>* cbVector) |
no test coverage detected