comparison UnitTestsSources/FromDcmtkTests.cpp @ 4007:884b55ce01f6

Private tags returned by C-FIND SCP
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 06 Jun 2020 14:50:21 +0200
parents bd0af2e11325
children cc6ed76bba27
comparison
equal deleted inserted replaced
4006:55710d73780f 4007:884b55ce01f6
1135 SetDefaultDicomEncoding(Encoding_Ascii); 1135 SetDefaultDicomEncoding(Encoding_Ascii);
1136 ASSERT_EQ(Encoding_Ascii, GetDefaultDicomEncoding()); 1136 ASSERT_EQ(Encoding_Ascii, GetDefaultDicomEncoding());
1137 1137
1138 { 1138 {
1139 DicomMap m; 1139 DicomMap m;
1140 ParsedDicomFile dicom(m, GetDefaultDicomEncoding(), false); 1140 ParsedDicomFile dicom(m, GetDefaultDicomEncoding(), false, "" /* no private creator */);
1141 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card()); 1141 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card());
1142 CheckEncoding(dicom, Encoding_Ascii); 1142 CheckEncoding(dicom, Encoding_Ascii);
1143 } 1143 }
1144 1144
1145 { 1145 {
1146 DicomMap m; 1146 DicomMap m;
1147 ParsedDicomFile dicom(m, Encoding_Latin4, false); 1147 ParsedDicomFile dicom(m, Encoding_Latin4, false, "" /* no private creator */);
1148 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card()); 1148 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card());
1149 CheckEncoding(dicom, Encoding_Latin4); 1149 CheckEncoding(dicom, Encoding_Latin4);
1150 } 1150 }
1151 1151
1152 { 1152 {
1153 DicomMap m; 1153 DicomMap m;
1154 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 148", false); 1154 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 148", false);
1155 ParsedDicomFile dicom(m, GetDefaultDicomEncoding(), false); 1155 ParsedDicomFile dicom(m, GetDefaultDicomEncoding(), false, "" /* no private creator */);
1156 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card()); 1156 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card());
1157 CheckEncoding(dicom, Encoding_Latin5); 1157 CheckEncoding(dicom, Encoding_Latin5);
1158 } 1158 }
1159 1159
1160 { 1160 {
1161 DicomMap m; 1161 DicomMap m;
1162 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 148", false); 1162 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 148", false);
1163 ParsedDicomFile dicom(m, Encoding_Latin1, false); 1163 ParsedDicomFile dicom(m, Encoding_Latin1, false, "" /* no private creator */);
1164 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card()); 1164 ASSERT_EQ(1u, dicom.GetDcmtkObject().getDataset()->card());
1165 CheckEncoding(dicom, Encoding_Latin5); 1165 CheckEncoding(dicom, Encoding_Latin5);
1166 } 1166 }
1167 } 1167 }
1168 1168
1208 1208
1209 { 1209 {
1210 DicomMap m; 1210 DicomMap m;
1211 m.SetValue(DICOM_TAG_PATIENT_NAME, testEncodingsExpected[i], false); 1211 m.SetValue(DICOM_TAG_PATIENT_NAME, testEncodingsExpected[i], false);
1212 1212
1213 ParsedDicomFile dicom(m, testEncodings[i], false); 1213 ParsedDicomFile dicom(m, testEncodings[i], false, "" /* no private creator */);
1214 1214
1215 const char* encoded = NULL; 1215 const char* encoded = NULL;
1216 ASSERT_TRUE(dicom.GetDcmtkObject().getDataset()->findAndGetString(DCM_PatientName, encoded).good()); 1216 ASSERT_TRUE(dicom.GetDcmtkObject().getDataset()->findAndGetString(DCM_PatientName, encoded).good());
1217 ASSERT_STREQ(testEncodingsEncoded[i], encoded); 1217 ASSERT_STREQ(testEncodingsEncoded[i], encoded);
1218 1218
1228 { 1228 {
1229 DicomMap m; 1229 DicomMap m;
1230 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, GetDicomSpecificCharacterSet(testEncodings[i]), false); 1230 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, GetDicomSpecificCharacterSet(testEncodings[i]), false);
1231 m.SetValue(DICOM_TAG_PATIENT_NAME, testEncodingsExpected[i], false); 1231 m.SetValue(DICOM_TAG_PATIENT_NAME, testEncodingsExpected[i], false);
1232 1232
1233 ParsedDicomFile dicom(m, testEncodings[i], false); 1233 ParsedDicomFile dicom(m, testEncodings[i], false, "" /* no private creator */);
1234 1234
1235 Json::Value v2; 1235 Json::Value v2;
1236 dicom.DatasetToJson(v2, DicomToJsonFormat_Human, DicomToJsonFlags_Default, 0); 1236 dicom.DatasetToJson(v2, DicomToJsonFormat_Human, DicomToJsonFlags_Default, 0);
1237 1237
1238 ASSERT_EQ(v2["PatientName"].asString(), v["PatientName"].asString()); 1238 ASSERT_EQ(v2["PatientName"].asString(), v["PatientName"].asString());
1253 DicomMap m; 1253 DicomMap m;
1254 m.SetValue(DICOM_TAG_PATIENT_NAME, testEncodingsExpected[i], false); 1254 m.SetValue(DICOM_TAG_PATIENT_NAME, testEncodingsExpected[i], false);
1255 1255
1256 std::string tag; 1256 std::string tag;
1257 1257
1258 ParsedDicomFile dicom(m, Encoding_Utf8, false); 1258 ParsedDicomFile dicom(m, Encoding_Utf8, false, "" /* no private creator */);
1259 bool hasCodeExtensions; 1259 bool hasCodeExtensions;
1260 ASSERT_EQ(Encoding_Utf8, dicom.DetectEncoding(hasCodeExtensions)); 1260 ASSERT_EQ(Encoding_Utf8, dicom.DetectEncoding(hasCodeExtensions));
1261 ASSERT_FALSE(hasCodeExtensions); 1261 ASSERT_FALSE(hasCodeExtensions);
1262 ASSERT_TRUE(dicom.GetTagValue(tag, DICOM_TAG_PATIENT_NAME)); 1262 ASSERT_TRUE(dicom.GetTagValue(tag, DICOM_TAG_PATIENT_NAME));
1263 ASSERT_EQ(tag, testEncodingsExpected[i]); 1263 ASSERT_EQ(tag, testEncodingsExpected[i]);
1304 { 1304 {
1305 // No encoding provided, fallback to default encoding 1305 // No encoding provided, fallback to default encoding
1306 DicomMap m; 1306 DicomMap m;
1307 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false); 1307 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false);
1308 1308
1309 ParsedDicomFile d(m, Encoding_Latin3 /* default encoding */, false); 1309 ParsedDicomFile d(m, Encoding_Latin3 /* default encoding */, false, "" /* no private creator */);
1310 1310
1311 bool hasCodeExtensions; 1311 bool hasCodeExtensions;
1312 ASSERT_EQ(Encoding_Latin3, d.DetectEncoding(hasCodeExtensions)); 1312 ASSERT_EQ(Encoding_Latin3, d.DetectEncoding(hasCodeExtensions));
1313 ASSERT_FALSE(hasCodeExtensions); 1313 ASSERT_FALSE(hasCodeExtensions);
1314 } 1314 }
1317 // Valid encoding, "ISO_IR 13" is Japanese 1317 // Valid encoding, "ISO_IR 13" is Japanese
1318 DicomMap m; 1318 DicomMap m;
1319 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 13", false); 1319 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 13", false);
1320 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false); 1320 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false);
1321 1321
1322 ParsedDicomFile d(m, Encoding_Latin3 /* default encoding */, false); 1322 ParsedDicomFile d(m, Encoding_Latin3 /* default encoding */, false, "" /* no private creator */);
1323 1323
1324 bool hasCodeExtensions; 1324 bool hasCodeExtensions;
1325 ASSERT_EQ(Encoding_Japanese, d.DetectEncoding(hasCodeExtensions)); 1325 ASSERT_EQ(Encoding_Japanese, d.DetectEncoding(hasCodeExtensions));
1326 ASSERT_FALSE(hasCodeExtensions); 1326 ASSERT_FALSE(hasCodeExtensions);
1327 } 1327 }
1330 // Invalid value for an encoding ("nope" is not in the DICOM standard) 1330 // Invalid value for an encoding ("nope" is not in the DICOM standard)
1331 DicomMap m; 1331 DicomMap m;
1332 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "nope", false); 1332 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "nope", false);
1333 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false); 1333 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false);
1334 1334
1335 ASSERT_THROW(ParsedDicomFile d(m, Encoding_Latin3, false), OrthancException); 1335 ASSERT_THROW(ParsedDicomFile d(m, Encoding_Latin3, false, "" /* no private creator */),
1336 OrthancException);
1336 } 1337 }
1337 1338
1338 { 1339 {
1339 // Invalid encoding, as provided as a binary string 1340 // Invalid encoding, as provided as a binary string
1340 DicomMap m; 1341 DicomMap m;
1341 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 13", true); 1342 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "ISO_IR 13", true);
1342 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false); 1343 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false);
1343 1344
1344 ASSERT_THROW(ParsedDicomFile d(m, Encoding_Latin3, false), OrthancException); 1345 ASSERT_THROW(ParsedDicomFile d(m, Encoding_Latin3, false, "" /* no private creator */),
1346 OrthancException);
1345 } 1347 }
1346 1348
1347 { 1349 {
1348 // Encoding provided as an empty string, fallback to default encoding 1350 // Encoding provided as an empty string, fallback to default encoding
1349 // In Orthanc <= 1.3.1, this test was throwing an exception 1351 // In Orthanc <= 1.3.1, this test was throwing an exception
1350 DicomMap m; 1352 DicomMap m;
1351 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "", false); 1353 m.SetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET, "", false);
1352 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false); 1354 m.SetValue(DICOM_TAG_PATIENT_NAME, "HELLO", false);
1353 1355
1354 ParsedDicomFile d(m, Encoding_Latin3 /* default encoding */, false); 1356 ParsedDicomFile d(m, Encoding_Latin3 /* default encoding */, false, "" /* no private creator */);
1355 1357
1356 bool hasCodeExtensions; 1358 bool hasCodeExtensions;
1357 ASSERT_EQ(Encoding_Latin3, d.DetectEncoding(hasCodeExtensions)); 1359 ASSERT_EQ(Encoding_Latin3, d.DetectEncoding(hasCodeExtensions));
1358 ASSERT_FALSE(hasCodeExtensions); 1360 ASSERT_FALSE(hasCodeExtensions);
1359 } 1361 }