# HG changeset patch # User Sebastien Jodogne # Date 1406040574 -7200 # Node ID bd2cb95003da7762aebfcaf28e9e806c8289a1fd # Parent 648bf1457113681696ab12c4f20f307461a25398 C-Echo SCU in the REST API diff -r 648bf1457113 -r bd2cb95003da NEWS --- a/NEWS Fri Jul 18 17:18:33 2014 +0200 +++ b/NEWS Tue Jul 22 16:49:34 2014 +0200 @@ -4,6 +4,7 @@ * Lookup for DICOM UIDs in the plugin SDK * Plugins have access to the HTTP headers and can answer with HTTP status codes * On-the-fly conversion of JSON to XML according to the HTTP Accept header +* C-Echo SCU in the REST API Version 0.8.0 (2014/07/10) diff -r 648bf1457113 -r bd2cb95003da OrthancServer/OrthancRestApi/OrthancRestModalities.cpp --- a/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp Fri Jul 18 17:18:33 2014 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp Tue Jul 22 16:49:34 2014 +0200 @@ -68,6 +68,27 @@ return true; } + + static void DicomEcho(RestApiPostCall& call) + { + ServerContext& context = OrthancRestApi::GetContext(call); + + RemoteModalityParameters remote = Configuration::GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); + ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote); + + try + { + if (locker.GetConnection().Echo()) + { + call.GetOutput().AnswerBuffer("{}", "application/json"); + } + } + catch (OrthancException&) + { + } + } + + static void DicomFindPatient(RestApiPostCall& call) { ServerContext& context = OrthancRestApi::GetContext(call); @@ -438,6 +459,7 @@ if (IsExistingModality(modalities, id)) { Json::Value result = Json::arrayValue; + result.append("echo"); result.append("find-patient"); result.append("find-study"); result.append("find-series"); @@ -497,6 +519,7 @@ Register("/modalities/{id}", ListModalityOperations); Register("/modalities/{id}", UpdateModality); Register("/modalities/{id}", DeleteModality); + Register("/modalities/{id}/echo", DicomEcho); Register("/modalities/{id}/find-patient", DicomFindPatient); Register("/modalities/{id}/find-study", DicomFindStudy); Register("/modalities/{id}/find-series", DicomFindSeries);