Mercurial > hg > orthanc-stone
annotate README @ 2084:7f70abd4044f
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 11 Oct 2023 21:43:26 +0200 |
parents | 3ca565841402 |
children | 5653b6335642 |
rev | line source |
---|---|
0 | 1 Stone of Orthanc |
2 ================ | |
3 | |
4 General Information | |
5 ------------------- | |
6 | |
1590 | 7 This repository contains the source code of Stone of Orthanc. |
0 | 8 |
9 Stone of Orthanc is a lightweight, cross-platform C++ framework for | |
1590 | 10 the rendering of medical images. It is a companion toolkit to the main |
11 Orthanc DICOM server. It notably features support for MPR (multiplanar | |
12 reconstruction of volume images), PET-CT fusion, and accurate physical | |
13 world coordinates. | |
0 | 14 |
1590 | 15 Stone of Orthanc can take advantage of OpenGL/WebGL to accelerate 2D |
16 rendering using the GPU. 3D operations such as reslicing are done | |
17 using CPU. | |
18 | |
19 Stone of Orthanc is compatible with any GUI framework (such as Qt, | |
20 wxWidgets, MFC...). The provided sample applications use the SDL | |
21 framework. | |
9 | 22 |
1590 | 23 Very importantly, Stone of Orthanc is compatible with WebAssembly, |
24 which makes it suitable to render medical images in Web applications. | |
0 | 25 |
1590 | 26 As a library for medical imaging, Stone of Orthanc also comes with |
27 primitives to download, parse and handle DICOM images. These | |
28 primitives can use either the REST API of the Orthanc server, or the | |
29 DICOMweb protocol. Primitives to deal with radiotherapy or nuclear | |
30 medicine studies are available as well (image fusion using layers). | |
31 | |
32 Besides the low-level Stone of Orthanc library, this repository also | |
33 contains the Stone Web viewer. The Stone Web viewer is a | |
34 fully-featured Web viewer that can be either used as a plugin to | |
35 Orthanc, or as a standalone viewer if using DICOMweb. | |
0 | 36 |
37 | |
38 Comparison | |
39 ---------- | |
40 | |
41 Stone of Orthanc is quite similar to two other well-known toolkits: | |
42 | |
43 * Cornerstone, a client-side JavaScript toolkit to display medical | |
44 images in Web browsers, by Chris Hafey <chafey@gmail.com>: | |
45 https://github.com/chafey/cornerstone | |
46 | |
1590 | 47 Contrarily to Cornerstone, Stone of Orthanc is written in C++ and |
48 can be embedded into native, heavyweight applications. | |
0 | 49 |
50 * VTK, a C++ toolkit for scientific visualization, by Kitware: | |
51 http://www.vtk.org/ | |
52 | |
1590 | 53 Contrarily to VTK, Stone of Orthanc is much more simple, and only |
54 uses the GPU for 2D rendering. | |
0 | 55 |
56 | |
57 Dependencies | |
58 ------------ | |
59 | |
60 Stone of Orthanc is based upon the following projects: | |
61 | |
62 * Orthanc, a lightweight Vendor Neutral Archive (DICOM server): | |
63 http://www.orthanc-server.com/ | |
64 | |
65 * Cairo and pixman, a cross-platform 2D graphics library: | |
66 https://www.cairographics.org/ | |
67 | |
68 * Optionally, SDL, a cross-platform multimedia library: | |
69 https://www.libsdl.org/ | |
70 | |
1590 | 71 On Ubuntu, you would use: |
0 | 72 |
1590 | 73 $ sudo apt-get install -y libcairo-dev libpixman-1-dev libsdl2-dev |
74 | |
75 * Optionally, Emscripten, the official compiler for WebAssembly: | |
76 https://emscripten.org/ | |
445 | 77 |
0 | 78 |
1590 | 79 Installation and usage |
80 ---------------------- | |
0 | 81 |
1590 | 82 Build instructions and usage details are available as part of the |
83 Orthanc Book: | |
41 | 84 http://book.orthanc-server.com/developers/stone.html |
85 | |
0 | 86 Stone of Orthanc comes with several sample applications in the |
1590 | 87 "Applications/Samples" folder. Please check the |
88 "Applications/Samples/README.md" file for information on the samples | |
89 building and running procedure. | |
90 | |
91 The source code of the Stone Web viewer is located in folder | |
92 "Applications/StoneWebViewer". | |
93 | |
94 | |
95 Technical information | |
96 --------------------- | |
1173
1064098f496d
Added sample cmake command for bash/zsh
Benjamin Golinvaux <bgo@osimis.io>
parents:
1003
diff
changeset
|
97 |
1590 | 98 - For situations where OpenGL is not available, Stone of Orthanc comes |
99 bundled with its own software-based rendering engine (based upon | |
100 cairo and pixman). This engine will use CPU hardware acceleration if | |
101 available (notably SSE2, SSSE3, and NEON instruction sets), but not | |
102 the GPU. This makes Stone a highly versatile framework that can run | |
103 even on low-performance platforms. | |
104 | |
105 - Stone of Orthanc is compatible with desktop software, with native | |
106 mobile apps and with Web applications. To achieve this | |
107 compatibility, the rendering loop of Stone of Orthanc is | |
108 single-threaded, and abstracts network transfers and other | |
109 asynchronous events thanks to a so-called "Oracle". The Oracle is | |
110 the place where architecture-specific operations/computations can | |
111 take place (for instance, multi-threading). | |
445 | 112 |
265 | 113 |
2079 | 114 Contributing |
115 ------------ | |
116 | |
117 Instructions for contributing to the Orthanc project are included in | |
118 the Orthanc Book: | |
119 https://book.orthanc-server.com/developers/repositories.html | |
120 | |
121 | |
0 | 122 Licensing |
123 --------- | |
124 | |
1590 | 125 Stone of Orthanc is licensed under the AGPLv3+ license. |
0 | 126 |
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
|
127 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
|
128 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
|
129 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
|
130 |
1590 | 131 We also kindly ask scientific works and clinical studies that make use |
132 of Orthanc to cite Orthanc in their associated publications. | |
133 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
|
134 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
|
135 Stone of Orthanc using the two following BibTeX entries: |
0 | 136 |
210 | 137 @Article{Jodogne2018, |
2080
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
138 title = {The Orthanc Ecosystem for Medical Imaging}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
139 author = {Jodogne, S{\'e}bastien}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
140 journal = {Journal of Digital Imaging}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
141 volume = {31}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
142 number = {3}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
143 pages = {341-352}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
144 issn = {1618-727X}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
145 doi = {10.1007/s10278-018-0082-y}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
146 publisher = {Springer Science and Business Media LLC}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
147 year = {2018}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
148 url = {https://doi.org/10.1007/s10278-018-0082-y} |
0 | 149 } |
501 | 150 |
2080
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
151 @Article{Jodogne2023, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
152 title = {On the Use of WebAssembly for Rendering and Segmenting Medical Images}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
153 author = {Jodogne, S{\'e}bastien}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
154 journal = {Biomedical Engineering Systems and Technologies}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
155 volume = {1814}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
156 number = {1}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
157 pages = {393-414}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
158 issn = {1865-0937}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
159 doi = {10.1007/978-3-031-38854-5_20}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
160 year = {2023}, |
3ca565841402
updated references
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2079
diff
changeset
|
161 url = {http://hdl.handle.net/2078.1/277125} |
1926
8efcff08f868
added reference paper
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1598
diff
changeset
|
162 } |