ohif-viewer/extensions/default/src/utils/createRenderedRetrieve.js
2024-06-28 08:58:39 -04:00

33 lines
1.4 KiB
JavaScript

/**
* Generates the rendered URL that can be used for direct retrieve of the pixel data binary stream.
*
* @param {object} config - The configuration object.
* @param {string} config.wadoRoot - The root URL for the WADO service.
* @param {object} params - The parameters object.
* @param {string} params.tag - The tag name of the URL to retrieve.
* @param {string} params.defaultPath - The path for the pixel data URL.
* @param {object} params.instance - The instance object that the tag is in.
* @param {string} params.defaultType - The mime type of the response.
* @param {string} params.singlepart - The type of the part to retrieve.
* @param {string} params.fetchPart - Unknown parameter.
* @param {string} params.url - Unknown parameter.
* @returns {string|Promise<string>} - An absolute URL to the binary stream.
*/
const createRenderedRetrieve = (config, params) => {
const { wadoRoot } = config;
const { instance, tag = 'PixelData' } = params;
const { StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID } = instance;
const bulkDataURI = instance[tag]?.BulkDataURI ?? '';
if (bulkDataURI?.indexOf('?') !== -1) {
// The value instance has parameters, so it should not revert to the rendered
return;
}
if (tag === 'PixelData' || tag === 'EncapsulatedDocument') {
return `${wadoRoot}/studies/${StudyInstanceUID}/series/${SeriesInstanceUID}/instances/${SOPInstanceUID}/rendered`;
}
};
export default createRenderedRetrieve;