{\n evt.stopPropagation();\n evt.preventDefault();\n }}\n onArrowsClick={onMeasurementChange}\n getStatusComponent={() =>\n _getStatusComponent({\n srDisplaySet,\n viewportIndex,\n isTracked: false,\n isRehydratable: srDisplaySet.isRehydratable,\n isLocked,\n sendTrackedMeasurementsEvent,\n })\n }\n studyData={{\n label: viewportLabel,\n useAltStyling: true,\n studyDate: formatDate(StudyDate),\n seriesDescription: SeriesDescription || '',\n patientInformation: {\n patientName: PatientName\n ? OHIF.utils.formatPN(PatientName.Alphabetic)\n : '',\n patientSex: PatientSex || '',\n patientAge: PatientAge || '',\n MRN: PatientID || '',\n thickness: SliceThickness ? `${SliceThickness.toFixed(2)}mm` : '',\n spacing:\n SpacingBetweenSlices !== undefined\n ? `${SpacingBetweenSlices.toFixed(2)}mm`\n : '',\n scanner: ManufacturerModelName || '',\n },\n }}\n />\n\n \n {getCornerstoneViewport()}\n
\n {viewportDialogState.viewportIndex === viewportIndex && (\n \n )}\n
\n {childrenWithProps}\n
\n >\n );\n}\n\nOHIFCornerstoneSRViewport.propTypes = {\n displaySets: PropTypes.arrayOf(PropTypes.object),\n viewportIndex: PropTypes.number.isRequired,\n dataSource: PropTypes.object,\n children: PropTypes.node,\n customProps: PropTypes.object,\n viewportOptions: PropTypes.object,\n servicesManager: PropTypes.instanceOf(ServicesManager).isRequired,\n extensionManager: PropTypes.instanceOf(ExtensionManager).isRequired,\n};\n\nOHIFCornerstoneSRViewport.defaultProps = {\n customProps: {},\n};\n\nasync function _getViewportReferencedDisplaySetData(\n displaySet,\n measurementSelected,\n displaySetService\n) {\n const { measurements } = displaySet;\n const measurement = measurements[measurementSelected];\n\n const { displaySetInstanceUID } = measurement;\n\n const referencedDisplaySet = displaySetService.getDisplaySetByUID(\n displaySetInstanceUID\n );\n\n const image0 = referencedDisplaySet.images[0];\n const referencedDisplaySetMetadata = {\n PatientID: image0.PatientID,\n PatientName: image0.PatientName,\n PatientSex: image0.PatientSex,\n PatientAge: image0.PatientAge,\n SliceThickness: image0.SliceThickness,\n StudyDate: image0.StudyDate,\n SeriesDescription: image0.SeriesDescription,\n SeriesInstanceUID: image0.SeriesInstanceUID,\n SeriesNumber: image0.SeriesNumber,\n ManufacturerModelName: image0.ManufacturerModelName,\n SpacingBetweenSlices: image0.SpacingBetweenSlices,\n };\n\n return { referencedDisplaySetMetadata, referencedDisplaySet };\n}\n\nfunction _getStatusComponent({\n srDisplaySet,\n viewportIndex,\n isRehydratable,\n isLocked,\n sendTrackedMeasurementsEvent,\n}) {\n const handleMouseUp = () => {\n sendTrackedMeasurementsEvent('HYDRATE_SR', {\n displaySetInstanceUID: srDisplaySet.displaySetInstanceUID,\n viewportIndex,\n });\n };\n\n const { t } = useTranslation('Common');\n const loadStr = t('LOAD');\n\n // 1 - Incompatible\n // 2 - Locked\n // 3 - Rehydratable / Open\n const state =\n isRehydratable && !isLocked ? 3 : isRehydratable && isLocked ? 2 : 1;\n let ToolTipMessage = null;\n let StatusIcon = null;\n\n switch (state) {\n case 1:\n StatusIcon = () => ;\n\n ToolTipMessage = () => (\n \n This structured report is not compatible\n
\n with this application.\n
\n );\n break;\n case 2:\n StatusIcon = () => ;\n\n ToolTipMessage = () => (\n \n This structured report is currently read-only\n
\n because you are tracking measurements in\n
\n another viewport.\n
\n );\n break;\n case 3:\n StatusIcon = () => ;\n\n ToolTipMessage = () => (\n {`Click ${loadStr} to restore measurements.`}
\n );\n }\n\n const StatusArea = () => (\n \n
\n \n SR\n
\n {state === 3 && (\n
\n {loadStr}\n
\n )}\n
\n );\n\n return (\n <>\n {ToolTipMessage && (\n } position=\"bottom-left\">\n \n \n )}\n {!ToolTipMessage && }\n >\n );\n}\n\nexport default OHIFCornerstoneSRViewport;\n"],"names":["formatDate","utils","OHIFCornerstoneSRViewport","props","children","dataSource","displaySets","viewportIndex","viewportOptions","viewportLabel","servicesManager","extensionManager","displaySetService","cornerstoneViewportService","measurementService","services","length","Error","srDisplaySet","viewportGrid","viewportGridService","useViewportGrid","viewportDialogState","viewportDialogApi","useViewportDialog","measurementSelected","setMeasurementSelected","useState","measurementCount","setMeasurementCount","activeImageDisplaySetData","setActiveImageDisplaySetData","referencedDisplaySetMetadata","setReferencedDisplaySetMetadata","isHydrated","setIsHydrated","element","setElement","viewports","activeViewportIndex","trackedMeasurements","sendTrackedMeasurementsEvent","registeredExtensionIds","includes","contextModule","getModuleEntry","tracked","useContext","context","eventName","displaySetInstanceUID","clearMeasurements","SeriesInstanceUIDs","hydrateStructuredReport","getDisplaySetsForSeries","setDisplaySetsForViewport","displaySetInstanceUIDs","setTrackingIdentifiers","useCallback","measurements","setTrackingUniqueIdentifiersForElement","map","measurement","TrackingUniqueIdentifier","onElementEnabled","evt","detail","updateViewport","newMeasurementSelected","StudyInstanceUID","sopClassUids","console","warn","async","displaySet","referencedDisplaySet","getDisplaySetByUID","image0","images","PatientID","PatientName","PatientSex","PatientAge","SliceThickness","StudyDate","SeriesDescription","SeriesInstanceUID","SeriesNumber","ManufacturerModelName","SpacingBetweenSlices","_getViewportReferencedDisplaySetData","then","viewportInfo","getViewportInfoByIndex","csViewport","getCornerstoneViewport","getViewportId","imageIdIndex","getImageIds","indexOf","imageId","setImageIdIndex","component","Component","initialImageIndex","findIndex","image","React","_extends","toolGroupId","onMeasurementChange","direction","useEffect","onDisplaySetsRemovedSubscription","subscribe","EVENTS","DISPLAY_SETS_REMOVED","activeViewport","unsubscribe","isLoaded","load","numMeasurements","isLocked","trackedSeries","childrenWithProps","child","index","key","ViewportActionBar","onDoubleClick","stopPropagation","preventDefault","onArrowsClick","getStatusComponent","isRehydratable","handleMouseUp","t","useTranslation","loadStr","state","ToolTipMessage","StatusIcon","Icon","name","StatusArea","className","onMouseUp","Tooltip","content","position","_getStatusComponent","isTracked","studyData","label","useAltStyling","studyDate","seriesDescription","patientInformation","patientName","OHIF","formatPN","Alphabetic","patientSex","patientAge","MRN","thickness","toFixed","spacing","undefined","scanner","Notification","message","type","actions","onSubmit","onOutsideClick","propTypes","PropTypes","isRequired","customProps","ServicesManager","ExtensionManager","defaultProps"],"sourceRoot":""}