# HG changeset patch # User Sebastien Jodogne # Date 1373959375 -7200 # Node ID 482cde3f3c14a9034223b8f0d948268c7c14501e # Parent 0cd977e94479a124a345d0e753653e369179e86c sample of c++ client diff -r 0cd977e94479 -r 482cde3f3c14 OrthancCppClient/Instance.h --- a/OrthancCppClient/Instance.h Tue Jul 16 09:08:09 2013 +0200 +++ b/OrthancCppClient/Instance.h Tue Jul 16 09:22:55 2013 +0200 @@ -57,6 +57,11 @@ Instance(const OrthancConnection& connection, const std::string& id); + const std::string& GetId() const + { + return id_; + } + void SetImageExtractionMode(Orthanc::ImageExtractionMode mode); Orthanc::ImageExtractionMode GetImageExtractionMode() const diff -r 0cd977e94479 -r 482cde3f3c14 OrthancCppClient/OrthancConnection.h --- a/OrthancCppClient/OrthancConnection.h Tue Jul 16 09:08:09 2013 +0200 +++ b/OrthancCppClient/OrthancConnection.h Tue Jul 16 09:22:55 2013 +0200 @@ -38,7 +38,9 @@ namespace OrthancClient { - class OrthancConnection : public boost::noncopyable, private Orthanc::ArrayFilledByThreads::IFiller + class OrthancConnection : + public boost::noncopyable, + private Orthanc::ArrayFilledByThreads::IFiller { private: Orthanc::HttpClient client_; diff -r 0cd977e94479 -r 482cde3f3c14 OrthancCppClient/Patient.h --- a/OrthancCppClient/Patient.h Tue Jul 16 09:08:09 2013 +0200 +++ b/OrthancCppClient/Patient.h Tue Jul 16 09:22:55 2013 +0200 @@ -36,7 +36,9 @@ namespace OrthancClient { - class Patient : public Orthanc::IDynamicObject, private Orthanc::ArrayFilledByThreads::IFiller + class Patient : + public Orthanc::IDynamicObject, + private Orthanc::ArrayFilledByThreads::IFiller { private: const OrthancConnection& connection_; diff -r 0cd977e94479 -r 482cde3f3c14 OrthancCppClient/Series.h --- a/OrthancCppClient/Series.h Tue Jul 16 09:08:09 2013 +0200 +++ b/OrthancCppClient/Series.h Tue Jul 16 09:22:55 2013 +0200 @@ -39,7 +39,9 @@ namespace OrthancClient { - class Series : public Orthanc::IDynamicObject, private Orthanc::ArrayFilledByThreads::IFiller + class Series : + public Orthanc::IDynamicObject, + private Orthanc::ArrayFilledByThreads::IFiller { private: enum Status3DImage diff -r 0cd977e94479 -r 482cde3f3c14 OrthancCppClient/Study.h --- a/OrthancCppClient/Study.h Tue Jul 16 09:08:09 2013 +0200 +++ b/OrthancCppClient/Study.h Tue Jul 16 09:22:55 2013 +0200 @@ -36,7 +36,9 @@ namespace OrthancClient { - class Study : public Orthanc::IDynamicObject, private Orthanc::ArrayFilledByThreads::IFiller + class Study : + public Orthanc::IDynamicObject, + private Orthanc::ArrayFilledByThreads::IFiller { private: const OrthancConnection& connection_; diff -r 0cd977e94479 -r 482cde3f3c14 Resources/Samples/OrthancCppClient/Basic/CMakeLists.txt --- a/Resources/Samples/OrthancCppClient/Basic/CMakeLists.txt Tue Jul 16 09:08:09 2013 +0200 +++ b/Resources/Samples/OrthancCppClient/Basic/CMakeLists.txt Tue Jul 16 09:22:55 2013 +0200 @@ -12,6 +12,8 @@ include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake) include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake) include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake) if (${CMAKE_COMPILER_IS_GNUCXX}) set(CMAKE_C_FLAGS "-Wall -pedantic -Wno-implicit-function-declaration") # --std=c99 makes libcurl not to compile @@ -27,7 +29,20 @@ ${THIRD_PARTY_SOURCES} ${ORTHANC_ROOT}/Core/OrthancException.cpp ${ORTHANC_ROOT}/Core/Enumerations.cpp + ${ORTHANC_ROOT}/Core/Toolbox.cpp ${ORTHANC_ROOT}/Core/HttpClient.cpp + ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp + ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp + ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp + ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp + ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp + ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp + ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp + ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp + ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp + ${ORTHANC_ROOT}/Resources/sha1/sha1.cpp + ${ORTHANC_ROOT}/Resources/md5/md5.c + ${ORTHANC_ROOT}/Resources/base64/base64.cpp ) add_executable(Test diff -r 0cd977e94479 -r 482cde3f3c14 Resources/Samples/OrthancCppClient/Basic/main.cpp --- a/Resources/Samples/OrthancCppClient/Basic/main.cpp Tue Jul 16 09:08:09 2013 +0200 +++ b/Resources/Samples/OrthancCppClient/Basic/main.cpp Tue Jul 16 09:22:55 2013 +0200 @@ -28,6 +28,7 @@ #include #include "../../../../Core/HttpClient.h" +#include "../../../../OrthancCppClient/OrthancConnection.h" int main() { @@ -42,5 +43,31 @@ // Display the JSON answer std::cout << result << std::endl; + // Display the content of the local Orthanc instance + OrthancClient::OrthancConnection orthanc("http://localhost:8042"); + + for (unsigned int i = 0; i < orthanc.GetPatientCount(); i++) + { + OrthancClient::Patient& patient = orthanc.GetPatient(i); + std::cout << "Patient: " << patient.GetId() << std::endl; + + for (unsigned int j = 0; j < patient.GetStudyCount(); j++) + { + OrthancClient::Study& study = patient.GetStudy(j); + std::cout << " Study: " << study.GetId() << std::endl; + + for (unsigned int k = 0; k < study.GetSeriesCount(); k++) + { + OrthancClient::Series& series = study.GetSeries(k); + std::cout << " Series: " << series.GetId() << std::endl; + + for (unsigned int l = 0; l < series.GetInstanceCount(); l++) + { + std::cout << " Instance: " << series.GetInstance(l).GetId() << std::endl; + } + } + } + } + return 0; }