====== astroid Dicom App User Guide ======
===== Overview =====
The astroid Dicom App is used to provide access to functions which are used for reading a dicom file and returning more useable standard data types, such as those from the RT Types App available on the thinknode framework. The astroid Dicom App device is not an interactive end user application. Users of the system will write scripts or use a fully interactive software program that makes calls to the functions provided by the astroid Dicom App API. The core functionality includes parsing dicom RT_Plan, Structure Set, CT Image, and Dose file types. The Dicom App adheres to the Dicom PS3.3 2015c dicom specification.
Access to the astroid Dicom App is provided by the thinknode™ framework using http json formatted requests. thinknode™ provides the backbone used to send and receive requests, maintain users, realms and organizations, and provide data storage and management.
The [[http://docs.apps.dotdecimal.com/dicom|Dicom Manifest Guide]] contains a complete list of all functions and types supported by the astroid Dicom App through API calls.
===== Purpose =====
The purpose of this document is to provide guidance on the setup, access, and usage of the astroid Dicom app.
===== Getting Started =====
The primary purpose of the astroid Dicom App is to provide a library of efficient and easily accessible DICOM interpretation functions which can serve as building blocks for developing higher level radiation treatment planning and analysis software programs. The Dicom App is not intended to be an interactive end-user application; instead it will serve as a source of tested and validated calculation functions which software developers can utilize in other end-user applications. The astroid Dicom App provides access to these calculation functions through the thinknode™ framework which is accessible over the internet and performs all calculations in a cloud based environment. thinknode provides robust, redundant data storage, ensuring industry leading data integrity as well as stable software version management and release processes.
==== Connecting to thinknode™ ====
The Dicom App, and all its released versions reside on thinknode™. Communication with the App is performed over the internet through thinknode https requests which are password protected, per user, and permission based, by thinknode organization administrators. The thinknode startup procedure includes full installation of the appropriate application environment onto the virtual servers, which includes hardware and performance checks to ensure sufficient resources are available for the requested application. A full thinknode™ userguide is found at [[https://developers.thinknode.com|https://developers.thinknode.com]].
Basic information needed to communicate with the Dicom App through thinknode™:
* thinknode™ user name and password as a base64 encoded blob (e.g.: userName:PassW0rd1 -> dXNlck5hbWU6UGFzc1cwcmQx)
* thinknode™ api url (e.g.: https://api.thinknode.com)
* thinknode™ version the application is released on (e.g.: v1.0)
* application name (e.g.: Dicom)
* thinknode™ realm name
See [[userguide#thinknode™|thinknode™ Examples]] for sample code projects for connecting to the Dicom App.
==== Precautions ====
It is the responsibility of those utilizing this application to ensure all that all usages of this product relating to dicom information handling are performed by trained and qualified personnel only and that such personnel is aware that the quality of any generated output data is highly dependent on the quality and correctness of the input data; therefore if any questions or uncertainties exist regarding the quality, units, or identification of input data arise, they must be investigated and resolved before the data are used.
===HIPAA Compliance===
Any data posted to thinknode™ is immutable and can not be deleted. Please ensure when posting dicom files that you have anonymized patient data in the dicom files or that you are posting the data to a private bucket in thinknode™.
===== Proton Delivery System Conventions =====
{{page>dosimetry:userguide:userguide#proton_delivery_system_conventions&noheader&nofooter&noeditbutton}}
===== Functions =====
The Dicom App exposes a few key functions through its API. Below is a list and brief explanation of a few of the most common functions. A full function list as well as details of each function, its argument parameters, and return values are provided in the [[http://docs.apps.dotdecimal.com/dicom|Dicom Manifest Guide]].
* //**add_dcm_file_to_study:**//
* Takes in a rt_study and dicom file blob, parses the blob and adds it to the study.
* //**add_files_to_study:**//
* Adds dicom files to an existing study and returns the updated study.
* //**make_study:**//
* Makes a new study and initializes plan, ss and ct for importing dicom files
* //**write_beam_dose:**//
* Writes a dicom dose file for the beam specified in the study
* //**write_ct_image_slice:**//
* Writes a dicom ct image file as a blob from cradle rt_study data.
* //**write_ct_image_slices:**//
* Writes all dicom ct image files as blobs from cradle rt_study data.
* //**write_dose_image:**//
* Writes 3D image data containing dose information into a binary blob dicom dose file.
* //**write_patient:**//
* Returns a filesystem_item of the patient dicom files.
* //**write_plan:**//
* Writes dicom plan file as a blob from cradle plan data.
* //**write_plan_dose:**//
* Writes a dicom dose file for the plan in the study
* //**write_structure_set:**//
* Writes dicom structure set file as a blob from cradle structure set data.
See the [[dicom:userguide:userguide#Calc_Provider_Examples|Calc Provider Examples section]] for example usage of some of the dicom functions.
===== Data Types =====
Details of each datatype used by the Dosimetry App can be found at the [[http://docs.apps.dotdecimal.com/dicom|Dicom Manifest Guide]].
===== Calc Provider Examples =====
==== thinknode™ calculation provider ====
Official thinknode™ user guide documentation can be found at [[https://developers.thinknode.com|https://developers.thinknode.com]]. Below are basic examples of communicating with thinknode™ calculation providers and using the Dicom App calculation functions.
* **[[dicom:userguide:thinknode#python|Python]]:** Sample Python project (note: this example requires third party libraries) that details the following thinknode™ api functions:
* [[dicom:userguide:thinknode#python:_overview|Python: Overview]]
* [[dicom:userguide:thinknode#python:_decimal_libraries|Python: Decimal Libraries]]
===== System Usage =====
Normal system usage requires following the specifications for functions and data types as detailed by the [[http://docs.apps.dotdecimal.com/dicom|Dicom App Manifest Guide]]. Making correct calls to the calculation provider requires following the specifications for api requests as detailed by the [[http://doc.thinknode.com|thinknode™ API guide]]. Additionally, as most large data structures are returned in base64 encoded format, users can and should perform error checking during decoding to be certain data was not lost or corrupted during transmission.
Details about the intended use of the functions can be found at the [[userguide#functions|Functions]] section.
==== Improper System Usage ====
When using the astroid Dicom App, as with any complex program, there is the potential for misuse. The thinknode™ framework and Dicom App limit most of the potential misuse of exposed functions and data types, but there's still a potential for misinterpretation of the results provided by the app. Below are a few examples of topics that are easily confused or overlooked when performing even basic tasks.
{{page>dosimetry:userguide:userguide#Grid_and_Image_Data_Interpretation&nofooter&noeditbutton}}
===== Known Application Limitations =====
Below are listed the known application limitations, defects, or inconsistencies.
- None at this time
Should you discover or suspect any additional errors or limitations not noted above, please contact the .decimal astroid Dicom App development lead, Kevin, Erhart, at kerhart@dotdecimal.com with details of your concerns. All concerns will be addressed as quickly as possible and follow up with the submitter will occur throughout the inquire and correction process.
----
.decimal LLC, 121 Central Park Place Sanford, FL. 32771 1-800-255-1613