comparison UnitTestsSources/MultiThreadingTests.cpp @ 2662:47d812308d63 jobs

serialization of DicomModification
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 Jun 2018 17:47:41 +0200
parents 27b7884512be
children 228e2783ce83
comparison
equal deleted inserted replaced
2660:27b7884512be 2662:47d812308d63
889 889
890 // TODO : Test SequenceOfOperationsJob.h 890 // TODO : Test SequenceOfOperationsJob.h
891 } 891 }
892 892
893 893
894 static bool IsSameTagValue(ParsedDicomFile& dicom1,
895 ParsedDicomFile& dicom2,
896 DicomTag tag)
897 {
898 std::string a, b;
899 return (dicom1.GetTagValue(a, tag) &&
900 dicom2.GetTagValue(b, tag) &&
901 (a == b));
902 }
903
904
905
894 TEST(JobsSerialization, DicomModification) 906 TEST(JobsSerialization, DicomModification)
895 { 907 {
896 // TODO : Test serialization of DicomModification 908 Json::Value s;
909
910 ParsedDicomFile source(true);
911 source.Insert(DICOM_TAG_STUDY_DESCRIPTION, "Test 1", false);
912 source.Insert(DICOM_TAG_SERIES_DESCRIPTION, "Test 2", false);
913 source.Insert(DICOM_TAG_PATIENT_NAME, "Test 3", false);
914
915 std::auto_ptr<ParsedDicomFile> modified(source.Clone(true));
916
917 {
918 DicomModification modification;
919 modification.SetLevel(ResourceType_Series);
920 modification.Clear(DICOM_TAG_STUDY_DESCRIPTION);
921 modification.Remove(DICOM_TAG_SERIES_DESCRIPTION);
922 modification.Replace(DICOM_TAG_PATIENT_NAME, "Test 4", true);
923
924 modification.Apply(*modified);
925 modification.Serialize(s);
926 }
927
928 {
929 DicomModification modification(s);
930 ASSERT_EQ(ResourceType_Series, modification.GetLevel());
931
932 std::auto_ptr<ParsedDicomFile> second(source.Clone(true));
933 modification.Apply(*second);
934
935 std::string s;
936 ASSERT_TRUE(second->GetTagValue(s, DICOM_TAG_STUDY_DESCRIPTION));
937 ASSERT_TRUE(s.empty());
938 ASSERT_FALSE(second->GetTagValue(s, DICOM_TAG_SERIES_DESCRIPTION));
939 ASSERT_TRUE(second->GetTagValue(s, DICOM_TAG_PATIENT_NAME));
940 ASSERT_EQ("Test 4", s);
941
942 ASSERT_TRUE(IsSameTagValue(source, *modified, DICOM_TAG_STUDY_INSTANCE_UID));
943 ASSERT_TRUE(IsSameTagValue(source, *second, DICOM_TAG_STUDY_INSTANCE_UID));
944
945 ASSERT_FALSE(IsSameTagValue(source, *second, DICOM_TAG_SERIES_INSTANCE_UID));
946 ASSERT_TRUE(IsSameTagValue(*modified, *second, DICOM_TAG_SERIES_INSTANCE_UID));
947 }
897 } 948 }
898 949
899 950
900 TEST(JobsSerialization, Registry) 951 TEST(JobsSerialization, Registry)
901 { 952 {
1069 ASSERT_EQ("a", tmp.GetPreArgument(0)); 1120 ASSERT_EQ("a", tmp.GetPreArgument(0));
1070 ASSERT_EQ("b", tmp.GetPreArgument(1)); 1121 ASSERT_EQ("b", tmp.GetPreArgument(1));
1071 ASSERT_EQ("c", tmp.GetPostArgument(0)); 1122 ASSERT_EQ("c", tmp.GetPostArgument(0));
1072 } 1123 }
1073 1124
1074 // TODO : ModifyInstanceOperation 1125 // ModifyInstanceOperation
1075 1126
1076 /*
1077 { 1127 {
1078 std::auto_ptr<DicomModification> modification(new DicomModification); 1128 std::auto_ptr<DicomModification> modification(new DicomModification);
1129 modification->SetupAnonymization(DicomVersion_2008);
1079 1130
1080 ModifyInstanceOperation operation(GetContext(), RequestOrigin_Lua, modification.release()); 1131 ModifyInstanceOperation operation(GetContext(), RequestOrigin_Lua, modification.release());
1081 operation.Serialize(s); 1132 operation.Serialize(s);
1082 } 1133 }
1083 1134
1084 { 1135 {
1085 operation.reset(unserializer.UnserializeOperation(s)); 1136 operation.reset(unserializer.UnserializeOperation(s));
1086 1137
1087 const ModifyInstanceOperation& tmp = dynamic_cast<ModifyInstanceOperation&>(*operation); 1138 const ModifyInstanceOperation& tmp = dynamic_cast<ModifyInstanceOperation&>(*operation);
1088 ASSERT_EQ(RequestOrigin_Lua, tmp.GetRequestOrigin()); 1139 ASSERT_EQ(RequestOrigin_Lua, tmp.GetRequestOrigin());
1089 }*/ 1140 ASSERT_TRUE(tmp.GetModification().IsRemoved(DICOM_TAG_STUDY_DESCRIPTION));
1141 }
1090 } 1142 }
1091 1143
1092 1144
1093 TEST_F(OrthancJobsSerialization, Jobs) 1145 TEST_F(OrthancJobsSerialization, Jobs)
1094 { 1146 {