From 8e6ac3bf1e75ab1fae3b8161c820cf3d9b85a9a9 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Thu, 22 Sep 2016 19:21:59 -0300 Subject: [PATCH] PWV-1: Refactoring ohif:measurements import structure for templates --- .../both/configuration/index.js | 2 + Packages/ohif-measurements/both/index.js | 2 + .../ohif-measurements/both/schema/index.js | 2 + .../both/schema/measurements.js | 142 ++++++++++-------- .../both/schema/timepoints.js | 4 +- .../associationModal/associationModal.html | 4 +- .../studyAssociationTable.html | 79 +++++----- .../client/components/association/index.js | 11 ++ .../client/components/caseProgress/index.js | 8 + .../client/components/index.js | 4 + .../client/components/longitudinal/index.js | 10 ++ .../components/measurementTable/index.js | 28 ++++ Packages/ohif-measurements/client/index.js | 1 + Packages/ohif-measurements/package.js | 70 +-------- 14 files changed, 194 insertions(+), 173 deletions(-) create mode 100644 Packages/ohif-measurements/both/configuration/index.js create mode 100644 Packages/ohif-measurements/both/index.js create mode 100644 Packages/ohif-measurements/both/schema/index.js create mode 100644 Packages/ohif-measurements/client/components/association/index.js create mode 100644 Packages/ohif-measurements/client/components/caseProgress/index.js create mode 100644 Packages/ohif-measurements/client/components/index.js create mode 100644 Packages/ohif-measurements/client/components/longitudinal/index.js create mode 100644 Packages/ohif-measurements/client/components/measurementTable/index.js diff --git a/Packages/ohif-measurements/both/configuration/index.js b/Packages/ohif-measurements/both/configuration/index.js new file mode 100644 index 000000000..9f5d9c258 --- /dev/null +++ b/Packages/ohif-measurements/both/configuration/index.js @@ -0,0 +1,2 @@ +import './measurements.js'; +import './timepoints.js'; diff --git a/Packages/ohif-measurements/both/index.js b/Packages/ohif-measurements/both/index.js new file mode 100644 index 000000000..2477b2b85 --- /dev/null +++ b/Packages/ohif-measurements/both/index.js @@ -0,0 +1,2 @@ +import './configuration'; +import './schema'; diff --git a/Packages/ohif-measurements/both/schema/index.js b/Packages/ohif-measurements/both/schema/index.js new file mode 100644 index 000000000..9f5d9c258 --- /dev/null +++ b/Packages/ohif-measurements/both/schema/index.js @@ -0,0 +1,2 @@ +import './measurements.js'; +import './timepoints.js'; diff --git a/Packages/ohif-measurements/both/schema/measurements.js b/Packages/ohif-measurements/both/schema/measurements.js index 378c87bb0..8c180abf8 100644 --- a/Packages/ohif-measurements/both/schema/measurements.js +++ b/Packages/ohif-measurements/both/schema/measurements.js @@ -3,25 +3,25 @@ import { SimpleSchema } from 'meteor/aldeed:simple-schema'; const Measurement = new SimpleSchema({ userId: { type: String, - label: "User ID" + label: 'User ID' }, patientId: { type: String, - label: "Patient ID" + label: 'Patient ID' }, measurementNumber: { type: Number, - label: "Measurement Number", + label: 'Measurement Number', optional: true }, measurementNumberOverall: { type: Number, - label: "Measurement Number Overall", + label: 'Measurement Number Overall', optional: true }, timepointId: { type: String, - label: "Timepoint ID", + label: 'Timepoint ID', optional: true }, // Force value to be current date (on server) upon insert @@ -51,70 +51,88 @@ const Measurement = new SimpleSchema({ }, // denyInsert: true, // Commenting this out for now since we are constantly re-adding entries to client-side collections optional: true - }, -}) - -const StudyLevelMeasurement = new SimpleSchema([Measurement, { - studyInstanceUid: { - type: String, - label: 'Study Instance UID' } -}]); +}); -const SeriesLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, { - seriesInstanceUid: { - type: String, - label: 'Series Instance UID' +const StudyLevelMeasurement = new SimpleSchema([ + Measurement, + { + studyInstanceUid: { + type: String, + label: 'Study Instance UID' + } } -}]); +]); -const InstanceLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLevelMeasurement, { - sopInstanceUid: { - type: String, - label: 'SOP Instance UID' +const SeriesLevelMeasurement = new SimpleSchema([ + StudyLevelMeasurement, + { + seriesInstanceUid: { + type: String, + label: 'Series Instance UID' + } } -}]); +]); -const FrameLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLevelMeasurement, InstanceLevelMeasurement, { - frameIndex: { - type: Number, - min: 0, - label: 'Frame index in Instance' - }, - // TODO: In the future we should remove this in favour of searching ViewerStudies and display sets when - // re-displaying measurements. Otherwise if a study moves servers the measurements will not be displayed correctly - imageId: { - type: String, - label: 'Cornerstone Image Id' +const InstanceLevelMeasurement = new SimpleSchema([ + StudyLevelMeasurement, + SeriesLevelMeasurement, + { + sopInstanceUid: { + type: String, + label: 'SOP Instance UID' + } } -}]); +]); -const CornerstoneToolMeasurement = new SimpleSchema([StudyLevelMeasurement, - SeriesLevelMeasurement, - InstanceLevelMeasurement, - FrameLevelMeasurement, { - toolType: { - type: String, - label: 'Cornerstone Tool Type', - optional: true - }, - visible: { - type: Boolean, - label: 'Visible', - defaultValue: true - }, - active: { - type: Boolean, - label: 'Active', - defaultValue: false - }, - invalidated: { - type: Boolean, - label: 'Invalidated', - defaultValue: false, - optional: true +const FrameLevelMeasurement = new SimpleSchema([ + StudyLevelMeasurement, + SeriesLevelMeasurement, + InstanceLevelMeasurement, + { + frameIndex: { + type: Number, + min: 0, + label: 'Frame index in Instance' + }, + // TODO: In the future we should remove this in favour of searching ViewerStudies and display sets when + // re-displaying measurements. Otherwise if a study moves servers the measurements will not be displayed correctly + imageId: { + type: String, + label: 'Cornerstone Image Id' + } } -}]); +]); + +const CornerstoneToolMeasurement = new SimpleSchema([ + StudyLevelMeasurement, + SeriesLevelMeasurement, + InstanceLevelMeasurement, + FrameLevelMeasurement, + { + toolType: { + type: String, + label: 'Cornerstone Tool Type', + optional: true + }, + visible: { + type: Boolean, + label: 'Visible', + defaultValue: true + }, + active: { + type: Boolean, + label: 'Active', + defaultValue: false + }, + invalidated: { + type: Boolean, + label: 'Invalidated', + defaultValue: false, + optional: true + } + } +]); const CornerstoneHandleSchema = new SimpleSchema({ x: { @@ -178,7 +196,7 @@ const CornerstoneHandleSchema = new SimpleSchema({ label: 'Locked', optional: true, defaultValue: false - }, + } }); export const MeasurementSchemaTypes = { @@ -189,4 +207,4 @@ export const MeasurementSchemaTypes = { FrameLevelMeasurement: FrameLevelMeasurement, CornerstoneToolMeasurement: CornerstoneToolMeasurement, CornerstoneHandleSchema: CornerstoneHandleSchema -}; \ No newline at end of file +}; diff --git a/Packages/ohif-measurements/both/schema/timepoints.js b/Packages/ohif-measurements/both/schema/timepoints.js index 45f5edb80..2fda592dc 100644 --- a/Packages/ohif-measurements/both/schema/timepoints.js +++ b/Packages/ohif-measurements/both/schema/timepoints.js @@ -28,5 +28,5 @@ export const schema = new SimpleSchema({ latestDate: { type: Date, label: 'Most recent Study Date from associated studies', - }, -}); \ No newline at end of file + } +}); diff --git a/Packages/ohif-measurements/client/components/association/associationModal/associationModal.html b/Packages/ohif-measurements/client/components/association/associationModal/associationModal.html index ba3125479..d3632d420 100644 --- a/Packages/ohif-measurements/client/components/association/associationModal/associationModal.html +++ b/Packages/ohif-measurements/client/components/association/associationModal/associationModal.html @@ -7,7 +7,7 @@ - \ No newline at end of file + diff --git a/Packages/ohif-measurements/client/components/association/associationModal/studyAssociationTable/studyAssociationTable.html b/Packages/ohif-measurements/client/components/association/associationModal/studyAssociationTable/studyAssociationTable.html index 4aed73f0a..e288bdf4c 100644 --- a/Packages/ohif-measurements/client/components/association/associationModal/studyAssociationTable/studyAssociationTable.html +++ b/Packages/ohif-measurements/client/components/association/associationModal/studyAssociationTable/studyAssociationTable.html @@ -4,8 +4,7 @@

Instructions

Associate the selected studies with timepoints in the clinical trial. Only 1 follow-up time point can be associated at the same time.

-

We have automatically retrieved all studies within 14 days ({{formatDA earliestDate}} to {{formatDA latestDate}}) of your selected studies, in case you forgot to - select a study.

+

We have automatically retrieved all studies within 14 days ({{formatDA this.earliestDate}} to {{formatDA latestDate}}) of your selected studies, in case you forgot to select a study.

@@ -21,44 +20,44 @@ - {{ #each relevantStudies }} - - - - - - {{ #if autoselected}} -

- {{formatDA studyDate}} -

- {{ else }} -

{{formatDA studyDate}}

- {{ /if }} - - -

{{formatPN patientName}}

- - -

{{studyDescription}}

- - - {{ #each timepointOptions }} - - {{ /each }} - - - {{ /each }} + {{#each relevantStudies}} + + + + + + {{#if autoselected}} +

+ {{formatDA studyDate}} +

+ {{else}} +

{{formatDA studyDate}}

+ {{/if}} + + +

{{formatPN patientName}}

+ + +

{{studyDescription}}

+ + + {{#each timepointOptions}} + + {{/each}} + + + {{/each}} - \ No newline at end of file + diff --git a/Packages/ohif-measurements/client/components/association/index.js b/Packages/ohif-measurements/client/components/association/index.js new file mode 100644 index 000000000..431d3df85 --- /dev/null +++ b/Packages/ohif-measurements/client/components/association/index.js @@ -0,0 +1,11 @@ +// Study-Timepoint Association imports +import './associationModal/associationModal.html'; +import './associationModal/associationModal.styl'; +import './associationModal/associationModal.js'; + +import './associationModal/studyAssociationTable/studyAssociationTable.html'; +import './associationModal/studyAssociationTable/studyAssociationTable.styl'; +import './associationModal/studyAssociationTable/studyAssociationTable.js'; + +import './confirmRemoveTimepointAssociation/confirmRemoveTimepointAssociation.html'; +import './confirmRemoveTimepointAssociation/confirmRemoveTimepointAssociation.js'; diff --git a/Packages/ohif-measurements/client/components/caseProgress/index.js b/Packages/ohif-measurements/client/components/caseProgress/index.js new file mode 100644 index 000000000..04cde6b34 --- /dev/null +++ b/Packages/ohif-measurements/client/components/caseProgress/index.js @@ -0,0 +1,8 @@ +// Case Progress imports +import './caseProgress.html'; +import './caseProgress.styl'; +import './caseProgress.js'; + +import './radialProgressBar/radialProgressBar.html'; +import './radialProgressBar/radialProgressBar.styl'; +import './radialProgressBar/radialProgressBar.js'; diff --git a/Packages/ohif-measurements/client/components/index.js b/Packages/ohif-measurements/client/components/index.js new file mode 100644 index 000000000..1fd6b08b7 --- /dev/null +++ b/Packages/ohif-measurements/client/components/index.js @@ -0,0 +1,4 @@ +import './association'; +import './caseProgress'; +import './longitudinal'; +import './measurementTable'; diff --git a/Packages/ohif-measurements/client/components/longitudinal/index.js b/Packages/ohif-measurements/client/components/longitudinal/index.js new file mode 100644 index 000000000..459fdb868 --- /dev/null +++ b/Packages/ohif-measurements/client/components/longitudinal/index.js @@ -0,0 +1,10 @@ +// Longitudinal Components imports +import './longitudinalStudyListStudy/longitudinalStudyListStudy.html'; +import './longitudinalStudyListStudy/longitudinalStudyListStudy.styl'; +import './longitudinalStudyListStudy/longitudinalStudyListStudy.js'; + +import './longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html'; +import './longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.js'; + +import './longitudinalViewportOverlay/longitudinalViewportOverlay.html'; +import './longitudinalViewportOverlay/longitudinalViewportOverlay.js'; diff --git a/Packages/ohif-measurements/client/components/measurementTable/index.js b/Packages/ohif-measurements/client/components/measurementTable/index.js new file mode 100644 index 000000000..85daee164 --- /dev/null +++ b/Packages/ohif-measurements/client/components/measurementTable/index.js @@ -0,0 +1,28 @@ +// Measurement Table Components imports +import './measurementTable.html'; +import './measurementTable.styl'; +import './measurementTable.js'; + +import './measurementTableView/measurementTableView.html'; +import './measurementTableView/measurementTableView.styl'; +import './measurementTableView/measurementTableView.js'; + +import './measurementTableHUD/measurementTableHUD.html'; +import './measurementTableHUD/measurementTableHUD.styl'; +import './measurementTableHUD/measurementTableHUD.js'; + +import './measurementTableRow/measurementTableRow.html'; +import './measurementTableRow/measurementTableRow.styl'; +import './measurementTableRow/measurementTableRow.js'; + +import './measurementTableHeaderRow/measurementTableHeaderRow.html'; +import './measurementTableHeaderRow/measurementTableHeaderRow.styl'; +import './measurementTableHeaderRow/measurementTableHeaderRow.js'; + +import './measurementTableTimepointCell/measurementTableTimepointCell.html'; +import './measurementTableTimepointCell/measurementTableTimepointCell.styl'; +import './measurementTableTimepointCell/measurementTableTimepointCell.js'; + +import './measurementTableTimepointHeader/measurementTableTimepointHeader.html'; +import './measurementTableTimepointHeader/measurementTableTimepointHeader.styl'; +import './measurementTableTimepointHeader/measurementTableTimepointHeader.js'; diff --git a/Packages/ohif-measurements/client/index.js b/Packages/ohif-measurements/client/index.js index 26e81ba9a..e6ca842a4 100644 --- a/Packages/ohif-measurements/client/index.js +++ b/Packages/ohif-measurements/client/index.js @@ -1,2 +1,3 @@ +import './components'; import './lib'; import './helpers'; diff --git a/Packages/ohif-measurements/package.js b/Packages/ohif-measurements/package.js index d7977ecd6..e197eda98 100644 --- a/Packages/ohif-measurements/package.js +++ b/Packages/ohif-measurements/package.js @@ -29,75 +29,11 @@ Package.onUse(function(api) { api.use('ohif:log'); api.use('ohif:study-list'); - api.addFiles('both/schema/measurements.js', ['client', 'server']); - api.addFiles('both/schema/timepoints.js', ['client', 'server']); + // Client and server imports + api.addFiles('both/index.js', ['client', 'server']); - api.addFiles('both/configuration/measurements.js', ['client', 'server']); - api.addFiles('both/configuration/timepoints.js', ['client', 'server']); - - // Client imports and routes + // Client imports api.addFiles('client/index.js', 'client'); - // Measurement Table Components - api.addFiles('client/components/measurementTable/measurementTable.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTable.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTable.js', 'client'); - - api.addFiles('client/components/measurementTable/measurementTableView/measurementTableView.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTableView/measurementTableView.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTableView/measurementTableView.js', 'client'); - - api.addFiles('client/components/measurementTable/measurementTableHUD/measurementTableHUD.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTableHUD/measurementTableHUD.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTableHUD/measurementTableHUD.js', 'client'); - - api.addFiles('client/components/measurementTable/measurementTableRow/measurementTableRow.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTableRow/measurementTableRow.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTableRow/measurementTableRow.js', 'client'); - - api.addFiles('client/components/measurementTable/measurementTableHeaderRow/measurementTableHeaderRow.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTableHeaderRow/measurementTableHeaderRow.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTableHeaderRow/measurementTableHeaderRow.js', 'client'); - - api.addFiles('client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.js', 'client'); - - api.addFiles('client/components/measurementTable/measurementTableTimepointHeader/measurementTableTimepointHeader.html', 'client'); - api.addFiles('client/components/measurementTable/measurementTableTimepointHeader/measurementTableTimepointHeader.styl', 'client'); - api.addFiles('client/components/measurementTable/measurementTableTimepointHeader/measurementTableTimepointHeader.js', 'client'); - - // Longitudinal Components - api.addFiles('client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.html', 'client'); - api.addFiles('client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.styl', 'client'); - api.addFiles('client/components/longitudinal/longitudinalStudyListStudy/longitudinalStudyListStudy.js', 'client'); - - api.addFiles('client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html', 'client'); - api.addFiles('client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.js', 'client'); - - api.addFiles('client/components/longitudinal/longitudinalViewportOverlay/longitudinalViewportOverlay.html', 'client'); - api.addFiles('client/components/longitudinal/longitudinalViewportOverlay/longitudinalViewportOverlay.js', 'client'); - - // Case Progress - api.addFiles('client/components/caseProgress/caseProgress.html', 'client'); - api.addFiles('client/components/caseProgress/caseProgress.styl', 'client'); - api.addFiles('client/components/caseProgress/caseProgress.js', 'client'); - - api.addFiles('client/components/caseProgress/radialProgressBar/radialProgressBar.html', 'client'); - api.addFiles('client/components/caseProgress/radialProgressBar/radialProgressBar.styl', 'client'); - api.addFiles('client/components/caseProgress/radialProgressBar/radialProgressBar.js', 'client'); - - // Study-Timepoint Association - api.addFiles('client/components/association/associationModal/associationModal.html', 'client'); - api.addFiles('client/components/association/associationModal/associationModal.styl', 'client'); - api.addFiles('client/components/association/associationModal/associationModal.js', 'client'); - - api.addFiles('client/components/association/associationModal/studyAssociationTable/studyAssociationTable.html', 'client'); - api.addFiles('client/components/association/associationModal/studyAssociationTable/studyAssociationTable.styl', 'client'); - api.addFiles('client/components/association/associationModal/studyAssociationTable/studyAssociationTable.js', 'client'); - - api.addFiles('client/components/association/confirmRemoveTimepointAssociation/confirmRemoveTimepointAssociation.html', 'client'); - api.addFiles('client/components/association/confirmRemoveTimepointAssociation/confirmRemoveTimepointAssociation.js', 'client'); - api.export('MeasurementSchemaTypes', ['client', 'server']); });