OHIF-33: Adding thumbnailRendering config
This commit is contained in:
parent
fe6a1a9884
commit
1798a87d3f
@ -88,10 +88,10 @@ export class OHIFInstanceMetadata extends InstanceMetadata {
|
||||
}
|
||||
|
||||
// Override
|
||||
getImageId(frame) {
|
||||
getImageId(frame, thumbnail) {
|
||||
// If _imageID is not cached, create it
|
||||
if (this._imageId === null) {
|
||||
this._imageId = Viewerbase.getImageId(this.getData(), frame);
|
||||
this._imageId = Viewerbase.getImageId(this.getData(), frame, thumbnail);
|
||||
}
|
||||
|
||||
return this._imageId;
|
||||
|
||||
@ -48,6 +48,37 @@ function buildUrl(server, studyInstanceUid) {
|
||||
return server.wadoRoot + '/studies/' + studyInstanceUid + '/metadata';
|
||||
}
|
||||
|
||||
/** Returns a WADO url for an instance
|
||||
*
|
||||
* @param studyInstanceUid
|
||||
* @param seriesInstanceUid
|
||||
* @param sopInstanceUid
|
||||
* @returns {string}
|
||||
*/
|
||||
function buildInstanceWadoUrl(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid) {
|
||||
const params = [];
|
||||
|
||||
params.push('requestType=WADO');
|
||||
params.push(`studyUID=${studyInstanceUid}`);
|
||||
params.push(`seriesUID=${seriesInstanceUid}`);
|
||||
params.push(`objectUID=${sopInstanceUid}`);
|
||||
params.push('contentType=application%2Fdicom');
|
||||
params.push('transferSyntax=*');
|
||||
|
||||
return `${server.wadoUriRoot}?${params.join('&')}`;
|
||||
}
|
||||
|
||||
function buildInstanceWadoRsUri(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid) {
|
||||
return `${server.wadoRoot}/studies/${studyInstanceUid}/series/${seriesInstanceUid}/instances/${sopInstanceUid}`
|
||||
}
|
||||
|
||||
function buildInstanceFrameWadoRsUri(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid, frame) {
|
||||
const baseWadoRsUri = buildInstanceWadoRsUri(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid);
|
||||
frame = frame != null || 1;
|
||||
|
||||
return `${baseWadoRsUri}/frames/${frame}`
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses the SourceImageSequence, if it exists, in order
|
||||
* to return a ReferenceSOPInstanceUID. The ReferenceSOPInstanceUID
|
||||
@ -174,6 +205,10 @@ function resultDataToStudyMetadata(server, studyInstanceUid, resultData) {
|
||||
|
||||
var sopInstanceUid = DICOMWeb.getString(instance['00080018']);
|
||||
|
||||
const wadouri = buildInstanceWadoUrl(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid);
|
||||
const baseWadoRsUri = buildInstanceWadoRsUri(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid);
|
||||
const wadorsuri = buildInstanceFrameWadoRsUri(server, studyInstanceUid, seriesInstanceUid, sopInstanceUid);
|
||||
|
||||
var instanceSummary = {
|
||||
imageType: DICOMWeb.getString(instance['00080008']),
|
||||
sopClassUid: DICOMWeb.getString(instance['00080016']),
|
||||
@ -217,7 +252,11 @@ function resultDataToStudyMetadata(server, studyInstanceUid, resultData) {
|
||||
lossyImageCompressionMethod: DICOMWeb.getString(instance['00282114']),
|
||||
echoNumber: DICOMWeb.getString(instance['00180086']),
|
||||
contrastBolusAgent: DICOMWeb.getString(instance['00180010']),
|
||||
baseWadoRsUri: server.wadoRoot + '/studies/' + studyInstanceUid + '/series/' + seriesInstanceUid + '/instances/' + sopInstanceUid
|
||||
baseWadoRsUri: baseWadoRsUri,
|
||||
wadouri: WADOProxy.convertURL(wadouri, server.requestOptions),
|
||||
wadorsuri: WADOProxy.convertURL(wadorsuri),
|
||||
imageRendering: server.imageRendering,
|
||||
thumbnailRendering: server.thumbnailRendering,
|
||||
};
|
||||
|
||||
// Get additional information if the instance uses "PALETTE COLOR" photometric interpretation
|
||||
@ -236,12 +275,6 @@ function resultDataToStudyMetadata(server, studyInstanceUid, resultData) {
|
||||
}
|
||||
}
|
||||
|
||||
if (server.imageRendering === 'wadouri') {
|
||||
instanceSummary.wadouri = WADOProxy.convertURL(server.wadoUriRoot + '?requestType=WADO&studyUID=' + studyInstanceUid + '&seriesUID=' + seriesInstanceUid + '&objectUID=' + sopInstanceUid + '&contentType=application%2Fdicom&transferSyntax=*', server.requestOptions);
|
||||
} else {
|
||||
instanceSummary.wadorsuri = WADOProxy.convertURL(server.wadoRoot + '/studies/' + studyInstanceUid + '/series/' + seriesInstanceUid + '/instances/' + sopInstanceUid + '/frames/1');
|
||||
}
|
||||
|
||||
series.instances.push(instanceSummary);
|
||||
|
||||
});
|
||||
|
||||
@ -24,7 +24,7 @@ Template.imageThumbnail.onCreated(() => {
|
||||
imageIndex = 0;
|
||||
}
|
||||
|
||||
return imageInstance.getImageId();
|
||||
return imageInstance.getImageId(imageIndex, true);
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@ -4,10 +4,11 @@ import { getWADORSImageId } from './getWADORSImageId';
|
||||
* Obtain an imageId for Cornerstone from an image instance
|
||||
*
|
||||
* @param instance
|
||||
* @param frame
|
||||
* #param thumbnail
|
||||
* @returns {string} The imageId to be used by Cornerstone
|
||||
*/
|
||||
export function getImageId(instance, frame) {
|
||||
|
||||
export function getImageId(instance, frame, thumbnail) {
|
||||
if (!instance) {
|
||||
return;
|
||||
}
|
||||
@ -16,15 +17,17 @@ export function getImageId(instance, frame) {
|
||||
return instance.url;
|
||||
}
|
||||
|
||||
if (instance.wadouri) {
|
||||
const renderingAttr = thumbnail ? 'thumbnailRendering' : 'imageRendering';
|
||||
|
||||
if (instance[renderingAttr] === 'wadouri') {
|
||||
var imageId = 'dicomweb:' + instance.wadouri;
|
||||
|
||||
if (frame !== undefined) {
|
||||
imageId += '&frame=' + frame;
|
||||
}
|
||||
|
||||
return imageId;
|
||||
} else {
|
||||
// TODO= Check multiframe image support with WADO-RS
|
||||
return getWADORSImageId(instance, frame); // WADO-RS Retrieve Frame
|
||||
return getWADORSImageId(instance, frame, thumbnail); // WADO-RS Retrieve Frame
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ class ImageMetadataBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
formatWADOREImageUrl = function(wadorsuri, frame) {
|
||||
formatWADORSImageUrl = function(wadorsuri, frame) {
|
||||
// We need to sum 1 because WADO-RS frame number is 1-based
|
||||
frame = (frame || 0) + 1;
|
||||
|
||||
@ -61,7 +61,7 @@ formatWADOREImageUrl = function(wadorsuri, frame) {
|
||||
* @returns {string} The imageId to be used by Cornerstone
|
||||
*/
|
||||
export function getWADORSImageId(instance, frame) {
|
||||
const uri = formatWADOREImageUrl(instance.wadorsuri, frame);
|
||||
const uri = formatWADORSImageUrl(instance.wadorsuri, frame);
|
||||
const imageId = `wadors:${uri}`;
|
||||
|
||||
const imageMetadata = new ImageMetadataBuilder()
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
"wadoRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs",
|
||||
"qidoSupportsIncludeField": false,
|
||||
"imageRendering": "wadors",
|
||||
"thumbnailRendering": "wadors",
|
||||
"requestOptions": {
|
||||
"auth": "admin:admin",
|
||||
"logRequests": true,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user