comparison README.md @ 504:7cdb4634846c

Merge
author Benjamin Golinvaux <bgo@osimis.io>
date Tue, 26 Feb 2019 21:15:20 +0100
parents README@4d8ac609fc33 README@8424b10df93a
children 801d2697a1b1
comparison
equal deleted inserted replaced
460:4d8ac609fc33 504:7cdb4634846c
1 Stone of Orthanc
2 ================
3
4 General Information
5 -------------------
6
7 This repository contains the source code of the Stone of Orthanc.
8
9 Stone of Orthanc is a lightweight, cross-platform C++ framework for
10 the CPU-based rendering of medical images. It notably features support
11 for MPR (multiplanar reconstruction of volume images), PET-CT fusion,
12 and accurate physical world coordinates.
13
14 Stone of Orthanc comes bundled with its own software-based rendering
15 engine (based upon pixman). This engine will use CPU hardware
16 acceleration if available (notably SSE2, SSSE3, and NEON instruction
17 sets), but not the GPU. This makes Stone a highly versatile framework
18 that can run even on low-performance platforms. Note that Stone is
19 able to display DICOM series without having to entirely store them in
20 the RAM (i.e. frame by frame).
21
22 Thanks to its standalone rendering engine, Stone of Orthanc is also
23 compatible with any GUI framework (such as Qt, wxWidgets, MFC...). The
24 provided sample applications use the SDL framework.
25
26 Stone is conceived as a companion toolbox to the Orthanc VNA (vendor
27 neutral archive, i.e. DICOM server). As a consequence, Stone will
28 smoothly interface with Orthanc out of the box. Interestingly, Stone
29 does not contain any DICOM toolkit: It entirely relies on the REST API
30 of Orthanc to parse/decode DICOM images. However, thanks to the
31 object-oriented architecture of Stone, it is possible to avoid this
32 dependency upon Orthanc, e.g. to download DICOM datasets using
33 DICOMweb.
34
35
36 Comparison
37 ----------
38
39 Pay attention to the fact that Stone of Orthanc is a toolkit, and not
40 a fully-featured application for the visualization of medical images
41 (such as Horos/OsiriX or Ginkgo CADx). However, such applications
42 can be built on the top of Stone of Orthanc.
43
44 Stone of Orthanc is quite similar to two other well-known toolkits:
45
46 * Cornerstone, a client-side JavaScript toolkit to display medical
47 images in Web browsers, by Chris Hafey <chafey@gmail.com>:
48 https://github.com/chafey/cornerstone
49
50 Contrarily to Cornerstone, Stone of Orthanc can be embedded into
51 native, heavyweight applications.
52
53 * VTK, a C++ toolkit for scientific visualization, by Kitware:
54 http://www.vtk.org/
55
56 Contrarily to VTK, Stone of Orthanc is focused on CPU-based, 2D
57 rendering: The GPU will not be used.
58
59
60 Dependencies
61 ------------
62
63 Stone of Orthanc is based upon the following projects:
64
65 * Orthanc, a lightweight Vendor Neutral Archive (DICOM server):
66 http://www.orthanc-server.com/
67
68 * Cairo and pixman, a cross-platform 2D graphics library:
69 https://www.cairographics.org/
70
71 * Optionally, SDL, a cross-platform multimedia library:
72 https://www.libsdl.org/
73
74 Prerequisites to compile natively on Ubuntu:
75 ```
76 sudo apt-get install -y libcairo-dev libpixman-1-dev libsdl2-dev
77 ```
78
79 The emscripten SDK is required for the WASM build. Please install it
80 in `~/apps/emsdk`. If you wish to use it in another way, please edit
81 the `build-wasm.sh` file.
82
83 ninja (`sudo apt-get install -y ninja-build`) is used instead of make, for performance reasons.
84
85 Installation and usage ----------------------
86
87 Build instructions are similar to that of Orthanc:
88 http://book.orthanc-server.com/faq/compiling.html
89
90 Usage details are available as part of the Orthanc Book:
91 http://book.orthanc-server.com/developers/stone.html
92
93 Stone of Orthanc comes with several sample applications in the
94 `Samples` folder. These samples can be compiled into Web Assembly or
95 into native SDL applications.
96
97 The following assumes that the source code to be downloaded in
98 `~/orthanc-stone` and Orthanc source code to be checked out in
99 `~/orthanc`.
100
101 Building the WASM samples
102 -------------------------------------
103 ```
104 cd ~/orthanc-stone/Applications/Samples
105 ./build-wasm.sh
106 ```
107
108 Serving the WASM samples
109 ------------------------------------
110 ```
111 # launch an Orthanc listening on 8042 port:
112 Orthanc
113
114 # launch an nginx that will serve the WASM static files and reverse
115 # proxy
116 sudo nginx -p $(pwd) -c nginx.local.conf
117 ```
118
119 You can now open the samples in http://localhost:9977
120
121 Building the SDL native samples (SimpleViewer only)
122 ---------------------------------------------------
123
124 The following also assumes that you have checked out the Orthanc
125 source code in an `orthanc` folder next to the Stone of Orthanc
126 repository, please enter the following:
127
128 ```
129 mkdir -p ~/builds/orthanc-stone-build
130 cd ~/builds/orthanc-stone-build
131 cmake -DORTHANC_FRAMEWORK_SOURCE=path \
132 -DORTHANC_FRAMEWORK_ROOT=$currentDir/../../../orthanc \
133 -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON \
134 ~/orthanc-stone/Applications/Samples/
135 ```
136
137 If you are working on Windows, add the correct generator option to
138 cmake to, for instance, generate msbuild files for Visual Studio.
139
140 Then, under Linux:
141 ```
142 cmake --build . --target OrthancStoneSimpleViewer -- -j 5
143 ```
144
145 Note: replace `$($pwd)` with the current directory when not using Powershell
146
147 Building the Qt native samples (SimpleViewer only) under Windows:
148 ------------------------------------------------------------------
149 For instance, if Qt is installed in `C:\Qt\5.12.0\msvc2017_64`
150
151 `cmake -DSTATIC_BUILD=ON -DCMAKE_PREFIX_PATH=C:\Qt\5.12.0\msvc2017_64 -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_QT=ON -G "Visual Studio 15 2017 Win64" ../orthanc-stone/Applications/Samples/`
152
153 Note: replace `$($pwd)` with the current directory when not using Powershell
154
155
156
157 Building the SDL native samples (SimpleViewer only) under Windows:
158 ------------------------------------------------------------------
159 `cmake -DSTATIC_BUILD=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON -G "Visual Studio 15 2017 Win64" ../orthanc-stone/Applications/Samples/`
160
161 Note: replace `$($pwd)` with the current directory when not using Powershell
162
163 Executing the native samples:
164 --------------------------------
165 ```
166 # launch an Orthanc listening on 8042 port:
167 Orthanc
168
169 # launch the sample
170 ./OrthancStoneSimpleViewer --studyId=XX
171 ```
172
173 Licensing
174 ---------
175
176 Stone of Orthanc is licensed under the AGPL license.
177
178 We also kindly ask scientific works and clinical studies that make
179 use of Orthanc to cite Orthanc in their associated publications.
180 Similarly, we ask open-source and closed-source products that make
181 use of Orthanc to warn us about this use. You can cite our work
182 using the following BibTeX entry:
183
184 @Article{Jodogne2018,
185 author="Jodogne, S{\'e}bastien",
186 title="The {O}rthanc Ecosystem for Medical Imaging",
187 journal="Journal of Digital Imaging",
188 year="2018",
189 month="Jun",
190 day="01",
191 volume="31",
192 number="3",
193 pages="341--352",
194 issn="1618-727X",
195 doi="10.1007/s10278-018-0082-y",
196 url="https://doi.org/10.1007/s10278-018-0082-y"
197 }
198