Mercurial > hg > orthanc
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 } |