33 lines
1.4 KiB
JavaScript
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;
|