* fix: 🐛 Local file: failing when retrieving segmentation data Fix segmentation data retrieval issues for local file. Changed from fecthing to use cornerstone loadAndCache method BREAKING CHANGE: DICOM Seg Closes: part of #838 * Switch SEG retrieval to WADO-RS * Forgot a debugger * refactor: 💡 Code refactor. Minor changes into methods * fix: 🐛 Load local files: PDF Items: 1. FileLoaderService: used for serveral operations on local files(load it, get list of studies, group them, accepting dicom and pdf) 2. DicomLoaderService: used for loading dicom based on dataset and studies. Depending on type of dicom loader might change. WIP 3. Refactor PDF and handleSegmentationStorage to use DicomLoaderService * fix: 🐛 Code review * fix: 🐛 Code review. Changed:Folder organization and dicom file Move fileLoaderService and others to a specific folder. When loading dicom file change to only retrieve the file(not use cornerstone to cache or anything else). * fix: 🐛 Code review. Move dicomLoaderService to core Moved dicomLoaderService to ohif/core and localFileLoaders to a specific folder. * fix: 🐛 Code review Simplified method to get study for dicom file. Added error handling on file loading. DicomLoaderService to be exposed on ohif/core/utils instead. * fix: 🐛 Reduce local load to one method only Reduced local file load to one method only * fix: 🐛 HTML to use dicomLoaderService. Prefer wadors than (uri) * fix: 🐛 Code implementation for multiframe files * fix: 🐛 Code review. Default local loader to dicom Closes: 838 * fix: 🐛 Code review. Use relative path to require DICOMWeb Closes: 838 * fix: 🐛 Code review. Fix unit test. Added DicomLoaderService mod Closes: 838 * fix: 🐛 Code review. Add 'Seg' on left thumb When getting/creating dataset get modality for file/image read Closes: 838
38 lines
958 B
JavaScript
38 lines
958 B
JavaScript
function getWADORSImageUrl(instance, frame) {
|
|
let wadorsuri = instance.wadorsuri;
|
|
|
|
if (!wadorsuri) {
|
|
return;
|
|
}
|
|
|
|
// Use null to obtain an imageId which represents the instance
|
|
if (frame === null) {
|
|
wadorsuri = wadorsuri.replace(/frames\/(\d+)/, '');
|
|
} else {
|
|
// We need to sum 1 because WADO-RS frame number is 1-based
|
|
frame = frame ? parseInt(frame) + 1 : 1;
|
|
|
|
// Replaces /frame/1 by /frame/{frame}
|
|
wadorsuri = wadorsuri.replace(/frames\/(\d+)/, `frames/${frame}`);
|
|
}
|
|
|
|
return wadorsuri;
|
|
}
|
|
|
|
/**
|
|
* Obtain an imageId for Cornerstone based on the WADO-RS scheme
|
|
*
|
|
* @param {object} instanceMetada metadata object (InstanceMetadata)
|
|
* @param {(string\|number)} [frame] the frame number
|
|
* @returns {string} The imageId to be used by Cornerstone
|
|
*/
|
|
export default function getWADORSImageId(instance, frame) {
|
|
const uri = getWADORSImageUrl(instance, frame);
|
|
|
|
if (!uri) {
|
|
return;
|
|
}
|
|
|
|
return `wadors:${uri}`;
|
|
}
|