comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 1049:bd2cb95003da

C-Echo SCU in the REST API
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 22 Jul 2014 16:49:34 +0200
parents 871c49c9b11d
children 0332e6e8c679
comparison
equal deleted inserted replaced
1048:648bf1457113 1049:bd2cb95003da
66 } 66 }
67 67
68 return true; 68 return true;
69 } 69 }
70 70
71
72 static void DicomEcho(RestApiPostCall& call)
73 {
74 ServerContext& context = OrthancRestApi::GetContext(call);
75
76 RemoteModalityParameters remote = Configuration::GetModalityUsingSymbolicName(call.GetUriComponent("id", ""));
77 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote);
78
79 try
80 {
81 if (locker.GetConnection().Echo())
82 {
83 call.GetOutput().AnswerBuffer("{}", "application/json");
84 }
85 }
86 catch (OrthancException&)
87 {
88 }
89 }
90
91
71 static void DicomFindPatient(RestApiPostCall& call) 92 static void DicomFindPatient(RestApiPostCall& call)
72 { 93 {
73 ServerContext& context = OrthancRestApi::GetContext(call); 94 ServerContext& context = OrthancRestApi::GetContext(call);
74 95
75 DicomMap m; 96 DicomMap m;
436 457
437 std::string id = call.GetUriComponent("id", ""); 458 std::string id = call.GetUriComponent("id", "");
438 if (IsExistingModality(modalities, id)) 459 if (IsExistingModality(modalities, id))
439 { 460 {
440 Json::Value result = Json::arrayValue; 461 Json::Value result = Json::arrayValue;
462 result.append("echo");
441 result.append("find-patient"); 463 result.append("find-patient");
442 result.append("find-study"); 464 result.append("find-study");
443 result.append("find-series"); 465 result.append("find-series");
444 result.append("find-instance"); 466 result.append("find-instance");
445 result.append("find"); 467 result.append("find");
495 { 517 {
496 Register("/modalities", ListModalities); 518 Register("/modalities", ListModalities);
497 Register("/modalities/{id}", ListModalityOperations); 519 Register("/modalities/{id}", ListModalityOperations);
498 Register("/modalities/{id}", UpdateModality); 520 Register("/modalities/{id}", UpdateModality);
499 Register("/modalities/{id}", DeleteModality); 521 Register("/modalities/{id}", DeleteModality);
522 Register("/modalities/{id}/echo", DicomEcho);
500 Register("/modalities/{id}/find-patient", DicomFindPatient); 523 Register("/modalities/{id}/find-patient", DicomFindPatient);
501 Register("/modalities/{id}/find-study", DicomFindStudy); 524 Register("/modalities/{id}/find-study", DicomFindStudy);
502 Register("/modalities/{id}/find-series", DicomFindSeries); 525 Register("/modalities/{id}/find-series", DicomFindSeries);
503 Register("/modalities/{id}/find-instance", DicomFindInstance); 526 Register("/modalities/{id}/find-instance", DicomFindInstance);
504 Register("/modalities/{id}/find", DicomFind); 527 Register("/modalities/{id}/find", DicomFind);