55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
import getWADORSImageId from './getWADORSImageId';
|
|
|
|
function buildInstanceWadoUrl(config, instance) {
|
|
const { StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID } = instance;
|
|
const params = [];
|
|
|
|
params.push('requestType=WADO');
|
|
params.push(`studyUID=${StudyInstanceUID}`);
|
|
params.push(`seriesUID=${SeriesInstanceUID}`);
|
|
params.push(`objectUID=${SOPInstanceUID}`);
|
|
params.push('contentType=application/dicom');
|
|
params.push('transferSyntax=*');
|
|
|
|
const paramString = params.join('&');
|
|
|
|
return `${config.wadoUriRoot}?${paramString}`;
|
|
}
|
|
|
|
/**
|
|
* 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 default function getImageId({ instance, frame, config, thumbnail = false }) {
|
|
if (!instance) {
|
|
return;
|
|
}
|
|
|
|
if (instance.imageId && frame === undefined) {
|
|
return instance.imageId;
|
|
}
|
|
|
|
if (instance.url) {
|
|
return instance.url;
|
|
}
|
|
|
|
const renderingAttr = thumbnail ? 'thumbnailRendering' : 'imageRendering';
|
|
|
|
if (!config[renderingAttr] || config[renderingAttr] === 'wadouri') {
|
|
const wadouri = buildInstanceWadoUrl(config, instance);
|
|
|
|
let imageId = 'dicomweb:' + wadouri;
|
|
if (frame !== undefined) {
|
|
imageId += '&frame=' + frame;
|
|
}
|
|
|
|
return imageId;
|
|
} else {
|
|
return getWADORSImageId(instance, config, frame); // WADO-RS Retrieve Frame
|
|
}
|
|
}
|