Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi.cpp @ 526:e318e9d49815 dicom-rt
rt-struct
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Aug 2013 17:33:33 +0200 |
parents | 1b2cdc855bd3 |
children | b82292ba2083 |
comparison
equal
deleted
inserted
replaced
523:68451838fb2c | 526:e318e9d49815 |
---|---|
62 | 62 |
63 | 63 |
64 | 64 |
65 namespace Orthanc | 65 namespace Orthanc |
66 { | 66 { |
67 // TODO IMPROVE MULTITHREADING | |
68 // Every call to "ParsedDicomFile" must lock this mutex!!! | |
69 static boost::mutex cacheMutex_; | |
70 | |
71 | |
72 // DICOM SCU ---------------------------------------------------------------- | 67 // DICOM SCU ---------------------------------------------------------------- |
73 | 68 |
74 static void ConnectToModality(DicomUserConnection& connection, | 69 static void ConnectToModality(DicomUserConnection& connection, |
75 const std::string& name) | 70 const std::string& name) |
76 { | 71 { |
975 | 970 |
976 // Raw access to the DICOM tags of an instance ------------------------------ | 971 // Raw access to the DICOM tags of an instance ------------------------------ |
977 | 972 |
978 static void GetRawContent(RestApi::GetCall& call) | 973 static void GetRawContent(RestApi::GetCall& call) |
979 { | 974 { |
980 boost::mutex::scoped_lock lock(cacheMutex_); | 975 RETRIEVE_CONTEXT(call); |
981 | 976 boost::mutex::scoped_lock lock(context.GetDicomFileMutex()); |
982 RETRIEVE_CONTEXT(call); | 977 |
983 std::string id = call.GetUriComponent("id", ""); | 978 std::string id = call.GetUriComponent("id", ""); |
984 ParsedDicomFile& dicom = context.GetDicomFile(id); | 979 ParsedDicomFile& dicom = context.GetDicomFile(id); |
985 dicom.SendPathValue(call.GetOutput(), call.GetTrailingUri()); | 980 dicom.SendPathValue(call.GetOutput(), call.GetTrailingUri()); |
986 } | 981 } |
987 | 982 |
1258 static void AnonymizeOrModifyInstance(Removals& removals, | 1253 static void AnonymizeOrModifyInstance(Removals& removals, |
1259 Replacements& replacements, | 1254 Replacements& replacements, |
1260 bool removePrivateTags, | 1255 bool removePrivateTags, |
1261 RestApi::PostCall& call) | 1256 RestApi::PostCall& call) |
1262 { | 1257 { |
1263 boost::mutex::scoped_lock lock(cacheMutex_); | 1258 RETRIEVE_CONTEXT(call); |
1264 RETRIEVE_CONTEXT(call); | 1259 boost::mutex::scoped_lock lock(context.GetDicomFileMutex()); |
1265 | 1260 |
1266 std::string id = call.GetUriComponent("id", ""); | 1261 std::string id = call.GetUriComponent("id", ""); |
1267 ParsedDicomFile& dicom = context.GetDicomFile(id); | 1262 ParsedDicomFile& dicom = context.GetDicomFile(id); |
1268 | 1263 |
1269 std::auto_ptr<ParsedDicomFile> modified(dicom.Clone()); | 1264 std::auto_ptr<ParsedDicomFile> modified(dicom.Clone()); |
1336 typedef std::list<std::string> Instances; | 1331 typedef std::list<std::string> Instances; |
1337 | 1332 |
1338 bool isFirst = true; | 1333 bool isFirst = true; |
1339 Json::Value result(Json::objectValue); | 1334 Json::Value result(Json::objectValue); |
1340 | 1335 |
1341 boost::mutex::scoped_lock lock(cacheMutex_); | 1336 RETRIEVE_CONTEXT(call); |
1342 RETRIEVE_CONTEXT(call); | 1337 boost::mutex::scoped_lock lock(context.GetDicomFileMutex()); |
1343 | 1338 |
1344 Instances instances; | 1339 Instances instances; |
1345 std::string id = call.GetUriComponent("id", ""); | 1340 std::string id = call.GetUriComponent("id", ""); |
1346 context.GetIndex().GetChildInstances(instances, id); | 1341 context.GetIndex().GetChildInstances(instances, id); |
1347 | 1342 |