Update viewer to use prior studies for Hanging Protocols initialization and using those studies in HP Match Image process (added getStudyPriors and getStudyPriorsMap)

This commit is contained in:
Emanuel F. Oliveira authored and Eloízio Salgado committed 2017-03-02 10:16:10 -03:00
1 parent b9a3cf9da3
commit 4df18233c4
10 files changed
+335 -155

No files matched your search

@@ -0,0 +1,12 @@
import { OHIF } from 'meteor/ohif:core';
import 'meteor/ohif:viewerbase';
export class OHIFStudySummary extends OHIF.viewerbase.metadata.StudySummary {
// @Override
addTags(tagMap) {
// @TODO: Map OHIF tag names to standard DICOM tag names
super.addTags(tagMap);
}
}
@@ -0,0 +1,52 @@
import { OHIF } from 'meteor/ohif:core';
import 'meteor/ohif:viewerbase';
// Local Dependencies
import { OHIFStudySummary } from './OHIFStudySummary';
const StudyMetadata = OHIF.viewerbase.metadata.StudyMetadata;
const StudySummary = OHIF.viewerbase.metadata.StudySummary;
const PatientID = 'x00100020';
const StudyDate = 'x00080020';
const getStudyPriors = study => {
const priorStudies = [];
let patientID;
let studyDate;
if (study instanceof StudyMetadata) {
const instance = study.getFirstInstance();
patientID = instance.getRawValue(PatientID); // PatientID
studyDate = instance.getRawValue(StudyDate); // StudyDate
} else if (study instanceof StudySummary) {
patientID = study.getTagValue(PatientID); // PatientID
studyDate = study.getTagValue(StudyDate); // StudyDate
}
// Find prior studies in global StudyListStudies Minimongo collection...
const cursor = StudyListStudies.find({
patientId: patientID,
studyDate: {
$lt: studyDate
}
}, {
sort: {
studyDate: 'desc'
}
});
// Create an OHIFStudySummary object for each prior study found...
cursor.forEach(study => {
const summary = new OHIFStudySummary();
summary.addTags(study);
priorStudies.push(summary);
console.log('@StudyListStudies');
console.log(study);
console.log(study);
});
return priorStudies;
};
export { getStudyPriors };
@@ -0,0 +1,33 @@
import { OHIF } from 'meteor/ohif:core';
import 'meteor/ohif:viewerbase';
// Local Dependencies
import { getStudyPriors } from './getStudyPriors';
const StudyMetadata = OHIF.viewerbase.metadata.StudyMetadata;
const StudySummary = OHIF.viewerbase.metadata.StudySummary;
/**
* Create a Map of study priors where the key of each entry is the StudyInstanceUID and its value is an array of StudySummary instances.
* @returns {Map} The study map.
*/
const getStudyPriorsMap = studies => {
const priorsMap = new Map();
if (studies instanceof Array) {
studies.forEach(study => {
if (study instanceof StudyMetadata || study instanceof StudySummary) {
const studyInstanceUID = study.getStudyInstanceUID();
if (studyInstanceUID) {
const priors = getStudyPriors(study);
priorsMap.set(studyInstanceUID, priors);
}
}
});
}
return priorsMap;
};
export { getStudyPriorsMap };
@@ -1,11 +1,20 @@
import { Viewerbase } from 'meteor/ohif:viewerbase';
// Classes
import { OHIFStudyMetadataSource } from './OHIFStudyMetadataSource';
import { OHIFStudySummary } from './OHIFStudySummary';
// Functions
import { getStudyPriors } from './getStudyPriors';
import { getStudyPriorsMap } from './getStudyPriorsMap';
StudyList = {
functions: {},
functions: {
getStudyPriors,
getStudyPriorsMap
},
callbacks: {},
classes: {
OHIFStudyMetadataSource
OHIFStudyMetadataSource,
OHIFStudySummary
}
};