fix: OHIF 3.9 Recovery 3 (#4697)

Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: Chao Sui <chao.sui@curvebeamai.com>
Co-authored-by: Jaseel-trenser <108331536+Jaseel-trenser@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2025-01-21 10:07:43 -05:00
1 parent b19d7af9ff
commit 5d4f2e2a8e
35 files changed
+238 -204

No files matched your search

@@ -142,7 +142,9 @@ function createDicomLocalApi(dicomLocalConfig) {
study.series.forEach(aSeries => {
const { SeriesInstanceUID } = aSeries;
aSeries.instances.forEach(instance => {
const isMultiframe = aSeries.instances[0].NumberOfFrames > 1;
aSeries.instances.forEach((instance, index) => {
const {
url: imageId,
StudyInstanceUID,
@@ -151,22 +153,14 @@ function createDicomLocalApi(dicomLocalConfig) {
} = instance;
instance.imageId = imageId;
const numberOfFrames = instance.NumberOfFrames || 1;
// Process all frames consistently, whether single or multiframe
for (let i = 0; i < numberOfFrames; i++) {
const frameNumber = i + 1;
const frameImageId = implementation.getImageIdsForInstance({
instance,
frame: frameNumber,
});
// Add imageId specific mapping to this data as the URL isn't necessarily WADO-URI.
metadataProvider.addImageIdToUIDs(frameImageId, {
StudyInstanceUID,
SeriesInstanceUID,
SOPInstanceUID,
frameNumber: numberOfFrames > 1 ? frameNumber : undefined,
});
}
// Add imageId specific mapping to this data as the URL isn't necessarily WADO-URI.
metadataProvider.addImageIdToUIDs(imageId, {
StudyInstanceUID,
SeriesInstanceUID,
SOPInstanceUID,
frameIndex: isMultiframe ? index : 1,
});
});
DicomMetadataStore._broadcastEvent(EVENTS.INSTANCES_ADDED, {
@@ -30,6 +30,7 @@ function WrappedPanelStudyBrowser({ commandsManager, extensionManager, servicesM
return (
<PanelStudyBrowser
servicesManager={servicesManager}
commandsManager={commandsManager}
dataSource={dataSource}
getImageSrc={_getImageSrcFromImageId}
getStudiesForPatientByMRN={_getStudiesForPatientByMRN}
@@ -63,7 +63,7 @@ const defaultProtocol = {
// It has no affect if nothing is specified in the URL.
{
attribute: 'isDisplaySetFromUrl',
weight: 10,
weight: 20,
constraint: {
equals: true,
},
@@ -24,7 +24,7 @@ const defaultDisplaySetSelector = {
// It has no affect if nothing is specified in the URL.
{
attribute: 'isDisplaySetFromUrl',
weight: 10,
weight: 20,
constraint: {
equals: true,
},
@@ -56,7 +56,7 @@ const priorDisplaySetSelector = {
// It has no affect if nothing is specified in the URL.
{
attribute: 'isDisplaySetFromUrl',
weight: 10,
weight: 20,
constraint: {
equals: true,
},
@@ -50,7 +50,7 @@ const hpMN: Types.HangingProtocol.Protocol = {
// It has no affect if nothing is specified in the URL.
{
attribute: 'isDisplaySetFromUrl',
weight: 10,
weight: 20,
constraint: {
equals: true,
},
@@ -43,7 +43,7 @@ const hpScale: Types.HangingProtocol.Protocol = {
// It has no affect if nothing is specified in the URL.
{
attribute: 'isDisplaySetFromUrl',
weight: 10,
weight: 20,
constraint: {
equals: true,
},
@@ -38,7 +38,7 @@ function usePatientInfo(servicesManager: AppTypes.ServicesManager) {
}
setPatientInfo({
PatientID: instance.PatientID || null,
PatientName: instance.PatientName ? formatPN(instance.PatientName.Alphabetic) : null,
PatientName: instance.PatientName ? formatPN(instance.PatientName) : null,
PatientSex: instance.PatientSex || null,
PatientDOB: formatDate(instance.PatientBirthDate) || null,
});
@@ -2,7 +2,7 @@ import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
const PRESENTATION_TYPE_ID = 'viewportsByPositionId';
const DEBUG_STORE = true;
const DEBUG_STORE = false;
/**
* Represents the state and actions for managing viewports by position.