Constructs a new object based on the results from the scanDICOMDir. This constructor should only called internal to the API.
data value provided by the scanDICOMDir
This is an synchronous method that returns the newly constructed ScanDirResults
Synchronous method that returns the SeriesDataContext that matches the seriesInstanceUID, and optional subSeriesID
UID of the series to search for
0 indicates the original DICOM series, or > 0 for the ID of the subseries if sries contains of multiple, separable 3D-able seequences
SeriesDataContext if the series is found, or null otherwise
Synchronous method that returns an array of ScanDirSeriesResults, one for each DICOM series based on either the index or the StudyInstanceUID
0-based index of the study
SeriesDataContext if the study is found, or null otherwise
Synchronous method to return the number of studies located. Each study can be accessed by calling findStudy with index 0 thorugh getNumStudies() - 1
Synchronous method to return an array of study instance UIDs which can be used in findStudy() method by study instance UID.
getStudiesByPatient organizes the ScanDirResults as a PatientArray, each which has a StudyArray. Each Study contains a SeriesArray (array of ScanDirSeriesResults ) , one for each unique DICOM image series (all DICOM images that have a common seriesInstanceUID) and a single non-image DICOM that references all GSPS, SR, KOS, and all other non-image objects associated with the study. Each DICOM image series ( ScanDirSeriesResults ) contains a dicomSeries object ( SeriesDataContext ) that holds all its associated DICOM images (and frames) and an array of subSeries. Each subSeries itself is a unique ( SeriesDataContext ) that is a collection of images grouped (or split) based on the logic describe below. A single DICOM multi-frame (MF) image is typically grouped as its own unique subSeries, one for each MF image. Having a separate dicomSeries object (holding the full stack of images from the DICOM series) and the array of subSeries allows the application to organize and display the images based on their own workflow needs.
The grouping logic organizes the data by splitting on the follow characteristics:
For 3D rendering purposes, a subSeries will be sorted based on the image orientation and image position attributes. If it has a consistent slab thickness and contain more than 6 slices, the specific subseries (SeriesDataContext) will be marked as 3Dable.
In other cases, for the other attributes, a subseries will be sorted based on the Instance Number and its Instance Creation Date / Time.
For CR, DR, DX, and MG modalieis, if splitByImage is enabled, each image will be in its own subseries regardless if the images acquired with a common seriesInstanceUID.
defines the DICOM tags that must match in order for studies to be groupped as a single patient
Array of patient objects, each with an array of study objects, each with their own ScanDirSeriesResults
ScanDirResults is returned by scanDICOMDir and contains the complete DICOM study hierarchy as a result of the scan.
Fovia.ServerContext.scanDICOMDir reads all files in the directory and its subdirectories and returns a ScanDirResults organized by study that include all image and non-image (GSPS, SR, KOS, DSO, RT, etc.) DICOM objects. The application will then invoke getStudiesByPatient that organizes the results as a PatientArray, each which has a StudyArray.
Each Study contains a SeriesArray (array of ScanDirSeriesResults ) , one for each unique DICOM image series (all DICOM images that have a common seriesInstanceUID) and a single non-image DICOM that references all GSPS, SR, KOS, and all other non-image objects associated with the study. Each DICOM image series ( ScanDirSeriesResults ) contains a dicomSeries object ( SeriesDataContext ) that holds all its associated DICOM images (and frames) and an array of subSeries. Each subSeries itself is a unique ( SeriesDataContext ) that is a collection of images grouped (or split) based on the logic describe below. A single DICOM multi-frame (MF) image is typically grouped as its own unique subSeries, one for each MF image. Having a separate dicomSeries object (holding the full stack of images from the DICOM series) and the array of subSeries allows the application to organize and display the images based on their own workflow needs. The grouping logic organizes the data by splitting on the follow characteristics:
For 3D rendering purposes, a subSeries will be sorted based on the image orientation and image position attributes. If it has a consistent slab thickness and contain more than 6 slices, the specific subseries (SeriesDataContext) will be marked as 3Dable.
In other cases, for the other attributes, a subseries will be sorted based on the Instance Number and its Instance Creation Date / Time.
For CR, DR, DX, and MG modalieis, if splitByImage is enabled, each image will be in its own subseries regardless if the images acquired with a common seriesInstanceUID.