This repository has been archived by the owner on Aug 7, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
179 lines (132 loc) · 4.57 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
=======================
=== Orthanc Roadmap ===
=======================
The wishlist from Orthanc users is available on Trello:
https://trello.com/b/gcn33tDM/orthanc-wishlist
=======
General
=======
* Configure an user-defined site UID root if generating DICOM UIDs
("FromDcmtkBridge::GenerateUuid()")
* Support "/preview" and "/matlab" for LUT color images
* Improve handling of errors in the command queue:
https://groups.google.com/d/msg/orthanc-users/--njEbqcDDI/rBu8XL-Mm-cJ
* Support partial file retrieval in Orthanc::HttpClient
* Support retry counter in Orthanc::HttpClient
* Option to enable DNS lookups in DICOM: https://goo.gl/woa35Z
* Option to overwrite and reindex on duplicated instance identifier
(i.e. replace older DICOM instance by new one on identical SOPInstanceUID)
============
Dependencies
============
* Switch from libiconv to libICU (http://site.icu-project.org/download),
as recommended by Boost:
http://www.boost.org/doc/libs/1_64_0/libs/locale/doc/html/building_boost_locale.html
=============
Documentation
=============
* Document REST API with Swagger/OpenAPI
========
REST API
========
----------
Short-term
----------
* Create multi-frame images with /tools/create-dicom (by adding a
"MultiFrame" flag to avoid creating a series)
* In the POST /instances, add a ?force=true query arguments to force Orthanc to replace
the uploaded file even if it already exists in Orthanc. This is useful when transcoding
an image outside Orthanc and reuploading it. Since it has the same ids, its Orthanc ID
will be the same as the previous one.
* In the /studies/{id}/anonymize route, add an option to remove secondary captures.
They usually contains Patient info in the image. The SOPClassUID might be used to
identify such secondary captures.
---------
Long-term
---------
* Stick to the JSONapi or JAREST guidelines for a "v2" of the API:
https://groups.google.com/forum/#!msg/orthanc-users/Bag-SwEE9ZI/-w7QXI6p7-oJ
http://www.admiraalit.nl/jarest/
=====
DICOM
=====
----------
Short-term
----------
* Support C-GET:
http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html
* Check Big Endian transfer syntax in ParsedDicomFile::EmbedImage and
DicomImageDecoder
---------
Long-term
---------
* Support DICOM TLS (cf. "--enable-tls" in storescp)
* Support Storage Commitment:
https://groups.google.com/forum/#!msg/orthanc-users/VZOn8St65jw/s8kg_OHesj0J
* Support extended association:
https://groups.google.com/d/msg/orthanc-users/xD4d3mpc6ms/srF7E2goAAAJ
=======
Plugins
=======
---
SDK
---
* Image transcoding API
* Add plugins for normalized operations (notably so as to support
Print SCU/SCP):
https://www.medicalconnections.co.uk/kb/DICOM_Print_Service
----------------
Ideas of plugins
----------------
* Complex anonymization, with recursive mapping of UIDs
https://bitbucket.org/sjodogne/orthanc/issues/46/
* DICOM-RT primitives (RT-STRUCT, RT-PLAN, RT-DOSE)
* Converter to/from NIfTI
* MySQL database plugin
* Decode JPEG2k with grok: https://github.com/GrokImageCompression/grok
* Generate dynamic HTTP content using Lua:
https://groups.google.com/d/msg/orthanc-users/KompazkxRSs/5Rh03mzgDAAJ
* More generally, expose more callbacks of the plugin SDK in Lua:
https://groups.google.com/d/msg/orthanc-users/_FbiRHuXPGM/J-OAv7zaCAAJ
* Authorization plugin for the DICOM protocol:
https://groups.google.com/d/msg/orthanc-users/Wv-QEwTE0IA/rvJxoOjcAQAJ
===
Lua
===
* Configure HTTP headers from Lua (in HttpGet(), HttpPost(),
HttpPut(), HttpDelete(), RestApiGet(), RestApiPost(), RestApiPut()
and RestApiDelete().
https://groups.google.com/forum/#!msg/orthanc-users/WNnW187OILM/6XX_bm96BwAJ
===========
Performance
===========
================
Code refactoring
================
* Use Semaphore::Locker everywhere (instead of explicit
Release() and Acquire())
* Avoid direct calls to FromDcmtkBridge (make most of its
methods private), go through ParsedDicomFile wherever possible
=================
Platform-specific
=================
---------
Packaging
---------
* CentOS and RHEL through EPEL:
http://fedoraproject.org/wiki/EPEL_Package_Maintainers
------------------------
Big-endian architectures
------------------------
* Check the generated 16bpp PNG images
-----------------
Microsoft Windows
-----------------
* Add compatibility with non-ASCII paths (Orthanc expresses its paths
as UTF-8 strings, but Windows expects them to be translated to the
system locale)
=====================
External applications
=====================
* Create REST bindings with Slicer
* Create REST bindings with Horos/OsiriX