PWV-1: Refactoring ohif:measurements import structure for templates

This commit is contained in:
Bruno Alves de Faria 2016-09-22 19:21:59 -03:00 committed by Erik Ziegler
parent 7bbd380983
commit 8e6ac3bf1e
14 changed files with 194 additions and 173 deletions

View File

@ -0,0 +1,2 @@
import './measurements.js';
import './timepoints.js';

View File

@ -0,0 +1,2 @@
import './configuration';
import './schema';

View File

@ -0,0 +1,2 @@
import './measurements.js';
import './timepoints.js';

View File

@ -3,25 +3,25 @@ import { SimpleSchema } from 'meteor/aldeed:simple-schema';
const Measurement = new SimpleSchema({ const Measurement = new SimpleSchema({
userId: { userId: {
type: String, type: String,
label: "User ID" label: 'User ID'
}, },
patientId: { patientId: {
type: String, type: String,
label: "Patient ID" label: 'Patient ID'
}, },
measurementNumber: { measurementNumber: {
type: Number, type: Number,
label: "Measurement Number", label: 'Measurement Number',
optional: true optional: true
}, },
measurementNumberOverall: { measurementNumberOverall: {
type: Number, type: Number,
label: "Measurement Number Overall", label: 'Measurement Number Overall',
optional: true optional: true
}, },
timepointId: { timepointId: {
type: String, type: String,
label: "Timepoint ID", label: 'Timepoint ID',
optional: true optional: true
}, },
// Force value to be current date (on server) upon insert // Force value to be current date (on server) upon insert
@ -51,31 +51,45 @@ const Measurement = new SimpleSchema({
}, },
// denyInsert: true, // Commenting this out for now since we are constantly re-adding entries to client-side collections // denyInsert: true, // Commenting this out for now since we are constantly re-adding entries to client-side collections
optional: true optional: true
}, }
}) });
const StudyLevelMeasurement = new SimpleSchema([Measurement, { const StudyLevelMeasurement = new SimpleSchema([
Measurement,
{
studyInstanceUid: { studyInstanceUid: {
type: String, type: String,
label: 'Study Instance UID' label: 'Study Instance UID'
} }
}]); }
]);
const SeriesLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, { const SeriesLevelMeasurement = new SimpleSchema([
StudyLevelMeasurement,
{
seriesInstanceUid: { seriesInstanceUid: {
type: String, type: String,
label: 'Series Instance UID' label: 'Series Instance UID'
} }
}]); }
]);
const InstanceLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLevelMeasurement, { const InstanceLevelMeasurement = new SimpleSchema([
StudyLevelMeasurement,
SeriesLevelMeasurement,
{
sopInstanceUid: { sopInstanceUid: {
type: String, type: String,
label: 'SOP Instance UID' label: 'SOP Instance UID'
} }
}]); }
]);
const FrameLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLevelMeasurement, InstanceLevelMeasurement, { const FrameLevelMeasurement = new SimpleSchema([
StudyLevelMeasurement,
SeriesLevelMeasurement,
InstanceLevelMeasurement,
{
frameIndex: { frameIndex: {
type: Number, type: Number,
min: 0, min: 0,
@ -87,12 +101,15 @@ const FrameLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLev
type: String, type: String,
label: 'Cornerstone Image Id' label: 'Cornerstone Image Id'
} }
}]); }
]);
const CornerstoneToolMeasurement = new SimpleSchema([StudyLevelMeasurement, const CornerstoneToolMeasurement = new SimpleSchema([
StudyLevelMeasurement,
SeriesLevelMeasurement, SeriesLevelMeasurement,
InstanceLevelMeasurement, InstanceLevelMeasurement,
FrameLevelMeasurement, { FrameLevelMeasurement,
{
toolType: { toolType: {
type: String, type: String,
label: 'Cornerstone Tool Type', label: 'Cornerstone Tool Type',
@ -114,7 +131,8 @@ const CornerstoneToolMeasurement = new SimpleSchema([StudyLevelMeasurement,
defaultValue: false, defaultValue: false,
optional: true optional: true
} }
}]); }
]);
const CornerstoneHandleSchema = new SimpleSchema({ const CornerstoneHandleSchema = new SimpleSchema({
x: { x: {
@ -178,7 +196,7 @@ const CornerstoneHandleSchema = new SimpleSchema({
label: 'Locked', label: 'Locked',
optional: true, optional: true,
defaultValue: false defaultValue: false
}, }
}); });
export const MeasurementSchemaTypes = { export const MeasurementSchemaTypes = {

View File

@ -28,5 +28,5 @@ export const schema = new SimpleSchema({
latestDate: { latestDate: {
type: Date, type: Date,
label: 'Most recent Study Date from associated studies', label: 'Most recent Study Date from associated studies',
}, }
}); });

View File

@ -4,8 +4,7 @@
<div class="col-md-12"> <div class="col-md-12">
<h4>Instructions</h4> <h4>Instructions</h4>
<p>Associate the selected studies with timepoints in the clinical trial. Only 1 follow-up time point can be associated at the same time.</p> <p>Associate the selected studies with timepoints in the clinical trial. Only 1 follow-up time point can be associated at the same time.</p>
<p>We have automatically retrieved all studies within 14 days (<strong>{{formatDA earliestDate}}</strong> to <strong>{{formatDA latestDate}}</strong>) of your selected studies, in case you forgot to <p>We have automatically retrieved all studies within 14 days (<strong>{{formatDA this.earliestDate}}</strong> to <strong>{{formatDA latestDate}}</strong>) of your selected studies, in case you forgot to select a study.</p>
select a study.</p>
</div> </div>
</div> </div>

View File

@ -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';

View File

@ -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';

View File

@ -0,0 +1,4 @@
import './association';
import './caseProgress';
import './longitudinal';
import './measurementTable';

View File

@ -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';

View File

@ -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';

View File

@ -1,2 +1,3 @@
import './components';
import './lib'; import './lib';
import './helpers'; import './helpers';

View File

@ -29,75 +29,11 @@ Package.onUse(function(api) {
api.use('ohif:log'); api.use('ohif:log');
api.use('ohif:study-list'); api.use('ohif:study-list');
api.addFiles('both/schema/measurements.js', ['client', 'server']); // Client and server imports
api.addFiles('both/schema/timepoints.js', ['client', 'server']); api.addFiles('both/index.js', ['client', 'server']);
api.addFiles('both/configuration/measurements.js', ['client', 'server']); // Client imports
api.addFiles('both/configuration/timepoints.js', ['client', 'server']);
// Client imports and routes
api.addFiles('client/index.js', 'client'); 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']); api.export('MeasurementSchemaTypes', ['client', 'server']);
}); });