dcmjs 0.29.2 → 0.29.4
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/README.md +1 -1
- package/build/dcmjs.es.js +60 -39
- package/build/dcmjs.es.js.map +1 -1
- package/build/dcmjs.js +60 -39
- package/build/dcmjs.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -78,7 +78,7 @@ Use the following "Commit Message Format" when drafting commit messages. If you'
|
|
|
78
78
|
|
|
79
79
|
Note: Be wary of `BREAKING_CHANGE` in commit message descriptions, as this can force a major version bump.
|
|
80
80
|
|
|
81
|
-
Be sure to use lower case for the first letter of your semantic commit message, so use `fix` not `Fix` or `feat` not `Feat
|
|
81
|
+
Be sure to use lower case for the first letter of your semantic commit message, so use `fix` not `Fix` or `feat` not `Feat`, have a space after the : and make the PR github review title follow the SAME rules. It is the PR review title that determins the final commit message and will be used for semantic detection.
|
|
82
82
|
|
|
83
83
|
Note: a new package version will be published only if the commit comes from a PR.
|
|
84
84
|
|
package/build/dcmjs.es.js
CHANGED
|
@@ -16465,6 +16465,19 @@ function nearlyEqual(a, b, epsilon) {
|
|
|
16465
16465
|
}
|
|
16466
16466
|
}
|
|
16467
16467
|
|
|
16468
|
+
|
|
16469
|
+
|
|
16470
|
+
var orientation = /*#__PURE__*/Object.freeze({
|
|
16471
|
+
__proto__: null,
|
|
16472
|
+
crossProduct3D: crossProduct3D,
|
|
16473
|
+
flipImageOrientationPatient: flipImageOrientationPatient,
|
|
16474
|
+
rotateDirectionCosinesInPlane: rotateDirectionCosinesInPlane,
|
|
16475
|
+
rotateVectorAroundUnitVector: rotateVectorAroundUnitVector,
|
|
16476
|
+
flipMatrix2D: flipMatrix2D,
|
|
16477
|
+
rotateMatrix902D: rotateMatrix902D,
|
|
16478
|
+
nearlyEqual: nearlyEqual
|
|
16479
|
+
});
|
|
16480
|
+
|
|
16468
16481
|
var Segmentation$1 = {
|
|
16469
16482
|
generateSegmentation: generateSegmentation,
|
|
16470
16483
|
generateToolState: generateToolState
|
|
@@ -18419,6 +18432,12 @@ function decodeFrame(rleEncodedFrame, pixelData) {
|
|
|
18419
18432
|
}
|
|
18420
18433
|
}
|
|
18421
18434
|
|
|
18435
|
+
var compression = /*#__PURE__*/Object.freeze({
|
|
18436
|
+
__proto__: null,
|
|
18437
|
+
encode: encode,
|
|
18438
|
+
decode: decode
|
|
18439
|
+
});
|
|
18440
|
+
|
|
18422
18441
|
var lodash_clonedeep = createCommonjsModule(function (module, exports) {
|
|
18423
18442
|
/**
|
|
18424
18443
|
* lodash (Custom Build) <https://lodash.com/>
|
|
@@ -20230,28 +20249,28 @@ function fillSegmentation(segmentation, inputLabelmaps3D) {
|
|
|
20230
20249
|
metadata = labelmap3D.metadata;
|
|
20231
20250
|
var referencedFramesPerSegment = [];
|
|
20232
20251
|
|
|
20233
|
-
for (var
|
|
20234
|
-
if (metadata[
|
|
20235
|
-
referencedFramesPerSegment[
|
|
20252
|
+
for (var i = 1; i < metadata.length; i++) {
|
|
20253
|
+
if (metadata[i]) {
|
|
20254
|
+
referencedFramesPerSegment[i] = [];
|
|
20236
20255
|
}
|
|
20237
20256
|
}
|
|
20238
20257
|
|
|
20239
|
-
var _loop2 = function _loop2(
|
|
20240
|
-
var labelmap2D = labelmaps2D[
|
|
20258
|
+
var _loop2 = function _loop2(_i) {
|
|
20259
|
+
var labelmap2D = labelmaps2D[_i];
|
|
20241
20260
|
|
|
20242
|
-
if (labelmaps2D[
|
|
20261
|
+
if (labelmaps2D[_i]) {
|
|
20243
20262
|
var segmentsOnLabelmap = labelmap2D.segmentsOnLabelmap;
|
|
20244
20263
|
segmentsOnLabelmap.forEach(function (segmentIndex) {
|
|
20245
20264
|
if (segmentIndex !== 0) {
|
|
20246
|
-
referencedFramesPerSegment[segmentIndex].push(
|
|
20265
|
+
referencedFramesPerSegment[segmentIndex].push(_i);
|
|
20247
20266
|
numberOfFrames++;
|
|
20248
20267
|
}
|
|
20249
20268
|
});
|
|
20250
20269
|
}
|
|
20251
20270
|
};
|
|
20252
20271
|
|
|
20253
|
-
for (var
|
|
20254
|
-
_loop2(
|
|
20272
|
+
for (var _i = 0; _i < labelmaps2D.length; _i++) {
|
|
20273
|
+
_loop2(_i);
|
|
20255
20274
|
}
|
|
20256
20275
|
|
|
20257
20276
|
referencedFramesPerLabelmap[labelmapIndex] = referencedFramesPerSegment;
|
|
@@ -20317,8 +20336,8 @@ function _getLabelmapsFromRefernecedFrameIndicies(labelmap3D, referencedFrameInd
|
|
|
20317
20336
|
var labelmaps2D = labelmap3D.labelmaps2D;
|
|
20318
20337
|
var labelmaps = [];
|
|
20319
20338
|
|
|
20320
|
-
for (var
|
|
20321
|
-
var frame = referencedFrameIndicies[
|
|
20339
|
+
for (var i = 0; i < referencedFrameIndicies.length; i++) {
|
|
20340
|
+
var frame = referencedFrameIndicies[i];
|
|
20322
20341
|
labelmaps.push(labelmaps2D[frame].pixelData);
|
|
20323
20342
|
}
|
|
20324
20343
|
|
|
@@ -20344,8 +20363,8 @@ function _createSegFromImages$1(images, isMultiframe, options) {
|
|
|
20344
20363
|
dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
|
|
20345
20364
|
datasets.push(dataset);
|
|
20346
20365
|
} else {
|
|
20347
|
-
for (var
|
|
20348
|
-
var _image = images[
|
|
20366
|
+
for (var i = 0; i < images.length; i++) {
|
|
20367
|
+
var _image = images[i];
|
|
20349
20368
|
var _arrayBuffer = _image.data.byteArray.buffer;
|
|
20350
20369
|
|
|
20351
20370
|
var _dicomData = DicomMessage.readFile(_arrayBuffer);
|
|
@@ -20581,7 +20600,7 @@ function checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations
|
|
|
20581
20600
|
var imageId = findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadataProvider, tolerance);
|
|
20582
20601
|
|
|
20583
20602
|
if (!imageId) {
|
|
20584
|
-
console.warn("Image not present in stack, can't import frame : " +
|
|
20603
|
+
console.warn("Image not present in stack, can't import frame : " + frameSegment + ".");
|
|
20585
20604
|
return "continue";
|
|
20586
20605
|
}
|
|
20587
20606
|
|
|
@@ -20618,8 +20637,8 @@ function checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations
|
|
|
20618
20637
|
|
|
20619
20638
|
var temp2DArray = new Uint16Array(sliceLength).fill(0);
|
|
20620
20639
|
|
|
20621
|
-
for (var
|
|
20622
|
-
var _frameSegment = role[
|
|
20640
|
+
for (var i = 0; i < role.length; ++i) {
|
|
20641
|
+
var _frameSegment = role[i];
|
|
20623
20642
|
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_frameSegment];
|
|
20624
20643
|
var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
|
|
20625
20644
|
var pixelDataI2D = ndarray(new Uint8Array(pixelData.buffer, _frameSegment * sliceLength, sliceLength), [Rows, Columns]);
|
|
@@ -20679,32 +20698,32 @@ function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray,
|
|
|
20679
20698
|
var numberOfSegs = multiframe.SegmentSequence.length;
|
|
20680
20699
|
|
|
20681
20700
|
for (var segmentIndexToProcess = 1; segmentIndexToProcess <= numberOfSegs; ++segmentIndexToProcess) {
|
|
20682
|
-
var _loop4 = function _loop4(
|
|
20683
|
-
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[
|
|
20684
|
-
var segmentIndex = getSegmentIndex(multiframe,
|
|
20701
|
+
var _loop4 = function _loop4(_i2, groupsLen) {
|
|
20702
|
+
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_i2];
|
|
20703
|
+
var segmentIndex = getSegmentIndex(multiframe, _i2);
|
|
20685
20704
|
|
|
20686
20705
|
if (segmentIndex === undefined) {
|
|
20687
20706
|
throw new Error("Could not retrieve the segment index. Aborting segmentation loading.");
|
|
20688
20707
|
}
|
|
20689
20708
|
|
|
20690
20709
|
if (segmentIndex !== segmentIndexToProcess) {
|
|
20691
|
-
|
|
20710
|
+
i = _i2;
|
|
20692
20711
|
return "continue";
|
|
20693
20712
|
}
|
|
20694
20713
|
|
|
20695
20714
|
var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
|
|
20696
|
-
var pixelDataI2D = ndarray(new Uint8Array(pixelData.buffer,
|
|
20715
|
+
var pixelDataI2D = ndarray(new Uint8Array(pixelData.buffer, _i2 * sliceLength, sliceLength), [Rows, Columns]);
|
|
20697
20716
|
var alignedPixelDataI = alignPixelDataWithSourceData$1(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
|
|
20698
20717
|
|
|
20699
20718
|
if (!alignedPixelDataI) {
|
|
20700
20719
|
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.");
|
|
20701
20720
|
}
|
|
20702
20721
|
|
|
20703
|
-
var imageId = findReferenceSourceImageId(multiframe,
|
|
20722
|
+
var imageId = findReferenceSourceImageId(multiframe, _i2, imageIds, metadataProvider, tolerance);
|
|
20704
20723
|
|
|
20705
20724
|
if (!imageId) {
|
|
20706
|
-
console.warn("Image not present in stack, can't import frame : " +
|
|
20707
|
-
|
|
20725
|
+
console.warn("Image not present in stack, can't import frame : " + _i2 + ".");
|
|
20726
|
+
i = _i2;
|
|
20708
20727
|
return "continue";
|
|
20709
20728
|
}
|
|
20710
20729
|
|
|
@@ -20736,7 +20755,7 @@ function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray,
|
|
|
20736
20755
|
|
|
20737
20756
|
tempBuffer = labelmapBufferArray[m].slice(0);
|
|
20738
20757
|
tempSegmentsOnFrame = lodash_clonedeep(segmentsOnFrameArray[m]);
|
|
20739
|
-
|
|
20758
|
+
_i2 = 0;
|
|
20740
20759
|
break;
|
|
20741
20760
|
} else {
|
|
20742
20761
|
labelmap2DView[j] = segmentIndex;
|
|
@@ -20759,11 +20778,11 @@ function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray,
|
|
|
20759
20778
|
segmentsOnFrame[imageIdIndex].push(segmentIndex);
|
|
20760
20779
|
}
|
|
20761
20780
|
|
|
20762
|
-
|
|
20781
|
+
i = _i2;
|
|
20763
20782
|
};
|
|
20764
20783
|
|
|
20765
|
-
for (var
|
|
20766
|
-
var _ret2 = _loop4(
|
|
20784
|
+
for (var i = 0, groupsLen = PerFrameFunctionalGroupsSequence.length; i < groupsLen; ++i) {
|
|
20785
|
+
var _ret2 = _loop4(i, groupsLen);
|
|
20767
20786
|
|
|
20768
20787
|
if (_ret2 === "continue") continue;
|
|
20769
20788
|
}
|
|
@@ -20792,26 +20811,26 @@ function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBu
|
|
|
20792
20811
|
var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined;
|
|
20793
20812
|
var sliceLength = Columns * Rows;
|
|
20794
20813
|
|
|
20795
|
-
var _loop5 = function _loop5(groupsLen,
|
|
20796
|
-
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[
|
|
20814
|
+
var _loop5 = function _loop5(groupsLen, _i3) {
|
|
20815
|
+
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[_i3];
|
|
20797
20816
|
var ImageOrientationPatientI = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
|
|
20798
|
-
var pixelDataI2D = ndarray(new Uint8Array(pixelData.buffer,
|
|
20817
|
+
var pixelDataI2D = ndarray(new Uint8Array(pixelData.buffer, _i3 * sliceLength, sliceLength), [Rows, Columns]);
|
|
20799
20818
|
var alignedPixelDataI = alignPixelDataWithSourceData$1(pixelDataI2D, ImageOrientationPatientI, validOrientations, tolerance);
|
|
20800
20819
|
|
|
20801
20820
|
if (!alignedPixelDataI) {
|
|
20802
20821
|
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.");
|
|
20803
20822
|
}
|
|
20804
20823
|
|
|
20805
|
-
var segmentIndex = getSegmentIndex(multiframe,
|
|
20824
|
+
var segmentIndex = getSegmentIndex(multiframe, _i3);
|
|
20806
20825
|
|
|
20807
20826
|
if (segmentIndex === undefined) {
|
|
20808
20827
|
throw new Error("Could not retrieve the segment index. Aborting segmentation loading.");
|
|
20809
20828
|
}
|
|
20810
20829
|
|
|
20811
|
-
var imageId = findReferenceSourceImageId(multiframe,
|
|
20830
|
+
var imageId = findReferenceSourceImageId(multiframe, _i3, imageIds, metadataProvider, tolerance);
|
|
20812
20831
|
|
|
20813
20832
|
if (!imageId) {
|
|
20814
|
-
console.warn("Image not present in stack, can't import frame : " +
|
|
20833
|
+
console.warn("Image not present in stack, can't import frame : " + _i3 + ".");
|
|
20815
20834
|
return "continue";
|
|
20816
20835
|
}
|
|
20817
20836
|
|
|
@@ -20847,8 +20866,8 @@ function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBu
|
|
|
20847
20866
|
}
|
|
20848
20867
|
};
|
|
20849
20868
|
|
|
20850
|
-
for (var
|
|
20851
|
-
var _ret3 = _loop5(groupsLen,
|
|
20869
|
+
for (var _i3 = 0, groupsLen = PerFrameFunctionalGroupsSequence.length; _i3 < groupsLen; ++_i3) {
|
|
20870
|
+
var _ret3 = _loop5(groupsLen, _i3);
|
|
20852
20871
|
|
|
20853
20872
|
if (_ret3 === "continue") continue;
|
|
20854
20873
|
}
|
|
@@ -21113,8 +21132,8 @@ function compareArrays(array1, array2, tolerance) {
|
|
|
21113
21132
|
return false;
|
|
21114
21133
|
}
|
|
21115
21134
|
|
|
21116
|
-
for (var
|
|
21117
|
-
if (!nearlyEqual(array1[
|
|
21135
|
+
for (var _i4 = 0; _i4 < array1.length; ++_i4) {
|
|
21136
|
+
if (!nearlyEqual(array1[_i4], array2[_i4], tolerance)) {
|
|
21118
21137
|
return false;
|
|
21119
21138
|
}
|
|
21120
21139
|
}
|
|
@@ -23804,7 +23823,9 @@ var utilities = {
|
|
|
23804
23823
|
TID1500: TID1500,
|
|
23805
23824
|
TID300: TID300,
|
|
23806
23825
|
message: message,
|
|
23807
|
-
addAccessors: addAccessors
|
|
23826
|
+
addAccessors: addAccessors,
|
|
23827
|
+
orientation: orientation,
|
|
23828
|
+
compression: compression
|
|
23808
23829
|
};
|
|
23809
23830
|
|
|
23810
23831
|
var Code = /*#__PURE__*/function () {
|