Mercurial > hg > orthanc
annotate TODO @ 5853:4d932683049d get-scu tip
very first implementation of C-Get SCU
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 29 Oct 2024 17:25:49 +0100 |
parents | 6488cebb7147 |
children |
rev | line source |
---|---|
5853
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
1 current work on C-Get SCU: |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
2 - for the negotiation, limit SOPClassUID to the ones listed in a C-Find response or to a list provided in the Rest API ? |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
3 - SetupPresentationContexts |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
4 - handle progress |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
5 - handle cancellation when the job is cancelled ? |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
6 |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
7 |
4d932683049d
very first implementation of C-Get SCU
Alain Mazy <am@orthanc.team>
parents:
5820
diff
changeset
|
8 |
2163 | 9 ======================= |
10 === Orthanc Roadmap === | |
11 ======================= | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 |
4707 | 13 For higher-level ideas in the roadmap, please first read the |
14 "Contributing to Orthanc" section of the Orthanc Book: | |
5432
59e3b6f8c5be
migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
5409
diff
changeset
|
15 https://orthanc.uclouvain.be/book/contributing.html |
4707 | 16 |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 |
4978
2cfa50d8eb60
Speed-up handling of DicomModalitiesInStudy in C-Find and tools/find queries
Alain Mazy <am@osimis.io>
parents:
4954
diff
changeset
|
18 Some features are being funded by an OpenCollective one-time donations. |
4927 | 19 selected features are marked with priorities ((1) - higher, (2) - medium, (3) - nice to have) |
20 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 General |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 * Configure an user-defined site UID root if generating DICOM UIDs |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 ("FromDcmtkBridge::GenerateUuid()") |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 * Improve handling of errors in the command queue: |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 https://groups.google.com/d/msg/orthanc-users/--njEbqcDDI/rBu8XL-Mm-cJ |
2178 | 29 * Support partial file retrieval in Orthanc::HttpClient |
30 * Support retry counter in Orthanc::HttpClient | |
4662 | 31 * Option to enable DNS lookups in DICOM: |
5432
59e3b6f8c5be
migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
5409
diff
changeset
|
32 https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.9.3/OrthancFramework/Sources/OrthancFramework.cpp#l88 |
4643 | 33 * Toolbox::ComputeMD5() fails on files larger than 4GB |
4841 | 34 * Add an option to run Orthanc in read-only mode both for DICOM and for Rest API. |
5450
9ffd6d18daf3
log lines now contain the thread name
Alain Mazy <am@osimis.io>
parents:
5432
diff
changeset
|
35 * Logging: add more specific information to contextualize the logs. |
5166 | 36 For a DICOM Transfer, that would be nice to include the modality in the context + a study identifier or a job id. |
4927 | 37 * (1) Accept extra DICOM tags dictionaries in the DCMTK format '.dic' (easier to use than declare |
4885 | 38 them in the Orthanc configuration file). Even the standard dictionaries could be |
39 overriden by these custom dictionaries. | |
5013 | 40 * Add configurations to enable/disable warnings: |
41 - Modifying an instance while keeping its original SOPInstanceUID: This should be avoided! | |
5034 | 42 - Modifying a study while keeping its original StudyInstanceUID: This should be avoided! |
5391 | 43 * Store the job registry in a dedicatd table in DB ? |
44 https://discourse.orthanc-server.org/t/performance-issue-when-adding-a-lot-of-jobs-in-the-queue/3915/2 | |
45 Note: that might also be the right time to have a central jobs registry when working | |
46 with multiple Orthanc instances on the same DB. | |
5727 | 47 Note: the json serialization of a job "content" can be very large -> compress it before saving it to DB ? |
5400 | 48 * Right now, some Stable events never occurs (e.g. when Orthanc is restarted before the event is triggered). |
49 Since these events are used to e.g. generate dicom-web cache (or update it !), we should try | |
50 to make sure these events always happen. | |
51 - Generate the events when setting IsStable=true when starting an Orthanc (ok for SQLite) ? | |
52 - Also consider the use case of an Orthanc cluster that is being scaled-down just after one Orthanc instance | |
53 has received a few instances -> we can not only check for missing stable events at startup since no Orthanc will start. | |
54 We would need to maintain the list of "unstable" resources in DB instead of memory only. | |
55 * In prometheus metrics, implement Histograms or Exponential Histograms to measure durations. Right now, we only provide | |
56 "average" durations that are not very relevant | |
57 (https://opentelemetry.io/docs/specs/otel/metrics/data-model/#histogram) | |
58 - for job durations (+ have one histogram for each job) | |
59 - for HTTP request handling | |
60 - ... | |
5409 | 61 * Investigate if one could fix KeepAlive race conditions: |
62 https://discourse.orthanc-server.org/t/socket-hangup-with-rest-api/4023/3 | |
5557 | 63 * The DICOM file cache shall keep a MD5 of the cached file and compare it with MD5 |
64 from the DB. That would allow 2 orthancs in a swarm to realize when the other | |
65 Orthanc has updated the file: | |
66 https://discourse.orthanc-server.org/t/instances-id-content-api-results-are-different-in-docker-swarm-replicas-of-orthanc/4582 | |
5559
462b8f8a619c
todo private tags in ExtraMainDicomTags
Alain Mazy <am@orthanc.team>
parents:
5557
diff
changeset
|
67 * Allow saving PrivateTags in ExtraMainDicomTags. |
462b8f8a619c
todo private tags in ExtraMainDicomTags
Alain Mazy <am@orthanc.team>
parents:
5557
diff
changeset
|
68 Note: they can actually be stored but they then appear as "Unknown Tag & Data" in the responses. |
462b8f8a619c
todo private tags in ExtraMainDicomTags
Alain Mazy <am@orthanc.team>
parents:
5557
diff
changeset
|
69 If we try to add the PrivateCreator in the ExtraMainDicomTags, then, the DICOMWeb plugin fails to initialize because the private tags are not known. |
4643 | 70 |
71 ============================ | |
72 Documentation (Orthanc Book) | |
73 ============================ | |
74 | |
4928 | 75 * Write a getting started guide (step by step) for each platform to replace |
5432
59e3b6f8c5be
migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
5409
diff
changeset
|
76 https://orthanc.uclouvain.be/book/users/cookbook.html : |
4928 | 77 - Ubuntu/Debian |
5742
078b724dcbf8
if frame decoding fails, transcode to LittleEndianExplicit using plugins and decode with built-in decoder
Alain Mazy <am@orthanc.team>
parents:
5741
diff
changeset
|
78 - Windows (done) |
4928 | 79 - OSX |
80 - Docker on Linux | |
81 Each step by step guide should contain: | |
82 - get binaries | |
83 - launch | |
84 - open explorer | |
85 - edit configuration file | |
86 - restart and observe changes | |
87 | |
4645 | 88 * Explain how log rotation can be achieved (no built-in support in Orthanc) |
89 * Explain how to interface with Mirth/NextGen Connect | |
90 https://en.wikipedia.org/wiki/NextGen_Connect | |
91 * How to reproduce issues by replacing Orthanc with storescp or wlmscpfs | |
92 * How to capture TCP traffic of DICOM protocol using tcpdump and Wireshark | |
93 * Add more configurations of viewers (Weasis, Slicer...): | |
5432
59e3b6f8c5be
migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
5409
diff
changeset
|
94 https://orthanc.uclouvain.be/book/integrations.html |
4648 | 95 * Discuss HL7 in a dedicated page: |
96 https://groups.google.com/d/msg/orthanc-users/4dt4992O0lQ/opTjTFU2BgAJ | |
4728 | 97 https://groups.google.com/g/orthanc-users/c/Spjtcj9vSPo/m/ktUArWxUDQAJ |
4812 | 98 |
99 | |
100 ================ | |
101 Orthanc Explorer | |
102 ================ | |
103 | |
104 * Option to tune the number of results for a local lookup: | |
105 https://groups.google.com/g/orthanc-users/c/LF39musq02Y/ | |
106 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 ======== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
109 REST API |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 ======== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
111 |
5014 | 112 ---------- |
113 Short-term | |
114 ---------- | |
115 | |
116 | |
3967 | 117 -------- |
118 Mid-term | |
119 -------- | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
120 |
4927 | 121 * (1) Archive jobs: Resume downloads using "range requests": |
4478 | 122 https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests |
4927 | 123 * (3) Create DICOM from DICOMweb JSON ("application/dicom+json") |
4459
16392fe89ce0
new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4452
diff
changeset
|
124 with "/tools/create-dicom" |
4927 | 125 * (2) Create multi-frame images with /tools/create-dicom (by adding a |
4644 | 126 "MultiFrame" flag to avoid creating a series), or modify PixelData |
127 of a multi-frame image: | |
128 https://groups.google.com/g/orthanc-users/c/y3-xa_GcdLM/m/m0Kr5G5UPAAJ | |
4927 | 129 * (1) Specify the transfer syntax in /tools/create-dicom |
5055 | 130 https://groups.google.com/g/orthanc-users/c/o15Dekecgds/m/xmPE2y3bAwAJ |
5305
50e73f7db661
todo palette PNG in create-dicom
Alain Mazy <am@osimis.io>
parents:
5304
diff
changeset
|
131 * Support Palette PNG in /tools/create-dicom: |
50e73f7db661
todo palette PNG in create-dicom
Alain Mazy <am@osimis.io>
parents:
5304
diff
changeset
|
132 https://discourse.orthanc-server.org/t/404-on-tools-create-dicom-endpoint-with-specific-png/3562 |
5649 | 133 * Support creation of DICOM files from MP4 in /tools/create-dicom. |
134 Sample python code: https://github.com/salimkanoun/OrthancGif/blob/new-organisation/python/create_dicom_video.py. | |
135 We would need to extract frame rate + dimension from the MP4 which would | |
136 require ffmpeg or a similar library -> can not be done in the Orthanc core. | |
137 -> keep it for a python plugin | |
138 -> or require the payload to include rows/columns/cinerate/... | |
4927 | 139 * (1) In the /studies/{id}/anonymize route, add an option to remove |
4478 | 140 secondary captures. They usually contains Patient info in the |
141 image. The SOPClassUID might be used to identify such secondary | |
142 captures. | |
143 * Support "/preview" and "/matlab" for LUT color images | |
5541 | 144 * /preview should be able to display a dose report: |
145 https://discourse.orthanc-server.org/t/orthanc-image-preview-shows-empty-image/4459 | |
4803 | 146 * Try to transcode files if a simple decoding fails: |
147 https://groups.google.com/g/orthanc-users/c/b8168-NkAhA/m/Df3j-CO9CgAJ | |
4927 | 148 * (2) Ranges of DICOM tags for "Keep" and "Remove" in ".../modify" and ".../anonymize": |
4644 | 149 https://groups.google.com/g/orthanc-users/c/6dETktKo9v8/m/b0LUvSfwAgAJ |
5006 | 150 * return error code/reason in HTTP response if resubmit/cancel/pause fails ... |
5008 | 151 * filter /changes by type e.g: /changes?filter=StablePatient |
152 https://groups.google.com/g/orthanc-users/c/r20kDb0axms/m/2tzbQzYJAgAJ | |
153 * save more details in jobs e.g: the resources being sent/exported ... | |
154 https://groups.google.com/g/orthanc-users/c/rDDusFG5Lco/m/TzTUjWXLAQAJ | |
5386 | 155 https://discourse.orthanc-server.org/t/some-confusion-about-jobs-function/3887 |
5133 | 156 * allow filtering/ordering on the /jobs route: |
157 https://groups.google.com/g/orthanc-users/c/hsZ1jng5rIg/m/8xZL2C1VBgAJ | |
5367 | 158 * add an "AutoDeleteIfSuccessful": false option when creating jobs |
159 https://discourse.orthanc-server.org/t/job-history-combined-with-auto-forwarding/3729/10 | |
5742
078b724dcbf8
if frame decoding fails, transcode to LittleEndianExplicit using plugins and decode with built-in decoder
Alain Mazy <am@orthanc.team>
parents:
5741
diff
changeset
|
160 * Allow skipping automatic conversion of color-space in transcoding/decoding. |
5314
0b8068aa7142
revert 5306:155637655710: re-enable automatic conversion from YBR to RGB
Alain Mazy <am@osimis.io>
parents:
5307
diff
changeset
|
161 The patch that was initialy provided was breaking the IngestTranscoding. |
5481 | 162 This might require a DCMTK decoding plugin ? |
5314
0b8068aa7142
revert 5306:155637655710: re-enable automatic conversion from YBR to RGB
Alain Mazy <am@osimis.io>
parents:
5307
diff
changeset
|
163 https://discourse.orthanc-server.org/t/orthanc-convert-ybr-to-rgb-but-does-not-change-metadata/3533/9 |
5382 | 164 * Implement a 'commit' route to force the Stable status earlier. |
165 https://discourse.orthanc-server.org/t/expediting-stability-of-a-dicom-study-new-api-endpoint/1684 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
167 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
168 Long-term |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
169 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
170 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 * Stick to the JSONapi or JAREST guidelines for a "v2" of the API: |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 https://groups.google.com/forum/#!msg/orthanc-users/Bag-SwEE9ZI/-w7QXI6p7-oJ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 http://www.admiraalit.nl/jarest/ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 ===== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 DICOM |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
178 ===== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
179 |
3383 | 180 -------- |
181 Mid-term | |
182 -------- | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
183 |
4452 | 184 * Support C-GET SCU (note that C-GET SCP was introduced in Orthanc 1.7.0) |
5820 | 185 * Configure the list of accepted SOP Classes |
186 https://discourse.orthanc-server.org/t/can-you-limit-the-sop-classes-accepted-as-store-scp/4606 | |
3335 | 187 * Support "Retrieve AE Title" (0008,0054) in C-FIND: |
5432
59e3b6f8c5be
migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
5409
diff
changeset
|
188 - On SCP side: done by https://orthanc.uclouvain.be/hg/orthanc/rev/1ec3e1e18f50 |
3472 | 189 - On SCU side: |
190 https://groups.google.com/d/msg/orthanc-users/wPl0g5mqZco/5X1Z8tEzBgAJ | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
191 * Check Big Endian transfer syntax in ParsedDicomFile::EmbedImage and |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
192 DicomImageDecoder |
3384 | 193 * Strict hierarchical C-FIND: |
194 https://groups.google.com/d/msg/orthanc-users/VBHpeGVSNKM/tkaVvjWFBwAJ | |
4986 | 195 * report DIMSE error codes in Rest API and job status for /store /query /move /retrieve |
5114 | 196 * report progress report of C-Move operation in jop progress. There are |
197 progress callbacks available in DIMSE_moveUser | |
198 https://groups.google.com/g/orthanc-users/c/c8cGnA7FzsE/m/BSs66D8wBwAJ | |
4986 | 199 * Log outgoing C-Find queries |
5687 | 200 * Support other Transfer Syntaxes in the Worklist plugin: |
201 https://discourse.orthanc-server.org/t/could-you-please-create-an-option-to-set-the-transfer-syntax-in-the-worklist-plugin-currently-little-endian-explicit-is-fixed/4871 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
202 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
203 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
204 Long-term |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
205 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
206 |
4885 | 207 * Support extended association (e.g. for C-Find relational queries): |
2405
85a22aad7dfe
todo: extended association
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2377
diff
changeset
|
208 https://groups.google.com/d/msg/orthanc-users/xD4d3mpc6ms/srF7E2goAAAJ |
3465 | 209 * Support C-MOVE-CANCEL: |
210 https://groups.google.com/d/msg/orthanc-users/KnduYBFd06A/o86cl5SeCAAJ | |
5626
72dcf3a8d7d5
todo: Combine StudyDate + StudyTime in C-Find matching
Alain Mazy <am@orthanc.team>
parents:
5597
diff
changeset
|
211 * Combine StudyDate + StudyTime in C-Find matching (also for the worklist plugin with |
72dcf3a8d7d5
todo: Combine StudyDate + StudyTime in C-Find matching
Alain Mazy <am@orthanc.team>
parents:
5597
diff
changeset
|
212 ScheduledProcedureStartTime & Date). |
72dcf3a8d7d5
todo: Combine StudyDate + StudyTime in C-Find matching
Alain Mazy <am@orthanc.team>
parents:
5597
diff
changeset
|
213 We should first filter in SQL by StudyDate only, combine it with StudyTime into a single |
72dcf3a8d7d5
todo: Combine StudyDate + StudyTime in C-Find matching
Alain Mazy <am@orthanc.team>
parents:
5597
diff
changeset
|
214 DateTime string and filter again in C++. |
72dcf3a8d7d5
todo: Combine StudyDate + StudyTime in C-Find matching
Alain Mazy <am@orthanc.team>
parents:
5597
diff
changeset
|
215 https://discourse.orthanc-server.org/t/performin-find-within-orthanc-for-time-frames/4704 |
5755 | 216 * Worklist plugin: support MPPS |
217 https://github.com/orthanc-server/orthanc-setup-samples/blob/master/python-samples/worklist-with-mpps.py | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
218 |
3967 | 219 -------------------- |
220 Internationalization | |
221 -------------------- | |
3218 | 222 |
223 * Support multiple specific character sets (cf. "SCSH32" in orthanc-tests) | |
3223
c94f23198946
unit testing japanese
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3221
diff
changeset
|
224 - http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.12.html#sect_C.12.1.1.2 |
c94f23198946
unit testing japanese
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3221
diff
changeset
|
225 - Japanese test: http://dicom.nema.org/MEDICAL/dicom/2017c/output/chtml/part05/sect_H.3.2.html |
5385 | 226 https://discourse.orthanc-server.org/t/garbled-characters-when-i-uploaded-japanese-patient-name/3204/5 |
3218 | 227 * Support Supplementary Kanji set (ISO 2022 IR 159) |
3261 | 228 * Create DICOM files with multibyte encodings (Korean, JapaneseKanji, SimplifiedChinese) |
3218 | 229 |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
230 |
4467 | 231 =========== |
232 Performance | |
233 =========== | |
234 | |
4927 | 235 * (2) DicomMap: create a cache to the main DICOM tags index |
236 * (3) Check out rapidjson: https://github.com/miloyip/nativejson-benchmark | |
4978
2cfa50d8eb60
Speed-up handling of DicomModalitiesInStudy in C-Find and tools/find queries
Alain Mazy <am@osimis.io>
parents:
4954
diff
changeset
|
237 * For C-Find results: we could store the computed tags |
4944
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
238 in metadata on some events like NewSeries + DeletedSeries (same for other computer tags). |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
239 OtherTags that could be saved in Metadata as well: |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
240 - ModalitiesInStudy |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
241 - all computed counters at series/study/patient level |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
242 - RequestAttributesSequence (sequence that must be included in all DicomWeb QIDO-RS for series) |
4467 | 243 |
4986 | 244 * Long-shot & not sure it is even feasible at all: try to reduce memory usage by implementing streaming |
245 when receiving DICOM instances from the Rest API or from DICOM and store files directly to disk as they | |
246 are received. Note that this would likely require rewriting large parts of Orthanc. Note sure that | |
247 would be compatible with Transcoding. | |
248 Use case: receiving 10 1GB instances in parallel can consume up to 20 GB | |
249 Alternative option 1: write an "external application/plugin" that would take care of these receptions, write the | |
5096 | 250 file at the right place and send a signal to Orthanc to "adopt" the file. |
4986 | 251 Alternative option 2: declare a memory resource (X GB) that is available for reception. Every time |
5096 | 252 Orthanc starts receiving a file, it reserves the memory or twice the memory (through a Semaphore) |
253 if no memory is available, it waits and possibly timeouts returning a 503 or DIMSE A700 (out of resources). | |
254 This would at least protect from "out of memory" crashes. | |
255 Alternative option 3: Configure DCMTK to "stream" DICOM files on a temporary file on disk. Pass the file handle | |
256 to Orthanc and/or the Storage plugin (instead of passing a memory buffer) -> the object-storage plugin could | |
257 "stream" the file to the storage. The HTTP server could also "stream" its response from file handles. | |
258 Transcoding should be "file based" too. | |
5404 | 259 * To investigate: usage of mapped_file (not only in the indexer plugin): |
260 https://discourse.orthanc-server.org/t/patch-for-orthanc-indexer-plugin-crashing-on-big-non-dicom-files/3849/7 | |
4986 | 261 |
4624 | 262 ======== |
263 Database | |
264 ======== | |
265 | |
266 * Integration test searching for "\" and "%" in PatientName, PatientID... | |
267 | |
268 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
269 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
270 Plugins |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
271 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
272 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
273 --- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
274 SDK |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
275 --- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
276 |
4212 | 277 * Implement PluginsJob::GetOutput() to allow user-defined jobs to provide output: |
278 https://groups.google.com/g/orthanc-users/c/GZ7u0bTTVoo/m/Z7iTNTi2BgAJ | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
279 * Add plugins for normalized operations (notably so as to support |
4645 | 280 Print SCU/SCP, cf. "dcmprscp"): |
3570
f05887b1d1bf
Replaced broken url with url from wayback archive
Tomas Zubiri <me@tomaszubiri.com>
parents:
3472
diff
changeset
|
281 https://web.archive.org/web/20170923150432/https://www.medicalconnections.co.uk/kb/DICOM_Print_Service |
3153 | 282 * Provide access to the Orthanc::DicomUserConnection class in plugins: |
283 https://groups.google.com/d/msg/orthanc-users/ycDA1xPuTRY/nsT2_GOtEgAJ | |
3390 | 284 * Provide a C++ callback similar to "ReceivedInstanceFilter()" in Lua |
5432
59e3b6f8c5be
migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
5409
diff
changeset
|
285 https://orthanc.uclouvain.be/book/users/lua.html#filtering-incoming-dicom-instances |
3390 | 286 https://groups.google.com/d/msg/orthanc-users/BtvLTE5Ni8A/vIMhmMgfBAAJ |
4912
45d6ce72a84e
fix linking of Sanitizer sample plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4892
diff
changeset
|
287 * Update the SDK to handle buffer sizes > 4GB (all sizes are currently coded in uint32_t) |
5106 | 288 * Add a C-Get SCP handler: OrthancPluginRegisterGetCallback |
5107 | 289 https://groups.google.com/g/orthanc-users/c/NRhPkYX9IXQ/m/mWS11g0jBwAJ |
5165 | 290 * Add a primitive for user authentication (to generate 401 HTTP status, whereas |
291 the "RegisterIncomingHttpRequestFilter()" can only generate 403 HTTP status) | |
292 https://groups.google.com/g/orthanc-users/c/ymtaAmgSs6Q/m/PqVBactQAQAJ | |
5408 | 293 * Add an index on the UUID column in the DelayedDeletion plugin: |
294 https://discourse.orthanc-server.org/t/delayeddeletion-improvement-unique-index-on-pending-uuid-column/4032 | |
295 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
296 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
297 ---------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
298 Ideas of plugins |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
299 ---------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
300 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
301 * DICOM-RT primitives (RT-STRUCT, RT-PLAN, RT-DOSE) |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
302 * Converter to/from NIfTI |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
303 * Decode JPEG2k with grok: https://github.com/GrokImageCompression/grok |
2251 | 304 * Generate dynamic HTTP content using Lua: |
2199 | 305 https://groups.google.com/d/msg/orthanc-users/KompazkxRSs/5Rh03mzgDAAJ |
2251 | 306 * More generally, expose more callbacks of the plugin SDK in Lua: |
307 https://groups.google.com/d/msg/orthanc-users/_FbiRHuXPGM/J-OAv7zaCAAJ | |
3300 | 308 * Configuration interface plugin |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
309 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
310 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
311 === |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
312 Lua |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
313 === |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
314 |
5016
c89ffa13173e
Lua: new "SetHttpTimeout" function
Alain Mazy <am@osimis.io>
parents:
5015
diff
changeset
|
315 * Configure HTTP headers from Lua (in RestApiPost(), RestApiPut() |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
316 and RestApiDelete(). |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
317 https://groups.google.com/forum/#!msg/orthanc-users/WNnW187OILM/6XX_bm96BwAJ |
5387 | 318 * Retrieve HTTP status from calls to HttpGet, HttpPost, ... |
319 https://discourse.orthanc-server.org/t/how-to-get-http-status-code-from-httppost/1263/4 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
320 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
321 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
322 ================ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
323 Code refactoring |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
324 ================ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
325 |
2207
6dc3bdb4088b
Fix handling of encodings in C-FIND for worklists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2202
diff
changeset
|
326 * Avoid direct calls to FromDcmtkBridge (make most of its |
6dc3bdb4088b
Fix handling of encodings in C-FIND for worklists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2202
diff
changeset
|
327 methods private), go through ParsedDicomFile wherever possible |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
328 |
4459
16392fe89ce0
new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4452
diff
changeset
|
329 |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
330 ================= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
331 Platform-specific |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
332 ================= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
333 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
334 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
335 Packaging |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
336 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
337 |
4467 | 338 * RHEL through EPEL (as of 2021, CentOS seems to be over): |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
339 http://fedoraproject.org/wiki/EPEL_Package_Maintainers |
4643 | 340 * Fedora: Are DICOM dictionaries correctly located? |
341 https://groups.google.com/g/orthanc-users/c/YB_LTBuUQNA/m/3H1xsrZJDgAJ | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
342 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
343 ------------------------ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
344 Big-endian architectures |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
345 ------------------------ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
346 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
347 * Check the generated 16bpp PNG images |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
348 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
349 ----------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
350 Microsoft Windows |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
351 ----------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
352 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
353 * Add compatibility with non-ASCII paths (Orthanc expresses its paths |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
354 as UTF-8 strings, but Windows expects them to be translated to the |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
355 system locale) |
5053 | 356 * Fix error message when stopping the service: |
357 https://groups.google.com/g/orthanc-users/c/NyrwUJ9N6Ec/m/sTZIcWvaAgAJ | |
358 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
359 |
3672
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
360 ==== |
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
361 Misc |
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
362 ==== |
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
363 |
4643 | 364 ----------------- |
365 Maintenance tools | |
366 ----------------- | |
367 | |
368 * Standalone tool to detect corrupted files: | |
369 https://groups.google.com/g/orthanc-users/c/KASEJ9Gx3vQ/m/MIJFJdRhAwAJ | |
370 * Standalone tool to detect orphan files in OrthancStorage | |
371 | |
372 ---------------------------------- | |
373 Code quality and integration tests | |
374 ---------------------------------- | |
4459
16392fe89ce0
new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4452
diff
changeset
|
375 |
4467 | 376 * Have a look at openQA (cf. GNU Health) |
4643 | 377 * Add integration tests for LUT |
4926 | 378 * Add more complex testing scenarios like data-migration, change of |
379 configuration files, multiple orthanc interacting togethers with various | |
380 config. This should probably look like the python toolbox tests ... | |
5304 | 381 - add a test to validate Modalities and Peers stored in DB are not lost |
382 while upgrading from one version to the other (Sylvain) | |
5349 | 383 * On Ubuntu 20.04, accesses to unitialized memory are sometimes |
384 reported in libgjpeg by valgrind, if running the following command | |
385 (this is probably unrelated to Orthanc): | |
386 $ ./Start.sh --force Orthanc.test_bitbucket_issue_141 Orthanc.test_create_pdf Orthanc.test_decode_brainix_as_jpeg | |
4926 | 387 |
3672
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
388 |
4467 | 389 --------------------- |
390 External applications | |
391 --------------------- | |
392 | |
393 * Create REST bindings with Slicer | |
394 * Create REST bindings with Horos/OsiriX |