dcmjs 0.29.13 → 0.30.1

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.
package/build/dcmjs.es.js CHANGED
@@ -10005,7 +10005,7 @@ var encodingMapping = {
10005
10005
  "iso-2022-58": "gb2312",
10006
10006
  gbk: "gbk"
10007
10007
  };
10008
- var encapsulatedSyntaxes = ["1.2.840.10008.1.2.4.50", "1.2.840.10008.1.2.4.51", "1.2.840.10008.1.2.4.57", "1.2.840.10008.1.2.4.70", "1.2.840.10008.1.2.4.80", "1.2.840.10008.1.2.4.81", "1.2.840.10008.1.2.4.90", "1.2.840.10008.1.2.4.91", "1.2.840.10008.1.2.4.92", "1.2.840.10008.1.2.4.93", "1.2.840.10008.1.2.4.94", "1.2.840.10008.1.2.4.95", "1.2.840.10008.1.2.5", "1.2.840.10008.1.2.6.1", "1.2.840.10008.1.2.4.100", "1.2.840.10008.1.2.4.102", "1.2.840.10008.1.2.4.103"];
10008
+ var encapsulatedSyntaxes = ["1.2.840.10008.1.2.4.50", "1.2.840.10008.1.2.4.51", "1.2.840.10008.1.2.4.57", "1.2.840.10008.1.2.4.70", "1.2.840.10008.1.2.4.80", "1.2.840.10008.1.2.4.81", "1.2.840.10008.1.2.4.90", "1.2.840.10008.1.2.4.91", "1.2.840.10008.1.2.4.92", "1.2.840.10008.1.2.4.93", "1.2.840.10008.1.2.4.94", "1.2.840.10008.1.2.4.95", "1.2.840.10008.1.2.5", "1.2.840.10008.1.2.6.1", "1.2.840.10008.1.2.4.100", "1.2.840.10008.1.2.4.102", "1.2.840.10008.1.2.4.103", "1.2.840.10008.1.2.4.201", "1.2.840.10008.1.2.4.202", "1.2.840.10008.1.2.4.203"];
10009
10009
  var DicomMessage = /*#__PURE__*/function () {
10010
10010
  function DicomMessage() {
10011
10011
  _classCallCheck(this, DicomMessage);
@@ -17410,13 +17410,18 @@ function generateToolState$1(imageIds, arrayBuffer, metadataProvider) {
17410
17410
  var imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]);
17411
17411
  var generalSeriesModule = metadataProvider.get("generalSeriesModule", imageIds[0]);
17412
17412
  var SeriesInstanceUID = generalSeriesModule.seriesInstanceUID;
17413
- if (!imagePlaneModule) {
17414
- console.warn("Insufficient metadata, imagePlaneModule missing.");
17415
- }
17416
- var ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines) ? [].concat(_toConsumableArray(imagePlaneModule.rowCosines), _toConsumableArray(imagePlaneModule.columnCosines)) : [imagePlaneModule.rowCosines.x, imagePlaneModule.rowCosines.y, imagePlaneModule.rowCosines.z, imagePlaneModule.columnCosines.x, imagePlaneModule.columnCosines.y, imagePlaneModule.columnCosines.z];
17413
+ var ImageOrientationPatient;
17414
+ var validOrientations;
17415
+ var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe);
17416
+ if (hasCoordinateSystem) {
17417
+ if (!imagePlaneModule) {
17418
+ console.warn("Insufficient metadata, imagePlaneModule missing.");
17419
+ }
17420
+ ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines) ? [].concat(_toConsumableArray(imagePlaneModule.rowCosines), _toConsumableArray(imagePlaneModule.columnCosines)) : [imagePlaneModule.rowCosines.x, imagePlaneModule.rowCosines.y, imagePlaneModule.rowCosines.z, imagePlaneModule.columnCosines.x, imagePlaneModule.columnCosines.y, imagePlaneModule.columnCosines.z];
17417
17421
 
17418
- // Get IOP from ref series, compute supported orientations:
17419
- var validOrientations = getValidOrientations(ImageOrientationPatient);
17422
+ // Get IOP from ref series, compute supported orientations:
17423
+ validOrientations = getValidOrientations(ImageOrientationPatient);
17424
+ }
17420
17425
  var sliceLength = multiframe.Columns * multiframe.Rows;
17421
17426
  var segMetadata = getSegmentMetadata(multiframe, SeriesInstanceUID);
17422
17427
  var TransferSyntaxUID = multiframe._meta.TransferSyntaxUID.Value[0];
@@ -17434,7 +17439,12 @@ function generateToolState$1(imageIds, arrayBuffer, metadataProvider) {
17434
17439
  throw new Error("Fractional segmentations are not yet supported");
17435
17440
  }
17436
17441
  }
17437
- var orientation = checkOrientation(multiframe, validOrientations, [imagePlaneModule.rows, imagePlaneModule.columns, imageIds.length], tolerance);
17442
+ var orientation;
17443
+ if (hasCoordinateSystem) {
17444
+ orientation = checkOrientation(multiframe, validOrientations, [imagePlaneModule.rows, imagePlaneModule.columns, imageIds.length], tolerance);
17445
+ } else {
17446
+ orientation = "Planar";
17447
+ }
17438
17448
  var overlapping = false;
17439
17449
  if (!skipOverlapping) {
17440
17450
  overlapping = checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance);
@@ -17505,9 +17515,7 @@ function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadata
17505
17515
  return imageId;
17506
17516
  }
17507
17517
  var frameSourceImageSequence = undefined;
17508
- if (SourceImageSequence && SourceImageSequence.length !== 0) {
17509
- frameSourceImageSequence = SourceImageSequence[frameSegment];
17510
- } else if (PerFrameFunctionalGroup.DerivationImageSequence) {
17518
+ if (PerFrameFunctionalGroup.DerivationImageSequence) {
17511
17519
  var DerivationImageSequence = PerFrameFunctionalGroup.DerivationImageSequence;
17512
17520
  if (Array.isArray(DerivationImageSequence)) {
17513
17521
  if (DerivationImageSequence.length !== 0) {
@@ -17526,6 +17534,8 @@ function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadata
17526
17534
  }
17527
17535
  }
17528
17536
  }
17537
+ } else if (SourceImageSequence && SourceImageSequence.length !== 0) {
17538
+ frameSourceImageSequence = SourceImageSequence[frameSegment];
17529
17539
  }
17530
17540
  if (frameSourceImageSequence) {
17531
17541
  imageId = getImageIdOfSourceImagebySourceImageSequence(frameSourceImageSequence, imageIds, metadataProvider);
@@ -17603,9 +17613,15 @@ function checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations
17603
17613
  for (var i = 0; i < role.length; ++i) {
17604
17614
  var _frameSegment = role[i];
17605
17615
  var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_frameSegment];
17606
- var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
17607
17616
  var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, _frameSegment * sliceLength, sliceLength), [Rows, Columns]);
17608
- var alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
17617
+ var alignedPixelDataI = void 0;
17618
+ var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe);
17619
+ if (hasCoordinateSystem) {
17620
+ var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
17621
+ alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
17622
+ } else {
17623
+ alignedPixelDataI = pixelDataI2D;
17624
+ }
17609
17625
  if (!alignedPixelDataI) {
17610
17626
  console.warn("Individual SEG frames are out of plane with respect to the first SEG frame, this is not yet supported, skipping this frame.");
17611
17627
  continue;
@@ -17668,9 +17684,15 @@ function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray,
17668
17684
  i = _i2;
17669
17685
  return "continue";
17670
17686
  }
17671
- var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
17672
17687
  var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, _i2 * sliceLength, sliceLength), [Rows, Columns]);
17673
- var alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
17688
+ var alignedPixelDataI = void 0;
17689
+ var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe);
17690
+ if (hasCoordinateSystem) {
17691
+ var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
17692
+ alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
17693
+ } else {
17694
+ alignedPixelDataI = pixelDataI2D;
17695
+ }
17674
17696
  if (!alignedPixelDataI) {
17675
17697
  throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. " + "This is not yet supported. Aborting segmentation loading.");
17676
17698
  }
@@ -17680,8 +17702,8 @@ function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray,
17680
17702
  i = _i2;
17681
17703
  return "continue";
17682
17704
  }
17683
- var sourceImageMetadata = metadataProvider.get("instance", imageId);
17684
- if (Rows !== sourceImageMetadata.Rows || Columns !== sourceImageMetadata.Columns) {
17705
+ var sourceImageMetadata = metadataProvider.get("imagePixelModule", imageId);
17706
+ if (Rows !== sourceImageMetadata.rows || Columns !== sourceImageMetadata.columns) {
17685
17707
  throw new Error("Individual SEG frames have different geometry dimensions (Rows and Columns) " + "respect to the source image reference frame. This is not yet supported. " + "Aborting segmentation loading. ");
17686
17708
  }
17687
17709
  var imageIdIndex = imageIds.findIndex(function (element) {
@@ -17751,9 +17773,15 @@ function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBu
17751
17773
  var sliceLength = Columns * Rows;
17752
17774
  var _loop5 = function _loop5(groupsLen, _i3) {
17753
17775
  var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_i3];
17754
- var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
17755
17776
  var pixelDataI2D = ndarray$1(new Uint8Array(pixelData.buffer, _i3 * sliceLength, sliceLength), [Rows, Columns]);
17756
- var alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
17777
+ var alignedPixelDataI = void 0;
17778
+ var hasCoordinateSystem = ("FrameOfReferenceUID" in multiframe);
17779
+ if (hasCoordinateSystem) {
17780
+ var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
17781
+ alignedPixelDataI = alignPixelDataWithSourceData(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
17782
+ } else {
17783
+ alignedPixelDataI = pixelDataI2D;
17784
+ }
17757
17785
  if (!alignedPixelDataI) {
17758
17786
  throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. " + "This is not yet supported. Aborting segmentation loading.");
17759
17787
  }
@@ -17766,8 +17794,8 @@ function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBu
17766
17794
  console.warn("Image not present in stack, can't import frame : " + _i3 + ".");
17767
17795
  return "continue";
17768
17796
  }
17769
- var sourceImageMetadata = metadataProvider.get("instance", imageId);
17770
- if (Rows !== sourceImageMetadata.Rows || Columns !== sourceImageMetadata.Columns) {
17797
+ var sourceImageMetadata = metadataProvider.get("imagePixelModule", imageId);
17798
+ if (Rows !== sourceImageMetadata.rows || Columns !== sourceImageMetadata.columns) {
17771
17799
  throw new Error("Individual SEG frames have different geometry dimensions (Rows and Columns) " + "respect to the source image reference frame. This is not yet supported. " + "Aborting segmentation loading. ");
17772
17800
  }
17773
17801
  var imageIdIndex = imageIds.findIndex(function (element) {