Add Timepoint name to viewport overlay
This commit is contained in:
parent
03dd8af731
commit
e957968494
@ -66,6 +66,9 @@ Template.viewer.onCreated(() => {
|
|||||||
|
|
||||||
instance.data.timepointApi = new OHIF.measurements.TimepointApi(instance.data.currentTimepointId);
|
instance.data.timepointApi = new OHIF.measurements.TimepointApi(instance.data.currentTimepointId);
|
||||||
|
|
||||||
|
// TODO: Find a better way to pass this to the ViewportOverlay
|
||||||
|
OHIF.viewer.timepointApi = instance.data.timepointApi;
|
||||||
|
|
||||||
const patientId = instance.data.studies[0].patientId;
|
const patientId = instance.data.studies[0].patientId;
|
||||||
const filter = {
|
const filter = {
|
||||||
patientId
|
patientId
|
||||||
|
|||||||
@ -1,26 +1,74 @@
|
|||||||
<template name="longitudinalViewportOverlay">
|
<template name="longitudinalViewportOverlay">
|
||||||
<div class="imageViewerViewportOverlay noselect {{#if gt numImages 1}}controlsVisible{{/if}}">
|
<div class="imageViewerViewportOverlay noselect {{#if gt numImages 1}}controlsVisible{{/if}}">
|
||||||
<div class="topleft dicomTag">
|
{{#unless tagDisplaySpecified}}
|
||||||
<div>{{formatPN patientName}}</div>
|
<div class="topleft dicomTag">
|
||||||
<div>{{patientId}}</div>
|
<div>{{formatPN patientName}}</div>
|
||||||
<div class='timepointName'>{{timepointName}}</div>
|
<div>{{patientId}}</div>
|
||||||
</div>
|
<div class='timepointName'>{{timepointName}}</div>
|
||||||
<div class="topright dicomTag">
|
</div>
|
||||||
<div>{{studyDescription}}</div>
|
<div class="topright dicomTag">
|
||||||
<div>{{formatDA studyDate}} {{formatTM studyTime}}</div>
|
<div>{{studyDescription}}</div>
|
||||||
</div>
|
<div>{{formatDA studyDate}} {{formatTM studyTime}}</div>
|
||||||
<div class="bottomright dicomTag">
|
</div>
|
||||||
<div>Zoom: {{formatNumberPrecision zoom 2}}%</div>
|
<div class="bottomright dicomTag">
|
||||||
<div>{{compression}}</div>
|
<div>{{#if zoom}}Zoom: {{formatNumberPrecision zoom 0}}%{{/if}}</div>
|
||||||
<div>{{wwwc}}</div>
|
<div class="compressionIndicator">{{compression}}</div>
|
||||||
</div>
|
<div>{{wwwc}}</div>
|
||||||
<div class="bottomleft dicomTag">
|
</div>
|
||||||
<div>Ser: {{seriesNumber}}</div>
|
<div class="bottomleft dicomTag">
|
||||||
<div>{{#if gt numImages 1}}Img: {{instanceNumber}} ({{imageIndex}}/{{numImages}}){{/if}}</div>
|
<div>{{#if seriesNumber}}Ser: {{seriesNumber}}{{/if}}</div>
|
||||||
<div>{{frameRate}}</div>
|
<div>{{#if gt numImages 1}}Img: {{instanceNumber}} ({{imageIndex}}/{{numImages}}){{/if}}</div>
|
||||||
<div>{{imageDimensions}}</div>
|
<div>{{#if frameRate}}{{formatNumberPrecision frameRate 2}} FPS{{/if}}</div>
|
||||||
<div>{{seriesDescription}}</div>
|
<div>{{imageDimensions}}</div>
|
||||||
</div>
|
<div>
|
||||||
|
<span>{{#if location}}Loc: {{formatNumberPrecision location 2}} mm{{/if}}</span>
|
||||||
|
<span>{{#if thickness}}Thick: {{formatNumberPrecision thickness 2}} mm{{/if}}</span>
|
||||||
|
<span>{{#if spacingBetweenSlices}}Spacing: {{formatNumberPrecision spacingBetweenSlices 2}} mm{{/if}}</span>
|
||||||
|
</div>
|
||||||
|
<div>{{seriesDescription}}</div>
|
||||||
|
</div>
|
||||||
|
{{/unless}}
|
||||||
|
|
||||||
|
{{#if tagDisplayRightOnly}}
|
||||||
|
<div class="topright dicomTag">
|
||||||
|
<div>{{formatPN patientName}}</div>
|
||||||
|
<div>{{patientId}}</div>
|
||||||
|
<div class='timepointName'>{{timepointName}}</div>
|
||||||
|
<div>{{studyDescription}}</div>
|
||||||
|
<div>{{formatDA studyDate}} {{formatTM studyTime}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottomright dicomTag">
|
||||||
|
<div>{{#if seriesNumber}}Ser: {{seriesNumber}}{{/if}}</div>
|
||||||
|
<div>{{#if gt numImages 1}}Img: {{instanceNumber}} ({{imageIndex}}/{{numImages}}){{/if}}</div>
|
||||||
|
<div>{{#if frameRate}}{{formatNumberPrecision frameRate 2}} FPS{{/if}}</div>
|
||||||
|
<div>{{imageDimensions}}</div>
|
||||||
|
<div>{{seriesDescription}}</div>
|
||||||
|
<div>{{#if zoom}}Zoom: {{formatNumberPrecision zoom 0}}%{{/if}}</div>
|
||||||
|
<div class="compressionIndicator">{{compression}}</div>
|
||||||
|
<div>{{wwwc}}</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if tagDisplayLeftOnly}}
|
||||||
|
<div class="topleft dicomTag">
|
||||||
|
<div>{{formatPN patientName}}</div>
|
||||||
|
<div>{{patientId}}</div>
|
||||||
|
<div class='timepointName'>{{timepointName}}</div>
|
||||||
|
<div>{{studyDescription}}</div>
|
||||||
|
<div>{{formatDA studyDate}} {{formatTM studyTime}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottomleft dicomTag">
|
||||||
|
<div>{{#if seriesNumber}}Ser: {{seriesNumber}}{{/if}}</div>
|
||||||
|
<div>{{#if gt numImages 1}}Img: {{instanceNumber}} ({{imageIndex}}/{{numImages}}){{/if}}</div>
|
||||||
|
<div>{{#if frameRate}}{{formatNumberPrecision frameRate 2}} FPS{{/if}}</div>
|
||||||
|
<div>{{imageDimensions}}</div>
|
||||||
|
<div>{{seriesDescription}}</div>
|
||||||
|
<div>{{#if zoom}}Zoom: {{formatNumberPrecision zoom 0}}%{{/if}}</div>
|
||||||
|
<div class="compressionIndicator">{{compression}}</div>
|
||||||
|
<div>{{wwwc}}</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if gt numImages 1}}
|
{{#if gt numImages 1}}
|
||||||
{{>imageControls imageIndex=imageIndex numImages=numImages}}
|
{{>imageControls imageIndex=imageIndex numImages=numImages}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@ -8,17 +8,22 @@ Template.longitudinalViewportOverlay.replaces(defaultTemplate);
|
|||||||
// HTML of this template is replaced with that of longitudinalViewportOverlay
|
// HTML of this template is replaced with that of longitudinalViewportOverlay
|
||||||
Template[defaultTemplate].helpers({
|
Template[defaultTemplate].helpers({
|
||||||
timepointName: function() {
|
timepointName: function() {
|
||||||
var data = this;
|
const instance = Template.instance();
|
||||||
const timepointApi = Template.instance().timepointApi;
|
const studyInstanceUid = instance.data.studyInstanceUid;
|
||||||
|
|
||||||
|
// TODO: Find a better way to obtain the timepointApi from the viewer.js template
|
||||||
|
const timepointApi = OHIF.viewer.timepointApi;
|
||||||
if (!timepointApi) {
|
if (!timepointApi) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const timepoint = timepointApi.study(data.studyInstanceUid);
|
const timepoints = timepointApi.study(studyInstanceUid);
|
||||||
if (!timepoint) {
|
if (!timepoints || !timepoints.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const timepoint = timepoints[0];
|
||||||
|
|
||||||
return timepointApi.name(timepoint);
|
return timepointApi.name(timepoint);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue
Block a user