Fixing metadata issues with Orthanc studies
This commit is contained in:
parent
ef4a8d8684
commit
da0595213d
@ -163,10 +163,7 @@ class ConformanceCriteria {
|
|||||||
|
|
||||||
const promise = OHIF.studylist.retrieveStudyMetadata(studyInstanceUid);
|
const promise = OHIF.studylist.retrieveStudyMetadata(studyInstanceUid);
|
||||||
promise.then(study => {
|
promise.then(study => {
|
||||||
let studyMetadata = study;
|
const studyMetadata = OHIF.viewerbase.getStudyMetadata(study);
|
||||||
if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
|
|
||||||
studyMetadata = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
|
|
||||||
}
|
|
||||||
|
|
||||||
data[measurementType].push({
|
data[measurementType].push({
|
||||||
measurement,
|
measurement,
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
<div class="studyModality">
|
<div class="studyModality">
|
||||||
<div class="studyModalityBox">
|
<div class="studyModalityBox">
|
||||||
<div class="studyModalityText" style="{{modalityStyle}}">
|
<div class="studyModalityText" style="{{modalityStyle}}">
|
||||||
{{#if this.study.modalities}}
|
{{#if instance.modalities}}
|
||||||
{{modalities}}
|
{{modalities}}
|
||||||
{{else}}
|
{{else}}
|
||||||
UN
|
UN
|
||||||
@ -16,8 +16,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="studyText">
|
<div class="studyText">
|
||||||
<div class="studyDate">{{formatDA this.study.studyDate 'D-MMM-YYYY'}}</div>
|
<div class="studyDate">{{formatDA instance.studyDate 'D-MMM-YYYY'}}</div>
|
||||||
<div class="studyDescription">{{this.study.studyDescription}}</div>
|
<div class="studyDescription">{{instance.studyDescription}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -10,6 +10,14 @@ Template.studyTimepointStudy.onCreated(() => {
|
|||||||
|
|
||||||
instance.loading = new ReactiveVar(false);
|
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
|
// Get the current study element
|
||||||
instance.getStudyElement = (isGlobal=false) => {
|
instance.getStudyElement = (isGlobal=false) => {
|
||||||
const studyInstanceUid = instance.data.study.studyInstanceUid;
|
const studyInstanceUid = instance.data.study.studyInstanceUid;
|
||||||
@ -144,7 +152,7 @@ Template.studyTimepointStudy.helpers({
|
|||||||
|
|
||||||
modalities() {
|
modalities() {
|
||||||
const instance = Template.instance();
|
const instance = Template.instance();
|
||||||
let modalities = instance.data.study.modalities;
|
const modalities = instance.modalities || 'UN';
|
||||||
|
|
||||||
// Replace backslashes with spaces
|
// Replace backslashes with spaces
|
||||||
return modalities.replace(/\\/g, ' ');
|
return modalities.replace(/\\/g, ' ');
|
||||||
@ -154,20 +162,18 @@ Template.studyTimepointStudy.helpers({
|
|||||||
// Responsively styles the Modality Acronyms for studies
|
// Responsively styles the Modality Acronyms for studies
|
||||||
// with more than one modality
|
// with more than one modality
|
||||||
const instance = Template.instance();
|
const instance = Template.instance();
|
||||||
const modalities = instance.data.study.modalities || 'UN';
|
const modalities = instance.modalities || 'UN';
|
||||||
const numModalities = modalities.split(/\\/g).length;
|
const numModalities = modalities.split(/\\/g).length;
|
||||||
|
|
||||||
if (numModalities === 1) {
|
if (numModalities === 1) {
|
||||||
// If we have only one modality, it should take up the whole
|
// If we have only one modality, it should take up the whole div.
|
||||||
// div.
|
|
||||||
return 'font-size: 1vw';
|
return 'font-size: 1vw';
|
||||||
} else if (numModalities === 2) {
|
} else if (numModalities === 2) {
|
||||||
// If we have two, let them sit side-by-side
|
// If we have two, let them sit side-by-side
|
||||||
return 'font-size: 0.75vw';
|
return 'font-size: 0.75vw';
|
||||||
} else {
|
} else {
|
||||||
// If we have more than two modalities, change the line
|
// If we have more than two modalities, change the line height to display multiple rows,
|
||||||
// height to display multiple rows, depending on the number
|
// depending on the number of modalities we need to display.
|
||||||
// of modalities we need to display.
|
|
||||||
const lineHeight = Math.ceil(numModalities / 2) * 1.2;
|
const lineHeight = Math.ceil(numModalities / 2) * 1.2;
|
||||||
return 'line-height: ' + lineHeight + 'vh';
|
return 'line-height: ' + lineHeight + 'vh';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,6 +84,10 @@ Viewerbase.setInstanceClassDefaultViewportFunction = setInstanceClassDefaultView
|
|||||||
import { displayReferenceLines } from './lib/displayReferenceLines';
|
import { displayReferenceLines } from './lib/displayReferenceLines';
|
||||||
Viewerbase.displayReferenceLines = displayReferenceLines;
|
Viewerbase.displayReferenceLines = displayReferenceLines;
|
||||||
|
|
||||||
|
// getStudyMetadata
|
||||||
|
import { getStudyMetadata } from './lib/getStudyMetadata';
|
||||||
|
Viewerbase.getStudyMetadata = getStudyMetadata;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exported Namespaces (sub-namespaces)
|
* Exported Namespaces (sub-namespaces)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -167,11 +167,9 @@ export class StudyPrefetcher {
|
|||||||
|
|
||||||
getSeries(study, image) {
|
getSeries(study, image) {
|
||||||
const seriesMetadata = cornerstoneTools.metaData.get('series', image.imageId);
|
const seriesMetadata = cornerstoneTools.metaData.get('series', image.imageId);
|
||||||
if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
|
const studyMetadata = OHIF.viewerbase.getStudyMetadata(study);
|
||||||
study = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
|
|
||||||
}
|
|
||||||
|
|
||||||
return study.getSeriesByUID(seriesMetadata.seriesInstanceUid);
|
return studyMetadata.getSeriesByUID(seriesMetadata.seriesInstanceUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
getInstance(series, image) {
|
getInstance(series, image) {
|
||||||
|
|||||||
@ -9,12 +9,9 @@ import { OHIF } from 'meteor/ohif:core';
|
|||||||
|
|
||||||
export const getImageIdForImagePath = (imagePath, thumbnail=false) => {
|
export const getImageIdForImagePath = (imagePath, thumbnail=false) => {
|
||||||
const [studyInstanceUid, seriesInstanceUid, sopInstanceUid, frameIndex] = imagePath.split('_');
|
const [studyInstanceUid, seriesInstanceUid, sopInstanceUid, frameIndex] = imagePath.split('_');
|
||||||
let study = OHIF.viewer.Studies.findBy({ studyInstanceUid });
|
const study = OHIF.viewer.Studies.findBy({ studyInstanceUid });
|
||||||
if (!(study instanceof OHIF.viewerbase.metadata.StudyMetadata)) {
|
const studyMetadata = OHIF.viewerbase.getStudyMetadata(study);
|
||||||
study = new OHIF.metadata.StudyMetadata(study, study.studyInstanceUid);
|
const series = studyMetadata.getSeriesByUID(seriesInstanceUid);
|
||||||
}
|
|
||||||
|
|
||||||
const series = study.getSeriesByUID(seriesInstanceUid);
|
|
||||||
const instance = series.getInstanceByUID(sopInstanceUid);
|
const instance = series.getInstanceByUID(sopInstanceUid);
|
||||||
const imageId = OHIF.viewerbase.getImageId(instance, frameIndex, thumbnail);
|
const imageId = OHIF.viewerbase.getImageId(instance, frameIndex, thumbnail);
|
||||||
return imageId;
|
return imageId;
|
||||||
|
|||||||
12
Packages/ohif-viewerbase/client/lib/getStudyMetadata.js
Normal file
12
Packages/ohif-viewerbase/client/lib/getStudyMetadata.js
Normal 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 };
|
||||||
Loading…
Reference in New Issue
Block a user