annotate TODO @ 5556:1fc1289383ae

todo: PHI in logs
author Alain Mazy <am@orthanc.team>
date Fri, 19 Apr 2024 10:50:40 +0200
parents 5a34160b7627
children 87c0fbc8f457
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2163
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2162
diff changeset
1 =======================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2162
diff changeset
2 === Orthanc Roadmap ===
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2162
diff changeset
3 =======================
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4
4707
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4662
diff changeset
5 For higher-level ideas in the roadmap, please first read the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4662
diff changeset
6 "Contributing to Orthanc" section of the Orthanc Book:
5432
59e3b6f8c5be migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5409
diff changeset
7 https://orthanc.uclouvain.be/book/contributing.html
4707
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4662
diff changeset
8
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9
4978
2cfa50d8eb60 Speed-up handling of DicomModalitiesInStudy in C-Find and tools/find queries
Alain Mazy <am@osimis.io>
parents: 4954
diff changeset
10 Some features are being funded by an OpenCollective one-time donations.
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
11 selected features are marked with priorities ((1) - higher, (2) - medium, (3) - nice to have)
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
12
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 =======
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 General
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 =======
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * 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
18 ("FromDcmtkBridge::GenerateUuid()")
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 * Improve handling of errors in the command queue:
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 https://groups.google.com/d/msg/orthanc-users/--njEbqcDDI/rBu8XL-Mm-cJ
2178
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2163
diff changeset
21 * Support partial file retrieval in Orthanc::HttpClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2163
diff changeset
22 * Support retry counter in Orthanc::HttpClient
4662
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4654
diff changeset
23 * Option to enable DNS lookups in DICOM:
5432
59e3b6f8c5be migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5409
diff changeset
24 https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.9.3/OrthancFramework/Sources/OrthancFramework.cpp#l88
4643
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
25 * Toolbox::ComputeMD5() fails on files larger than 4GB
4841
Alain Mazy <am@osimis.io>
parents: 4837
diff changeset
26 * 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
27 * Logging: add more specific information to contextualize the logs.
5166
Alain Mazy <am@osimis.io>
parents: 5165
diff changeset
28 For a DICOM Transfer, that would be nice to include the modality in the context + a study identifier or a job id.
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
29 * (1) Accept extra DICOM tags dictionaries in the DCMTK format '.dic' (easier to use than declare
4885
Alain Mazy <am@osimis.io>
parents: 4877
diff changeset
30 them in the Orthanc configuration file). Even the standard dictionaries could be
Alain Mazy <am@osimis.io>
parents: 4877
diff changeset
31 overriden by these custom dictionaries.
4931
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4928
diff changeset
32 * Provide more flexibility wrt Dicom TLS ciphers and TLS version:
4926
Alain Mazy <am@osimis.io>
parents: 4912
diff changeset
33 https://groups.google.com/g/orthanc-users/c/X4IhmXCSr7I/m/EirawAFcBwAJ
5010
88d838c6b4c7 TODO TLS Security Profile
Alain Mazy <am@osimis.io>
parents: 5008
diff changeset
34 Can maybe be achieved by adding a configuration to select the TLS Security Profile:
88d838c6b4c7 TODO TLS Security Profile
Alain Mazy <am@osimis.io>
parents: 5008
diff changeset
35 https://github.com/DCMTK/dcmtk/blob/master/dcmtls/include/dcmtk/dcmtls/tlsciphr.h#L83
88d838c6b4c7 TODO TLS Security Profile
Alain Mazy <am@osimis.io>
parents: 5008
diff changeset
36 (e.g: TSP_Profile_BCP195_ND instead of TSP_Profile_BCP195)
5013
Alain Mazy <am@osimis.io>
parents: 5010
diff changeset
37 * Add configurations to enable/disable warnings:
Alain Mazy <am@osimis.io>
parents: 5010
diff changeset
38 - Modifying an instance while keeping its original SOPInstanceUID: This should be avoided!
5034
Alain Mazy <am@osimis.io>
parents: 5033
diff changeset
39 - Modifying a study while keeping its original StudyInstanceUID: This should be avoided!
5391
Alain Mazy <am@osimis.io>
parents: 5388
diff changeset
40 * Store the job registry in a dedicatd table in DB ?
Alain Mazy <am@osimis.io>
parents: 5388
diff changeset
41 https://discourse.orthanc-server.org/t/performance-issue-when-adding-a-lot-of-jobs-in-the-queue/3915/2
Alain Mazy <am@osimis.io>
parents: 5388
diff changeset
42 Note: that might also be the right time to have a central jobs registry when working
Alain Mazy <am@osimis.io>
parents: 5388
diff changeset
43 with multiple Orthanc instances on the same DB.
5400
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
44 * Right now, some Stable events never occurs (e.g. when Orthanc is restarted before the event is triggered).
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
45 Since these events are used to e.g. generate dicom-web cache (or update it !), we should try
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
46 to make sure these events always happen.
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
47 - Generate the events when setting IsStable=true when starting an Orthanc (ok for SQLite) ?
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
48 - Also consider the use case of an Orthanc cluster that is being scaled-down just after one Orthanc instance
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
49 has received a few instances -> we can not only check for missing stable events at startup since no Orthanc will start.
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
50 We would need to maintain the list of "unstable" resources in DB instead of memory only.
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
51 * In prometheus metrics, implement Histograms or Exponential Histograms to measure durations. Right now, we only provide
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
52 "average" durations that are not very relevant
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
53 (https://opentelemetry.io/docs/specs/otel/metrics/data-model/#histogram)
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
54 - for job durations (+ have one histogram for each job)
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
55 - for HTTP request handling
Alain Mazy <am@osimis.io>
parents: 5391
diff changeset
56 - ...
5409
Alain Mazy <am@osimis.io>
parents: 5408
diff changeset
57 * Investigate if one could fix KeepAlive race conditions:
Alain Mazy <am@osimis.io>
parents: 5408
diff changeset
58 https://discourse.orthanc-server.org/t/socket-hangup-with-rest-api/4023/3
5556
1fc1289383ae todo: PHI in logs
Alain Mazy <am@orthanc.team>
parents: 5541
diff changeset
59 * Logging: PHI can appear in logs when failing to write an archive:
1fc1289383ae todo: PHI in logs
Alain Mazy <am@orthanc.team>
parents: 5541
diff changeset
60 E0418 14:05:41.769994 OrthancException.cpp:61] Error in the network protocol: HTTP client has disconnected while creating an archive in synchronous mode
1fc1289383ae todo: PHI in logs
Alain Mazy <am@orthanc.team>
parents: 5541
diff changeset
61 E0418 14:05:41.769994 OrthancException.cpp:61] Cannot write to file: Cannot add new file inside ZIP archive: 13...63 S......RI 40Y M/DR D B...I L SPINE TBI/MR t1_fse_sag/MR000026.dcm
1fc1289383ae todo: PHI in logs
Alain Mazy <am@orthanc.team>
parents: 5541
diff changeset
62 E0418 14:05:41.769994 ArchiveJob.cpp:1342] Error while creating an archive: Cannot write to file
1fc1289383ae todo: PHI in logs
Alain Mazy <am@orthanc.team>
parents: 5541
diff changeset
63
4643
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
64
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
65 ============================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
66 Documentation (Orthanc Book)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
67 ============================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
68
4928
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
69 * 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
70 https://orthanc.uclouvain.be/book/users/cookbook.html :
4928
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
71 - Ubuntu/Debian
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
72 - Windows
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
73 - OSX
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
74 - Docker on Linux
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
75 Each step by step guide should contain:
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
76 - get binaries
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
77 - launch
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
78 - open explorer
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
79 - edit configuration file
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
80 - restart and observe changes
Alain Mazy <am@osimis.io>
parents: 4927
diff changeset
81
4645
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
82 * Explain how log rotation can be achieved (no built-in support in Orthanc)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
83 * Explain how to interface with Mirth/NextGen Connect
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
84 https://en.wikipedia.org/wiki/NextGen_Connect
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
85 * How to reproduce issues by replacing Orthanc with storescp or wlmscpfs
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
86 * How to capture TCP traffic of DICOM protocol using tcpdump and Wireshark
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
87 * Add more configurations of viewers (Weasis, Slicer...):
5432
59e3b6f8c5be migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5409
diff changeset
88 https://orthanc.uclouvain.be/book/integrations.html
4648
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4645
diff changeset
89 * Discuss HL7 in a dedicated page:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4645
diff changeset
90 https://groups.google.com/d/msg/orthanc-users/4dt4992O0lQ/opTjTFU2BgAJ
4728
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4727
diff changeset
91 https://groups.google.com/g/orthanc-users/c/Spjtcj9vSPo/m/ktUArWxUDQAJ
4812
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
92
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
93
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
94 ================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
95 Orthanc Explorer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
96 ================
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
98 * Option to tune the number of results for a local lookup:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
99 https://groups.google.com/g/orthanc-users/c/LF39musq02Y/
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4808
diff changeset
100
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 ========
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 REST API
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 ========
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105
5014
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5013
diff changeset
106 ----------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5013
diff changeset
107 Short-term
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5013
diff changeset
108 ----------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5013
diff changeset
109
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5013
diff changeset
110
3967
5b731d898bee refresh TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3672
diff changeset
111 --------
5b731d898bee refresh TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3672
diff changeset
112 Mid-term
5b731d898bee refresh TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3672
diff changeset
113 --------
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
115 * (1) Archive jobs: Resume downloads using "range requests":
4478
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4467
diff changeset
116 https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
117 * (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
118 with "/tools/create-dicom"
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
119 * (2) Create multi-frame images with /tools/create-dicom (by adding a
4644
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4643
diff changeset
120 "MultiFrame" flag to avoid creating a series), or modify PixelData
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4643
diff changeset
121 of a multi-frame image:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4643
diff changeset
122 https://groups.google.com/g/orthanc-users/c/y3-xa_GcdLM/m/m0Kr5G5UPAAJ
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
123 * (1) Specify the transfer syntax in /tools/create-dicom
5055
Alain Mazy <am@osimis.io>
parents: 5053
diff changeset
124 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
125 * Support Palette PNG in /tools/create-dicom:
50e73f7db661 todo palette PNG in create-dicom
Alain Mazy <am@osimis.io>
parents: 5304
diff changeset
126 https://discourse.orthanc-server.org/t/404-on-tools-create-dicom-endpoint-with-specific-png/3562
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
127 * (1) In the /studies/{id}/anonymize route, add an option to remove
4478
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4467
diff changeset
128 secondary captures. They usually contains Patient info in the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4467
diff changeset
129 image. The SOPClassUID might be used to identify such secondary
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4467
diff changeset
130 captures.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4467
diff changeset
131 * Support "/preview" and "/matlab" for LUT color images
5541
Alain Mazy <am@osimis.io>
parents: 5481
diff changeset
132 * /preview should be able to display a dose report:
Alain Mazy <am@osimis.io>
parents: 5481
diff changeset
133 https://discourse.orthanc-server.org/t/orthanc-image-preview-shows-empty-image/4459
4803
Alain Mazy <am@osimis.io>
parents: 4787
diff changeset
134 * Try to transcode files if a simple decoding fails:
Alain Mazy <am@osimis.io>
parents: 4787
diff changeset
135 https://groups.google.com/g/orthanc-users/c/b8168-NkAhA/m/Df3j-CO9CgAJ
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
136 * (2) Ranges of DICOM tags for "Keep" and "Remove" in ".../modify" and ".../anonymize":
4644
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4643
diff changeset
137 https://groups.google.com/g/orthanc-users/c/6dETktKo9v8/m/b0LUvSfwAgAJ
5006
Alain Mazy <am@osimis.io>
parents: 5002
diff changeset
138 * return error code/reason in HTTP response if resubmit/cancel/pause fails ...
5008
59491402f8f1 todo: more info in jobs
Alain Mazy <am@osimis.io>
parents: 5007
diff changeset
139 * filter /changes by type e.g: /changes?filter=StablePatient
59491402f8f1 todo: more info in jobs
Alain Mazy <am@osimis.io>
parents: 5007
diff changeset
140 https://groups.google.com/g/orthanc-users/c/r20kDb0axms/m/2tzbQzYJAgAJ
59491402f8f1 todo: more info in jobs
Alain Mazy <am@osimis.io>
parents: 5007
diff changeset
141 * save more details in jobs e.g: the resources being sent/exported ...
59491402f8f1 todo: more info in jobs
Alain Mazy <am@osimis.io>
parents: 5007
diff changeset
142 https://groups.google.com/g/orthanc-users/c/rDDusFG5Lco/m/TzTUjWXLAQAJ
5386
Alain Mazy <am@osimis.io>
parents: 5385
diff changeset
143 https://discourse.orthanc-server.org/t/some-confusion-about-jobs-function/3887
5133
7dacd2c3c009 todo: jobs ordering
Alain Mazy <am@osimis.io>
parents: 5114
diff changeset
144 * allow filtering/ordering on the /jobs route:
7dacd2c3c009 todo: jobs ordering
Alain Mazy <am@osimis.io>
parents: 5114
diff changeset
145 https://groups.google.com/g/orthanc-users/c/hsZ1jng5rIg/m/8xZL2C1VBgAJ
5367
Alain Mazy <am@osimis.io>
parents: 5366
diff changeset
146 * add an "AutoDeleteIfSuccessful": false option when creating jobs
Alain Mazy <am@osimis.io>
parents: 5366
diff changeset
147 https://discourse.orthanc-server.org/t/job-history-combined-with-auto-forwarding/3729/10
5314
0b8068aa7142 revert 5306:155637655710: re-enable automatic conversion from YBR to RGB
Alain Mazy <am@osimis.io>
parents: 5307
diff changeset
148 * Allow skiping automatic conversion of color-space in transcoding/decoding.
0b8068aa7142 revert 5306:155637655710: re-enable automatic conversion from YBR to RGB
Alain Mazy <am@osimis.io>
parents: 5307
diff changeset
149 The patch that was initialy provided was breaking the IngestTranscoding.
5481
Alain Mazy <am@osimis.io>
parents: 5450
diff changeset
150 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
151 https://discourse.orthanc-server.org/t/orthanc-convert-ybr-to-rgb-but-does-not-change-metadata/3533/9
5382
Alain Mazy <am@osimis.io>
parents: 5367
diff changeset
152 * Implement a 'commit' route to force the Stable status earlier.
Alain Mazy <am@osimis.io>
parents: 5367
diff changeset
153 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
154
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 ---------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 Long-term
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 ---------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 * 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
160 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
161 http://www.admiraalit.nl/jarest/
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 =====
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 DICOM
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
3383
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3335
diff changeset
168 --------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3335
diff changeset
169 Mid-term
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3335
diff changeset
170 --------
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171
4452
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4448
diff changeset
172 * Support C-GET SCU (note that C-GET SCP was introduced in Orthanc 1.7.0)
3335
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3300
diff changeset
173 * 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
174 - On SCP side: done by https://orthanc.uclouvain.be/hg/orthanc/rev/1ec3e1e18f50
3472
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3465
diff changeset
175 - On SCU side:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3465
diff changeset
176 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
177 * Check Big Endian transfer syntax in ParsedDicomFile::EmbedImage and
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 DicomImageDecoder
3384
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3383
diff changeset
179 * Strict hierarchical C-FIND:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3383
diff changeset
180 https://groups.google.com/d/msg/orthanc-users/VBHpeGVSNKM/tkaVvjWFBwAJ
4986
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
181 * report DIMSE error codes in Rest API and job status for /store /query /move /retrieve
5114
c387ebeb67b5 todo: move progress repot
Alain Mazy <am@osimis.io>
parents: 5107
diff changeset
182 * report progress report of C-Move operation in jop progress. There are
c387ebeb67b5 todo: move progress repot
Alain Mazy <am@osimis.io>
parents: 5107
diff changeset
183 progress callbacks available in DIMSE_moveUser
c387ebeb67b5 todo: move progress repot
Alain Mazy <am@osimis.io>
parents: 5107
diff changeset
184 https://groups.google.com/g/orthanc-users/c/c8cGnA7FzsE/m/BSs66D8wBwAJ
4986
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
185 * Log outgoing C-Find queries
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 ---------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 Long-term
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 ---------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190
4885
Alain Mazy <am@osimis.io>
parents: 4877
diff changeset
191 * 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
192 https://groups.google.com/d/msg/orthanc-users/xD4d3mpc6ms/srF7E2goAAAJ
3465
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3390
diff changeset
193 * Support C-MOVE-CANCEL:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3390
diff changeset
194 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
195
3967
5b731d898bee refresh TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3672
diff changeset
196 --------------------
5b731d898bee refresh TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3672
diff changeset
197 Internationalization
5b731d898bee refresh TODO
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3672
diff changeset
198 --------------------
3218
9a83d94b2a1e kanji encoding
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3153
diff changeset
199
9a83d94b2a1e kanji encoding
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3153
diff changeset
200 * 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
201 - 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
202 - Japanese test: http://dicom.nema.org/MEDICAL/dicom/2017c/output/chtml/part05/sect_H.3.2.html
5385
Alain Mazy <am@osimis.io>
parents: 5382
diff changeset
203 https://discourse.orthanc-server.org/t/garbled-characters-when-i-uploaded-japanese-patient-name/3204/5
3218
9a83d94b2a1e kanji encoding
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3153
diff changeset
204 * Support Supplementary Kanji set (ISO 2022 IR 159)
3261
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3239
diff changeset
205 * Create DICOM files with multibyte encodings (Korean, JapaneseKanji, SimplifiedChinese)
3218
9a83d94b2a1e kanji encoding
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3153
diff changeset
206
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207
4467
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
208 ===========
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
209 Performance
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
210 ===========
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
211
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
212 * (3) ServerContext::DicomCacheLocker => give access to the raw buffer,
4467
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
213 useful in ServerContext::DecodeDicomInstance()
4927
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
214 * (2) DicomMap: create a cache to the main DICOM tags index
Alain Mazy <am@osimis.io>
parents: 4926
diff changeset
215 * (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
216 * 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
217 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
218 OtherTags that could be saved in Metadata as well:
f377d5643538 new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents: 4928
diff changeset
219 - ModalitiesInStudy
f377d5643538 new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents: 4928
diff changeset
220 - all computed counters at series/study/patient level
f377d5643538 new Warnings configuration + InstanceAvailability tag
Alain Mazy <am@osimis.io>
parents: 4928
diff changeset
221 - RequestAttributesSequence (sequence that must be included in all DicomWeb QIDO-RS for series)
4467
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
222
4986
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
223 * Long-shot & not sure it is even feasible at all: try to reduce memory usage by implementing streaming
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
224 when receiving DICOM instances from the Rest API or from DICOM and store files directly to disk as they
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
225 are received. Note that this would likely require rewriting large parts of Orthanc. Note sure that
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
226 would be compatible with Transcoding.
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
227 Use case: receiving 10 1GB instances in parallel can consume up to 20 GB
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
228 Alternative option 1: write an "external application/plugin" that would take care of these receptions, write the
5096
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
229 file at the right place and send a signal to Orthanc to "adopt" the file.
4986
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
230 Alternative option 2: declare a memory resource (X GB) that is available for reception. Every time
5096
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
231 Orthanc starts receiving a file, it reserves the memory or twice the memory (through a Semaphore)
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
232 if no memory is available, it waits and possibly timeouts returning a 503 or DIMSE A700 (out of resources).
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
233 This would at least protect from "out of memory" crashes.
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
234 Alternative option 3: Configure DCMTK to "stream" DICOM files on a temporary file on disk. Pass the file handle
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
235 to Orthanc and/or the Storage plugin (instead of passing a memory buffer) -> the object-storage plugin could
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
236 "stream" the file to the storage. The HTTP server could also "stream" its response from file handles.
Alain Mazy <am@osimis.io>
parents: 5055
diff changeset
237 Transcoding should be "file based" too.
5404
Alain Mazy <am@osimis.io>
parents: 5400
diff changeset
238 * To investigate: usage of mapped_file (not only in the indexer plugin):
Alain Mazy <am@osimis.io>
parents: 5400
diff changeset
239 https://discourse.orthanc-server.org/t/patch-for-orthanc-indexer-plugin-crashing-on-big-non-dicom-files/3849/7
4986
Alain Mazy <am@osimis.io>
parents: 4978
diff changeset
240
4624
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
241 ========
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
242 Database
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
243 ========
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
244
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
245 * Integration test searching for "\" and "%" in PatientName, PatientID...
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
246
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4478
diff changeset
247
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
248 =======
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
249 Plugins
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
250 =======
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
251
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 SDK
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
4212
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4144
diff changeset
256 * Implement PluginsJob::GetOutput() to allow user-defined jobs to provide output:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4144
diff changeset
257 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
258 * Add plugins for normalized operations (notably so as to support
4645
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
259 Print SCU/SCP, cf. "dcmprscp"):
3570
f05887b1d1bf Replaced broken url with url from wayback archive
Tomas Zubiri <me@tomaszubiri.com>
parents: 3472
diff changeset
260 https://web.archive.org/web/20170923150432/https://www.medicalconnections.co.uk/kb/DICOM_Print_Service
3153
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2975
diff changeset
261 * Provide access to the Orthanc::DicomUserConnection class in plugins:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2975
diff changeset
262 https://groups.google.com/d/msg/orthanc-users/ycDA1xPuTRY/nsT2_GOtEgAJ
3390
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3384
diff changeset
263 * 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
264 https://orthanc.uclouvain.be/book/users/lua.html#filtering-incoming-dicom-instances
3390
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3384
diff changeset
265 https://groups.google.com/d/msg/orthanc-users/BtvLTE5Ni8A/vIMhmMgfBAAJ
4645
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
266 * In "OrthancPluginLog[Error|Warning|Info]()", prefix the log line with
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4644
diff changeset
267 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
268 * Update the SDK to handle buffer sizes > 4GB (all sizes are currently coded in uint32_t)
5106
75fd2d35f053 TODO: Get SCP in SDK
Alain Mazy <am@osimis.io>
parents: 5103
diff changeset
269 * Add a C-Get SCP handler: OrthancPluginRegisterGetCallback
5107
43461cc99838 TODO cont
Alain Mazy <am@osimis.io>
parents: 5106
diff changeset
270 https://groups.google.com/g/orthanc-users/c/NRhPkYX9IXQ/m/mWS11g0jBwAJ
5165
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5133
diff changeset
271 * Add a primitive for user authentication (to generate 401 HTTP status, whereas
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5133
diff changeset
272 the "RegisterIncomingHttpRequestFilter()" can only generate 403 HTTP status)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5133
diff changeset
273 https://groups.google.com/g/orthanc-users/c/ymtaAmgSs6Q/m/PqVBactQAQAJ
5408
Alain Mazy <am@osimis.io>
parents: 5404
diff changeset
274 * Add an index on the UUID column in the DelayedDeletion plugin:
Alain Mazy <am@osimis.io>
parents: 5404
diff changeset
275 https://discourse.orthanc-server.org/t/delayeddeletion-improvement-unique-index-on-pending-uuid-column/4032
Alain Mazy <am@osimis.io>
parents: 5404
diff changeset
276
2162
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 ----------------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
279 Ideas of plugins
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
280 ----------------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
281
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
282 * DICOM-RT primitives (RT-STRUCT, RT-PLAN, RT-DOSE)
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
283 * Converter to/from NIfTI
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
284 * Decode JPEG2k with grok: https://github.com/GrokImageCompression/grok
2251
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2247
diff changeset
285 * Generate dynamic HTTP content using Lua:
2199
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2178
diff changeset
286 https://groups.google.com/d/msg/orthanc-users/KompazkxRSs/5Rh03mzgDAAJ
2251
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2247
diff changeset
287 * More generally, expose more callbacks of the plugin SDK in Lua:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2247
diff changeset
288 https://groups.google.com/d/msg/orthanc-users/_FbiRHuXPGM/J-OAv7zaCAAJ
3300
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3261
diff changeset
289 * Configuration interface plugin
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
290
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 Lua
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
5016
c89ffa13173e Lua: new "SetHttpTimeout" function
Alain Mazy <am@osimis.io>
parents: 5015
diff changeset
296 * Configure HTTP headers from Lua (in RestApiPost(), RestApiPut()
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
297 and RestApiDelete().
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
298 https://groups.google.com/forum/#!msg/orthanc-users/WNnW187OILM/6XX_bm96BwAJ
5387
Alain Mazy <am@osimis.io>
parents: 5349
diff changeset
299 * Retrieve HTTP status from calls to HttpGet, HttpPost, ...
Alain Mazy <am@osimis.io>
parents: 5349
diff changeset
300 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
301
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
302
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
303 ================
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
304 Code refactoring
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
305 ================
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
306
2207
6dc3bdb4088b Fix handling of encodings in C-FIND for worklists
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2202
diff changeset
307 * 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
308 methods private), go through ParsedDicomFile wherever possible
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
309
4459
16392fe89ce0 new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4452
diff changeset
310
2162
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 Platform-specific
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
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
315 ---------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
316 Packaging
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
317 ---------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
318
4467
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
319 * 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
320 http://fedoraproject.org/wiki/EPEL_Package_Maintainers
4643
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
321 * Fedora: Are DICOM dictionaries correctly located?
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
322 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
323
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 Big-endian architectures
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
326 ------------------------
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
327
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
328 * Check the generated 16bpp PNG images
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
329
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 Microsoft Windows
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 * Add compatibility with non-ASCII paths (Orthanc expresses its paths
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
335 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
336 system locale)
5053
Alain Mazy <am@osimis.io>
parents: 5036
diff changeset
337 * Fix error message when stopping the service:
Alain Mazy <am@osimis.io>
parents: 5036
diff changeset
338 https://groups.google.com/g/orthanc-users/c/NyrwUJ9N6Ec/m/sTZIcWvaAgAJ
Alain Mazy <am@osimis.io>
parents: 5036
diff changeset
339
2162
d738945c25cd migrating TODO from Trello
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
340
3672
ea8c1c0e81eb Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3570
diff changeset
341 ====
ea8c1c0e81eb Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3570
diff changeset
342 Misc
ea8c1c0e81eb Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3570
diff changeset
343 ====
ea8c1c0e81eb Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3570
diff changeset
344
4643
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
345 -----------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
346 Maintenance tools
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
347 -----------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
348
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
349 * Standalone tool to detect corrupted files:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
350 https://groups.google.com/g/orthanc-users/c/KASEJ9Gx3vQ/m/MIJFJdRhAwAJ
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
351 * Standalone tool to detect orphan files in OrthancStorage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
352
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
353 ----------------------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
354 Code quality and integration tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
355 ----------------------------------
4459
16392fe89ce0 new mutex to protect registration of REST callbacks: restCallbackRegistrationMutex_
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4452
diff changeset
356
4467
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
357 * Have a look at openQA (cf. GNU Health)
4643
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4624
diff changeset
358 * Add integration tests for LUT
4926
Alain Mazy <am@osimis.io>
parents: 4912
diff changeset
359 * Add more complex testing scenarios like data-migration, change of
Alain Mazy <am@osimis.io>
parents: 4912
diff changeset
360 configuration files, multiple orthanc interacting togethers with various
Alain Mazy <am@osimis.io>
parents: 4912
diff changeset
361 config. This should probably look like the python toolbox tests ...
5304
Alain Mazy <am@osimis.io>
parents: 5208
diff changeset
362 - add a test to validate Modalities and Peers stored in DB are not lost
Alain Mazy <am@osimis.io>
parents: 5208
diff changeset
363 while upgrading from one version to the other (Sylvain)
5349
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5337
diff changeset
364 * On Ubuntu 20.04, accesses to unitialized memory are sometimes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5337
diff changeset
365 reported in libgjpeg by valgrind, if running the following command
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5337
diff changeset
366 (this is probably unrelated to Orthanc):
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5337
diff changeset
367 $ ./Start.sh --force Orthanc.test_bitbucket_issue_141 Orthanc.test_create_pdf Orthanc.test_decode_brainix_as_jpeg
4926
Alain Mazy <am@osimis.io>
parents: 4912
diff changeset
368
3672
ea8c1c0e81eb Fix issue #65 (Logging improvements)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3570
diff changeset
369
4467
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
370 ---------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
371 External applications
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
372 ---------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
373
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
374 * Create REST bindings with Slicer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4464
diff changeset
375 * Create REST bindings with Horos/OsiriX