comparison OrthancFramework/UnitTestsSources/DicomMapTests.cpp @ 5179:1e406c23b352

added unit test DicomMap.SetupFindTemplates
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 25 Mar 2023 11:11:11 +0100
parents 6d8647122ef3
children d2626a062809
comparison
equal deleted inserted replaced
5178:02c7e4aa7946 5179:1e406c23b352
1061 tags["0028,0034"] = "1\\1"; // PixelAspectRatio 1061 tags["0028,0034"] = "1\\1"; // PixelAspectRatio
1062 tags["0028,1101"] = "256\\0\\16"; // RedPaletteColorLookupTableDescriptor which is declared as xs VR in dicom.dic 1062 tags["0028,1101"] = "256\\0\\16"; // RedPaletteColorLookupTableDescriptor which is declared as xs VR in dicom.dic
1063 1063
1064 std::unique_ptr<ParsedDicomFile> dicom(ParsedDicomFile::CreateFromJson(tags, DicomFromJsonFlags_DecodeDataUriScheme, "")); 1064 std::unique_ptr<ParsedDicomFile> dicom(ParsedDicomFile::CreateFromJson(tags, DicomFromJsonFlags_DecodeDataUriScheme, ""));
1065 // simply make sure it does not throw ! 1065 // simply make sure it does not throw !
1066 }
1067
1068
1069 TEST(DicomMap, SetupFindTemplates)
1070 {
1071 /**
1072 * The templates for C-FIND must be common to all the Orthanc
1073 * servers, and must not be altered by the "ExtraMainDicomTags"
1074 * configuration option that was introduced in Orthanc 1.11.0.
1075 **/
1076
1077 {
1078 DicomMap m;
1079 DicomMap::SetupFindPatientTemplate(m);
1080 std::set<DicomTag> tags;
1081 m.GetTags(tags);
1082
1083 // This corresponds to the values of DEFAULT_PATIENT_MAIN_DICOM_TAGS
1084 ASSERT_EQ(5u, tags.size());
1085 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_ID, "nope", false));
1086
1087 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_OTHER_PATIENT_IDS, "nope", false));
1088 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_BIRTH_DATE, "nope", false));
1089 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_NAME, "nope", false));
1090 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_SEX, "nope", false));
1091 }
1092
1093 {
1094 DicomMap m;
1095 DicomMap::SetupFindStudyTemplate(m);
1096 std::set<DicomTag> tags;
1097 m.GetTags(tags);
1098
1099 // This corresponds to the values of DEFAULT_STUDY_MAIN_DICOM_TAGS
1100 ASSERT_EQ(8u, tags.size());
1101 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_ID, "nope", false));
1102 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_ACCESSION_NUMBER, "nope", false));
1103 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_INSTANCE_UID, "nope", false));
1104
1105 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_REFERRING_PHYSICIAN_NAME, "nope", false));
1106 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_DATE, "nope", false));
1107 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_DESCRIPTION, "nope", false));
1108 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_ID, "nope", false));
1109 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_TIME, "nope", false));
1110 }
1111
1112 {
1113 DicomMap m;
1114 DicomMap::SetupFindSeriesTemplate(m);
1115 std::set<DicomTag> tags;
1116 m.GetTags(tags);
1117
1118 // This corresponds to the values of DEFAULT_SERIES_MAIN_DICOM_TAGS
1119 ASSERT_EQ(13u, tags.size());
1120 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_ID, "nope", false));
1121 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_ACCESSION_NUMBER, "nope", false));
1122 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_INSTANCE_UID, "nope", false));
1123 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SERIES_INSTANCE_UID, "nope", false));
1124
1125 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_BODY_PART_EXAMINED, "nope", false));
1126 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_MODALITY, "nope", false));
1127 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_OPERATOR_NAME, "nope", false));
1128 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PERFORMED_PROCEDURE_STEP_DESCRIPTION, "nope", false));
1129 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PROTOCOL_NAME, "nope", false));
1130 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SERIES_DATE, "nope", false));
1131 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SERIES_DESCRIPTION, "nope", false));
1132 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SERIES_NUMBER, "nope", false));
1133 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SERIES_TIME, "nope", false));
1134 }
1135
1136 {
1137 DicomMap m;
1138 DicomMap::SetupFindInstanceTemplate(m);
1139 std::set<DicomTag> tags;
1140 m.GetTags(tags);
1141
1142 // This corresponds to the values of DEFAULT_INSTANCE_MAIN_DICOM_TAGS
1143 ASSERT_EQ(15u, tags.size());
1144 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_PATIENT_ID, "nope", false));
1145 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_ACCESSION_NUMBER, "nope", false));
1146 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_STUDY_INSTANCE_UID, "nope", false));
1147 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SERIES_INSTANCE_UID, "nope", false));
1148 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_SOP_INSTANCE_UID, "nope", false));
1149
1150 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_ACQUISITION_NUMBER, "nope", false));
1151 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_IMAGE_COMMENTS, "nope", false));
1152 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_IMAGE_INDEX, "nope", false));
1153 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_IMAGE_ORIENTATION_PATIENT, "nope", false));
1154 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_IMAGE_POSITION_PATIENT, "nope", false));
1155 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_INSTANCE_CREATION_DATE, "nope", false));
1156 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_INSTANCE_CREATION_TIME, "nope", false));
1157 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_INSTANCE_NUMBER, "nope", false));
1158 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_NUMBER_OF_FRAMES, "nope", false));
1159 ASSERT_EQ("", m.GetStringValue(DICOM_TAG_TEMPORAL_POSITION_IDENTIFIER, "nope", false));
1160 }
1066 } 1161 }
1067 1162
1068 1163
1069 #if ORTHANC_SANDBOXED != 1 1164 #if ORTHANC_SANDBOXED != 1
1070 1165