feat: Allow multiframe volumes (#3089)
* Allow multiframe volumes * feat:Allow display of multiframe volume
This commit is contained in:
parent
00e797801d
commit
fb2a60ae19
@ -17,7 +17,6 @@ export default function getCornerstoneOrientation(
|
|||||||
case CORONAL:
|
case CORONAL:
|
||||||
return Enums.OrientationAxis.CORONAL;
|
return Enums.OrientationAxis.CORONAL;
|
||||||
default:
|
default:
|
||||||
log.wanr('Choosing acquisition plane orientation');
|
|
||||||
return Enums.OrientationAxis.ACQUISITION;
|
return Enums.OrientationAxis.ACQUISITION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,9 +38,50 @@ export default function isDisplaySetReconstructable(instances) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function processMultiframe(instance) {
|
function processMultiframe(multiFrameInstance) {
|
||||||
//TODO: deal with multriframe checks! return false for now as can't reconstruct.
|
const {
|
||||||
|
PerFrameFunctionalGroupsSequence,
|
||||||
|
SharedFunctionalGroupsSequence,
|
||||||
|
} = multiFrameInstance;
|
||||||
|
|
||||||
|
// If we don't have the PixelMeasuresSequence, then the pixel spacing and
|
||||||
|
// slice thickness isn't specified or is changing and we can't reconstruct
|
||||||
|
// the dataset.
|
||||||
|
if (
|
||||||
|
!SharedFunctionalGroupsSequence ||
|
||||||
|
!SharedFunctionalGroupsSequence[0].PixelMeasuresSequence
|
||||||
|
) {
|
||||||
return { value: false };
|
return { value: false };
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that the orientation is either shared or with the allowed
|
||||||
|
// difference amount
|
||||||
|
const {
|
||||||
|
PlaneOrientationSequence: sharedOrientation,
|
||||||
|
} = SharedFunctionalGroupsSequence;
|
||||||
|
|
||||||
|
if (!sharedOrientation) {
|
||||||
|
const {
|
||||||
|
PlaneOrientationSequence: firstOrientation,
|
||||||
|
} = PerFrameFunctionalGroupsSequence[0];
|
||||||
|
|
||||||
|
if (!firstOrientation) {
|
||||||
|
console.log('No orientation information');
|
||||||
|
return { value: false };
|
||||||
|
}
|
||||||
|
// TODO - check orientation consistency
|
||||||
|
}
|
||||||
|
|
||||||
|
const frame0 = PerFrameFunctionalGroupsSequence[0];
|
||||||
|
const firstPosition =
|
||||||
|
frame0.PlanePositionSequence || frame0.CTPositionSequence;
|
||||||
|
if (!firstPosition) {
|
||||||
|
console.log('No image position information, not reconstructable');
|
||||||
|
return { value: false };
|
||||||
|
}
|
||||||
|
// TODO - check spacing consistency
|
||||||
|
|
||||||
|
return { value: true };
|
||||||
}
|
}
|
||||||
|
|
||||||
function processSingleframe(instances) {
|
function processSingleframe(instances) {
|
||||||
|
|||||||
@ -57,6 +57,25 @@ window.config = {
|
|||||||
singlepart: 'bulkdata,video,pdf',
|
singlepart: 'bulkdata,video,pdf',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
friendlyName: 'dcmjs DICOMWeb Server',
|
||||||
|
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
||||||
|
sourceName: 'shared',
|
||||||
|
configuration: {
|
||||||
|
name: 'shared',
|
||||||
|
qidoRoot: 'https://domvja9iplmyu.cloudfront.net/dicomweb',
|
||||||
|
wadoRoot: 'https://domvja9iplmyu.cloudfront.net/dicomweb',
|
||||||
|
qidoSupportsIncludeField: false,
|
||||||
|
supportsReject: false,
|
||||||
|
imageRendering: 'wadors',
|
||||||
|
thumbnailRendering: 'wadors',
|
||||||
|
enableStudyLazyLoad: true,
|
||||||
|
supportsFuzzyMatching: false,
|
||||||
|
supportsWildcard: true,
|
||||||
|
staticWado: true,
|
||||||
|
singlepart: 'bulkdata,video,pdf',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
friendlyName: 'E2E Test Data',
|
friendlyName: 'E2E Test Data',
|
||||||
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user