Mercurial > hg > orthanc-stone
annotate README @ 339:5a7915b23138 am-2
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 19 Oct 2018 14:44:12 +0200 |
parents | b04b13810540 |
children | 4d8ac609fc33 64d90190a08c |
rev | line source |
---|---|
0 | 1 Stone of Orthanc |
2 ================ | |
3 | |
4 | |
5 General Information | |
6 ------------------- | |
7 | |
8 This repository contains the source code of the Stone of Orthanc. | |
9 | |
10 Stone of Orthanc is a lightweight, cross-platform C++ framework for | |
11 the CPU-based rendering of medical images. It notably features support | |
12 for MPR (multiplanar reconstruction of volume images), PET-CT fusion, | |
13 and accurate physical world coordinates. | |
14 | |
15 Stone of Orthanc comes bundled with its own software-based rendering | |
16 engine (based upon pixman). This engine will use CPU hardware | |
17 acceleration if available (notably SSE2, SSSE3, and NEON instruction | |
18 sets), but not the GPU. This makes Stone a highly versatile framework | |
9 | 19 that can run even on low-performance platforms. Note that Stone is |
20 able to display DICOM series without having to entirely store them in | |
21 the RAM (i.e. frame by frame). | |
22 | |
23 Thanks to its standalone rendering engine, Stone of Orthanc is also | |
24 compatible with any GUI framework (such as Qt, wxWidgets, MFC...). The | |
25 provided sample applications use the SDL framework. | |
0 | 26 |
9 | 27 Stone is conceived as a companion toolbox to the Orthanc VNA (vendor |
28 neutral archive, i.e. DICOM server). As a consequence, Stone will | |
29 smoothly interface with Orthanc out of the box. Interestingly, Stone | |
30 does not contain any DICOM toolkit: It entirely relies on the REST API | |
31 of Orthanc to parse/decode DICOM images. However, thanks to the | |
32 object-oriented architecture of Stone, it is possible to avoid this | |
33 dependency upon Orthanc, e.g. to download DICOM datasets using | |
34 DICOMweb. | |
0 | 35 |
36 | |
37 Comparison | |
38 ---------- | |
39 | |
40 Pay attention to the fact that Stone of Orthanc is a toolkit, and not | |
1 | 41 a fully-featured application for the visualization of medical images |
42 (such as Horos/OsiriX or Ginkgo CADx). However, such applications | |
43 could be built on the top of Stone of Orthanc. | |
0 | 44 |
45 Stone of Orthanc is quite similar to two other well-known toolkits: | |
46 | |
47 * Cornerstone, a client-side JavaScript toolkit to display medical | |
48 images in Web browsers, by Chris Hafey <chafey@gmail.com>: | |
49 https://github.com/chafey/cornerstone | |
50 | |
51 Contrarily to Cornerstone, Stone of Orthanc can be embedded into | |
52 native, heavyweight applications. | |
53 | |
54 * VTK, a C++ toolkit for scientific visualization, by Kitware: | |
55 http://www.vtk.org/ | |
56 | |
57 Contrarily to VTK, Stone of Orthanc is focused on CPU-based, 2D | |
58 rendering: The GPU will not be used. | |
59 | |
60 | |
61 Dependencies | |
62 ------------ | |
63 | |
64 Stone of Orthanc is based upon the following projects: | |
65 | |
66 * Orthanc, a lightweight Vendor Neutral Archive (DICOM server): | |
67 http://www.orthanc-server.com/ | |
68 | |
69 * Cairo and pixman, a cross-platform 2D graphics library: | |
70 https://www.cairographics.org/ | |
71 | |
72 * Optionally, SDL, a cross-platform multimedia library: | |
73 https://www.libsdl.org/ | |
74 | |
222 | 75 Prerequisites to compile on Ubuntu: |
76 ``` | |
77 sudo apt-get install -y libcairo-dev libpixman-1-dev libsdl2-dev | |
78 ``` | |
0 | 79 |
80 Installation and usage | |
81 ---------------------- | |
82 | |
83 Build instructions are similar to that of Orthanc: | |
84 https://orthanc.chu.ulg.ac.be/book/faq/compiling.html | |
85 | |
41 | 86 Usage details are available as part of the Orthanc Book: |
87 http://book.orthanc-server.com/developers/stone.html | |
88 | |
0 | 89 Stone of Orthanc comes with several sample applications in the |
264
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
90 "Samples" folder. These samples can be compiled into Web Assembly |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
91 or into native SDL applications. |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
92 |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
93 to build the WASM samples: |
265 | 94 ------------------------- |
264
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
95 ``` |
295
b04b13810540
unified CMakeLists.txt into a single file for WASM/Native + bootstrap Command (to rework) + doc
am@osimis.io
parents:
265
diff
changeset
|
96 cd ~/orthanc-stone/Applications/Samples |
264
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
97 ./build-wasm.sh |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
98 ``` |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
99 |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
100 to serve the WASM samples: |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
101 ``` |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
102 # launch an Orthanc listening on 8042 port: |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
103 Orthanc |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
104 |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
105 # launch an nginx that will serve the WASM static files and reverse proxy Orthanc |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
106 sudo nginx -p $(pwd) -c nginx.local.conf |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
107 ``` |
6b98ac45aaee
documented how to compile and execute WASM samples
am@osimis.io
parents:
222
diff
changeset
|
108 Now, you can open the samples in http://localhost:9977 |
0 | 109 |
265 | 110 to build the SDL native samples (SimpleViewer only): |
111 ------------------------------- | |
112 ``` | |
113 mkdir -p ~/builds/orthanc-stone-build | |
114 cd ~/builds/orthanc-stone-build | |
295
b04b13810540
unified CMakeLists.txt into a single file for WASM/Native + bootstrap Command (to rework) + doc
am@osimis.io
parents:
265
diff
changeset
|
115 cmake -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON ~/orthanc-stone/Applications/Samples/ |
265 | 116 cmake --build . --target OrthancStoneSimpleViewer -- -j 5 |
117 ``` | |
118 | |
119 to execute the native samples: | |
120 ``` | |
121 # launch an Orthanc listening on 8042 port: | |
122 Orthanc | |
123 | |
124 # launch the sample | |
295
b04b13810540
unified CMakeLists.txt into a single file for WASM/Native + bootstrap Command (to rework) + doc
am@osimis.io
parents:
265
diff
changeset
|
125 ./OrthancStoneSimpleViewer --studyId=XX |
265 | 126 ``` |
127 | |
0 | 128 |
129 Licensing | |
130 --------- | |
131 | |
49 | 132 Stone of Orthanc is licensed under the AGPL license. |
0 | 133 |
134 We also kindly ask scientific works and clinical studies that make | |
135 use of Orthanc to cite Orthanc in their associated publications. | |
136 Similarly, we ask open-source and closed-source products that make | |
137 use of Orthanc to warn us about this use. You can cite our work | |
138 using the following BibTeX entry: | |
139 | |
210 | 140 @Article{Jodogne2018, |
141 author="Jodogne, S{\'e}bastien", | |
142 title="The {O}rthanc Ecosystem for Medical Imaging", | |
143 journal="Journal of Digital Imaging", | |
144 year="2018", | |
211 | 145 month="Jun", |
146 day="01", | |
147 volume="31", | |
148 number="3", | |
149 pages="341--352", | |
210 | 150 issn="1618-727X", |
151 doi="10.1007/s10278-018-0082-y", | |
152 url="https://doi.org/10.1007/s10278-018-0082-y" | |
0 | 153 } |