PWV-1: Refactoring ohif:measurements import structure for templates
This commit is contained in:
parent
7bbd380983
commit
8e6ac3bf1e
2
Packages/ohif-measurements/both/configuration/index.js
Normal file
2
Packages/ohif-measurements/both/configuration/index.js
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import './measurements.js';
|
||||||
|
import './timepoints.js';
|
||||||
2
Packages/ohif-measurements/both/index.js
Normal file
2
Packages/ohif-measurements/both/index.js
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import './configuration';
|
||||||
|
import './schema';
|
||||||
2
Packages/ohif-measurements/both/schema/index.js
Normal file
2
Packages/ohif-measurements/both/schema/index.js
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import './measurements.js';
|
||||||
|
import './timepoints.js';
|
||||||
@ -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,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
|
// 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, {
|
|
||||||
studyInstanceUid: {
|
|
||||||
type: String,
|
|
||||||
label: 'Study Instance UID'
|
|
||||||
}
|
}
|
||||||
}]);
|
});
|
||||||
|
|
||||||
const SeriesLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, {
|
const StudyLevelMeasurement = new SimpleSchema([
|
||||||
seriesInstanceUid: {
|
Measurement,
|
||||||
type: String,
|
{
|
||||||
label: 'Series Instance UID'
|
studyInstanceUid: {
|
||||||
|
type: String,
|
||||||
|
label: 'Study Instance UID'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}]);
|
]);
|
||||||
|
|
||||||
const InstanceLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLevelMeasurement, {
|
const SeriesLevelMeasurement = new SimpleSchema([
|
||||||
sopInstanceUid: {
|
StudyLevelMeasurement,
|
||||||
type: String,
|
{
|
||||||
label: 'SOP Instance UID'
|
seriesInstanceUid: {
|
||||||
|
type: String,
|
||||||
|
label: 'Series Instance UID'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}]);
|
]);
|
||||||
|
|
||||||
const FrameLevelMeasurement = new SimpleSchema([StudyLevelMeasurement, SeriesLevelMeasurement, InstanceLevelMeasurement, {
|
const InstanceLevelMeasurement = new SimpleSchema([
|
||||||
frameIndex: {
|
StudyLevelMeasurement,
|
||||||
type: Number,
|
SeriesLevelMeasurement,
|
||||||
min: 0,
|
{
|
||||||
label: 'Frame index in Instance'
|
sopInstanceUid: {
|
||||||
},
|
type: String,
|
||||||
// TODO: In the future we should remove this in favour of searching ViewerStudies and display sets when
|
label: 'SOP Instance UID'
|
||||||
// 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,
|
const FrameLevelMeasurement = new SimpleSchema([
|
||||||
SeriesLevelMeasurement,
|
StudyLevelMeasurement,
|
||||||
InstanceLevelMeasurement,
|
SeriesLevelMeasurement,
|
||||||
FrameLevelMeasurement, {
|
InstanceLevelMeasurement,
|
||||||
toolType: {
|
{
|
||||||
type: String,
|
frameIndex: {
|
||||||
label: 'Cornerstone Tool Type',
|
type: Number,
|
||||||
optional: true
|
min: 0,
|
||||||
},
|
label: 'Frame index in Instance'
|
||||||
visible: {
|
},
|
||||||
type: Boolean,
|
// TODO: In the future we should remove this in favour of searching ViewerStudies and display sets when
|
||||||
label: 'Visible',
|
// re-displaying measurements. Otherwise if a study moves servers the measurements will not be displayed correctly
|
||||||
defaultValue: true
|
imageId: {
|
||||||
},
|
type: String,
|
||||||
active: {
|
label: 'Cornerstone Image Id'
|
||||||
type: Boolean,
|
}
|
||||||
label: 'Active',
|
|
||||||
defaultValue: false
|
|
||||||
},
|
|
||||||
invalidated: {
|
|
||||||
type: Boolean,
|
|
||||||
label: 'Invalidated',
|
|
||||||
defaultValue: false,
|
|
||||||
optional: true
|
|
||||||
}
|
}
|
||||||
}]);
|
]);
|
||||||
|
|
||||||
|
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({
|
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 = {
|
||||||
@ -189,4 +207,4 @@ export const MeasurementSchemaTypes = {
|
|||||||
FrameLevelMeasurement: FrameLevelMeasurement,
|
FrameLevelMeasurement: FrameLevelMeasurement,
|
||||||
CornerstoneToolMeasurement: CornerstoneToolMeasurement,
|
CornerstoneToolMeasurement: CornerstoneToolMeasurement,
|
||||||
CornerstoneHandleSchema: CornerstoneHandleSchema
|
CornerstoneHandleSchema: CornerstoneHandleSchema
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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',
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<h4 class="modal-title" id="associationModalLabel">Study Association</h4>
|
<h4 class="modal-title" id="associationModalLabel">Study Association</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
{{ >studyAssociationTable }}
|
{{>studyAssociationTable}}
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-primary" id="saveAssociations">Save</button>
|
<button type="button" class="btn btn-primary" id="saveAssociations">Save</button>
|
||||||
@ -16,4 +16,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -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>
|
||||||
|
|
||||||
@ -21,44 +20,44 @@
|
|||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{{ #each relevantStudies }}
|
{{#each relevantStudies}}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="center">
|
<td class="center">
|
||||||
<input type="checkbox" class="includeStudy" {{valueIf autoselected '' 'checked'}}/>
|
<input type="checkbox" class="includeStudy" {{valueIf autoselected '' 'checked'}}/>
|
||||||
</td>
|
</td>
|
||||||
<td class="center studyDataCell {{ #if autoselected }}disabled{{ /if }}">
|
<td class="center studyDataCell {{#if autoselected}}disabled{{/if}}">
|
||||||
{{ #if autoselected}}
|
{{#if autoselected}}
|
||||||
<p class="studyDate autoselected"
|
<p class="studyDate autoselected"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
title="This study was autoselected.">
|
title="This study was autoselected.">
|
||||||
{{formatDA studyDate}}
|
{{formatDA studyDate}}
|
||||||
</p>
|
</p>
|
||||||
{{ else }}
|
{{else}}
|
||||||
<p class="studyDate">{{formatDA studyDate}}</p>
|
<p class="studyDate">{{formatDA studyDate}}</p>
|
||||||
{{ /if }}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
<td class="center studyDataCell {{ #if autoselected }}disabled{{ /if }}">
|
<td class="center studyDataCell {{#if autoselected}}disabled{{/if}}">
|
||||||
<p>{{formatPN patientName}}</p>
|
<p>{{formatPN patientName}}</p>
|
||||||
</td>
|
</td>
|
||||||
<td class="studyDataCell {{ #if autoselected }}disabled{{ /if }}">
|
<td class="studyDataCell {{#if autoselected}}disabled{{/if}}">
|
||||||
<p>{{studyDescription}}</p>
|
<p>{{studyDescription}}</p>
|
||||||
</td>
|
</td>
|
||||||
<td class="timepointOptions center studyDataCell noselect {{ #if autoselected }}disabled{{ /if }}">
|
<td class="timepointOptions center studyDataCell noselect {{#if autoselected}}disabled{{/if}}">
|
||||||
{{ #each timepointOptions }}
|
{{#each timepointOptions}}
|
||||||
<label class="noselect">
|
<label class="noselect">
|
||||||
<input type="radio"
|
<input type="radio"
|
||||||
name="{{../_id}}"
|
name="{{../_id}}"
|
||||||
value="{{value}}"
|
value="{{value}}"
|
||||||
class="timepointOption"
|
class="timepointOption"
|
||||||
{{ valueIf checked 'checked' ''}}
|
{{valueIf checked 'checked' ''}}
|
||||||
{{ valueIf autoselected 'disabled' ''}}>
|
{{valueIf autoselected 'disabled' ''}}>
|
||||||
{{name}}
|
{{name}}
|
||||||
</label>
|
</label>
|
||||||
{{ /each }}
|
{{/each}}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{ /each }}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -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';
|
||||||
@ -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';
|
||||||
4
Packages/ohif-measurements/client/components/index.js
Normal file
4
Packages/ohif-measurements/client/components/index.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import './association';
|
||||||
|
import './caseProgress';
|
||||||
|
import './longitudinal';
|
||||||
|
import './measurementTable';
|
||||||
@ -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';
|
||||||
@ -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';
|
||||||
@ -1,2 +1,3 @@
|
|||||||
|
import './components';
|
||||||
import './lib';
|
import './lib';
|
||||||
import './helpers';
|
import './helpers';
|
||||||
|
|||||||
@ -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']);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user