Mercurial > hg > orthanc
comparison OrthancFramework/Sources/DicomFormat/DicomMap.cpp @ 5180:d2626a062809
fix DicomMap::SetupFindXXXTemplate() methods
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 25 Mar 2023 11:21:09 +0100 |
parents | 1e406c23b352 |
children | 0ea402b4d901 |
comparison
equal
deleted
inserted
replaced
5179:1e406c23b352 | 5180:d2626a062809 |
---|---|
585 { | 585 { |
586 Remove(*it); | 586 Remove(*it); |
587 } | 587 } |
588 } | 588 } |
589 | 589 |
590 static void SetupFindTemplate(DicomMap& result, | 590 void DicomMap::SetupFindPatientTemplate(DicomMap& result) |
591 const std::set<DicomTag>& mainDicomTags) | |
592 { | 591 { |
593 result.Clear(); | 592 result.Clear(); |
594 | 593 |
595 for (std::set<DicomTag>::const_iterator itmt = mainDicomTags.begin(); | 594 // Identifying tags |
596 itmt != mainDicomTags.end(); ++itmt) | 595 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); |
597 { | 596 |
598 result.SetValue(*itmt, "", false); | 597 // Other tags in the "Patient" module |
599 } | 598 result.SetValue(DICOM_TAG_OTHER_PATIENT_IDS, "", false); |
600 } | 599 result.SetValue(DICOM_TAG_PATIENT_BIRTH_DATE, "", false); |
601 | 600 result.SetValue(DICOM_TAG_PATIENT_NAME, "", false); |
602 void DicomMap::SetupFindPatientTemplate(DicomMap& result) | 601 result.SetValue(DICOM_TAG_PATIENT_SEX, "", false); |
603 { | |
604 std::set<DicomTag> mainDicomTags; | |
605 DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTagsByLevel(mainDicomTags, ResourceType_Patient); | |
606 SetupFindTemplate(result, mainDicomTags); | |
607 } | 602 } |
608 | 603 |
609 void DicomMap::SetupFindStudyTemplate(DicomMap& result) | 604 void DicomMap::SetupFindStudyTemplate(DicomMap& result) |
610 { | 605 { |
611 std::set<DicomTag> mainDicomTags; | 606 result.Clear(); |
612 DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTagsByLevel(mainDicomTags, ResourceType_Study); | 607 |
613 SetupFindTemplate(result, mainDicomTags); | 608 // Identifying tags |
609 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); | |
614 result.SetValue(DICOM_TAG_ACCESSION_NUMBER, "", false); | 610 result.SetValue(DICOM_TAG_ACCESSION_NUMBER, "", false); |
611 result.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "", false); | |
612 | |
613 // Other tags in the "General Study" module | |
614 result.SetValue(DICOM_TAG_REFERRING_PHYSICIAN_NAME, "", false); | |
615 result.SetValue(DICOM_TAG_STUDY_DATE, "", false); | |
616 result.SetValue(DICOM_TAG_STUDY_DESCRIPTION, "", false); | |
617 result.SetValue(DICOM_TAG_STUDY_ID, "", false); | |
618 result.SetValue(DICOM_TAG_STUDY_TIME, "", false); | |
619 } | |
620 | |
621 void DicomMap::SetupFindSeriesTemplate(DicomMap& result) | |
622 { | |
623 result.Clear(); | |
624 | |
625 // Identifying tags | |
615 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); | 626 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); |
616 | |
617 // These main DICOM tags are only indirectly related to the | |
618 // General Study Module, remove them | |
619 result.Remove(DICOM_TAG_INSTITUTION_NAME); | |
620 result.Remove(DICOM_TAG_REQUESTING_PHYSICIAN); | |
621 result.Remove(DICOM_TAG_REQUESTED_PROCEDURE_DESCRIPTION); | |
622 } | |
623 | |
624 void DicomMap::SetupFindSeriesTemplate(DicomMap& result) | |
625 { | |
626 std::set<DicomTag> mainDicomTags; | |
627 DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTagsByLevel(mainDicomTags, ResourceType_Series); | |
628 SetupFindTemplate(result, mainDicomTags); | |
629 result.SetValue(DICOM_TAG_ACCESSION_NUMBER, "", false); | 627 result.SetValue(DICOM_TAG_ACCESSION_NUMBER, "", false); |
630 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); | |
631 result.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "", false); | |
632 | |
633 // These tags are considered as "main" by Orthanc, but are not in the Series module | |
634 result.Remove(DicomTag(0x0008, 0x0070)); // Manufacturer | |
635 result.Remove(DicomTag(0x0008, 0x1010)); // Station name | |
636 result.Remove(DicomTag(0x0018, 0x0024)); // Sequence name | |
637 result.Remove(DICOM_TAG_CARDIAC_NUMBER_OF_IMAGES); | |
638 result.Remove(DICOM_TAG_IMAGES_IN_ACQUISITION); | |
639 result.Remove(DICOM_TAG_NUMBER_OF_SLICES); | |
640 result.Remove(DICOM_TAG_NUMBER_OF_TEMPORAL_POSITIONS); | |
641 result.Remove(DICOM_TAG_NUMBER_OF_TIME_SLICES); | |
642 result.Remove(DICOM_TAG_IMAGE_ORIENTATION_PATIENT); | |
643 result.Remove(DICOM_TAG_SERIES_TYPE); | |
644 result.Remove(DICOM_TAG_ACQUISITION_DEVICE_PROCESSING_DESCRIPTION); | |
645 result.Remove(DICOM_TAG_CONTRAST_BOLUS_AGENT); | |
646 } | |
647 | |
648 void DicomMap::SetupFindInstanceTemplate(DicomMap& result) | |
649 { | |
650 std::set<DicomTag> mainDicomTags; | |
651 DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTagsByLevel(mainDicomTags, ResourceType_Instance); | |
652 SetupFindTemplate(result, mainDicomTags); | |
653 result.SetValue(DICOM_TAG_ACCESSION_NUMBER, "", false); | |
654 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); | |
655 result.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "", false); | 628 result.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "", false); |
656 result.SetValue(DICOM_TAG_SERIES_INSTANCE_UID, "", false); | 629 result.SetValue(DICOM_TAG_SERIES_INSTANCE_UID, "", false); |
630 | |
631 // Other tags in the "General Series" module | |
632 result.SetValue(DICOM_TAG_BODY_PART_EXAMINED, "", false); | |
633 result.SetValue(DICOM_TAG_MODALITY, "", false); | |
634 result.SetValue(DICOM_TAG_OPERATOR_NAME, "", false); | |
635 result.SetValue(DICOM_TAG_PERFORMED_PROCEDURE_STEP_DESCRIPTION, "", false); | |
636 result.SetValue(DICOM_TAG_PROTOCOL_NAME, "", false); | |
637 result.SetValue(DICOM_TAG_SERIES_DATE, "", false); | |
638 result.SetValue(DICOM_TAG_SERIES_DESCRIPTION, "", false); | |
639 result.SetValue(DICOM_TAG_SERIES_NUMBER, "", false); | |
640 result.SetValue(DICOM_TAG_SERIES_TIME, "", false); | |
641 } | |
642 | |
643 void DicomMap::SetupFindInstanceTemplate(DicomMap& result) | |
644 { | |
645 result.Clear(); | |
646 | |
647 // Identifying tags | |
648 result.SetValue(DICOM_TAG_PATIENT_ID, "", false); | |
649 result.SetValue(DICOM_TAG_ACCESSION_NUMBER, "", false); | |
650 result.SetValue(DICOM_TAG_STUDY_INSTANCE_UID, "", false); | |
651 result.SetValue(DICOM_TAG_SERIES_INSTANCE_UID, "", false); | |
652 result.SetValue(DICOM_TAG_SOP_INSTANCE_UID, "", false); | |
653 | |
654 // Other tags in the "SOP Common" module | |
655 result.SetValue(DICOM_TAG_ACQUISITION_NUMBER, "", false); | |
656 result.SetValue(DICOM_TAG_IMAGE_COMMENTS, "", false); | |
657 result.SetValue(DICOM_TAG_IMAGE_INDEX, "", false); | |
658 result.SetValue(DICOM_TAG_IMAGE_ORIENTATION_PATIENT, "", false); | |
659 result.SetValue(DICOM_TAG_IMAGE_POSITION_PATIENT, "", false); | |
660 result.SetValue(DICOM_TAG_INSTANCE_CREATION_DATE, "", false); | |
661 result.SetValue(DICOM_TAG_INSTANCE_CREATION_TIME, "", false); | |
662 result.SetValue(DICOM_TAG_INSTANCE_NUMBER, "", false); | |
663 result.SetValue(DICOM_TAG_NUMBER_OF_FRAMES, "", false); | |
664 result.SetValue(DICOM_TAG_TEMPORAL_POSITION_IDENTIFIER, "", false); | |
657 } | 665 } |
658 | 666 |
659 | 667 |
660 void DicomMap::CopyTagIfExists(const DicomMap& source, | 668 void DicomMap::CopyTagIfExists(const DicomMap& source, |
661 const DicomTag& tag) | 669 const DicomTag& tag) |