Mercurial > hg > orthanc
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); |