annotate TODO @ 2154:f8cbfd7175c3

fix parsing of structure sets
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 27 Sep 2024 15:05:41 +0200
parents 5e78572f0b2e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
1
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
2 ======================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
3 == Stone Web viewer ==
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
4 ======================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
5
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
6 ------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
7 Improvements
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
8 ------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
9
2137
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2112
diff changeset
10 * Update OrthancFramework to 1.12.1 to benefit from:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2112
diff changeset
11 https://orthanc.uclouvain.be/hg/orthanc/rev/57c0fba5e5c7
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2112
diff changeset
12
1830
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
13 * Save/load annotations as attachments of their parent series
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
14 (including detection of collisions thanks to revisions).
2104
5653b6335642 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2073
diff changeset
15 https://orthanc.uclouvain.be/book/faq/features.html#metadata-attachments
1830
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
16
1847
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1834
diff changeset
17 * Internationalization and translations (i18n). Some possible libraries:
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
18 https://phrase.com/blog/posts/the-best-javascript-i18n-libraries/
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
20 * Configurable keyboard shortcuts. See Osimis Web viewer:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
21 https://bitbucket.org/osimis/osimis-webviewer-plugin/src/master/doc/default-configuration.json
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
22
1730
af4a2d08549c preparing for release
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1726
diff changeset
23 * Handle mobile gestures.
af4a2d08549c preparing for release
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1726
diff changeset
24
1847
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1834
diff changeset
25 * Display GSPS layers (Grayscale Softcopy Presentation State).
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1834
diff changeset
26
1930
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
27 * Use "ImagerPixelSpacing" (0018,1164) tag if "PixelSpacing" is missing
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
28
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
29 * Override which tags are displayed in the image information in the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
30 top-left, top-right and bottom-right pannels.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
31
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
32 For reference, in the case of MRI, "Echo Time" (0018,0081),
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
33 "Repetition Time" (0018,0080), "Magnetic Field Strength (0018,0087)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
34 and "Slice Thickness" (0018,0050) would be useful to have.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
35
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
36 https://groups.google.com/g/orthanc-users/c/_kDp_ieYTgI/m/KHBxpSSOCQAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
37
1995
f2a094fa8c33 updated TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1965
diff changeset
38 * Add a button (and/or a keyboard shortcut) to select the next series
f2a094fa8c33 updated TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1965
diff changeset
39 in the main viewport. In Osimis viewer, this was implemented by
f2a094fa8c33 updated TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1965
diff changeset
40 up/down arrow keys (prev/next series).
f2a094fa8c33 updated TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1965
diff changeset
41 https://groups.google.com/g/orthanc-users/c/u_lH9aqKsdw/m/KQ7U9CkiAAAJ.
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
42
2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1995
diff changeset
43 * Minor: Rotate the anchors of the text after rotation of the display.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1995
diff changeset
44
2112
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2104
diff changeset
45 * Order the studies in the left column according to their Instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2104
diff changeset
46 Number (0020,0013). Suggestion by Joseph Maratt.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2104
diff changeset
47
2137
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2112
diff changeset
48 * Add a button to download PDF:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2112
diff changeset
49 https://discourse.orthanc-server.org/t/printing-pdf-reports-in-stone-of-orthanc/4731
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2112
diff changeset
50
2140
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2137
diff changeset
51 * Open using Orthanc parent/study/series identifier, or using DICOM
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2137
diff changeset
52 accession number:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2137
diff changeset
53 https://discourse.orthanc-server.org/t/stone-web-viewer-what-is-the-link-to-use-through-the-access-number/4808
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2137
diff changeset
54
2141
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2140
diff changeset
55 * Add configuration options to disable annotations and measurements:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2140
diff changeset
56 https://discourse.orthanc-server.org/t/niveles-de-acceso-y-permisos-a-funcionalidades-del-stone-web-viewer/5106
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2140
diff changeset
57
2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1995
diff changeset
58
1867
Alain Mazy <am@osimis.io>
parents: 1865
diff changeset
59 ------------
Alain Mazy <am@osimis.io>
parents: 1865
diff changeset
60 Known issues
Alain Mazy <am@osimis.io>
parents: 1865
diff changeset
61 ------------
Alain Mazy <am@osimis.io>
parents: 1865
diff changeset
62
1925
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1922
diff changeset
63 * Compatibility with Google Chrome browser on iPad Air 4:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1922
diff changeset
64 https://groups.google.com/g/orthanc-users/c/7SgedbIiA2k/
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1922
diff changeset
65 https://groups.google.com/g/orthanc-users/c/RfQJFgkOUYY/m/za7rkcLNBQAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1922
diff changeset
66
1830
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
67 -----------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
68 Code refactorings
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
69 -----------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
70
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
71 * Replace "ParsedDicomCache" by "Orthanc::ParsedDicomCache" (new in
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
72 Orthanc framework 1.9.0)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
73
1938
Alain Mazy <am@osimis.io>
parents: 1935
diff changeset
74 * Replace calls to /studies/.../series/.../metadata by calls to
Alain Mazy <am@osimis.io>
parents: 1935
diff changeset
75 /instances?StudyInstanceUID=...&SeriesInstanceUID=...&includefield=...&includefield=...
2054
70b79788c2f3 clarified TODO wrt /metadata
Alain Mazy <am@osimis.io>
parents: 2052
diff changeset
76 to benefit from ExtraMainDicomTags stored in DB and avoid reading from disk when not necessary.
70b79788c2f3 clarified TODO wrt /metadata
Alain Mazy <am@osimis.io>
parents: 2052
diff changeset
77 This way, we request only the tags that the viewer is going to use.
70b79788c2f3 clarified TODO wrt /metadata
Alain Mazy <am@osimis.io>
parents: 2052
diff changeset
78 The /metadata requests all tags and therefore will read from the storage unless you have
70b79788c2f3 clarified TODO wrt /metadata
Alain Mazy <am@osimis.io>
parents: 2052
diff changeset
79 specified "DicomWeb.SeriesMetadata": "MainDicomTags"; this is an acceptable workaround
70b79788c2f3 clarified TODO wrt /metadata
Alain Mazy <am@osimis.io>
parents: 2052
diff changeset
80 for now but the first approach is cleaner and removes dependencies between the DicomWeb config
70b79788c2f3 clarified TODO wrt /metadata
Alain Mazy <am@osimis.io>
parents: 2052
diff changeset
81 and stone. It might also be more efficient on other backends as well.
1830
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1829
diff changeset
82
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
83 --------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
84 Wishlist
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
85 --------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
86
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
87 * Display video files even if the Orthanc REST API is not available
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
88 (using pure DICOMweb). This could possible be done using the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
89 DICOMweb Bulk Data URI, and/or a dedicated JavaScript video player.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
90
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
91 * "Start the Viewer with a specific Dicom file and display the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
92 specific images. For example I start the Viewer with dicomFile and
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
93 open slide1, slide4, slide8, slide12 ?"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
94 https://groups.google.com/g/orthanc-users/c/6KSe0WEEfco/m/nOIl57EzAAAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
95
1717
391c798e4dae fix for KNIX sample dataset
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1716
diff changeset
96 * Configuration option related to the "DicomSource" class in order to
391c798e4dae fix for KNIX sample dataset
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1716
diff changeset
97 systematically request server-side transcoding.
391c798e4dae fix for KNIX sample dataset
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1716
diff changeset
98
1753
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1741
diff changeset
99 * Fully implement "Basic Image Review" profile from IHE:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1741
diff changeset
100 https://wiki.ihe.net/index.php/Basic_Image_Review
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1741
diff changeset
101
1848
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1847
diff changeset
102 * Support hanging protocols (automatically adapt the layout given the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1847
diff changeset
103 type of modality to be displayed):
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1847
diff changeset
104 https://groups.google.com/g/orthanc-users/c/bGtK3q9ZUmg/m/gr8kCcVWCAAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1847
diff changeset
105
1932
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1930
diff changeset
106 * Create secondary capture DICOM images with the annotations burned in:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1930
diff changeset
107 https://groups.google.com/g/orthanc-users/c/T3h-6dIjvww/m/sVtHxwT_AQAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1930
diff changeset
108
1933
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1932
diff changeset
109 * Configure the default layout (e.g. 1x2 instead of 1x1) and the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1932
diff changeset
110 default view of the left toolbox:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1932
diff changeset
111 https://groups.google.com/g/orthanc-users/c/y2B_RIzegNc/m/H9MhY9y2AgAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1932
diff changeset
112
1935
49c615745708 fix typo
Alain Mazy <am@osimis.io>
parents: 1934
diff changeset
113 * Display the PatientName & ID in the page title such that it appears
1934
Alain Mazy <am@osimis.io>
parents: 1933
diff changeset
114 in the browser tab name
Alain Mazy <am@osimis.io>
parents: 1933
diff changeset
115 https://groups.google.com/g/orthanc-users/c/F7cK8axehfA/m/ku-CPsvbAQAJ
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
116
2028
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2021
diff changeset
117 * Configuration option (plus GET parameter in the URL) to set where to
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2021
diff changeset
118 start in the series by default (plus possibly a dictionary mapping
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2021
diff changeset
119 SOP Class UIDs for per-modality setting):
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2021
diff changeset
120 https://groups.google.com/g/orthanc-users/c/tHPMBHe-Z-A/m/XXlRBdhoAgAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2021
diff changeset
121
1930
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
122 --------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
123 Won't do
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
124 --------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
125
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
126 * Debian packaging, which requires source-level build dependencies:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
127 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975069#22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
128
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
129 => A solution for AMD64 architectures is to use the standalone
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
130 Debian repository that is provided by Sebastien Jodogne:
2104
5653b6335642 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2073
diff changeset
131 https://orthanc.uclouvain.be/book/users/cookbook.html#obtaining-binaries
1930
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
132
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
133
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1925
diff changeset
134
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
135 ==================================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
136 == Stone of Orthanc C++ library ==
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
137 ==================================
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 -------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 General
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 -------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 * Documentation
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 -------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 Optimizations
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 -------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148
1590
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 406
diff changeset
149 * Speedup RT-STRUCT projection in sagittal + coronal views
7b963bccafef updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 406
diff changeset
150 * Speedup RT-STRUCT loading
1726
0257339b0884 new method ParseDicomFromWadoCommand::IsSameCommand()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1719
diff changeset
151 * "ParseDicomFromOrthanc": new command
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 -----------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 Platform-specific
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 -----------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156
1716
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
157 * WebAssembly: Possible issue in "emscripten_set_timeout()" if the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
158 Oracle is destroyed while a sleep event is still being processed
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
159 (the callback payload would be invalid). This is not a problem as
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
160 long as the Oracle singleton is never destroyed. A cleaner solution
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
161 would be similar to "WebAssemblyViewport::CreateObjectCookie()".
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1590
diff changeset
162
1995
f2a094fa8c33 updated TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1965
diff changeset
163 * Add precompiled headers for Microsoft Visual Studio.