annotate README @ 2128:43c679659a70 StoneWebViewer-2.3

closing StoneWebViewer-2.3
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 30 May 2024 17:08:17 +0200
parents 8efcff08f868
children bd67addab1a3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 Stone of Orthanc
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 ================
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 General Information
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 -------------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
7 This repository contains the source code of Stone of Orthanc.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 Stone of Orthanc is a lightweight, cross-platform C++ framework for
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
10 the rendering of medical images. It is a companion toolkit to the main
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
11 Orthanc DICOM server. It notably features support for MPR (multiplanar
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
12 reconstruction of volume images), PET-CT fusion, and accurate physical
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
13 world coordinates.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
15 Stone of Orthanc can take advantage of OpenGL/WebGL to accelerate 2D
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
16 rendering using the GPU. 3D operations such as reslicing are done
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
17 using CPU.
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
18
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
19 Stone of Orthanc is compatible with any GUI framework (such as Qt,
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
20 wxWidgets, MFC...). The provided sample applications use the SDL
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
21 framework.
9
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
22
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
23 Very importantly, Stone of Orthanc is compatible with WebAssembly,
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
24 which makes it suitable to render medical images in Web applications.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
26 As a library for medical imaging, Stone of Orthanc also comes with
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
27 primitives to download, parse and handle DICOM images. These
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
28 primitives can use either the REST API of the Orthanc server, or the
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
29 DICOMweb protocol. Primitives to deal with radiotherapy or nuclear
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
30 medicine studies are available as well (image fusion using layers).
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
31
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
32 Besides the low-level Stone of Orthanc library, this repository also
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
33 contains the Stone Web viewer. The Stone Web viewer is a
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
34 fully-featured Web viewer that can be either used as a plugin to
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
35 Orthanc, or as a standalone viewer if using DICOMweb.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 Comparison
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 ----------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 Stone of Orthanc is quite similar to two other well-known toolkits:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 * Cornerstone, a client-side JavaScript toolkit to display medical
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 images in Web browsers, by Chris Hafey <chafey@gmail.com>:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 https://github.com/chafey/cornerstone
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
47 Contrarily to Cornerstone, Stone of Orthanc is written in C++ and
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
48 can be embedded into native, heavyweight applications.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 * VTK, a C++ toolkit for scientific visualization, by Kitware:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 http://www.vtk.org/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
53 Contrarily to VTK, Stone of Orthanc is much more simple, and only
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
54 uses the GPU for 2D rendering.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 Dependencies
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 ------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 Stone of Orthanc is based upon the following projects:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 * Orthanc, a lightweight Vendor Neutral Archive (DICOM server):
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 http://www.orthanc-server.com/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 * Cairo and pixman, a cross-platform 2D graphics library:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 https://www.cairographics.org/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 * Optionally, SDL, a cross-platform multimedia library:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 https://www.libsdl.org/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
71 On Ubuntu, you would use:
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
73 $ sudo apt-get install -y libcairo-dev libpixman-1-dev libsdl2-dev
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
74
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
75 * Optionally, Emscripten, the official compiler for WebAssembly:
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
76 https://emscripten.org/
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
77
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
79 Installation and usage
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
80 ----------------------
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
82 Build instructions and usage details are available as part of the
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
83 Orthanc Book:
41
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 9
diff changeset
84 http://book.orthanc-server.com/developers/stone.html
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 9
diff changeset
85
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 Stone of Orthanc comes with several sample applications in the
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
87 "Applications/Samples" folder. Please check the
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
88 "Applications/Samples/README.md" file for information on the samples
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
89 building and running procedure.
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
90
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
91 The source code of the Stone Web viewer is located in folder
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
92 "Applications/StoneWebViewer".
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
93
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
94
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
95 Technical information
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
96 ---------------------
1173
1064098f496d Added sample cmake command for bash/zsh
Benjamin Golinvaux <bgo@osimis.io>
parents: 1003
diff changeset
97
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
98 - For situations where OpenGL is not available, Stone of Orthanc comes
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
99 bundled with its own software-based rendering engine (based upon
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
100 cairo and pixman). This engine will use CPU hardware acceleration if
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
101 available (notably SSE2, SSSE3, and NEON instruction sets), but not
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
102 the GPU. This makes Stone a highly versatile framework that can run
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
103 even on low-performance platforms.
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
104
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
105 - Stone of Orthanc is compatible with desktop software, with native
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
106 mobile apps and with Web applications. To achieve this
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
107 compatibility, the rendering loop of Stone of Orthanc is
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
108 single-threaded, and abstracts network transfers and other
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
109 asynchronous events thanks to a so-called "Oracle". The Oracle is
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
110 the place where architecture-specific operations/computations can
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
111 take place (for instance, multi-threading).
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
112
265
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
113
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 Licensing
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 ---------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
117 Stone of Orthanc is licensed under the AGPLv3+ license.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118
1598
8563ea5d8ae4 relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
119 The files in the "./OrthancStone/Sources/" sub-directory are licensed
8563ea5d8ae4 relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
120 under the LGPLv3+ (Lesser GPL). The related COPYING file can be found
8563ea5d8ae4 relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
121 in "./OrthancStone/".
8563ea5d8ae4 relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
122
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
123 We also kindly ask scientific works and clinical studies that make use
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
124 of Orthanc to cite Orthanc in their associated publications.
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1350
diff changeset
125 Similarly, we ask open-source and closed-source products that make use
1926
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
126 of Orthanc to warn us about this use. You can cite our work on the
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
127 Stone of Orthanc using the two following BibTeX entries:
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128
210
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
129 @Article{Jodogne2018,
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
130 author="Jodogne, S{\'e}bastien",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
131 title="The {O}rthanc Ecosystem for Medical Imaging",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
132 journal="Journal of Digital Imaging",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
133 year="2018",
211
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
134 month="Jun",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
135 day="01",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
136 volume="31",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
137 number="3",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
138 pages="341--352",
210
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
139 issn="1618-727X",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
140 doi="10.1007/s10278-018-0082-y",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
141 url="https://doi.org/10.1007/s10278-018-0082-y"
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 }
501
8424b10df93a Dummy change
bgo-osimis
parents: 466
diff changeset
143
1926
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
144 @inproceedings{Jodogne2022,
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
145 author="Jodogne, S{\'e}bastien",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
146 title="Rendering Medical Images using {WebAssembly}",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
147 booktitle="Proc. of the 15th International Joint Conference on Biomedical Engineering Systems and Technologies",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
148 year="2022",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
149 month="Feb",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
150 volume="2",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
151 pages="43--51",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
152 doi="10.5220/0000156300003123",
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
153 url="http://hdl.handle.net/2078.1/257268"
8efcff08f868 added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1598
diff changeset
154 }