@ohif/app 3.12.0-beta.41 → 3.12.0-beta.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/{1447.bundle.e01fc0a6bedb558ddbbd.js → 1447.bundle.3c71e9ea053b7069b73e.js} +2 -2
  2. package/dist/{4113.bundle.35b2bf02f79a9705f3de.js → 4113.bundle.3edfb5a8a5aab9679211.js} +101 -49
  3. package/dist/{7656.bundle.895648e6ae0045998bf9.js → 7656.bundle.3d4e565ee35e891f3b76.js} +15 -8
  4. package/dist/{app.bundle.7f8c13ed1319c8a7049a.js → app.bundle.3ddff05a929e648bc39b.js} +190 -27
  5. package/dist/app.bundle.css +1 -1
  6. package/dist/index.html +1 -1
  7. package/dist/sw.js +1 -1
  8. package/package.json +20 -20
  9. /package/dist/{1459.bundle.bc37d11dc7f2c4122619.js → 1459.bundle.fb8d3e9b86d6db3d2baa.js} +0 -0
  10. /package/dist/{1604.bundle.a2789e3171b7f5cda06f.js → 1604.bundle.4bb34d57bfd5050b9b03.js} +0 -0
  11. /package/dist/{1807.bundle.ffd600f15e0545556f34.js → 1807.bundle.63c05523037c24c627e4.js} +0 -0
  12. /package/dist/{1919.bundle.c2ff3b06a6cfae9aad12.js → 1919.bundle.c1a2b483fdcd10d2e8ee.js} +0 -0
  13. /package/dist/{213.bundle.93c68a8e8a98fed04614.js → 213.bundle.419b1126df29ff894196.js} +0 -0
  14. /package/dist/{2243.bundle.76cfcf962c371942d1d8.js → 2243.bundle.6262071c8202d60d9e8f.js} +0 -0
  15. /package/dist/{2424.bundle.2c5ba1c091efa1977f5b.js → 2424.bundle.b35da11dfb95519a14a8.js} +0 -0
  16. /package/dist/{414.bundle.0b8d3166cc869e4c5ab5.js → 414.bundle.28e014952a93b6e6b58e.js} +0 -0
  17. /package/dist/{5457.bundle.d8bbca1928f328800d43.js → 5457.bundle.4d46dae65f6ff8686af3.js} +0 -0
  18. /package/dist/{5485.bundle.2bc2cffc4d55990d634a.js → 5485.bundle.a6b4e8afb47c331a8dcc.js} +0 -0
  19. /package/dist/{6027.bundle.91791f3f8272c71a3493.js → 6027.bundle.96d1d0a4c04074ff731b.js} +0 -0
  20. /package/dist/{6201.bundle.2c76115f5574dfc700bf.js → 6201.bundle.03852e3e4812fa47c288.js} +0 -0
  21. /package/dist/{6991.bundle.8afb532d189985a8bf69.js → 6991.bundle.4488b5fd30b74768c464.js} +0 -0
  22. /package/dist/{7197.bundle.add4eca11793601af89d.js → 7197.bundle.501245e2a7a876575e2f.js} +0 -0
  23. /package/dist/{7639.bundle.47b22290338b84c820fa.js → 7639.bundle.a6afd7326c87e1c8df70.js} +0 -0
  24. /package/dist/{810.bundle.b781054d2600923bf4c0.js → 810.bundle.9df1fe8a988f0ebcd390.js} +0 -0
  25. /package/dist/{85.bundle.90069f6ed46fcad1fa29.js → 85.bundle.e0e7e67dcf5e01311986.js} +0 -0
  26. /package/dist/{8558.bundle.8065fa8a2be98f7b55a7.js → 8558.bundle.8131ec4e6f5f45f561fc.js} +0 -0
  27. /package/dist/{8815.bundle.9b1ff0a9c38831063b54.js → 8815.bundle.e59565eceae997a0afdf.js} +0 -0
  28. /package/dist/{934.bundle.656c67918146c2882aa4.js → 934.bundle.ffa8ecef7b8d34b0dd66.js} +0 -0
@@ -10371,8 +10371,8 @@ function AboutModalDefault() {
10371
10371
  name
10372
10372
  } = (0,browser_detect_es5/* default */.A)();
10373
10373
  const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
10374
- const versionNumber = "3.12.0-beta.41";
10375
- const commitHash = "6a1df9de4ad3c10a4653f18e03aff6bda4962fd1";
10374
+ const versionNumber = "3.12.0-beta.43";
10375
+ const commitHash = "851e74d7b867a806befb5d85fd71ff9a75e9f2d2";
10376
10376
  const [main, beta] = versionNumber.split('-');
10377
10377
  return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
10378
10378
  className: "w-[400px]"
@@ -256,8 +256,59 @@ const toolNames = {
256
256
  const {
257
257
  MeasurementReport
258
258
  } = esm/* adaptersSR */.QX.Cornerstone3D;
259
- function addSRAnnotation(measurement, imageId, frameNumber) {
259
+
260
+ /**
261
+ * Adds a DICOM SR (Structured Report) annotation to the annotation manager.
262
+ * This function processes measurement data from DICOM SR and converts it into
263
+ * a format suitable for display in the Cornerstone3D viewer.
264
+ *
265
+ * @param {Object} params - The parameters object
266
+ * @param {Object} params.measurement - The DICOM SR measurement data containing coordinates, labels, and metadata
267
+ * @param {Array} params.measurement.coords - Array of coordinate objects with GraphicType, ValueType, and other properties
268
+ * @param {string} params.measurement.TrackingUniqueIdentifier - Unique identifier for the measurement
269
+ * @param {string} params.measurement.TrackingIdentifier - Tracking identifier for adapter lookup
270
+ * @param {Array} [params.measurement.labels] - Optional array of label objects
271
+ * @param {string} [params.measurement.displayText] - Optional display text for the annotation
272
+ * @param {Object} [params.measurement.textBox] - Optional text box configuration
273
+ * @param {string|null} [params.imageId] - Optional image ID for the referenced image (defaults to null)
274
+ * @param {number|null} [params.frameNumber] - Optional frame number for multi-frame images (defaults to null)
275
+ * @param {Object} params.displaySet - The display set containing the image
276
+ * @param {string} params.displaySet.displaySetInstanceUID - Unique identifier for the display set
277
+ * @returns {void}
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * addSRAnnotation({
282
+ * measurement: {
283
+ * TrackingUniqueIdentifier: '1.2.3.4.5',
284
+ * TrackingIdentifier: 'POINT',
285
+ * coords: [{
286
+ * GraphicType: 'POINT',
287
+ * ValueType: 'SCOORD',
288
+ * // ... other coordinate properties
289
+ * }],
290
+ * labels: [{ value: 'Measurement Point' }],
291
+ * displayText: 'Point measurement'
292
+ * },
293
+ * imageId: 'wadouri:file://path/to/image.dcm', // Optional
294
+ * frameNumber: 0, // Optional
295
+ * displaySet: { displaySetInstanceUID: '1.2.3.4' }
296
+ * });
297
+ * ```
298
+ */
299
+ function addSRAnnotation({
300
+ measurement,
301
+ imageId = null,
302
+ frameNumber = null,
303
+ displaySet
304
+ }) {
305
+ /** @type {string} The tool name to use for the annotation, defaults to DICOMSRDisplay */
260
306
  let toolName = tools_toolNames.DICOMSRDisplay;
307
+
308
+ /**
309
+ * @type {Object} Renderable data organized by graphic type
310
+ * Groups coordinate data by GraphicType for efficient rendering
311
+ */
261
312
  const renderableData = measurement.coords.reduce((acc, coordProps) => {
262
313
  acc[coordProps.GraphicType] = acc[coordProps.GraphicType] || [];
263
314
  acc[coordProps.GraphicType].push(utils_getRenderableData({
@@ -302,10 +353,16 @@ function addSRAnnotation(measurement, imageId, frameNumber) {
302
353
  FrameOfReferenceUID: frameOfReferenceUID,
303
354
  referencedImageId: imageId
304
355
  };
356
+
357
+ /**
358
+ * @type {Types.Annotation} The annotation object to be added to the annotation manager
359
+ * Contains all necessary metadata and data for rendering the DICOM SR measurement
360
+ */
305
361
  const SRAnnotation = {
306
362
  annotationUID: TrackingUniqueIdentifier,
307
363
  highlighted: false,
308
364
  isLocked: false,
365
+ isPreview: toolName === tools_toolNames.DICOMSRDisplay,
309
366
  invalidated: false,
310
367
  metadata: {
311
368
  toolName,
@@ -313,7 +370,8 @@ function addSRAnnotation(measurement, imageId, frameNumber) {
313
370
  valueType,
314
371
  graphicType,
315
372
  FrameOfReferenceUID: frameOfReferenceUID,
316
- referencedImageId: imageId
373
+ referencedImageId: imageId,
374
+ displaySetInstanceUID: displaySet.displaySetInstanceUID
317
375
  },
318
376
  data: {
319
377
  label: measurement.labels?.[0]?.value || undefined,
@@ -331,8 +389,11 @@ function addSRAnnotation(measurement, imageId, frameNumber) {
331
389
  };
332
390
 
333
391
  /**
334
- * const annotationManager = annotation.annotationState.getAnnotationManager();
335
- * was not triggering annotation_added events.
392
+ * Add the annotation to the annotation state manager.
393
+ * Note: Using annotation.state.addAnnotation() instead of annotationManager.addAnnotation()
394
+ * because the latter was not triggering annotation_added events properly.
395
+ *
396
+ * @param {Types.Annotation} SRAnnotation - The annotation to add
336
397
  */
337
398
  dist_esm.annotation.state.addAnnotation(SRAnnotation);
338
399
  }
@@ -459,9 +520,10 @@ function addInstances(instances, _displaySetService) {
459
520
  * DICOM SR SOP Class Handler
460
521
  * For all referenced images in the TID 1500/300 sections, add an image to the
461
522
  * display.
462
- * @param instances is a set of instances all from the same series
463
- * @param servicesManager is the services that can be used for creating
464
- * @returns The list of display sets created for the given instances object
523
+ * @param {InstanceMetadata[]} instances - A set of instances all from the same series
524
+ * @param {AppTypes.ServicesManager} servicesManager - The services that can be used for creating
525
+ * @param {AppTypes.ExtensionManager} extensionManager - The extension manager
526
+ * @returns {Types.DisplaySet[]} The list of display sets created for the given instances object
465
527
  */
466
528
  function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) {
467
529
  // If the series has no instances, stop here
@@ -589,15 +651,6 @@ function _measurementBelongsToDisplaySet({
589
651
  }) {
590
652
  return measurement.coords[0].ReferencedFrameOfReferenceSequence === displaySet.FrameOfReferenceUID;
591
653
  }
592
-
593
- /**
594
- * Checks if measurements can be added to a display set.
595
- *
596
- * @param srDisplaySet - The source display set containing measurements.
597
- * @param newDisplaySet - The new display set to check if measurements can be added.
598
- * @param dataSource - The data source used to retrieve image IDs.
599
- * @param servicesManager - The services manager.
600
- */
601
654
  function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dataSource, servicesManager) {
602
655
  const {
603
656
  customizationService
@@ -639,11 +692,10 @@ function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dat
639
692
  measurement,
640
693
  displaySet: newDisplaySet
641
694
  })) {
642
- _measurementBelongsToDisplaySet({
695
+ addSRAnnotation({
643
696
  measurement,
644
697
  displaySet: newDisplaySet
645
698
  });
646
- addSRAnnotation(measurement, null, null);
647
699
  measurement.loaded = true;
648
700
  measurement.displaySetInstanceUID = newDisplaySet.displaySetInstanceUID;
649
701
  unloadedMeasurements.splice(j, 1);
@@ -660,9 +712,12 @@ function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dat
660
712
  const key = `${ReferencedSOPInstanceUID}:${frame}`;
661
713
  const imageId = imageIdMap.get(key);
662
714
  if (imageId && _measurementReferencesSOPInstanceUID(measurement, ReferencedSOPInstanceUID, frame)) {
663
- addSRAnnotation(measurement, imageId, frame);
664
-
665
- // Update measurement properties
715
+ addSRAnnotation({
716
+ measurement,
717
+ imageId,
718
+ frameNumber: frame,
719
+ displaySet: newDisplaySet
720
+ });
666
721
  measurement.loaded = true;
667
722
  measurement.imageId = imageId;
668
723
  measurement.displaySetInstanceUID = newDisplaySet.displaySetInstanceUID;
@@ -675,10 +730,10 @@ function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dat
675
730
 
676
731
  /**
677
732
  * Checks if a measurement references a specific SOP Instance UID.
678
- * @param measurement - The measurement object.
679
- * @param SOPInstanceUID - The SOP Instance UID to check against.
680
- * @param frameNumber - The frame number to check against (optional).
681
- * @returns True if the measurement references the specified SOP Instance UID, false otherwise.
733
+ * @param {any} measurement - The measurement object.
734
+ * @param {string} sopInstanceUID - The SOP Instance UID to check against.
735
+ * @param {number} frameNumber - The frame number to check against (optional).
736
+ * @returns {boolean} True if the measurement references the specified SOP Instance UID, false otherwise.
682
737
  */
683
738
  function _measurementReferencesSOPInstanceUID(measurement, SOPInstanceUID, frameNumber) {
684
739
  const {
@@ -708,10 +763,8 @@ function _measurementReferencesSOPInstanceUID(measurement, SOPInstanceUID, frame
708
763
  /**
709
764
  * Retrieves the SOP class handler module.
710
765
  *
711
- * @param {Object} options - The options for retrieving the SOP class handler module.
712
- * @param {Object} options.servicesManager - The services manager.
713
- * @param {Object} options.extensionManager - The extension manager.
714
- * @returns {Array} An array containing the SOP class handler module.
766
+ * @param {OhifTypes.Extensions.ExtensionParams} params - The extension parameters.
767
+ * @returns {Array} An array containing the SOP class handler modules.
715
768
  */
716
769
  function getSopClassHandlerModule(params) {
717
770
  const {
@@ -735,8 +788,8 @@ function getSopClassHandlerModule(params) {
735
788
  /**
736
789
  * Retrieves the measurements from the ImagingMeasurementReportContentSequence.
737
790
  *
738
- * @param {Array} ImagingMeasurementReportContentSequence - The ImagingMeasurementReportContentSequence array.
739
- * @returns {Array} - The array of measurements.
791
+ * @param {any[]} imagingMeasurementReportContentSequence - The ImagingMeasurementReportContentSequence array.
792
+ * @returns {any[]} The array of measurements.
740
793
  */
741
794
  function _getMeasurements(ImagingMeasurementReportContentSequence) {
742
795
  const ImagingMeasurements = ImagingMeasurementReportContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === enums/* CodeNameCodeSequenceValues */.n7.ImagingMeasurements);
@@ -759,8 +812,8 @@ function _getMeasurements(ImagingMeasurementReportContentSequence) {
759
812
  /**
760
813
  * Retrieves merged content sequences by tracking unique identifiers.
761
814
  *
762
- * @param {Array} MeasurementGroups - The measurement groups.
763
- * @returns {Object} - The merged content sequences by tracking unique identifiers.
815
+ * @param {any[]} measurementGroups - The measurement groups.
816
+ * @returns {Object} The merged content sequences by tracking unique identifiers.
764
817
  */
765
818
  function _getMergedContentSequencesByTrackingUniqueIdentifiers(MeasurementGroups) {
766
819
  const mergedContentSequencesByTrackingUniqueIdentifiers = {};
@@ -793,8 +846,8 @@ function _getMergedContentSequencesByTrackingUniqueIdentifiers(MeasurementGroups
793
846
  * it calls the _processTID1410Measurement function.
794
847
  * Otherwise, it calls the _processNonGeometricallyDefinedMeasurement function.
795
848
  *
796
- * @param {Array<Object>} mergedContentSequence - The merged content sequence to process.
797
- * @returns {any} - The processed measurement result.
849
+ * @param {any[]} mergedContentSequence - The merged content sequence to process.
850
+ * @returns {any} The processed measurement result.
798
851
  */
799
852
  function _processMeasurement(mergedContentSequence) {
800
853
  if (mergedContentSequence.some(group => isScoordOr3d(group) && !isTextPosition(group))) {
@@ -808,8 +861,8 @@ function _processMeasurement(mergedContentSequence) {
808
861
  * TID 1410 style measurements have a SCOORD or SCOORD3D at the top level,
809
862
  * and non-geometric representations where each NUM has "INFERRED FROM" SCOORD/SCOORD3D.
810
863
  *
811
- * @param mergedContentSequence - The merged content sequence containing the measurements.
812
- * @returns The measurement object containing the loaded status, labels, coordinates, tracking unique identifier, and tracking identifier.
864
+ * @param {any[]} mergedContentSequence - The merged content sequence containing the measurements.
865
+ * @returns {any} The measurement object containing the loaded status, labels, coordinates, tracking unique identifier, and tracking identifier.
813
866
  */
814
867
  function _processTID1410Measurement(mergedContentSequence) {
815
868
  // Need to deal with TID 1410 style measurements, which will have a SCOORD or SCOORD3D at the top level,
@@ -868,8 +921,8 @@ function _processTID1410Measurement(mergedContentSequence) {
868
921
  /**
869
922
  * Processes the non-geometrically defined measurement from the merged content sequence.
870
923
  *
871
- * @param mergedContentSequence The merged content sequence containing the measurement data.
872
- * @returns The processed measurement object.
924
+ * @param {any[]} mergedContentSequence The merged content sequence containing the measurement data.
925
+ * @returns {any} The processed measurement object.
873
926
  */
874
927
  function _processNonGeometricallyDefinedMeasurement(mergedContentSequence) {
875
928
  const NUMContentItems = mergedContentSequence.filter(group => group.ValueType === 'NUM');
@@ -938,8 +991,8 @@ function _processNonGeometricallyDefinedMeasurement(mergedContentSequence) {
938
991
 
939
992
  /**
940
993
  * Extracts coordinates from a graphic item of type SCOORD or SCOORD3D.
941
- * @param {object} graphicItem - The graphic item containing the coordinates.
942
- * @returns {object} - The extracted coordinates.
994
+ * @param {any} graphicItem - The graphic item containing the coordinates.
995
+ * @returns {any} The extracted coordinates.
943
996
  */
944
997
  const _getCoordsFromSCOORDOrSCOORD3D = graphicItem => {
945
998
  const {
@@ -959,9 +1012,9 @@ const _getCoordsFromSCOORDOrSCOORD3D = graphicItem => {
959
1012
 
960
1013
  /**
961
1014
  * Retrieves the label and value from the provided ConceptNameCodeSequence and MeasuredValueSequence.
962
- * @param {Object} ConceptNameCodeSequence - The ConceptNameCodeSequence object.
963
- * @param {Object} MeasuredValueSequence - The MeasuredValueSequence object.
964
- * @returns {Object} - An object containing the label and value.
1015
+ * @param {any} conceptNameCodeSequence - The ConceptNameCodeSequence object.
1016
+ * @param {any} measuredValueSequence - The MeasuredValueSequence object.
1017
+ * @returns {Object} An object containing the label and value.
965
1018
  * The label represents the CodeMeaning from the ConceptNameCodeSequence.
966
1019
  * The value represents the formatted NumericValue and CodeValue from the MeasuredValueSequence.
967
1020
  * Example: { label: 'Long Axis', value: '31.00 mm' }
@@ -987,8 +1040,8 @@ function _getLabelFromMeasuredValueSequence(ConceptNameCodeSequence, MeasuredVal
987
1040
  /**
988
1041
  * Retrieves a list of referenced images from the Imaging Measurement Report Content Sequence.
989
1042
  *
990
- * @param {Array} ImagingMeasurementReportContentSequence - The Imaging Measurement Report Content Sequence.
991
- * @returns {Array} - The list of referenced images.
1043
+ * @param {any[]} imagingMeasurementReportContentSequence - The Imaging Measurement Report Content Sequence.
1044
+ * @returns {any[]} The list of referenced images.
992
1045
  */
993
1046
  function _getReferencedImagesList(ImagingMeasurementReportContentSequence) {
994
1047
  const ImageLibrary = ImagingMeasurementReportContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === enums/* CodeNameCodeSequenceValues */.n7.ImageLibrary);
@@ -1030,7 +1083,7 @@ function _getReferencedImagesList(ImagingMeasurementReportContentSequence) {
1030
1083
  * Otherwise, the sequence is wrapped in an array and returned.
1031
1084
  *
1032
1085
  * @param {any} sequence - The DICOM sequence to convert.
1033
- * @returns {any[]} - The converted array.
1086
+ * @returns {any[]} The converted array.
1034
1087
  */
1035
1088
  function _getSequenceAsArray(sequence) {
1036
1089
  if (!sequence) {
@@ -2268,8 +2321,7 @@ function init({
2268
2321
  servicesManager
2269
2322
  }) {
2270
2323
  const {
2271
- measurementService,
2272
- cornerstoneViewportService
2324
+ measurementService
2273
2325
  } = servicesManager.services;
2274
2326
  addToolInstance(tools_toolNames.DICOMSRDisplay, DICOMSRDisplayTool);
2275
2327
  addToolInstance(tools_toolNames.SRLength, dist_esm.LengthTool);
@@ -1613,7 +1613,17 @@ function useViewportSegmentations({
1613
1613
  return;
1614
1614
  }
1615
1615
  const representations = segmentationService.getSegmentationRepresentations(viewportId);
1616
- const newSegmentationsWithRepresentations = representations.map(representation => {
1616
+
1617
+ // Deduplicate representations by segmentationId to prevent showing
1618
+ // the same segmentation multiple times in the panel when it has
1619
+ // multiple representation types (e.g., labelmap and surface)
1620
+ const uniqueSegmentationMap = new Map();
1621
+ representations.forEach(representation => {
1622
+ if (!uniqueSegmentationMap.has(representation.segmentationId)) {
1623
+ uniqueSegmentationMap.set(representation.segmentationId, representation);
1624
+ }
1625
+ });
1626
+ const newSegmentationsWithRepresentations = Array.from(uniqueSegmentationMap.values()).map(representation => {
1617
1627
  const segmentation = segmentationService.getSegmentation(representation.segmentationId);
1618
1628
  const mappedSegmentation = mapSegmentationToDisplay(segmentation, customizationService);
1619
1629
  return {
@@ -5982,7 +5992,7 @@ const connectMeasurementServiceToTools = ({
5982
5992
  if (measurement?.metadata?.referencedImageId) {
5983
5993
  imageId = measurement.metadata.referencedImageId;
5984
5994
  frameNumber = getSOPInstanceAttributes(measurement.metadata.referencedImageId).frameNumber;
5985
- } else {
5995
+ } else if (instance) {
5986
5996
  imageId = dataSource.getImageIdsForInstance({
5987
5997
  instance
5988
5998
  });
@@ -23207,8 +23217,7 @@ function AccordionGroup(props) {
23207
23217
  grouping,
23208
23218
  items,
23209
23219
  children,
23210
- sourceChildren,
23211
- type
23220
+ sourceChildren
23212
23221
  } = props;
23213
23222
  const childProps = (0,src/* useSystem */.Jg)();
23214
23223
  let defaultValue = props.defaultValue;
@@ -23575,8 +23584,6 @@ function StudySummaryWithActions(props) {
23575
23584
  ;// ../../../extensions/cornerstone/src/components/StudyMeasurements.tsx
23576
23585
 
23577
23586
 
23578
- // import { AccordionContent, AccordionItem, AccordionTrigger } from '@ohif/ui-next';
23579
-
23580
23587
 
23581
23588
 
23582
23589
 
@@ -23636,8 +23643,7 @@ function StudyMeasurements(props) {
23636
23643
  grouping = {},
23637
23644
  children
23638
23645
  } = props;
23639
- const system = (0,src/* useSystem */.Jg)();
23640
- const activeDisplaySets = (0,src/* useActiveViewportDisplaySets */.BZ)(system);
23646
+ const activeDisplaySets = (0,src/* useActiveViewportDisplaySets */.BZ)();
23641
23647
  const activeStudyUID = activeDisplaySets?.[0]?.StudyInstanceUID;
23642
23648
  return /*#__PURE__*/react.createElement(AccordionGroup, {
23643
23649
  grouping: {
@@ -23735,6 +23741,7 @@ function PanelMeasurement(props) {
23735
23741
  }));
23736
23742
  return cloned;
23737
23743
  }
23744
+
23738
23745
  // Need to merge defaults on the content props to ensure they get passed to children
23739
23746
  return /*#__PURE__*/react.createElement(components_StudyMeasurements, {
23740
23747
  items: displayMeasurements