Mercurial > hg > orthanc
annotate TODO @ 5080:d7274e43ea7c attach-custom-data
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 08 Sep 2022 17:42:08 +0200 |
parents | 942eb3849d8d |
children | c673997507ea |
rev | line source |
---|---|
5080
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
1 TODO_CUSTOM_DATA branch |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
2 - add REVISIONS in SQLite since we change the DB schema |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
3 - upgrade DB automatically such that it does not need a specific launch with --update , add --downgrade + --no-auto-upgrade command lines |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
4 - expand the DB plugin SDK to handle customDATA |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
5 - implement OrthancPluginDataBaseV4 |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
6 - handle all TODO_CUSTOM_DATA |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
7 - check /attachments/... routes for path returned |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
8 - AdvancedStoragePlugin |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
9 - support multiple roots (multiple disks) |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
10 - show warning if a tag is missing when generating the path from tags (option to disable this warning) |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
11 - generate path from tags from resource (CreateAttachment) |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
12 |
d7274e43ea7c
allow plugins to store a customData in the Attachments table to e.g. store custom paths without requiring an external DB
Alain Mazy <am@osimis.io>
parents:
5055
diff
changeset
|
13 |
2163 | 14 ======================= |
15 === Orthanc Roadmap === | |
16 ======================= | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 |
4707 | 18 For higher-level ideas in the roadmap, please first read the |
19 "Contributing to Orthanc" section of the Orthanc Book: | |
20 https://book.orthanc-server.com/contributing.html | |
21 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
4978
2cfa50d8eb60
Speed-up handling of DicomModalitiesInStudy in C-Find and tools/find queries
Alain Mazy <am@osimis.io>
parents:
4954
diff
changeset
|
23 Some features are being funded by an OpenCollective one-time donations. |
4927 | 24 selected features are marked with priorities ((1) - higher, (2) - medium, (3) - nice to have) |
25 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 General |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 * 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
|
31 ("FromDcmtkBridge::GenerateUuid()") |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 * Improve handling of errors in the command queue: |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 https://groups.google.com/d/msg/orthanc-users/--njEbqcDDI/rBu8XL-Mm-cJ |
2178 | 34 * Support partial file retrieval in Orthanc::HttpClient |
35 * Support retry counter in Orthanc::HttpClient | |
4662 | 36 * Option to enable DNS lookups in DICOM: |
37 https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancFramework/Sources/OrthancFramework.cpp#l88 | |
4643 | 38 * Toolbox::ComputeMD5() fails on files larger than 4GB |
4841 | 39 * Add an option to run Orthanc in read-only mode both for DICOM and for Rest API. |
4885 | 40 * Logging: add some information like Thread-Id to contextualize the logs |
4927 | 41 * (1) Accept extra DICOM tags dictionaries in the DCMTK format '.dic' (easier to use than declare |
4885 | 42 them in the Orthanc configuration file). Even the standard dictionaries could be |
43 overriden by these custom dictionaries. | |
4931 | 44 * Provide more flexibility wrt Dicom TLS ciphers and TLS version: |
4926 | 45 https://groups.google.com/g/orthanc-users/c/X4IhmXCSr7I/m/EirawAFcBwAJ |
5010 | 46 Can maybe be achieved by adding a configuration to select the TLS Security Profile: |
47 https://github.com/DCMTK/dcmtk/blob/master/dcmtls/include/dcmtk/dcmtls/tlsciphr.h#L83 | |
48 (e.g: TSP_Profile_BCP195_ND instead of TSP_Profile_BCP195) | |
5002 | 49 * Provide a configuration option related to MaximumStorageSize: instead of |
50 recycling older patients, simply block new ingests (from DICOM/DICOMweb/API) | |
51 by returning out-of-resource status (HTTP or DIMSE) | |
5013 | 52 * Add configurations to enable/disable warnings: |
53 - Modifying an instance while keeping its original SOPInstanceUID: This should be avoided! | |
5034 | 54 - Modifying a study while keeping its original StudyInstanceUID: This should be avoided! |
5036
877bc3b96476
Handle Dicom sequences in ExtraMainDicomTags and save them in the 'MainDicomSequences' metadata
Alain Mazy <am@osimis.io>
parents:
5034
diff
changeset
|
55 |
4643 | 56 |
57 ============================ | |
58 Documentation (Orthanc Book) | |
59 ============================ | |
60 | |
4928 | 61 * Write a getting started guide (step by step) for each platform to replace |
62 https://book.orthanc-server.com/users/cookbook.html : | |
63 - Ubuntu/Debian | |
64 - Windows | |
65 - OSX | |
66 - Docker on Linux | |
67 Each step by step guide should contain: | |
68 - get binaries | |
69 - launch | |
70 - open explorer | |
71 - edit configuration file | |
72 - restart and observe changes | |
73 | |
4645 | 74 * Explain how log rotation can be achieved (no built-in support in Orthanc) |
75 * Explain how to interface with Mirth/NextGen Connect | |
76 https://en.wikipedia.org/wiki/NextGen_Connect | |
77 * How to reproduce issues by replacing Orthanc with storescp or wlmscpfs | |
78 * How to capture TCP traffic of DICOM protocol using tcpdump and Wireshark | |
79 * Add more configurations of viewers (Weasis, Slicer...): | |
80 https://book.orthanc-server.com/integrations.html | |
4648 | 81 * Discuss HL7 in a dedicated page: |
82 https://groups.google.com/d/msg/orthanc-users/4dt4992O0lQ/opTjTFU2BgAJ | |
4728 | 83 https://groups.google.com/g/orthanc-users/c/Spjtcj9vSPo/m/ktUArWxUDQAJ |
4812 | 84 |
85 | |
86 ================ | |
87 Orthanc Explorer | |
88 ================ | |
89 | |
90 * Option to tune the number of results for a local lookup: | |
91 https://groups.google.com/g/orthanc-users/c/LF39musq02Y/ | |
92 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 ======== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 REST API |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 ======== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 |
5014 | 98 ---------- |
99 Short-term | |
100 ---------- | |
101 | |
102 * Add "KeepSource" to "/modify" and "/anonymize" routes | |
103 https://groups.google.com/g/orthanc-users/c/svS3YOqA2Mo/m/wcoE18IcAAAJ | |
104 | |
3967 | 105 -------- |
106 Mid-term | |
107 -------- | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 |
4927 | 109 * (1) Archive jobs: Resume downloads using "range requests": |
4478 | 110 https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests |
4927 | 111 * (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
|
112 with "/tools/create-dicom" |
4927 | 113 * (2) Create multi-frame images with /tools/create-dicom (by adding a |
4644 | 114 "MultiFrame" flag to avoid creating a series), or modify PixelData |
115 of a multi-frame image: | |
116 https://groups.google.com/g/orthanc-users/c/y3-xa_GcdLM/m/m0Kr5G5UPAAJ | |
4927 | 117 * (1) Specify the transfer syntax in /tools/create-dicom |
5055 | 118 https://groups.google.com/g/orthanc-users/c/o15Dekecgds/m/xmPE2y3bAwAJ |
4927 | 119 * (1) In the /studies/{id}/anonymize route, add an option to remove |
4478 | 120 secondary captures. They usually contains Patient info in the |
121 image. The SOPClassUID might be used to identify such secondary | |
122 captures. | |
123 * Support "/preview" and "/matlab" for LUT color images | |
4803 | 124 * Try to transcode files if a simple decoding fails: |
125 https://groups.google.com/g/orthanc-users/c/b8168-NkAhA/m/Df3j-CO9CgAJ | |
4927 | 126 * (2) Ranges of DICOM tags for "Keep" and "Remove" in ".../modify" and ".../anonymize": |
4644 | 127 https://groups.google.com/g/orthanc-users/c/6dETktKo9v8/m/b0LUvSfwAgAJ |
5006 | 128 * return error code/reason in HTTP response if resubmit/cancel/pause fails ... |
5008 | 129 * filter /changes by type e.g: /changes?filter=StablePatient |
130 https://groups.google.com/g/orthanc-users/c/r20kDb0axms/m/2tzbQzYJAgAJ | |
131 * save more details in jobs e.g: the resources being sent/exported ... | |
132 https://groups.google.com/g/orthanc-users/c/rDDusFG5Lco/m/TzTUjWXLAQAJ | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 Long-term |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
138 * 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
|
139 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
|
140 http://www.admiraalit.nl/jarest/ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 ===== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 DICOM |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 ===== |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 |
3383 | 147 -------- |
148 Mid-term | |
149 -------- | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 |
4452 | 151 * Support C-GET SCU (note that C-GET SCP was introduced in Orthanc 1.7.0) |
3335 | 152 * Support "Retrieve AE Title" (0008,0054) in C-FIND: |
4144 | 153 - On SCP side: done by https://hg.orthanc-server.com/orthanc/rev/1ec3e1e18f50 |
3472 | 154 - On SCU side: |
155 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
|
156 * Check Big Endian transfer syntax in ParsedDicomFile::EmbedImage and |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 DicomImageDecoder |
3384 | 158 * Strict hierarchical C-FIND: |
159 https://groups.google.com/d/msg/orthanc-users/VBHpeGVSNKM/tkaVvjWFBwAJ | |
4986 | 160 * report DIMSE error codes in Rest API and job status for /store /query /move /retrieve |
161 * Log outgoing C-Find queries | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 Long-term |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 |
4885 | 167 * 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
|
168 https://groups.google.com/d/msg/orthanc-users/xD4d3mpc6ms/srF7E2goAAAJ |
3465 | 169 * Support C-MOVE-CANCEL: |
170 https://groups.google.com/d/msg/orthanc-users/KnduYBFd06A/o86cl5SeCAAJ | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 |
3967 | 172 -------------------- |
173 Internationalization | |
174 -------------------- | |
3218 | 175 |
176 * 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
|
177 - 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
|
178 - Japanese test: http://dicom.nema.org/MEDICAL/dicom/2017c/output/chtml/part05/sect_H.3.2.html |
3218 | 179 * Support Supplementary Kanji set (ISO 2022 IR 159) |
3261 | 180 * Create DICOM files with multibyte encodings (Korean, JapaneseKanji, SimplifiedChinese) |
3218 | 181 |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
182 |
4467 | 183 =========== |
184 Performance | |
185 =========== | |
186 | |
4927 | 187 * (3) ServerContext::DicomCacheLocker => give access to the raw buffer, |
4467 | 188 useful in ServerContext::DecodeDicomInstance() |
4927 | 189 * (2) DicomMap: create a cache to the main DICOM tags index |
190 * (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
|
191 * 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
|
192 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
|
193 OtherTags that could be saved in Metadata as well: |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
194 - ModalitiesInStudy |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
195 - all computed counters at series/study/patient level |
f377d5643538
new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents:
4928
diff
changeset
|
196 - RequestAttributesSequence (sequence that must be included in all DicomWeb QIDO-RS for series) |
4467 | 197 |
4986 | 198 * Long-shot & not sure it is even feasible at all: try to reduce memory usage by implementing streaming |
199 when receiving DICOM instances from the Rest API or from DICOM and store files directly to disk as they | |
200 are received. Note that this would likely require rewriting large parts of Orthanc. Note sure that | |
201 would be compatible with Transcoding. | |
202 Use case: receiving 10 1GB instances in parallel can consume up to 20 GB | |
203 Alternative option 1: write an "external application/plugin" that would take care of these receptions, write the | |
204 file at the right place and send a signal to Orthanc to "adopt" the file. | |
205 Alternative option 2: declare a memory resource (X GB) that is available for reception. Every time | |
206 Orthanc starts receiving a file, it reserves the memory or twice the memory (through a Semaphore) | |
207 if no memory is available, it waits and possibly timeouts returning a 503 or DIMSE A700 (out of resources). | |
208 This would at least protect from "out of memory" crashes. | |
209 | |
210 | |
4624 | 211 ======== |
212 Database | |
213 ======== | |
214 | |
215 * Integration test searching for "\" and "%" in PatientName, PatientID... | |
216 | |
217 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
218 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
219 Plugins |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
220 ======= |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
221 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
222 --- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
223 SDK |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
224 --- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
225 |
4212 | 226 * Implement PluginsJob::GetOutput() to allow user-defined jobs to provide output: |
227 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
|
228 * Add plugins for normalized operations (notably so as to support |
4645 | 229 Print SCU/SCP, cf. "dcmprscp"): |
3570
f05887b1d1bf
Replaced broken url with url from wayback archive
Tomas Zubiri <me@tomaszubiri.com>
parents:
3472
diff
changeset
|
230 https://web.archive.org/web/20170923150432/https://www.medicalconnections.co.uk/kb/DICOM_Print_Service |
3153 | 231 * Provide access to the Orthanc::DicomUserConnection class in plugins: |
232 https://groups.google.com/d/msg/orthanc-users/ycDA1xPuTRY/nsT2_GOtEgAJ | |
3390 | 233 * Provide a C++ callback similar to "ReceivedInstanceFilter()" in Lua |
234 https://book.orthanc-server.com/users/lua.html#filtering-incoming-dicom-instances | |
235 https://groups.google.com/d/msg/orthanc-users/BtvLTE5Ni8A/vIMhmMgfBAAJ | |
4645 | 236 * In "OrthancPluginLog[Error|Warning|Info]()", prefix the log line with |
237 the name of the plugin, as retrieved by "OrthancPluginGetName()" | |
4912
45d6ce72a84e
fix linking of Sanitizer sample plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4892
diff
changeset
|
238 * Update the SDK to handle buffer sizes > 4GB (all sizes are currently coded in uint32_t) |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
239 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
240 ---------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
241 Ideas of plugins |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
242 ---------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
243 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
244 * DICOM-RT primitives (RT-STRUCT, RT-PLAN, RT-DOSE) |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
245 * Converter to/from NIfTI |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
246 * Decode JPEG2k with grok: https://github.com/GrokImageCompression/grok |
2251 | 247 * Generate dynamic HTTP content using Lua: |
2199 | 248 https://groups.google.com/d/msg/orthanc-users/KompazkxRSs/5Rh03mzgDAAJ |
2251 | 249 * More generally, expose more callbacks of the plugin SDK in Lua: |
250 https://groups.google.com/d/msg/orthanc-users/_FbiRHuXPGM/J-OAv7zaCAAJ | |
3300 | 251 * Configuration interface plugin |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
252 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
253 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
254 === |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
255 Lua |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
256 === |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
257 |
5016
c89ffa13173e
Lua: new "SetHttpTimeout" function
Alain Mazy <am@osimis.io>
parents:
5015
diff
changeset
|
258 * Configure HTTP headers from Lua (in RestApiPost(), RestApiPut() |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
259 and RestApiDelete(). |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
260 https://groups.google.com/forum/#!msg/orthanc-users/WNnW187OILM/6XX_bm96BwAJ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
261 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
262 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
263 ================ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
264 Code refactoring |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
265 ================ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
266 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
267 * Use Semaphore::Locker everywhere (instead of explicit |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
268 Release() and Acquire()) |
2207
6dc3bdb4088b
Fix handling of encodings in C-FIND for worklists
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2202
diff
changeset
|
269 * 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
|
270 methods private), go through ParsedDicomFile wherever possible |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
271 |
4459
16392fe89ce0
new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4452
diff
changeset
|
272 |
2162
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 Platform-specific |
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 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
277 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
278 Packaging |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
279 --------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
280 |
4467 | 281 * 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
|
282 http://fedoraproject.org/wiki/EPEL_Package_Maintainers |
4643 | 283 * Fedora: Are DICOM dictionaries correctly located? |
284 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
|
285 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
286 ------------------------ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
287 Big-endian architectures |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
288 ------------------------ |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
289 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
290 * Check the generated 16bpp PNG images |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
291 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
292 ----------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
293 Microsoft Windows |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
294 ----------------- |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
295 |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
296 * Add compatibility with non-ASCII paths (Orthanc expresses its paths |
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
297 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
|
298 system locale) |
5053 | 299 * Fix error message when stopping the service: |
300 https://groups.google.com/g/orthanc-users/c/NyrwUJ9N6Ec/m/sTZIcWvaAgAJ | |
301 | |
2162
d738945c25cd
migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
302 |
3672
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
303 ==== |
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
304 Misc |
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
305 ==== |
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
306 |
4643 | 307 ----------------- |
308 Maintenance tools | |
309 ----------------- | |
310 | |
311 * Standalone tool to detect corrupted files: | |
312 https://groups.google.com/g/orthanc-users/c/KASEJ9Gx3vQ/m/MIJFJdRhAwAJ | |
313 * Standalone tool to detect orphan files in OrthancStorage | |
314 | |
315 ---------------------------------- | |
316 Code quality and integration tests | |
317 ---------------------------------- | |
4459
16392fe89ce0
new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
4452
diff
changeset
|
318 |
4467 | 319 * Have a look at openQA (cf. GNU Health) |
4643 | 320 * Add integration tests for LUT |
4926 | 321 * Add more complex testing scenarios like data-migration, change of |
322 configuration files, multiple orthanc interacting togethers with various | |
323 config. This should probably look like the python toolbox tests ... | |
324 | |
3672
ea8c1c0e81eb
Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
3570
diff
changeset
|
325 |
4467 | 326 --------------------- |
327 External applications | |
328 --------------------- | |
329 | |
330 * Create REST bindings with Slicer | |
331 * Create REST bindings with Horos/OsiriX |