@cornerstonejs/adapters 2.0.0-beta.8 → 2.0.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.
Files changed (138) hide show
  1. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +493 -0
  2. package/dist/esm/adapters/Cornerstone/Angle.d.ts +42 -0
  3. package/dist/esm/adapters/Cornerstone/Angle.js +93 -0
  4. package/dist/esm/adapters/Cornerstone/ArrowAnnotate.d.ts +49 -0
  5. package/dist/esm/adapters/Cornerstone/ArrowAnnotate.js +97 -0
  6. package/dist/esm/adapters/Cornerstone/Bidirectional.d.ts +89 -0
  7. package/dist/esm/adapters/Cornerstone/Bidirectional.js +170 -0
  8. package/dist/esm/adapters/Cornerstone/CircleRoi.d.ts +58 -0
  9. package/dist/esm/adapters/Cornerstone/CircleRoi.js +115 -0
  10. package/dist/esm/adapters/Cornerstone/CobbAngle.d.ts +49 -0
  11. package/dist/esm/adapters/Cornerstone/CobbAngle.js +98 -0
  12. package/dist/esm/adapters/Cornerstone/EllipticalRoi.d.ts +57 -0
  13. package/dist/esm/adapters/Cornerstone/EllipticalRoi.js +178 -0
  14. package/dist/esm/adapters/Cornerstone/FreehandRoi.d.ts +42 -0
  15. package/dist/esm/adapters/Cornerstone/FreehandRoi.js +89 -0
  16. package/dist/esm/adapters/Cornerstone/Length.d.ts +39 -0
  17. package/dist/esm/adapters/Cornerstone/Length.js +82 -0
  18. package/dist/esm/adapters/Cornerstone/MeasurementReport.d.ts +29 -0
  19. package/dist/esm/adapters/Cornerstone/MeasurementReport.js +276 -0
  20. package/dist/esm/adapters/Cornerstone/ParametricMap.d.ts +7 -0
  21. package/dist/esm/adapters/Cornerstone/ParametricMap.js +210 -0
  22. package/dist/esm/adapters/Cornerstone/RectangleRoi.d.ts +44 -0
  23. package/dist/esm/adapters/Cornerstone/RectangleRoi.js +97 -0
  24. package/dist/esm/adapters/Cornerstone/Segmentation.d.ts +7 -0
  25. package/dist/esm/adapters/Cornerstone/Segmentation.js +73 -0
  26. package/dist/esm/adapters/Cornerstone/Segmentation_3X.d.ts +13 -0
  27. package/dist/esm/adapters/Cornerstone/Segmentation_3X.js +411 -0
  28. package/dist/esm/adapters/Cornerstone/Segmentation_4X.d.ts +13 -0
  29. package/dist/esm/adapters/Cornerstone/Segmentation_4X.js +1152 -0
  30. package/dist/esm/adapters/Cornerstone/cornerstone4Tag.d.ts +2 -0
  31. package/dist/esm/adapters/Cornerstone/cornerstone4Tag.js +3 -0
  32. package/dist/esm/adapters/Cornerstone/index.d.ts +34 -0
  33. package/dist/esm/adapters/Cornerstone/index.js +33 -0
  34. package/dist/esm/adapters/Cornerstone3D/Angle.js +109 -0
  35. package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.d.ts +35 -0
  36. package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.js +123 -0
  37. package/dist/esm/adapters/Cornerstone3D/Bidirectional.js +147 -0
  38. package/dist/{types → esm}/adapters/Cornerstone3D/CircleROI.d.ts +0 -7
  39. package/dist/esm/adapters/Cornerstone3D/CircleROI.js +96 -0
  40. package/dist/esm/adapters/Cornerstone3D/CobbAngle.js +113 -0
  41. package/dist/esm/adapters/Cornerstone3D/CodingScheme.d.ts +9 -0
  42. package/dist/esm/adapters/Cornerstone3D/CodingScheme.js +15 -0
  43. package/dist/esm/adapters/Cornerstone3D/EllipticalROI.js +160 -0
  44. package/dist/esm/adapters/Cornerstone3D/Length.d.ts +41 -0
  45. package/dist/esm/adapters/Cornerstone3D/Length.js +101 -0
  46. package/dist/{types → esm}/adapters/Cornerstone3D/MeasurementReport.d.ts +1 -8
  47. package/dist/esm/adapters/Cornerstone3D/MeasurementReport.js +281 -0
  48. package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.d.ts +3 -0
  49. package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.js +11 -0
  50. package/dist/esm/adapters/Cornerstone3D/ParametricMap/index.d.ts +1 -0
  51. package/dist/esm/adapters/Cornerstone3D/ParametricMap/index.js +1 -0
  52. package/dist/{types → esm}/adapters/Cornerstone3D/PlanarFreehandROI.d.ts +0 -2
  53. package/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.js +126 -0
  54. package/dist/esm/adapters/Cornerstone3D/Probe.d.ts +33 -0
  55. package/dist/esm/adapters/Cornerstone3D/Probe.js +87 -0
  56. package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.d.ts +67 -0
  57. package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.js +175 -0
  58. package/dist/esm/adapters/Cornerstone3D/RTStruct/index.js +6 -0
  59. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getPatientModule.d.ts +13 -0
  60. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getPatientModule.js +22 -0
  61. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTROIObservationsSequence.d.ts +6 -0
  62. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTROIObservationsSequence.js +10 -0
  63. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTSeriesModule.d.ts +4 -0
  64. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTSeriesModule.js +9 -0
  65. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.d.ts +11 -0
  66. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.js +22 -0
  67. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.d.ts +4 -0
  68. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.js +27 -0
  69. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.d.ts +7 -0
  70. package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.js +12 -0
  71. package/dist/esm/adapters/Cornerstone3D/RectangleROI.js +94 -0
  72. package/dist/{types → esm}/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.d.ts +0 -6
  73. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.js +34 -0
  74. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.d.ts +2 -0
  75. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.js +29 -0
  76. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.d.ts +2 -0
  77. package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.js +9 -0
  78. package/dist/esm/adapters/Cornerstone3D/Segmentation/index.js +3 -0
  79. package/dist/esm/adapters/Cornerstone3D/UltrasoundDirectional.js +93 -0
  80. package/dist/esm/adapters/Cornerstone3D/cornerstone3DTag.d.ts +2 -0
  81. package/dist/esm/adapters/Cornerstone3D/cornerstone3DTag.js +3 -0
  82. package/dist/{types → esm}/adapters/Cornerstone3D/index.d.ts +18 -6
  83. package/dist/esm/adapters/Cornerstone3D/index.js +45 -0
  84. package/dist/esm/adapters/Cornerstone3D/isValidCornerstoneTrackingIdentifier.js +18 -0
  85. package/dist/esm/adapters/VTKjs/Segmentation.d.ts +3 -0
  86. package/dist/esm/adapters/VTKjs/Segmentation.js +186 -0
  87. package/dist/esm/adapters/VTKjs/index.d.ts +5 -0
  88. package/dist/esm/adapters/VTKjs/index.js +7 -0
  89. package/dist/{types → esm}/adapters/enums/Events.d.ts +0 -6
  90. package/dist/esm/adapters/enums/Events.js +7 -0
  91. package/dist/esm/adapters/enums/index.js +1 -0
  92. package/dist/esm/adapters/helpers/checkIfPerpendicular.d.ts +1 -0
  93. package/dist/esm/adapters/helpers/checkIfPerpendicular.js +7 -0
  94. package/dist/esm/adapters/helpers/checkOrientation.d.ts +1 -0
  95. package/dist/esm/adapters/helpers/checkOrientation.js +22 -0
  96. package/dist/esm/adapters/helpers/codeMeaningEquals.d.ts +2 -0
  97. package/dist/esm/adapters/helpers/codeMeaningEquals.js +7 -0
  98. package/dist/esm/adapters/helpers/compareArrays.d.ts +1 -0
  99. package/dist/esm/adapters/helpers/compareArrays.js +16 -0
  100. package/dist/esm/adapters/helpers/downloadDICOMData.d.ts +5 -0
  101. package/dist/esm/adapters/helpers/downloadDICOMData.js +26 -0
  102. package/dist/esm/adapters/helpers/getDatasetsFromImages.d.ts +1 -0
  103. package/dist/esm/adapters/helpers/getDatasetsFromImages.js +33 -0
  104. package/dist/esm/adapters/helpers/graphicTypeEquals.d.ts +2 -0
  105. package/dist/esm/adapters/helpers/graphicTypeEquals.js +7 -0
  106. package/dist/esm/adapters/helpers/index.js +4 -0
  107. package/dist/esm/adapters/helpers/toArray.js +5 -0
  108. package/dist/esm/adapters/index.d.ts +66 -0
  109. package/dist/esm/adapters/index.js +24 -0
  110. package/dist/esm/index.d.ts +2 -0
  111. package/dist/esm/index.js +5 -0
  112. package/dist/umd/adapters.umd.js +5769 -0
  113. package/dist/umd/adapters.umd.js.map +1 -0
  114. package/package.json +47 -11
  115. package/dist/adapters.es.js +0 -5585
  116. package/dist/adapters.es.js.map +0 -1
  117. package/dist/types/adapters/Cornerstone/index.d.ts +0 -16
  118. package/dist/types/adapters/Cornerstone3D/RTStruct/RTSS.d.ts +0 -26
  119. package/dist/types/adapters/Cornerstone3D/Segmentation/generateSegmentation.d.ts +0 -8
  120. package/dist/types/adapters/Cornerstone3D/Segmentation/generateToolState.d.ts +0 -16
  121. package/dist/types/adapters/VTKjs/index.d.ts +0 -4
  122. package/dist/types/adapters/helpers/codeMeaningEquals.d.ts +0 -9
  123. package/dist/types/adapters/helpers/downloadDICOMData.d.ts +0 -10
  124. package/dist/types/adapters/helpers/graphicTypeEquals.d.ts +0 -7
  125. package/dist/types/adapters/index.d.ts +0 -49
  126. package/dist/types/index.d.ts +0 -2
  127. /package/dist/{types → esm}/adapters/Cornerstone3D/Angle.d.ts +0 -0
  128. /package/dist/{types → esm}/adapters/Cornerstone3D/Bidirectional.d.ts +0 -0
  129. /package/dist/{types → esm}/adapters/Cornerstone3D/CobbAngle.d.ts +0 -0
  130. /package/dist/{types → esm}/adapters/Cornerstone3D/EllipticalROI.d.ts +0 -0
  131. /package/dist/{types → esm}/adapters/Cornerstone3D/RTStruct/index.d.ts +0 -0
  132. /package/dist/{types → esm}/adapters/Cornerstone3D/RectangleROI.d.ts +0 -0
  133. /package/dist/{types → esm}/adapters/Cornerstone3D/Segmentation/index.d.ts +0 -0
  134. /package/dist/{types → esm}/adapters/Cornerstone3D/UltrasoundDirectional.d.ts +0 -0
  135. /package/dist/{types → esm}/adapters/Cornerstone3D/isValidCornerstoneTrackingIdentifier.d.ts +0 -0
  136. /package/dist/{types → esm}/adapters/enums/index.d.ts +0 -0
  137. /package/dist/{types → esm}/adapters/helpers/index.d.ts +0 -0
  138. /package/dist/{types → esm}/adapters/helpers/toArray.d.ts +0 -0
@@ -0,0 +1,175 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { utilities } from '@cornerstonejs/tools';
3
+ import dcmjs from 'dcmjs';
4
+ import getPatientModule from './utilities/getPatientModule.js';
5
+ import getReferencedFrameOfReferenceSequence from './utilities/getReferencedFrameOfReferenceSequence.js';
6
+ import getReferencedSeriesSequence from './utilities/getReferencedSeriesSequence.js';
7
+ import getRTROIObservationsSequence from './utilities/getRTROIObservationsSequence.js';
8
+ import getRTSeriesModule from './utilities/getRTSeriesModule.js';
9
+ import getStructureSetModule from './utilities/getStructureSetModule.js';
10
+
11
+ var _utilities$contours = utilities.contours,
12
+ generateContourSetsFromLabelmap = _utilities$contours.generateContourSetsFromLabelmap,
13
+ AnnotationToPointData = _utilities$contours.AnnotationToPointData;
14
+ var DicomMetaDictionary = dcmjs.data.DicomMetaDictionary;
15
+ function generateRTSSFromSegmentations(segmentations, metadataProvider, DicomMetadataStore) {
16
+ var roiContours = [];
17
+ var contourSets = generateContourSetsFromLabelmap({
18
+ segmentations: segmentations
19
+ });
20
+ contourSets.forEach(function (contourSet, segIndex) {
21
+ if (contourSet) {
22
+ var contourSequence = [];
23
+ contourSet.sliceContours.forEach(function (sliceContour) {
24
+ var sopCommon = metadataProvider.get("sopCommonModule", sliceContour.referencedImageId);
25
+ var ReferencedSOPClassUID = sopCommon.sopClassUID;
26
+ var ReferencedSOPInstanceUID = sopCommon.sopInstanceUID;
27
+ var ContourImageSequence = [{
28
+ ReferencedSOPClassUID: ReferencedSOPClassUID,
29
+ ReferencedSOPInstanceUID: ReferencedSOPInstanceUID
30
+ }];
31
+ var sliceContourPolyData = sliceContour.polyData;
32
+ sliceContour.contours.forEach(function (contour, index) {
33
+ var ContourGeometricType = contour.type;
34
+ var NumberOfContourPoints = contour.contourPoints.length;
35
+ var ContourData = [];
36
+ contour.contourPoints.forEach(function (point) {
37
+ var pointData = sliceContourPolyData.points[point];
38
+ pointData[0] = +pointData[0].toFixed(2);
39
+ pointData[1] = +pointData[1].toFixed(2);
40
+ pointData[2] = +pointData[2].toFixed(2);
41
+ ContourData.push(pointData[0]);
42
+ ContourData.push(pointData[1]);
43
+ ContourData.push(pointData[2]);
44
+ });
45
+ contourSequence.push({
46
+ ContourImageSequence: ContourImageSequence,
47
+ ContourGeometricType: ContourGeometricType,
48
+ NumberOfContourPoints: NumberOfContourPoints,
49
+ ContourNumber: index + 1,
50
+ ContourData: ContourData
51
+ });
52
+ });
53
+ });
54
+ var segLabel = contourSet.label || "Segment ".concat(segIndex + 1);
55
+ var ROIContour = {
56
+ name: segLabel,
57
+ description: segLabel,
58
+ contourSequence: contourSequence,
59
+ color: contourSet.color,
60
+ metadata: contourSet.metadata
61
+ };
62
+ roiContours.push(ROIContour);
63
+ }
64
+ });
65
+ var rtMetadata = {
66
+ name: segmentations.label,
67
+ label: segmentations.label
68
+ };
69
+ var dataset = _initializeDataset(rtMetadata, roiContours[0].metadata, metadataProvider);
70
+ roiContours.forEach(function (contour, index) {
71
+ var roiContour = {
72
+ ROIDisplayColor: contour.color || [255, 0, 0],
73
+ ContourSequence: contour.contourSequence,
74
+ ReferencedROINumber: index + 1
75
+ };
76
+ dataset.StructureSetROISequence.push(getStructureSetModule(contour, index));
77
+ dataset.ROIContourSequence.push(roiContour);
78
+ dataset.ReferencedSeriesSequence = getReferencedSeriesSequence(contour.metadata, index, metadataProvider, DicomMetadataStore);
79
+ dataset.ReferencedFrameOfReferenceSequence = getReferencedFrameOfReferenceSequence(contour.metadata, metadataProvider, dataset);
80
+ });
81
+ var fileMetaInformationVersionArray = new Uint8Array(2);
82
+ fileMetaInformationVersionArray[1] = 1;
83
+ var _meta = {
84
+ FileMetaInformationVersion: {
85
+ Value: [fileMetaInformationVersionArray.buffer],
86
+ vr: "OB"
87
+ },
88
+ TransferSyntaxUID: {
89
+ Value: ["1.2.840.10008.1.2.1"],
90
+ vr: "UI"
91
+ },
92
+ ImplementationClassUID: {
93
+ Value: [DicomMetaDictionary.uid()],
94
+ vr: "UI"
95
+ },
96
+ ImplementationVersionName: {
97
+ Value: ["dcmjs"],
98
+ vr: "SH"
99
+ }
100
+ };
101
+ dataset._meta = _meta;
102
+ dataset.SpecificCharacterSet = "ISO_IR 192";
103
+ return dataset;
104
+ }
105
+ function generateRTSSFromAnnotations(annotations, metadataProvider, DicomMetadataStore) {
106
+ var rtMetadata = {
107
+ name: "RTSS from Annotations",
108
+ label: "RTSS from Annotations"
109
+ };
110
+ var dataset = _initializeDataset(rtMetadata, annotations[0].metadata, metadataProvider);
111
+ annotations.forEach(function (annotation, index) {
112
+ var ContourSequence = AnnotationToPointData.convert(annotation, index, metadataProvider);
113
+ dataset.StructureSetROISequence.push(getStructureSetModule(annotation, index));
114
+ dataset.ROIContourSequence.push(ContourSequence);
115
+ dataset.RTROIObservationsSequence.push(getRTROIObservationsSequence(annotation, index));
116
+ dataset.ReferencedSeriesSequence = getReferencedSeriesSequence(annotation.metadata, index, metadataProvider, DicomMetadataStore);
117
+ dataset.ReferencedFrameOfReferenceSequence = getReferencedFrameOfReferenceSequence(annotation.metadata, metadataProvider, dataset);
118
+ });
119
+ var fileMetaInformationVersionArray = new Uint8Array(2);
120
+ fileMetaInformationVersionArray[1] = 1;
121
+ var _meta = {
122
+ FileMetaInformationVersion: {
123
+ Value: [fileMetaInformationVersionArray.buffer],
124
+ vr: "OB"
125
+ },
126
+ TransferSyntaxUID: {
127
+ Value: ["1.2.840.10008.1.2.1"],
128
+ vr: "UI"
129
+ },
130
+ ImplementationClassUID: {
131
+ Value: [DicomMetaDictionary.uid()],
132
+ vr: "UI"
133
+ },
134
+ ImplementationVersionName: {
135
+ Value: ["dcmjs"],
136
+ vr: "SH"
137
+ }
138
+ };
139
+ dataset._meta = _meta;
140
+ dataset.SpecificCharacterSet = "ISO_IR 192";
141
+ return dataset;
142
+ }
143
+ function _initializeDataset(rtMetadata, imgMetadata, metadataProvider) {
144
+ var rtSOPInstanceUID = DicomMetaDictionary.uid();
145
+ var imageId = imgMetadata.referencedImageId,
146
+ FrameOfReferenceUID = imgMetadata.FrameOfReferenceUID;
147
+ var _metadataProvider$get = metadataProvider.get("generalSeriesModule", imageId),
148
+ studyInstanceUID = _metadataProvider$get.studyInstanceUID;
149
+ var patientModule = getPatientModule(imageId, metadataProvider);
150
+ var rtSeriesModule = getRTSeriesModule(DicomMetaDictionary);
151
+ return _objectSpread2(_objectSpread2(_objectSpread2({
152
+ StructureSetROISequence: [],
153
+ ROIContourSequence: [],
154
+ RTROIObservationsSequence: [],
155
+ ReferencedSeriesSequence: [],
156
+ ReferencedFrameOfReferenceSequence: []
157
+ }, patientModule), rtSeriesModule), {}, {
158
+ StudyInstanceUID: studyInstanceUID,
159
+ SOPClassUID: "1.2.840.10008.5.1.4.1.1.481.3",
160
+ SOPInstanceUID: rtSOPInstanceUID,
161
+ Manufacturer: "dcmjs",
162
+ Modality: "RTSTRUCT",
163
+ FrameOfReferenceUID: FrameOfReferenceUID,
164
+ PositionReferenceIndicator: "",
165
+ StructureSetLabel: rtMetadata.label || "",
166
+ StructureSetName: rtMetadata.name || "",
167
+ ReferringPhysicianName: "",
168
+ OperatorsName: "",
169
+ StructureSetDate: DicomMetaDictionary.date(),
170
+ StructureSetTime: DicomMetaDictionary.time(),
171
+ _meta: null
172
+ });
173
+ }
174
+
175
+ export { generateRTSSFromAnnotations, generateRTSSFromSegmentations };
@@ -0,0 +1,6 @@
1
+ import { utilities } from '@cornerstonejs/tools';
2
+ export { generateRTSSFromAnnotations, generateRTSSFromSegmentations } from './RTSS.js';
3
+
4
+ var generateContourSetsFromLabelmap = utilities.contours.generateContourSetsFromLabelmap;
5
+
6
+ export { generateContourSetsFromLabelmap };
@@ -0,0 +1,13 @@
1
+ export default function getPatientModule(imageId: any, metadataProvider: any): {
2
+ Modality: any;
3
+ PatientID: any;
4
+ PatientName: any;
5
+ PatientBirthDate: string;
6
+ PatientAge: any;
7
+ PatientSex: any;
8
+ PatientWeight: any;
9
+ StudyDate: any;
10
+ StudyTime: any;
11
+ StudyID: string;
12
+ AccessionNumber: any;
13
+ };
@@ -0,0 +1,22 @@
1
+ function getPatientModule(imageId, metadataProvider) {
2
+ var generalSeriesModule = metadataProvider.get("generalSeriesModule", imageId);
3
+ var generalStudyModule = metadataProvider.get("generalStudyModule", imageId);
4
+ var patientStudyModule = metadataProvider.get("patientStudyModule", imageId);
5
+ var patientModule = metadataProvider.get("patientModule", imageId);
6
+ var patientDemographicModule = metadataProvider.get("patientDemographicModule", imageId);
7
+ return {
8
+ Modality: generalSeriesModule.modality,
9
+ PatientID: patientModule.patientId,
10
+ PatientName: patientModule.patientName,
11
+ PatientBirthDate: "",
12
+ PatientAge: patientStudyModule.patientAge,
13
+ PatientSex: patientDemographicModule.patientSex,
14
+ PatientWeight: patientStudyModule.patientWeight,
15
+ StudyDate: generalStudyModule.studyDate,
16
+ StudyTime: generalStudyModule.studyTime,
17
+ StudyID: "ToDo",
18
+ AccessionNumber: generalStudyModule.accessionNumber
19
+ };
20
+ }
21
+
22
+ export { getPatientModule as default };
@@ -0,0 +1,6 @@
1
+ export default function getRTROIObservationsSequence(toolData: any, index: any): {
2
+ ObservationNumber: any;
3
+ ReferencedROINumber: any;
4
+ RTROIInterpretedType: string;
5
+ ROIInterpreter: string;
6
+ };
@@ -0,0 +1,10 @@
1
+ function getRTROIObservationsSequence(toolData, index) {
2
+ return {
3
+ ObservationNumber: index + 1,
4
+ ReferencedROINumber: index + 1,
5
+ RTROIInterpretedType: "Todo: type",
6
+ ROIInterpreter: "Todo: interpreter"
7
+ };
8
+ }
9
+
10
+ export { getRTROIObservationsSequence as default };
@@ -0,0 +1,4 @@
1
+ export default function getRTSeriesModule(DicomMetaDictionary: any): {
2
+ SeriesInstanceUID: any;
3
+ SeriesNumber: string;
4
+ };
@@ -0,0 +1,9 @@
1
+ function getRTSeriesModule(DicomMetaDictionary) {
2
+ return {
3
+ SeriesInstanceUID: DicomMetaDictionary.uid(),
4
+ // generate a new series instance uid
5
+ SeriesNumber: "99" // Todo:: what should be the series number?
6
+ };
7
+ }
8
+
9
+ export { getRTSeriesModule as default };
@@ -0,0 +1,11 @@
1
+ export default function getReferencedFrameOfReferenceSequence(metadata: any, metadataProvider: any, dataset: any): {
2
+ FrameOfReferenceUID: any;
3
+ RTReferencedStudySequence: {
4
+ ReferencedSOPClassUID: any;
5
+ ReferencedSOPInstanceUID: any;
6
+ RTReferencedSeriesSequence: {
7
+ SeriesInstanceUID: any;
8
+ ContourImageSequence: any[];
9
+ }[];
10
+ }[];
11
+ }[];
@@ -0,0 +1,22 @@
1
+ import { toConsumableArray as _toConsumableArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+
3
+ function getReferencedFrameOfReferenceSequence(metadata, metadataProvider, dataset) {
4
+ var imageId = metadata.referencedImageId,
5
+ FrameOfReferenceUID = metadata.FrameOfReferenceUID;
6
+ var instance = metadataProvider.get("instance", imageId);
7
+ var SeriesInstanceUID = instance.SeriesInstanceUID;
8
+ var ReferencedSeriesSequence = dataset.ReferencedSeriesSequence;
9
+ return [{
10
+ FrameOfReferenceUID: FrameOfReferenceUID,
11
+ RTReferencedStudySequence: [{
12
+ ReferencedSOPClassUID: dataset.SOPClassUID,
13
+ ReferencedSOPInstanceUID: dataset.SOPInstanceUID,
14
+ RTReferencedSeriesSequence: [{
15
+ SeriesInstanceUID: SeriesInstanceUID,
16
+ ContourImageSequence: _toConsumableArray(ReferencedSeriesSequence[0].ReferencedInstanceSequence)
17
+ }]
18
+ }]
19
+ }];
20
+ }
21
+
22
+ export { getReferencedFrameOfReferenceSequence as default };
@@ -0,0 +1,4 @@
1
+ export default function getReferencedSeriesSequence(metadata: any, _index: any, metadataProvider: any, DicomMetadataStore: any): {
2
+ SeriesInstanceUID: any;
3
+ ReferencedInstanceSequence: any[];
4
+ }[];
@@ -0,0 +1,27 @@
1
+ function getReferencedSeriesSequence(metadata, _index, metadataProvider, DicomMetadataStore) {
2
+ // grab imageId from toolData
3
+ var imageId = metadata.referencedImageId;
4
+ var instance = metadataProvider.get("instance", imageId);
5
+ var SeriesInstanceUID = instance.SeriesInstanceUID,
6
+ StudyInstanceUID = instance.StudyInstanceUID;
7
+ var ReferencedSeriesSequence = [];
8
+ if (SeriesInstanceUID) {
9
+ var series = DicomMetadataStore.getSeries(StudyInstanceUID, SeriesInstanceUID);
10
+ var ReferencedSeries = {
11
+ SeriesInstanceUID: SeriesInstanceUID,
12
+ ReferencedInstanceSequence: []
13
+ };
14
+ series.instances.forEach(function (instance) {
15
+ var SOPInstanceUID = instance.SOPInstanceUID,
16
+ SOPClassUID = instance.SOPClassUID;
17
+ ReferencedSeries.ReferencedInstanceSequence.push({
18
+ ReferencedSOPClassUID: SOPClassUID,
19
+ ReferencedSOPInstanceUID: SOPInstanceUID
20
+ });
21
+ });
22
+ ReferencedSeriesSequence.push(ReferencedSeries);
23
+ }
24
+ return ReferencedSeriesSequence;
25
+ }
26
+
27
+ export { getReferencedSeriesSequence as default };
@@ -0,0 +1,7 @@
1
+ export default function getStructureSetModule(contour: any, index: any): {
2
+ ROINumber: any;
3
+ ROIName: any;
4
+ ROIDescription: string;
5
+ ROIGenerationAlgorithm: string;
6
+ ReferencedFrameOfReferenceUID: any;
7
+ };
@@ -0,0 +1,12 @@
1
+ function getStructureSetModule(contour, index) {
2
+ var FrameOfReferenceUID = contour.metadata.FrameOfReferenceUID;
3
+ return {
4
+ ROINumber: index + 1,
5
+ ROIName: contour.name || "Todo: name ".concat(index + 1),
6
+ ROIDescription: "Todo: description ".concat(index + 1),
7
+ ROIGenerationAlgorithm: "Todo: algorithm",
8
+ ReferencedFrameOfReferenceUID: FrameOfReferenceUID
9
+ };
10
+ }
11
+
12
+ export { getStructureSetModule as default };
@@ -0,0 +1,94 @@
1
+ import { slicedToArray as _slicedToArray, createClass as _createClass, defineProperty as _defineProperty, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { utilities } from 'dcmjs';
3
+ import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
4
+ import MeasurementReport from './MeasurementReport.js';
5
+
6
+ var _RectangleROI;
7
+ var TID300Polyline = utilities.TID300.Polyline;
8
+ var TOOLTYPE = "RectangleROI";
9
+ var trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(TOOLTYPE);
10
+ var RectangleROI = /*#__PURE__*/function () {
11
+ function RectangleROI() {
12
+ _classCallCheck(this, RectangleROI);
13
+ }
14
+ return _createClass(RectangleROI, null, [{
15
+ key: "getMeasurementData",
16
+ value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) {
17
+ var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, RectangleROI.toolType),
18
+ defaultState = _MeasurementReport$ge.defaultState,
19
+ NUMGroup = _MeasurementReport$ge.NUMGroup,
20
+ SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
21
+ ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
22
+ var referencedImageId = defaultState.annotation.metadata.referencedImageId;
23
+ var GraphicData = SCOORDGroup.GraphicData;
24
+ var worldCoords = [];
25
+ for (var i = 0; i < GraphicData.length; i += 2) {
26
+ var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
27
+ worldCoords.push(point);
28
+ }
29
+ var state = defaultState;
30
+ state.annotation.data = {
31
+ handles: {
32
+ points: [worldCoords[0], worldCoords[1], worldCoords[3], worldCoords[2]],
33
+ activeHandleIndex: 0,
34
+ textBox: {
35
+ hasMoved: false
36
+ }
37
+ },
38
+ cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), {
39
+ area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : null
40
+ }),
41
+ frameNumber: ReferencedFrameNumber
42
+ };
43
+ return state;
44
+ }
45
+ }, {
46
+ key: "getTID300RepresentationArguments",
47
+ value: function getTID300RepresentationArguments(tool, worldToImageCoords) {
48
+ var data = tool.data,
49
+ finding = tool.finding,
50
+ findingSites = tool.findingSites,
51
+ metadata = tool.metadata;
52
+ var _data$cachedStats = data.cachedStats,
53
+ cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats,
54
+ handles = data.handles;
55
+ var referencedImageId = metadata.referencedImageId;
56
+ if (!referencedImageId) {
57
+ throw new Error("CobbAngle.getTID300RepresentationArguments: referencedImageId is not defined");
58
+ }
59
+ var corners = handles.points.map(function (point) {
60
+ return worldToImageCoords(referencedImageId, point);
61
+ });
62
+ var area = cachedStats.area,
63
+ perimeter = cachedStats.perimeter;
64
+ return {
65
+ points: [corners[0], corners[1], corners[3], corners[2], corners[0]],
66
+ area: area,
67
+ perimeter: perimeter,
68
+ trackingIdentifierTextValue: trackingIdentifierTextValue,
69
+ finding: finding,
70
+ findingSites: findingSites || []
71
+ };
72
+ }
73
+ }]);
74
+ }();
75
+ _RectangleROI = RectangleROI;
76
+ _RectangleROI.toolType = TOOLTYPE;
77
+ _RectangleROI.utilityToolType = TOOLTYPE;
78
+ _RectangleROI.TID300Representation = TID300Polyline;
79
+ _RectangleROI.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
80
+ if (!TrackingIdentifier.includes(":")) {
81
+ return false;
82
+ }
83
+ var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
84
+ _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
85
+ cornerstone3DTag = _TrackingIdentifier$s2[0],
86
+ toolType = _TrackingIdentifier$s2[1];
87
+ if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {
88
+ return false;
89
+ }
90
+ return toolType === TOOLTYPE;
91
+ };
92
+ MeasurementReport.registerTool(RectangleROI);
93
+
94
+ export { RectangleROI as default };
@@ -1,9 +1,3 @@
1
- /**
2
- * Generates 2D label maps from a 3D label map.
3
- * @param labelmap3D - The 3D label map object to generate 2D label maps from. It is derived
4
- * from the volume labelmap.
5
- * @returns The label map object containing the 2D label maps and segments on label maps.
6
- */
7
1
  declare function generateLabelMaps2DFrom3D(labelmap3D: any): {
8
2
  scalarData: number[];
9
3
  dimensions: number[];
@@ -0,0 +1,34 @@
1
+ function generateLabelMaps2DFrom3D(labelmap3D) {
2
+ var scalarData = labelmap3D.scalarData,
3
+ dimensions = labelmap3D.dimensions;
4
+ var labelmaps2D = [];
5
+ var segmentsOnLabelmap3D = new Set();
6
+ for (var z = 0; z < dimensions[2]; z++) {
7
+ var pixelData = scalarData.slice(z * dimensions[0] * dimensions[1], (z + 1) * dimensions[0] * dimensions[1]);
8
+ var segmentsOnLabelmap = [];
9
+ for (var i = 0; i < pixelData.length; i++) {
10
+ var segment = pixelData[i];
11
+ if (!segmentsOnLabelmap.includes(segment) && segment !== 0) {
12
+ segmentsOnLabelmap.push(segment);
13
+ }
14
+ }
15
+ var labelmap2D = {
16
+ segmentsOnLabelmap: segmentsOnLabelmap,
17
+ pixelData: pixelData,
18
+ rows: dimensions[1],
19
+ columns: dimensions[0]
20
+ };
21
+ if (segmentsOnLabelmap.length === 0) {
22
+ continue;
23
+ }
24
+ segmentsOnLabelmap.forEach(function (segmentIndex) {
25
+ segmentsOnLabelmap3D.add(segmentIndex);
26
+ });
27
+ labelmaps2D[dimensions[2] - 1 - z] = labelmap2D;
28
+ }
29
+ labelmap3D.segmentsOnLabelmap = Array.from(segmentsOnLabelmap3D);
30
+ labelmap3D.labelmaps2D = labelmaps2D;
31
+ return labelmap3D;
32
+ }
33
+
34
+ export { generateLabelMaps2DFrom3D };
@@ -0,0 +1,2 @@
1
+ declare function generateSegmentation(images: any, labelmaps: any, metadata: any, options?: {}): any;
2
+ export { generateSegmentation };
@@ -0,0 +1,29 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { normalizers, derivations } from 'dcmjs';
3
+ import { fillSegmentation } from '../../Cornerstone/Segmentation_4X.js';
4
+
5
+ var Normalizer = normalizers.Normalizer;
6
+ var SegmentationDerivation = derivations.Segmentation;
7
+ function generateSegmentation(images, labelmaps, metadata) {
8
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
9
+ var segmentation = _createMultiframeSegmentationFromReferencedImages(images, metadata, options);
10
+ return fillSegmentation(segmentation, labelmaps, options);
11
+ }
12
+ function _createMultiframeSegmentationFromReferencedImages(images, metadata, options) {
13
+ var datasets = images.map(function (image) {
14
+ var instance = metadata.get("instance", image.imageId);
15
+ return _objectSpread2(_objectSpread2(_objectSpread2({}, image), instance), {}, {
16
+ SOPClassUID: instance.SopClassUID || instance.SOPClassUID,
17
+ SOPInstanceUID: instance.SopInstanceUID || instance.SOPInstanceUID,
18
+ PixelData: image.voxelManager.getScalarData(),
19
+ _vrMap: {
20
+ PixelData: "OW"
21
+ },
22
+ _meta: {}
23
+ });
24
+ });
25
+ var multiframe = Normalizer.normalizeToDataset(datasets);
26
+ return new SegmentationDerivation([multiframe], options);
27
+ }
28
+
29
+ export { generateSegmentation };
@@ -0,0 +1,2 @@
1
+ declare function generateToolState(imageIds: any, arrayBuffer: any, metadataProvider: any, skipOverlapping?: boolean, tolerance?: number): any;
2
+ export { generateToolState };
@@ -0,0 +1,9 @@
1
+ import { generateToolState as generateToolState$1 } from '../../Cornerstone/Segmentation.js';
2
+
3
+ function generateToolState(imageIds, arrayBuffer, metadataProvider) {
4
+ var skipOverlapping = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
5
+ var tolerance = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-3;
6
+ return generateToolState$1(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance);
7
+ }
8
+
9
+ export { generateToolState };
@@ -0,0 +1,3 @@
1
+ export { generateSegmentation } from './generateSegmentation.js';
2
+ export { generateLabelMaps2DFrom3D } from './generateLabelMaps2DFrom3D.js';
3
+ export { generateToolState } from './generateToolState.js';
@@ -0,0 +1,93 @@
1
+ import { slicedToArray as _slicedToArray, createClass as _createClass, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { utilities } from 'dcmjs';
3
+ import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
4
+ import MeasurementReport from './MeasurementReport.js';
5
+
6
+ var _UltrasoundDirectional;
7
+ var TID300Length = utilities.TID300.Length;
8
+ var ULTRASOUND_DIRECTIONAL = "UltrasoundDirectionalTool";
9
+ var trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(ULTRASOUND_DIRECTIONAL);
10
+ var UltrasoundDirectional = /*#__PURE__*/function () {
11
+ function UltrasoundDirectional() {
12
+ _classCallCheck(this, UltrasoundDirectional);
13
+ }
14
+ return _createClass(UltrasoundDirectional, null, [{
15
+ key: "getMeasurementData",
16
+ value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) {
17
+ var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, UltrasoundDirectional.toolType),
18
+ defaultState = _MeasurementReport$ge.defaultState,
19
+ SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
20
+ ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
21
+ var referencedImageId = defaultState.annotation.metadata.referencedImageId;
22
+ var GraphicData = SCOORDGroup.GraphicData;
23
+ var worldCoords = [];
24
+ for (var i = 0; i < GraphicData.length; i += 2) {
25
+ var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
26
+ worldCoords.push(point);
27
+ }
28
+ var state = defaultState;
29
+ state.annotation.data = {
30
+ handles: {
31
+ points: [worldCoords[0], worldCoords[1]],
32
+ activeHandleIndex: 0,
33
+ textBox: {
34
+ hasMoved: false
35
+ }
36
+ },
37
+ cachedStats: {},
38
+ frameNumber: ReferencedFrameNumber
39
+ };
40
+ return state;
41
+ }
42
+ }, {
43
+ key: "getTID300RepresentationArguments",
44
+ value: function getTID300RepresentationArguments(tool, worldToImageCoords) {
45
+ var data = tool.data,
46
+ finding = tool.finding,
47
+ findingSites = tool.findingSites,
48
+ metadata = tool.metadata;
49
+ var handles = data.handles;
50
+ var referencedImageId = metadata.referencedImageId;
51
+ if (!referencedImageId) {
52
+ throw new Error("UltrasoundDirectionalTool.getTID300RepresentationArguments: referencedImageId is not defined");
53
+ }
54
+ var start = worldToImageCoords(referencedImageId, handles.points[0]);
55
+ var end = worldToImageCoords(referencedImageId, handles.points[1]);
56
+ var point1 = {
57
+ x: start[0],
58
+ y: start[1]
59
+ };
60
+ var point2 = {
61
+ x: end[0],
62
+ y: end[1]
63
+ };
64
+ return {
65
+ point1: point1,
66
+ point2: point2,
67
+ trackingIdentifierTextValue: trackingIdentifierTextValue,
68
+ finding: finding,
69
+ findingSites: findingSites || []
70
+ };
71
+ }
72
+ }]);
73
+ }();
74
+ _UltrasoundDirectional = UltrasoundDirectional;
75
+ _UltrasoundDirectional.toolType = ULTRASOUND_DIRECTIONAL;
76
+ _UltrasoundDirectional.utilityToolType = ULTRASOUND_DIRECTIONAL;
77
+ _UltrasoundDirectional.TID300Representation = TID300Length;
78
+ _UltrasoundDirectional.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
79
+ if (!TrackingIdentifier.includes(":")) {
80
+ return false;
81
+ }
82
+ var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
83
+ _TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
84
+ cornerstone3DTag = _TrackingIdentifier$s2[0],
85
+ toolType = _TrackingIdentifier$s2[1];
86
+ if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {
87
+ return false;
88
+ }
89
+ return toolType === ULTRASOUND_DIRECTIONAL;
90
+ };
91
+ MeasurementReport.registerTool(UltrasoundDirectional);
92
+
93
+ export { UltrasoundDirectional as default };
@@ -0,0 +1,2 @@
1
+ declare const _default: "Cornerstone3DTools@^0.1.0";
2
+ export default _default;
@@ -0,0 +1,3 @@
1
+ var CORNERSTONE_3D_TAG = "Cornerstone3DTools@^0.1.0";
2
+
3
+ export { CORNERSTONE_3D_TAG as default };