Creating ohif:metadata package with metadata classes and adding it to the viewers

This commit is contained in:
Eloízio Salgado authored and Emanuel F. Oliveira committed 2017-01-29 22:11:17 -02:00
1 parent 30a50c7ade
commit 660b828f4b
24 files changed
+242 -28

No files matched your search

@@ -0,0 +1,58 @@
import { Viewerbase } from 'meteor/ohif:viewerbase';
const InstanceMetadata = Viewerbase.metadata.InstanceMetadata;
export class OHIFInstanceMetadata extends InstanceMetadata {
/**
* @param {Object} Instance object.
*/
constructor(data) {
super(data);
this.init();
}
init() {
const data = this.getData();
// set protected property...
this._sopInstanceUID = data.sopInstanceUid;
}
// Override
getRawValue(tagOrProperty, defaultValue) {
const propertyName = OHIFInstanceMetadata.getPropertyName(tagOrProperty);
const data = this.getData();
const rawValue = data[propertyName];
return rawValue !== void 0 ? rawValue : defaultValue;
}
// Override
tagExists(tagOrProperty) {
const propertyName = OHIFInstanceMetadata.getPropertyName(tagOrProperty);
const data = this.getData();
return (propertyName in data);
}
/**
* Static methods
*/
static getPropertyName(tagOrProperty) {
const tagInfo = InstanceMetadata.getTagInfo(tagOrProperty);
if(tagInfo.propertyName === null) {
return;
}
let propertyName = tagInfo.propertyName.charAt(0).toLowerCase() + tagInfo.propertyName.substr(1);
// TODO: Improve this: change retriveMetadata to use dicom standard names (see dicomTagDescriptions.js)
propertyName = propertyName.replace(/^sop/, 'SOP');
propertyName = propertyName.replace(/uid$/i, 'UID');
return propertyName;
}
}
@@ -0,0 +1,26 @@
import { Viewerbase } from 'meteor/ohif:viewerbase';
import { OHIFInstanceMetadata } from './OHIFInstanceMetadata';
export class OHIFSeriesMetadata extends Viewerbase.metadata.SeriesMetadata {
/**
* @param {Object} Series object.
*/
constructor(data) {
super(data);
this.init();
}
init() {
const data = this.getData();
// set protected property...
this._seriesInstanceUID = data.seriesInstanceUid;
// populate internal list of instances...
data.instances.forEach(instance => {
this.addInstance(new OHIFInstanceMetadata(instance));
});
}
}
@@ -0,0 +1,25 @@
import { Viewerbase } from 'meteor/ohif:viewerbase';
import { OHIFSeriesMetadata } from './OHIFSeriesMetadata';
export class OHIFStudyMetadata extends Viewerbase.metadata.StudyMetadata {
/**
* @param {Object} Study object.
*/
constructor(data) {
super(data);
this.init();
}
init() {
const data = this.getData();
// set protected property...
this._studyInstanceUID = data.studyInstanceUid;
// populate internal list of series...
data.seriesList.forEach(series => {
this.addSeries(new OHIFSeriesMetadata(series));
});
}
}
+10
View File
@@ -0,0 +1,10 @@
import { Metadata } from '../namespace';
// OHIFStudyMetadata, OHIFSeriesMetadata, OHIFInstanceMetadata
import { OHIFStudyMetadata } from './OHIFStudyMetadata';
import { OHIFSeriesMetadata } from './OHIFSeriesMetadata';
import { OHIFInstanceMetadata } from './OHIFInstanceMetadata';
Metadata.StudyMetadata = OHIFStudyMetadata;
Metadata.SeriesMetadata = OHIFSeriesMetadata;
Metadata.InstanceMetadata = OHIFInstanceMetadata;