Fixing metadata issues with Orthanc studies

This commit is contained in:
Bruno Alves de Faria 2017-09-21 16:48:43 -03:00
parent ef4a8d8684
commit da0595213d
7 changed files with 38 additions and 24 deletions

View File

@ -163,10 +163,7 @@ class ConformanceCriteria {
const promise = OHIF.studylist.retrieveStudyMetadata(studyInstanceUid);
promise.then(study => {
let studyMetadata = study;
if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
}
const studyMetadata = OHIF.viewerbase.getStudyMetadata(study);
data[measurementType].push({
measurement,

View File

@ -8,7 +8,7 @@
<div class="studyModality">
<div class="studyModalityBox">
<div class="studyModalityText" style="{{modalityStyle}}">
{{#if this.study.modalities}}
{{#if instance.modalities}}
{{modalities}}
{{else}}
UN
@ -16,8 +16,8 @@
</div>
</div>
<div class="studyText">
<div class="studyDate">{{formatDA this.study.studyDate 'D-MMM-YYYY'}}</div>
<div class="studyDescription">{{this.study.studyDescription}}</div>
<div class="studyDate">{{formatDA instance.studyDate 'D-MMM-YYYY'}}</div>
<div class="studyDescription">{{instance.studyDescription}}</div>
</div>
</div>
</div>

View File

@ -10,6 +10,14 @@ Template.studyTimepointStudy.onCreated(() => {
instance.loading = new ReactiveVar(false);
const studyMetadata = OHIF.viewerbase.getStudyMetadata(instance.data.study);
const firstInstance = studyMetadata.getFirstInstance();
if (firstInstance) {
instance.modalities = firstInstance.getRawValue('x00080060');
instance.studyDescription = firstInstance.getRawValue('x00081030');
instance.studyDate = firstInstance.getRawValue('x00080020');
}
// Get the current study element
instance.getStudyElement = (isGlobal=false) => {
const studyInstanceUid = instance.data.study.studyInstanceUid;
@ -144,7 +152,7 @@ Template.studyTimepointStudy.helpers({
modalities() {
const instance = Template.instance();
let modalities = instance.data.study.modalities;
const modalities = instance.modalities || 'UN';
// Replace backslashes with spaces
return modalities.replace(/\\/g, ' ');
@ -154,20 +162,18 @@ Template.studyTimepointStudy.helpers({
// Responsively styles the Modality Acronyms for studies
// with more than one modality
const instance = Template.instance();
const modalities = instance.data.study.modalities || 'UN';
const modalities = instance.modalities || 'UN';
const numModalities = modalities.split(/\\/g).length;
if (numModalities === 1) {
// If we have only one modality, it should take up the whole
// div.
// If we have only one modality, it should take up the whole div.
return 'font-size: 1vw';
} else if (numModalities === 2) {
// If we have two, let them sit side-by-side
return 'font-size: 0.75vw';
} else {
// If we have more than two modalities, change the line
// height to display multiple rows, depending on the number
// of modalities we need to display.
// If we have more than two modalities, change the line height to display multiple rows,
// depending on the number of modalities we need to display.
const lineHeight = Math.ceil(numModalities / 2) * 1.2;
return 'line-height: ' + lineHeight + 'vh';
}

View File

@ -84,6 +84,10 @@ Viewerbase.setInstanceClassDefaultViewportFunction = setInstanceClassDefaultView
import { displayReferenceLines } from './lib/displayReferenceLines';
Viewerbase.displayReferenceLines = displayReferenceLines;
// getStudyMetadata
import { getStudyMetadata } from './lib/getStudyMetadata';
Viewerbase.getStudyMetadata = getStudyMetadata;
/**
* Exported Namespaces (sub-namespaces)
*/

View File

@ -167,11 +167,9 @@ export class StudyPrefetcher {
getSeries(study, image) {
const seriesMetadata = cornerstoneTools.metaData.get('series', image.imageId);
if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
study = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
}
const studyMetadata = OHIF.viewerbase.getStudyMetadata(study);
return study.getSeriesByUID(seriesMetadata.seriesInstanceUid);
return studyMetadata.getSeriesByUID(seriesMetadata.seriesInstanceUid);
}
getInstance(series, image) {

View File

@ -9,12 +9,9 @@ import { OHIF } from 'meteor/ohif:core';
export const getImageIdForImagePath = (imagePath, thumbnail=false) => {
const [studyInstanceUid, seriesInstanceUid, sopInstanceUid, frameIndex] = imagePath.split('_');
let study = OHIF.viewer.Studies.findBy({ studyInstanceUid });
if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
study = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
}
const series = study.getSeriesByUID(seriesInstanceUid);
const study = OHIF.viewer.Studies.findBy({ studyInstanceUid });
const studyMetadata = OHIF.viewerbase.getStudyMetadata(study);
const series = studyMetadata.getSeriesByUID(seriesInstanceUid);
const instance = series.getInstanceByUID(sopInstanceUid);
const imageId = OHIF.viewerbase.getImageId(instance, frameIndex, thumbnail);
return imageId;

View File

@ -0,0 +1,12 @@
import { OHIF } from 'meteor/ohif:core';
const getStudyMetadata = study => {
let studyMetadata = study;
if (study && !(studyMetadata instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
}
return studyMetadata;
};
export { getStudyMetadata };