view TODO @ 2886:c799d057aa0d Barnerd/fix-build-with-libressl-libressl-comp-1488028354841

closing branch
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 12 Oct 2018 15:20:02 +0200
parents d623bff7edab
children 489f656ea596
line wrap: on
line source

=======================
=== Orthanc Roadmap ===
=======================

The wishlist from Orthanc users is available on Trello:
https://trello.com/b/gcn33tDM/orthanc-wishlist


=======
General
=======

* Configure an user-defined site UID root if generating DICOM UIDs
  ("FromDcmtkBridge::GenerateUuid()")
* Support "/preview" and "/matlab" for LUT color images
* Improve handling of errors in the command queue:
  https://groups.google.com/d/msg/orthanc-users/--njEbqcDDI/rBu8XL-Mm-cJ
* Support partial file retrieval in Orthanc::HttpClient
* Support retry counter in Orthanc::HttpClient
* Option to enable DNS lookups in DICOM: https://goo.gl/woa35Z


========
REST API
========

----------
Short-term
----------

* Create multi-frame images with /tools/create-dicom (by adding a
  "MultiFrame" flag to avoid creating a series)

---------
Long-term
---------

* Stick to the JSONapi or JAREST guidelines for a "v2" of the API:
  https://groups.google.com/forum/#!msg/orthanc-users/Bag-SwEE9ZI/-w7QXI6p7-oJ
  http://www.admiraalit.nl/jarest/


=====
DICOM
=====

----------
Short-term
----------

* Support C-GET: 
  http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html
* Check Big Endian transfer syntax in ParsedDicomFile::EmbedImage and
  DicomImageDecoder

---------
Long-term
---------

* Support DICOM TLS (cf. "--enable-tls" in storescp)
* Support Storage Commitment:
  https://groups.google.com/forum/#!msg/orthanc-users/VZOn8St65jw/s8kg_OHesj0J


=======
Plugins
=======

---
SDK
---

* Image transcoding API
* Add plugins for normalized operations (notably so as to support
  Print SCU/SCP):
  https://www.medicalconnections.co.uk/kb/DICOM_Print_Service

----------------
Ideas of plugins
----------------

* DICOM-RT primitives (RT-STRUCT, RT-PLAN, RT-DOSE)
* Converter to/from NIfTI
* MySQL database plugin
* Decode JPEG2k with grok: https://github.com/GrokImageCompression/grok
* Generate dynamic HTTP content using Lua:
  https://groups.google.com/d/msg/orthanc-users/KompazkxRSs/5Rh03mzgDAAJ
* More generally, expose more callbacks of the plugin SDK in Lua:
  https://groups.google.com/d/msg/orthanc-users/_FbiRHuXPGM/J-OAv7zaCAAJ


===
Lua
===

* Configure HTTP headers from Lua (in HttpGet(), HttpPost(),
  HttpPut(), HttpDelete(), RestApiGet(), RestApiPost(), RestApiPut()
  and RestApiDelete().
  https://groups.google.com/forum/#!msg/orthanc-users/WNnW187OILM/6XX_bm96BwAJ


===========
Performance
===========


============
Orthanc Book
============


================
Code refactoring
================

* Use Semaphore::Locker everywhere (instead of explicit
  Release() and Acquire())
* Avoid direct calls to FromDcmtkBridge (make most of its 
  methods private), go through ParsedDicomFile wherever possible


=================
Platform-specific
=================

---------
Packaging
---------

* CentOS and RHEL through EPEL:
  http://fedoraproject.org/wiki/EPEL_Package_Maintainers

------------------------
Big-endian architectures
------------------------

* Check the generated 16bpp PNG images

-----------------
Microsoft Windows
-----------------

* Add compatibility with non-ASCII paths (Orthanc expresses its paths
  as UTF-8 strings, but Windows expects them to be translated to the 
  system locale)


=====================
External applications
=====================

* Create REST bindings with Slicer
* Create REST bindings with Horos/OsiriX