comparison README.md @ 445:ee41b6a017d7 bgo-commands-codegen

dumb change
author bgo-osimis
date Wed, 16 Jan 2019 16:24:45 +0100
parents README@b04b13810540
children 5055031f4a06
comparison
equal deleted inserted replaced
440:a750f11892ec 445:ee41b6a017d7
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 Installation and usage ----------------------
84
85 Build instructions are similar to that of Orthanc:
86 https://orthanc.chu.ulg.ac.be/book/faq/compiling.html
87
88 Usage details are available as part of the Orthanc Book:
89 http://book.orthanc-server.com/developers/stone.html
90
91 Stone of Orthanc comes with several sample applications in the
92 `Samples` folder. These samples can be compiled into Web Assembly or
93 into native SDL applications.
94
95 The following assumes that the source code to be downloaded in
96 `~/orthanc-stone` and Orthanc source code to be checked out in
97 `~/orthanc`.
98
99 Building the WASM samples
100 -------------------------------------
101 ```
102 cd ~/orthanc-stone/Applications/Samples
103 ./build-wasm.sh
104 ```
105
106 Serving the WASM samples
107 ------------------------------------
108 ```
109 # launch an Orthanc listening on 8042 port:
110 Orthanc
111
112 # launch an nginx that will serve the WASM static files and reverse
113 # proxy
114 sudo nginx -p $(pwd) -c nginx.local.conf
115 ```
116
117 You can now open the samples in http://localhost:9977
118
119 Building the SDL native samples (SimpleViewer only)
120 ---------------------------------------------------
121
122 The following also assumes that you have checked out the Orthanc
123 source code in an `orthanc` folder next to the Stone of Orthanc
124 repository, please enter the following:
125
126 ```
127 mkdir -p ~/builds/orthanc-stone-build
128 cd ~/builds/orthanc-stone-build
129 cmake -DORTHANC_FRAMEWORK_SOURCE=path \
130 -DORTHANC_FRAMEWORK_ROOT=$currentDir/../../../orthanc \
131 -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON \
132 ~/orthanc-stone/Applications/Samples/
133 ```
134
135 If you are working on Windows, add the correct generator option to
136 cmake to, for instance, generate msbuild files for Visual Studio.
137
138 Then, under Linux:
139 ```
140 cmake --build . --target OrthancStoneSimpleViewer -- -j 5
141 ```
142
143 Note: replace `$($pwd)` with the current directory when not using Powershell
144
145 Building the Qt native samples (SimpleViewer only) under Windows:
146 ------------------------------------------------------------------
147 For instance, if Qt is installed in `C:\Qt\5.12.0\msvc2017_64`
148
149 `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/`
150
151 Note: replace `$($pwd)` with the current directory when not using Powershell
152
153
154 Building the SDL native samples (SimpleViewer only) under Windows:
155 ------------------------------------------------------------------
156 `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/`
157
158 Note: replace `$($pwd)` with the current directory when not using Powershell
159
160 Executing the native samples:
161 --------------------------------
162 ```
163 # launch an Orthanc listening on 8042 port:
164 Orthanc
165
166 # launch the sample
167 ./OrthancStoneSimpleViewer --studyId=XX
168 ```
169
170 Licensing
171 ---------
172
173 Stone of Orthanc is licensed under the AGPL license.
174
175 We also kindly ask scientific works and clinical studies that make
176 use of Orthanc to cite Orthanc in their associated publications.
177 Similarly, we ask open-source and closed-source products that make
178 use of Orthanc to warn us about this use. You can cite our work
179 using the following BibTeX entry:
180
181 @Article{Jodogne2018,
182 author="Jodogne, S{\'e}bastien",
183 title="The {O}rthanc Ecosystem for Medical Imaging",
184 journal="Journal of Digital Imaging",
185 year="2018",
186 month="Jun",
187 day="01",
188 volume="31",
189 number="3",
190 pages="341--352",
191 issn="1618-727X",
192 doi="10.1007/s10278-018-0082-y",
193 url="https://doi.org/10.1007/s10278-018-0082-y"
194 }