Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi.cpp @ 314:4f17834a50b6
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 21 Dec 2012 13:53:24 +0100 |
parents | 60429bb2551e |
children | fc856d175d18 |
comparison
equal
deleted
inserted
replaced
313:60429bb2551e | 314:4f17834a50b6 |
---|---|
1091 return false; | 1091 return false; |
1092 } | 1092 } |
1093 } | 1093 } |
1094 | 1094 |
1095 | 1095 |
1096 static void ModifyInstance(RestApi::PostCall& call) | 1096 static void AnonymizeOrModifyInstance(Removals removals, |
1097 Replacements replacements, | |
1098 bool removePrivateTags, | |
1099 RestApi::PostCall& call) | |
1097 { | 1100 { |
1098 RETRIEVE_CONTEXT(call); | 1101 RETRIEVE_CONTEXT(call); |
1099 | 1102 |
1100 std::string id = call.GetUriComponent("id", ""); | 1103 std::string id = call.GetUriComponent("id", ""); |
1101 ParsedDicomFile& dicom = context.GetDicomFile(id); | 1104 ParsedDicomFile& dicom = context.GetDicomFile(id); |
1102 | 1105 |
1106 std::auto_ptr<ParsedDicomFile> modified(dicom.Clone()); | |
1107 ReplaceInstanceInternal(*modified, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags); | |
1108 modified->Answer(call.GetOutput()); | |
1109 } | |
1110 | |
1111 | |
1112 static void ModifyInstance(RestApi::PostCall& call) | |
1113 { | |
1103 Removals removals; | 1114 Removals removals; |
1104 Replacements replacements; | 1115 Replacements replacements; |
1105 bool removePrivateTags; | 1116 bool removePrivateTags; |
1106 | 1117 |
1107 if (ParseModifyRequest(removals, replacements, removePrivateTags, call)) | 1118 if (ParseModifyRequest(removals, replacements, removePrivateTags, call)) |
1108 { | 1119 { |
1109 std::auto_ptr<ParsedDicomFile> modified(dicom.Clone()); | 1120 AnonymizeOrModifyInstance(removals, replacements, removePrivateTags, call); |
1110 ReplaceInstanceInternal(*modified, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags); | |
1111 modified->Answer(call.GetOutput()); | |
1112 } | 1121 } |
1113 } | 1122 } |
1114 | 1123 |
1115 | 1124 |
1116 static void AnonymizeInstance(RestApi::PostCall& call) | 1125 static void AnonymizeInstance(RestApi::PostCall& call) |
1117 { | 1126 { |
1118 RETRIEVE_CONTEXT(call); | 1127 RETRIEVE_CONTEXT(call); |
1119 | |
1120 std::string id = call.GetUriComponent("id", ""); | |
1121 ParsedDicomFile& dicom = context.GetDicomFile(id); | |
1122 | 1128 |
1123 Removals removals; | 1129 Removals removals; |
1124 Replacements replacements; | 1130 Replacements replacements; |
1125 bool removePrivateTags; | 1131 bool removePrivateTags; |
1126 | 1132 |
1137 { | 1143 { |
1138 replacements.insert(std::make_pair(DICOM_TAG_PATIENT_ID, | 1144 replacements.insert(std::make_pair(DICOM_TAG_PATIENT_ID, |
1139 FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Patient))); | 1145 FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Patient))); |
1140 } | 1146 } |
1141 | 1147 |
1142 std::auto_ptr<ParsedDicomFile> anonymized(dicom.Clone()); | 1148 AnonymizeOrModifyInstance(removals, replacements, removePrivateTags, call); |
1143 ReplaceInstanceInternal(*anonymized, removals, replacements, DicomReplaceMode_InsertIfAbsent, removePrivateTags); | |
1144 anonymized->Answer(call.GetOutput()); | |
1145 } | 1149 } |
1146 } | 1150 } |
1147 | 1151 |
1148 | 1152 |
1149 static void ModifySeriesInplace(RestApi::PostCall& call) | 1153 static void ModifySeriesInplace(RestApi::PostCall& call) |