fix: panel issues and mpr button (IDC2122-IDC2117)
This commit is contained in:
parent
d282f72d75
commit
32022f51f2
@ -15,7 +15,7 @@ const OHIFDicomRTStructSopClassHandler = {
|
|||||||
id: 'OHIFDicomRTStructSopClassHandler',
|
id: 'OHIFDicomRTStructSopClassHandler',
|
||||||
type: MODULE_TYPES.SOP_CLASS_HANDLER,
|
type: MODULE_TYPES.SOP_CLASS_HANDLER,
|
||||||
sopClassUIDs,
|
sopClassUIDs,
|
||||||
getDisplaySetFromSeries: function(
|
getDisplaySetFromSeries: function (
|
||||||
series,
|
series,
|
||||||
study,
|
study,
|
||||||
dicomWebClient,
|
dicomWebClient,
|
||||||
@ -71,11 +71,11 @@ const OHIFDicomRTStructSopClassHandler = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rtStructDisplaySet.getSourceDisplaySet = function(studies) {
|
rtStructDisplaySet.getSourceDisplaySet = function (studies) {
|
||||||
return getSourceDisplaySet(studies, rtStructDisplaySet);
|
return getSourceDisplaySet(studies, rtStructDisplaySet);
|
||||||
};
|
};
|
||||||
|
|
||||||
rtStructDisplaySet.load = function(referencedDisplaySet, studies) {
|
rtStructDisplaySet.load = function (referencedDisplaySet, studies) {
|
||||||
return loadRTStruct(
|
return loadRTStruct(
|
||||||
rtStructDisplaySet,
|
rtStructDisplaySet,
|
||||||
referencedDisplaySet,
|
referencedDisplaySet,
|
||||||
|
|||||||
@ -79,6 +79,8 @@ const RTPanel = ({
|
|||||||
* without subscribing to external events.
|
* without subscribing to external events.
|
||||||
*/
|
*/
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
updateStructureSets();
|
||||||
|
|
||||||
document.addEventListener('extensiondicomrtrtloaded', updateStructureSets);
|
document.addEventListener('extensiondicomrtrtloaded', updateStructureSets);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
@ -96,6 +96,11 @@ export default async function loadRTStruct(
|
|||||||
imageIdSopInstanceUidPairs
|
imageIdSopInstanceUidPairs
|
||||||
);
|
);
|
||||||
const imageId = _getImageId(imageIdSopInstanceUidPairs, sopInstanceUID);
|
const imageId = _getImageId(imageIdSopInstanceUidPairs, sopInstanceUID);
|
||||||
|
|
||||||
|
if (!imageId) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
const imageIdSpecificToolData = _getOrCreateImageIdSpecificToolData(
|
const imageIdSpecificToolData = _getOrCreateImageIdSpecificToolData(
|
||||||
toolState,
|
toolState,
|
||||||
imageId,
|
imageId,
|
||||||
@ -294,7 +299,7 @@ const _getImageId = (imageIdSopInstanceUidPairs, sopInstanceUID) => {
|
|||||||
imageIdSopInstanceUidPairsEntry.sopInstanceUID === sopInstanceUID
|
imageIdSopInstanceUidPairsEntry.sopInstanceUID === sopInstanceUID
|
||||||
);
|
);
|
||||||
|
|
||||||
return imageIdSopInstanceUidPairsEntry.imageId;
|
return imageIdSopInstanceUidPairsEntry ? imageIdSopInstanceUidPairsEntry.imageId : null;
|
||||||
};
|
};
|
||||||
|
|
||||||
function _getImageIdSopInstanceUidPairsForDisplaySet(
|
function _getImageIdSopInstanceUidPairsForDisplaySet(
|
||||||
|
|||||||
@ -41,14 +41,17 @@ const _isDisplaySetReconstructable = (viewportSpecificData = {}, activeViewportI
|
|||||||
// A better heuristic would be checking 4D tags, e.g. the presence of multiple TemporalPositionIdentifier values.
|
// A better heuristic would be checking 4D tags, e.g. the presence of multiple TemporalPositionIdentifier values.
|
||||||
// However, some studies (e.g. https://github.com/OHIF/Viewers/issues/2113) do not have such tags.
|
// However, some studies (e.g. https://github.com/OHIF/Viewers/issues/2113) do not have such tags.
|
||||||
|
|
||||||
for (let ii = 0; ii < displaySet.numImageFrames; ++ii){
|
for (let ii = 0; ii < displaySet.numImageFrames; ++ii) {
|
||||||
const imageIdControl = displaySet.images[ii].getImageId()
|
const image = displaySet.images[ii];
|
||||||
|
if (!image) continue;
|
||||||
|
|
||||||
|
const imageIdControl = image.getImageId()
|
||||||
const instanceMetadataControl = cornerstone.metaData.get('instance', imageIdControl)
|
const instanceMetadataControl = cornerstone.metaData.get('instance', imageIdControl)
|
||||||
|
|
||||||
if (!instanceMetadataControl ||
|
if (!instanceMetadataControl ||
|
||||||
instanceMetadataControl === undefined ||
|
instanceMetadataControl === undefined ||
|
||||||
!instanceMetadataControl.ImagePositionPatient ||
|
!instanceMetadataControl.ImagePositionPatient ||
|
||||||
instanceMetadataControl.ImagePositionPatient === undefined ) {
|
instanceMetadataControl.ImagePositionPatient === undefined) {
|
||||||
// if ImagePositionPatient is missing, skip the 4D datasets check.
|
// if ImagePositionPatient is missing, skip the 4D datasets check.
|
||||||
// do not return false, because it could be a 3D dataset.
|
// do not return false, because it could be a 3D dataset.
|
||||||
continue;
|
continue;
|
||||||
@ -58,8 +61,11 @@ const _isDisplaySetReconstructable = (viewportSpecificData = {}, activeViewportI
|
|||||||
let yImagePositionPatientControl = instanceMetadataControl.ImagePositionPatient[1];
|
let yImagePositionPatientControl = instanceMetadataControl.ImagePositionPatient[1];
|
||||||
let zImagePositionPatientControl = instanceMetadataControl.ImagePositionPatient[2];
|
let zImagePositionPatientControl = instanceMetadataControl.ImagePositionPatient[2];
|
||||||
|
|
||||||
for (let jj = ii + 1; jj < displaySet.numImageFrames; ++jj){
|
for (let jj = ii + 1; jj < displaySet.numImageFrames; ++jj) {
|
||||||
const imageId = displaySet.images[jj].getImageId()
|
const image = displaySet.images[jj];
|
||||||
|
if (!image) continue;
|
||||||
|
|
||||||
|
const imageId = image.getImageId()
|
||||||
const instanceMetadata = cornerstone.metaData.get('instance', imageId)
|
const instanceMetadata = cornerstone.metaData.get('instance', imageId)
|
||||||
|
|
||||||
if (!instanceMetadata ||
|
if (!instanceMetadata ||
|
||||||
@ -76,8 +82,8 @@ const _isDisplaySetReconstructable = (viewportSpecificData = {}, activeViewportI
|
|||||||
let zImagePositionPatient = instanceMetadata.ImagePositionPatient[2];
|
let zImagePositionPatient = instanceMetadata.ImagePositionPatient[2];
|
||||||
|
|
||||||
if (xImagePositionPatientControl === xImagePositionPatient &&
|
if (xImagePositionPatientControl === xImagePositionPatient &&
|
||||||
yImagePositionPatientControl === yImagePositionPatient &&
|
yImagePositionPatientControl === yImagePositionPatient &&
|
||||||
zImagePositionPatientControl === zImagePositionPatient){
|
zImagePositionPatientControl === zImagePositionPatient) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user