-
Notifications
You must be signed in to change notification settings - Fork 22
Import DICOM ShanoirUploader
ShanoirUploader imports data into a Shanoir server. It is a desktop client based on Java and Java Swing. Auto-import means, that only ShUp is used to finish data imports. No need to open the Web GUI to finish an import.
ShanoirUploader currently supports only DICOM imports, with 2 import types: From PACS and From folder with DICOMDIR. The selection of the DICOM series in the tree view, for the import into Shanoir server, is either started by the user with its queries to the PACS or with the selection of a folder, which contains a DICOMDIR on the disk.
After the user has selected its series for import (currently only for one patient and one dicom study), the user verifies and validates the patient credentials (first name, last name, birth name, birth date and sex) and starts the download (PACS) or copy (CD/DVD) of the dicom files.
ShUp then (DownloadOrCopyActionListener + DownloadOrCopyRunnable):
- Reads and validates values from GUI, entered by user
- Generates subject identifier and hash values (two modes: pseudonymus or not)
- Downloads from PACS or copies from CD/DVD and writes upload-job.xml + nominative-data-job.xml (DownloadOrCopyRunnable)
3.1 Download or copy
3.2 Reads for each serie the equipment infos, necessary for StudyCard compatibility check
3.3 Writes into upload-job.xml:
- subject identifier, patient birth date (first day of year, conversion happens here), patient sex
- 10 hash values for pseudonymus mode or not
- study instance UID, description and date
- list of series objects
If the download or copy is finished a new line is added to the table in second tab: Imports.
User can now open the import dialog (ImportStartActionListener):
- The user is logged in again into the server (check if already logged in, in case session closed)
- Find studies and their studycards, in which the user can import into + update GUI
- Calculate compatibility of the studycards and studies + update GUI
- Find subject(s) on using subjectIdentifier(s) and their examinations + update GUI
User enters and selects its data and clicks on import (ImportFinishActionListener + ImportFinishRunnable):
- Create subject (examination creation is managed on server)
- Anonymizes all dicom files according to the profile
- Uploads all files to the server and writes upload-job.xml + nominative-data-job.xml
The server then for auto-import: AutomaticImportScheduleProcessor.java: get a list of all import folders for all users DicomImporterBean -> initFromPreArchive (set objects on using ids, when PreImportData are present) ContextualImportSupportBean -> contextualImportBean.processFullImportFromNetwork(); different if auto-import: dicomQueryBean.importFromPreArchive (false or true) ImportDatasetAction.importDicom (where the study card is applied) contextualImportBean.endfullAutomaticImportFromNetwork(); or changeUploadJobToManualImport(f);