Difference between revisions of "Documentation/Nightly/Modules/DICOM"

From Slicer Wiki
Jump to: navigation, search
(Moved to readthedocs)
Tags: 2017 source edit, Replaced
 
(29 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<noinclude>{{documentation/versioncheck}}</noinclude>
+
<noinclude>{{documentation/versioncheck}}
<!-- ---------------------------- -->
+
</noinclude>
{{documentation/{{documentation/version}}/module-header}}
 
<!-- ---------------------------- -->
 
  
<!-- ---------------------------- -->
+
{{documentation/banner
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}
+
| text = [https://slicer.readthedocs.io/en/latest/user_guide/modules/dicom.html This page has been moved to read-the-docs.]
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
+
| background-color = 8FBC8F }}
{{documentation/{{documentation/version}}/module-introduction-row}}
 
:'''Author(s)/Contributor(s):''' Steve Pieper (Isomics Inc.), Michael Onken (Offis), Marco Nolden (DFKZ), Julien Finet (Kitware), Stephen Aylward (Kitware), Nicholas Herlambang (AZE), Alireza Mehrtash (BWH)<br>
 
: '''Acknowledgements:''' This work is part of the [http://www.na-mic.org/ National Alliance for Medical Image Computing] (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149, and by Quantitative Image Informatics for Cancer Research (QIICR) (U24 CA180918) <br>
 
: '''Contact:''' Steve Pieper, <email>pieper@bwh.harvard.edu</email><br>
 
{{documentation/{{documentation/version}}/module-introduction-row}}
 
{{documentation/{{documentation/version}}/module-introduction-logo-gallery
 
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}
 
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}
 
|{{collaborator|logo|nac}}|{{collaborator|longname|nac}}
 
|{{collaborator|logo|ctk}}|{{collaborator|longname|ctk}}
 
|{{collaborator|logo|qiicr}}|{{collaborator|longname|qiicr}}
 
|Image:DICOM-OFFIS-logo.png|DICOM-OFFIS
 
}}
 
{{documentation/{{documentation/version}}/module-introduction-end}}
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Module Description}}
 
{{documentation/{{documentation/version}}/module-description}}
 
 
 
*A new DICOM infrastructure was put in place beginning with Slicer 4.0.
 
*DICOM data is stored in a local data base, which is based on SQLite.
 
*DICOM data can be imported from disk into this data base
 
*DICOM data can be retrieved from a PACS system after proper configuration of Slicer.
 
*DICOM data can be loaded into Slicer from the local database. A graphical user interface with display of thumbnails is available for data selection.
 
*Plans for the near future, include support for storing data from slicer into the data base and uploading data from the data base into a PACS system.
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Use Cases}}
 
 
 
{|
 
|[[image:DICOM-tables-Screen Shot 2013-11-07 at 1.24.00 PM.png|thumb|380px|DICOM module in use]]
 
|[[Image:Form_224.png|thumb|380px|DICOM Query dialog]]
 
|[[Image:Export_to_DICOM_Study_226.png‎|thumb|380px|DICOM Export dialog available from the context menu at the Study level of the DICOM tree (beta feature).]]
 
|[[Image:Screen Shot 2013-11-08 at 4.47.19 AM.png|thumb|380px|DICOM Header Browser]]
 
|}
 
 
 
=DICOM Concepts=
 
 
 
DICOM is a widely used and sophisticated set of standards for digital radiology (see the [[#References|References]] section for more information). Slicer provides support for a subset of DICOM functionality, with the particular features driven by the needs of clinical research.
 
 
 
 
 
=DICOM Organization=
 
 
 
To organize the data and avoid redundant calculations, Slicer keeps a DICOM Database of information about the DICOM data.  You can have multiple databases on your computer at a time, and switch between them if, for example, they include data from different research projects.  Each database is simply a directory on your local disk that has a few [http://sqlite.org/ SQLite] files and subdirectories to store image data.  Don't manually modify the contents of these directories.  DICOM data can enter the database either through manual import or via a DICOM network transfer.  Modules may also populate the DICOM database with the results of computation.
 
 
 
By right clicking on a Patient, Study, or Series, you can delete the entry from the DICOM database.  Note that to avoid accidental data loss, slicer does not delete the corresponding image data files.
 
 
 
By selecting a Study and right clicking to get a context menu, you can choose to Export data from Slicer into DICOM.  The metadata from the select study will be automatically filled in to the Export dialog and you can select a Slicer volume to export.  ''Note that you should exercise extreme caution when working with these files in clinical situations, since non-standard or incorrect DICOM files can interfere with clinical operations.''  You can also choose to encapsulate the current MRML scene (via an MRB file) inside a DICOM dataset, which will be treated as a DICOM Secondary Capture document (note that the export feature has not been widely tested and should be considered experimental).
 
 
 
 
 
=DICOM Data on the File System=
 
 
 
The basic steps are as follows:
 
 
 
*Click the Import button in the DICOM Browser
 
*Select the folder which contains the data
 
** Optionally select the Copy option so that the files are copied into the database directory.  Otherwise they will only be referenced in their original locaion.
 
 
 
Note that the DICOM standard does not specify how files will be organized on disk, so if you have DICOM data from a CDROM or otherwise transferred from a scanner, you cannot in general tell anything about the contents from the file or directory names.  However once the data is imported to the database, it will be organized according the the DICOM standard Patient/Study/Series hierarchy.
 
 
 
=DICOM Networking=
 
 
 
DICOM is also a network communication standard.  Slicer supports a DICOM Listener, DICOM Query/Retrieve interface, and a DICOM Send option.  Note that in order to use these features, you must coordinate with the operators of the other DICOM nodes with which you wish to communicate.  For example, you must work out agreement on such topics as network ports and application entity titles (AE Titles).  Be aware that not all equipment supports all networking options, so configuration may be challenging and is often difficult to troubleshoot.
 
 
 
== Connection Ports ==
 
Port 104 is the standard DICOM port. All ports below 1024 require root access on unix-like systems (Linux and Mac).  So you can run slicer with the sudo command to be able to open the port for the DICOM Listener. Or you can use a different port, like 11112. You need to configure that on both sides of the connection.  You can only have one process at a time listening on a port so if you have a listener running the second one won't start up.  Also if something adverse happens (a crash) the port may be kept open an you need to either kill the storescp helper process (or just reboot the computer) to free the port.  Consult the [[documentation/{{documentation/version}}/SlicerApplication/ErrorLog|Error Log]] for diagnostic information.
 
 
 
 
 
=DICOM Loading and Plugins=
 
 
 
A main function of the DICOM module is to map from ''acquisition'' data organization into ''volume'' representation.  That is, DICOM files typically describe attributes of the image capture, like the sequence of locations of the table during CT acquisition, while Slicer operates on image volumes of regularly spaced pixels.  If, for example, the speed of the table motion is not consistent during an acquisition (which can be the case for some contrast 'bolus chasing' scans, Slicer's DICOM module will warn the user that the acquisition geometry is not consistent and the user should use caution when interpreting analysis results such as measurements.
 
 
 
From a developer perspective, the DICOM module exposes a plug-in architecture that allows acquisition-specific and modality-specific interpretation of DICOM data.  From a user perspective this means that often Slicer will be able to suggest multiple ways of interpreting the data (such as reading DICOM files as a [[Documentation/{{documentation/version}}#Diffusion|Diffusion]] dataset or as a scalar volume. When it is computable by examining the files, the DICOM module will select the most likely interpretation option by default.  As of this release, standard plugins include scalar volumes and diffusion volumes, while extensions are available for segmentation objects, RT data, and PET/CT data.  More plugins are expected for future versions.  It is a long-term objective to be able to represent most if not all Slicer's data in the corresponding DICOM data objects as the standard evolves to support them.
 
 
 
<!-- Tutorials ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Tutorials}}
 
* See [http://www.na-mic.org/Wiki/index.php/RSNA_2012#3D_Interactive_Visualization_of_DICOM_images the RSNA 2012 Training on Visualization] for description and sample data (Direct link to [http://www.na-mic.org/Wiki/images/6/66/3DVisualizationDICOM_RadiologyApplications_SoniaPujol_RSNA2012.pdf slides as pdf]).
 
 
 
 
 
 
 
 
 
<!-- Panels ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Panels}}
 
 
 
Referring to the "DICOM in use" image in the top left of this page, the most important controls for day-to-day use are highlighted with gray callouts.  The are described here in the order you are likely to use them.
 
 
 
*'''Database Directory''' allows you to select a location on disk for a local database of DICOM files.  You may have several directories to organize your data, and the currently selected on will be displayed in the DICOM Browser.
 
*'''Import Button''' allows you to select a directory to be parsed for DICOM data.  The results are stored in the currently selected DICOM Database.
 
*'''Patient Selection''' shows patients in the database.  You can multi-select patients.
 
*'''Study Selection''' shows studies for the currently selected patients.  You can mult-select studies.
 
*'''Series Selection''' shows series for the currently selected patient studies.  You can multi-select series.
 
*'''Search Box''' Each patient/study/series can be filtered by typing in these fields.
 
*'''Examine Button''' Runs each of the DICOM Plugins on the currently selected series and offers the result in the Load Options table.
 
*'''Plugin Options''' You can choose which plugins will be checked when examining the selected series.
 
*'''Load Options''' displays the possible interpretations of the data based on the current plugins.  The most likely plugin results are selected by default.  You can override the defaults if you want to load the data in a different way.  There will not always be a one-to-one mapping of selected series to load options.
 
*'''Load Button''' loads the currently selected load options into slicer.
 
*'''Header Button''' displays a text dump of the DICOM objects in the current series selection.
 
 
 
 
 
<!-- Similar modules ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Similar modules}}
 
* [[Documentation/{{documentation/version}}/SlicerApplication/LoadingData|Loading Data]] Can read scalar volume DICOM data, bypassing the database.
 
* [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting Extension]] reads and write DICOM Segmentation Objects (label maps).
 
* [[Documentation/{{documentation/version}}/Extensions/Reporting|SlicerRT]] reads and write DICOM Radiation Therapy Objects and provides tools for processing them.
 
* [[Documentation/{{documentation/version}}/Extensions/Reporting|LongitudinalPETCT]] reads all PET/CT studies for a selected patient and provides tools for tracking metabolic activity detected by PET tracers.
 
 
 
 
 
<!-- References ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|References}}
 
See the [http://commontk.org CTK web site] for more information on the internals of the DICOM implementation.  This tool uses the [http://dicom.offis.de DCMTK DICOM library].
 
 
 
=== Useful links ===
 
* See the [[Documentation/{{documentation/version}}/FAQ/DICOM|Slicer DICOM FAQ]]
 
* The DICOM Homepage: http://dicom.nema.org/
 
* DICOM on wikipedia: http://en.wikipedia.org/wiki/DICOM
 
* A useful tag lookup site: http://dicomlookup.com/
 
* A hyperlinked version of the standard: http://dabsoft.ch/dicom/
 
* A handy book about DICOM: http://www.amazon.com/Digital-Imaging-Communications-Medicine-DICOM/dp/3642108490/ref=dp_ob_title_bk
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
 
 
 
 
 
[[Image:DICOM-architecture.png|thumb|580px|DICOM module architecture.]]
 
 
 
The overall DICOM Implementation in 3D Slicer consists of two main bodies of code embedded within the application.  [http://commontk.org CTK] code is responsible for the implementation of the DICOM database and networking layer.  The CTK code is implemented C++ and follows the Qt style.  The DICOM Module exposes this functionality to slicer users, and provides hooks through which other module can register DICOM Plugins to handle the conversion of specific DICOM data objects into the corresponding MRML representation.  Once the data is in slicer, it can be operated on via the standard slicer mechanisms.
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-footer}}
 
<!-- ---------------------------- -->
 

Latest revision as of 19:02, 2 November 2020

Home < Documentation < Nightly < Modules < DICOM