Mercurial > hg > orthanc-stone
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 } |