comparison OrthancServer/Sources/OrthancRestApi/OrthancRestModalities.cpp @ 4338:1263e727d048

give access to the configuration of one single peer or modality
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 03 Dec 2020 10:43:31 +0100
parents 0923247e69f6
children fc5caed6f940
comparison
equal deleted inserted replaced
4337:7707fa761b71 4338:1263e727d048
1198 throw OrthancException(ErrorCode_UnknownResource, 1198 throw OrthancException(ErrorCode_UnknownResource,
1199 "No peer with symbolic name: " + remote); 1199 "No peer with symbolic name: " + remote);
1200 } 1200 }
1201 } 1201 }
1202 1202
1203 static void GetPeerConfiguration(RestApiGetCall& call)
1204 {
1205 OrthancConfiguration::ReaderLock lock;
1206 const std::string peer = call.GetUriComponent("id", "");
1207
1208 WebServiceParameters info;
1209 if (lock.GetConfiguration().LookupOrthancPeer(info, peer))
1210 {
1211 Json::Value answer;
1212 info.FormatPublic(answer);
1213 call.GetOutput().AnswerJson(answer);
1214 }
1215 else
1216 {
1217 throw OrthancException(ErrorCode_UnknownResource,
1218 "No peer with symbolic name: " + peer);
1219 }
1220 }
1221
1203 // DICOM bridge ------------------------------------------------------------- 1222 // DICOM bridge -------------------------------------------------------------
1204 1223
1205 static bool IsExistingModality(const OrthancRestApi::SetOfStrings& modalities, 1224 static bool IsExistingModality(const OrthancRestApi::SetOfStrings& modalities,
1206 const std::string& id) 1225 const std::string& id)
1207 { 1226 {
1289 } 1308 }
1290 1309
1291 context.SignalUpdatedModalities(); 1310 context.SignalUpdatedModalities();
1292 1311
1293 call.GetOutput().AnswerBuffer("", MimeType_PlainText); 1312 call.GetOutput().AnswerBuffer("", MimeType_PlainText);
1313 }
1314
1315
1316 static void GetModalityConfiguration(RestApiGetCall& call)
1317 {
1318 const std::string modality = call.GetUriComponent("id", "");
1319
1320 Json::Value answer;
1321
1322 {
1323 OrthancConfiguration::ReaderLock lock;
1324 lock.GetConfiguration().GetModalityUsingSymbolicName(modality).Serialize(answer, true /* force advanced format */);
1325 }
1326
1327 call.GetOutput().AnswerJson(answer);
1294 } 1328 }
1295 1329
1296 1330
1297 static void UpdatePeer(RestApiPutCall& call) 1331 static void UpdatePeer(RestApiPutCall& call)
1298 { 1332 {
1614 Register("/modalities/{id}/find-instance", DicomFindInstance); 1648 Register("/modalities/{id}/find-instance", DicomFindInstance);
1615 Register("/modalities/{id}/find", DicomFind); 1649 Register("/modalities/{id}/find", DicomFind);
1616 Register("/modalities/{id}/store", DicomStore); 1650 Register("/modalities/{id}/store", DicomStore);
1617 Register("/modalities/{id}/store-straight", DicomStoreStraight); // New in 1.6.1 1651 Register("/modalities/{id}/store-straight", DicomStoreStraight); // New in 1.6.1
1618 Register("/modalities/{id}/move", DicomMove); 1652 Register("/modalities/{id}/move", DicomMove);
1653 Register("/modalities/{id}/configuration", GetModalityConfiguration); // New in 1.8.1
1619 1654
1620 // For Query/Retrieve 1655 // For Query/Retrieve
1621 Register("/modalities/{id}/query", DicomQuery); 1656 Register("/modalities/{id}/query", DicomQuery);
1622 Register("/queries", ListQueries); 1657 Register("/queries", ListQueries);
1623 Register("/queries/{id}", DeleteQuery); 1658 Register("/queries/{id}", DeleteQuery);
1641 Register("/peers/{id}", ListPeerOperations); 1676 Register("/peers/{id}", ListPeerOperations);
1642 Register("/peers/{id}", UpdatePeer); 1677 Register("/peers/{id}", UpdatePeer);
1643 Register("/peers/{id}", DeletePeer); 1678 Register("/peers/{id}", DeletePeer);
1644 Register("/peers/{id}/store", PeerStore); 1679 Register("/peers/{id}/store", PeerStore);
1645 Register("/peers/{id}/system", PeerSystem); 1680 Register("/peers/{id}/system", PeerSystem);
1681 Register("/peers/{id}/configuration", GetPeerConfiguration); // New in 1.8.1
1646 1682
1647 Register("/modalities/{id}/find-worklist", DicomFindWorklist); 1683 Register("/modalities/{id}/find-worklist", DicomFindWorklist);
1648 1684
1649 // Storage commitment 1685 // Storage commitment
1650 Register("/modalities/{id}/storage-commitment", StorageCommitmentScu); 1686 Register("/modalities/{id}/storage-commitment", StorageCommitmentScu);