diff --git a/platform/core/src/services/DicomMetadataStore/DicomMetadataStore.ts b/platform/core/src/services/DicomMetadataStore/DicomMetadataStore.ts index 10442cc25..79ac22b6b 100644 --- a/platform/core/src/services/DicomMetadataStore/DicomMetadataStore.ts +++ b/platform/core/src/services/DicomMetadataStore/DicomMetadataStore.ts @@ -53,10 +53,22 @@ function _getStudyInstanceUIDs() { return _model.studies.map(aStudy => aStudy.StudyInstanceUID); } +/** + * Gets a study (a collection of series) using it's StudyInstanceUID + * @param {*} StudyInstanceUID - Unique Identifier for the study + * @returns {*} A study object + */ function _getStudy(StudyInstanceUID) { return _model.studies.find(aStudy => aStudy.StudyInstanceUID === StudyInstanceUID); } +/** + * Gets a series (a collection of images) using both + * the Study and Series InstanceUID's + * @param {*} StudyInstanceUID - Unique Identifier for the study + * @param {*} SeriesInstanceUID - Unique Identifier for the series + * @returns {*} A series object + */ function _getSeries(StudyInstanceUID, SeriesInstanceUID) { if(!StudyInstanceUID) { const series = _model.studies.map(study => study.series).flat(); @@ -72,6 +84,13 @@ function _getSeries(StudyInstanceUID, SeriesInstanceUID) { return study.series.find(aSeries => aSeries.SeriesInstanceUID === SeriesInstanceUID); } +/** + * Gets an instance (a single image or object) + * @param {*} StudyInstanceUID - Unique Identifier for the study + * @param {*} SeriesInstanceUID - Unique Identifier for the series + * @param {*} SOPInstanceUID Unique Identifier for a specific instance + * @returns an instance object + */ function _getInstance(StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID) { const series = _getSeries(StudyInstanceUID, SeriesInstanceUID); diff --git a/platform/docs/docs/platform/services/data/DisplaySetService.md b/platform/docs/docs/platform/services/data/DisplaySetService.md index 8b8bcae67..af4e36f69 100644 --- a/platform/docs/docs/platform/services/data/DisplaySetService.md +++ b/platform/docs/docs/platform/services/data/DisplaySetService.md @@ -4,7 +4,6 @@ sidebar_label: DisplaySet Service --- # DisplaySet Service - ## Overview `DisplaySetService` handles converting the `instanceMetadata` into `DisplaySet` that `OHIF` uses for the visualization. `DisplaySetService` gets initialized at service startup time, but is then cleared in the `Mode.jsx`. During the initialization `SOPClassHandlerIds` of the `modes` gets registered with the `DisplaySetService`. @@ -12,7 +11,9 @@ sidebar_label: DisplaySet Service DisplaySet is a general set of entities and contains links to bunch of displayable objects (images, etc.) Some series might get split up into different displaySets e.g., MG might have mixed views in a single series, but users might want to have separate LCC, RCC, etc. for hanging protocol usage. A viewport renders a display set into a displayable object. -imageSet is a particular implementation of image displays. +An imageSet is a particular implementation of image displays. +- Learn more about Study (https://www.dicomstandard.org/standards/view/information-object-definitions#sect_A.1.2.2) +- Learn more about Series (https://www.dicomstandard.org/standards/view/information-object-definitions#sect_A.1.2.3) ::: @@ -27,6 +28,18 @@ Then, the same process is used as was originally done to create new display sets NOTE: Any instances not matched are NOT added to any display set and will not be displayed. +:::::info[Clarification of Terminology] + +Display Sets, which are custom to OHIF, are often confused with different DICOM terms, including study, series, and instances. The following are definitions for these terms to alleviate confusion. +

+ +DICOM Terms: +* **Study**: A collection of series +* **Series**: A collection of images or objects +* **Instance**: Single image or object +* **Display Set**: Set of displayable objects (Can be anything shown to the user) +::::: + ## Adding `madeInClient` display sets It is possible to filter or combine display sets from different series by performing the filter operation desired, and then calling the `addActiveDisplaySets`