Mercurial > hg > orthanc
changeset 1399:15957c6a6691
removal of orthanc-client samples
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 01 Jun 2015 12:57:40 +0200 |
parents | aa9b8fa97576 |
children | 1c8df4424437 |
files | Resources/Samples/OrthancClient/Basic/CMakeLists.txt Resources/Samples/OrthancClient/Basic/main.cpp Resources/Samples/OrthancClient/Vtk/CMakeLists.txt Resources/Samples/OrthancClient/Vtk/main.cpp |
diffstat | 4 files changed, 0 insertions(+), 285 deletions(-) [+] |
line wrap: on
line diff
--- a/Resources/Samples/OrthancClient/Basic/CMakeLists.txt Mon Jun 01 12:47:49 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -project(Basic) - -add_executable(Test main.cpp) - -if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - # Linking with "pthread" is necessary, otherwise the software crashes - # http://sourceware.org/bugzilla/show_bug.cgi?id=10652#c17 - target_link_libraries(Test pthread dl) -endif()
--- a/Resources/Samples/OrthancClient/Basic/main.cpp Mon Jun 01 12:47:49 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/** - * Orthanc - A Lightweight, RESTful DICOM Store - * Copyright (C) 2012-2015 Sebastien Jodogne, Medical Physics - * Department, University Hospital of Liege, Belgium - * - * This program is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - **/ - - -#include <iostream> -#include <orthanc/OrthancCppClient.h> - -int main() -{ - try - { - // The following explicit initialization is not required, except - // if you wish to specify the full path to the shared library - OrthancClient::Initialize(); - - // 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; - - if (series.Is3DImage()) - { - std::cout << " This is a 3D image whose voxel size is " - << series.GetVoxelSizeX() << " x " - << series.GetVoxelSizeY() << " x " - << series.GetVoxelSizeZ() << ", and slice thickness is " - << series.GetSliceThickness() << std::endl; - } - - for (unsigned int l = 0; l < series.GetInstanceCount(); l++) - { - std::cout << " Instance: " << series.GetInstance(l).GetId() << std::endl; - - // Load and display some raw DICOM tag - series.GetInstance(l).LoadTagContent("0020-000d"); - std::cout << " SOP instance UID: " << series.GetInstance(l).GetLoadedTagContent() << std::endl; - } - } - } - } - - OrthancClient::Finalize(); - - return 0; - } - catch (OrthancClient::OrthancClientException& e) - { - std::cerr << "EXCEPTION: [" << e.What() << "]" << std::endl; - return -1; - } -}
--- a/Resources/Samples/OrthancClient/Vtk/CMakeLists.txt Mon Jun 01 12:47:49 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -project(Vtk) - -find_package(VTK REQUIRED) -include(${VTK_USE_FILE}) - -add_executable(Test - main.cpp - ) - -# Linking with "pthread" is necessary, otherwise the software crashes -# http://sourceware.org/bugzilla/show_bug.cgi?id=10652#c17 -target_link_libraries(Test pthread dl) - -if(VTK_LIBRARIES) - target_link_libraries(Test ${VTK_LIBRARIES}) -else() - target_link_libraries(Test vtkHybrid vtkVolumeRendering) -endif()
--- a/Resources/Samples/OrthancClient/Vtk/main.cpp Mon Jun 01 12:47:49 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/** - * Orthanc - A Lightweight, RESTful DICOM Store - * Copyright (C) 2012-2015 Sebastien Jodogne, Medical Physics - * Department, University Hospital of Liege, Belgium - * - * This program is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - **/ - - -#include <iostream> - -#include <vtkRenderWindow.h> -#include <vtkImageData.h> -#include <vtkPiecewiseFunction.h> -#include <vtkFixedPointVolumeRayCastMapper.h> -#include <vtkColorTransferFunction.h> -#include <vtkVolumeProperty.h> -#include <vtkRenderWindowInteractor.h> -#include <vtkRenderer.h> -#include <vtkSmartPointer.h> -#include <vtkOpenGLRenderer.h> -#include <vtkInteractorStyleTrackballCamera.h> - -#include <orthanc/OrthancCppClient.h> - - -void Display(OrthancClient::Series& series) -{ - /** - * Load the 3D image from Orthanc into VTK. - **/ - - vtkSmartPointer<vtkImageData> image = vtkSmartPointer<vtkImageData>::New(); - image->SetDimensions(series.GetWidth(), series.GetHeight(), series.GetInstanceCount()); - image->SetScalarType(VTK_SHORT); - image->AllocateScalars(); - - if (series.GetWidth() != 0 && - series.GetHeight() != 0 && - series.GetInstanceCount() != 0) - { - series.Load3DImage(image->GetScalarPointer(0, 0, 0), Orthanc::PixelFormat_SignedGrayscale16, - 2 * series.GetWidth(), 2 * series.GetHeight() * series.GetWidth()); - } - - image->SetSpacing(series.GetVoxelSizeX(), - series.GetVoxelSizeY(), - series.GetVoxelSizeZ()); - - - /** - * The following code is based on the VTK sample for MIP - * http://www.vtk.org/Wiki/VTK/Examples/Cxx/VolumeRendering/MinIntensityRendering - **/ - - // Create a transfer function mapping scalar value to opacity - double range[2]; - image->GetScalarRange(range); - - vtkSmartPointer<vtkPiecewiseFunction> opacityTransfer = - vtkSmartPointer<vtkPiecewiseFunction>::New(); - opacityTransfer->AddSegment(range[0], 0.0, range[1], 1.0); - - vtkSmartPointer<vtkColorTransferFunction> colorTransfer = - vtkSmartPointer<vtkColorTransferFunction>::New(); - colorTransfer->AddRGBPoint(0, 1.0, 1.0, 1.0); - colorTransfer->AddRGBPoint(range[1], 1.0, 1.0, 1.0); - - vtkSmartPointer<vtkVolumeProperty> property = - vtkSmartPointer<vtkVolumeProperty>::New(); - property->SetScalarOpacity(opacityTransfer); - property->SetColor(colorTransfer); - property->SetInterpolationTypeToLinear(); - - // Create a Maximum Intensity Projection rendering - vtkSmartPointer<vtkFixedPointVolumeRayCastMapper> mapper = - vtkSmartPointer<vtkFixedPointVolumeRayCastMapper>::New(); - mapper->SetBlendModeToMaximumIntensity(); - mapper->SetInput(image); - - vtkSmartPointer<vtkVolume> volume = vtkSmartPointer<vtkVolume>::New(); - volume->SetMapper(mapper); - volume->SetProperty(property); - - vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkOpenGLRenderer>::New(); - renderer->AddViewProp(volume); - renderer->SetBackground(0.1, 0.2, 0.3); // Background color dark blue - - vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = - vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New(); - - vtkSmartPointer<vtkRenderWindow> window = vtkSmartPointer<vtkRenderWindow>::New(); - window->AddRenderer(renderer); - - vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); - interactor->SetRenderWindow(window); - interactor->SetInteractorStyle(style); - interactor->Start(); -} - - -int main() -{ - try - { - // The following explicit initialization is not required, except - // if you wish to specify the full path to the shared library - OrthancClient::Initialize(); - - // Use the commented code below if you know the identifier of a - // series that corresponds to a 3D image. - - /* - { - OrthancClient::OrthancConnection orthanc("http://localhost:8042"); - OrthancClient::Series series(orthanc, "dc5ec3d9-6e1a7b2c-73a829f0-64c609f6-ef976a97"); - Display(series); - return 0; - } - */ - - - // Try and find a 3D image inside the local store - 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; - - if (series.Is3DImage()) - { - Display(series); - return 0; - } - else - { - std::cout << " => Not a 3D image..." << std::endl; - } - } - } - } - - std::cout << "Unable to find a 3D image in the local Orthanc store" << std::endl; - - return 0; - } - catch (OrthancClient::OrthancClientException& e) - { - std::cerr << "EXCEPTION: [" << e.What() << "]" << std::endl; - return -1; - } -}