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:
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
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user