dcmjs 0.25.0 → 0.26.0

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/test/rawTags.js CHANGED
@@ -1,164 +1,170 @@
1
1
  export const rawTags = {
2
- "60030010": { vr: "LO", Value: ["Some tag"] },
3
- "60031010": {
4
- vr: "SQ",
5
- Value: [
6
- {
7
- "60030010": { vr: "LO", Value: ["Some tag"] },
8
- "00080008": { vr: "CS", Value: ["DERIVED", "SECONDARY"] },
9
- "00082111": { vr: "ST", Value: ["SmallPreview"] },
10
- "00280002": { vr: "US", Value: [3] },
11
- "00280004": { vr: "CS", Value: ["RGB"] },
12
- "00280006": { vr: "US", Value: [0] },
13
- "00280010": { vr: "US", Value: [64] },
14
- "00280011": { vr: "US", Value: [64] },
15
- "00280014": { vr: "US", Value: [0] },
16
- "00280100": { vr: "US", Value: [8] },
17
- "00280101": { vr: "US", Value: [8] },
18
- "00280102": { vr: "US", Value: [7] },
19
- "00280103": { vr: "US", Value: [0] }
20
- }
21
- ]
22
- },
23
- "00020002": { vr: "UI", Value: ["1.2.840.10008.5.1.4.1.1.6.1"] },
24
- "00020003": {
25
- vr: "UI",
26
- Value: ["1.2.276.0.7230010.3.1.4.891503823.1496.1569971389.200"]
27
- },
28
- "00020010": { vr: "UI", Value: ["1.2.840.10008.1.2.4.50"] },
29
- "00020012": { vr: "UI", Value: ["1.2.276.0.7230010.3.0.3.6.4"] },
30
- "00020013": { vr: "SH", Value: ["OFFIS_DCMTK_364"] },
31
- "00020016": { vr: "AE", Value: ["VIVIDS70-210420"] },
32
- "00080005": { vr: "CS", Value: ["ISO_IR 6"] },
33
- "00080008": { vr: "CS", Value: ["DERIVED", "PRIMARY", "", "0003"] },
34
- "00080016": { vr: "UI", Value: ["1.2.840.10008.5.1.4.1.1.6.1"] },
35
- "00080018": {
36
- vr: "UI",
37
- Value: ["1.2.276.0.7230010.3.1.4.891503823.1496.1569971389.200"]
38
- },
39
- "00080050": { vr: "SH" },
40
- "00080060": { vr: "CS", Value: ["US"] },
41
- "00080070": { vr: "LO", Value: ["GE Healthcare Ultrasound"] },
42
- "00080090": { vr: "PN" },
43
- "00081010": { vr: "SH", Value: ["VIVIDS70-210420"] },
44
- "00081070": { vr: "PN", Value: [{ Alphabetic: "CC" }] },
45
- "00081090": { vr: "LO", Value: ["Vivid S70"] },
46
- "00082111": {
47
- vr: "ST",
48
- Value: [
49
- "Lossy compression with JPEG baseline, IJG quality factor 90, compression ratio 13.52"
50
- ]
51
- },
52
- "00082112": {
53
- vr: "SQ",
54
- Value: [
55
- {
56
- "00081150": { vr: "UI", Value: ["1.2.840.10008.5.1.4.1.1.6.1"] },
57
- "00081155": {
58
- vr: "UI",
59
- Value: ["1.2.840.113619.2.394.210420.1570005923.6.1"]
60
- },
61
- "0040A170": {
62
- vr: "SQ",
63
- Value: [
2
+ 60030010: { vr: "LO", Value: ["Some tag"] },
3
+ 60031010: {
4
+ vr: "SQ",
5
+ Value: [
64
6
  {
65
- "00080100": { vr: "SH", Value: ["121320"] },
66
- "00080102": { vr: "SH", Value: ["DCM"] },
67
- "00080104": { vr: "LO", Value: ["Uncompressed predecessor"] }
7
+ 60030010: { vr: "LO", Value: ["Some tag"] },
8
+ "00080008": { vr: "CS", Value: ["DERIVED", "SECONDARY"] },
9
+ "00082111": { vr: "ST", Value: ["SmallPreview"] },
10
+ "00280002": { vr: "US", Value: [3] },
11
+ "00280004": { vr: "CS", Value: ["RGB"] },
12
+ "00280006": { vr: "US", Value: [0] },
13
+ "00280010": { vr: "US", Value: [64] },
14
+ "00280011": { vr: "US", Value: [64] },
15
+ "00280014": { vr: "US", Value: [0] },
16
+ "00280100": { vr: "US", Value: [8] },
17
+ "00280101": { vr: "US", Value: [8] },
18
+ "00280102": { vr: "US", Value: [7] },
19
+ "00280103": { vr: "US", Value: [0] }
68
20
  }
69
- ]
70
- }
71
- }
72
- ]
73
- },
74
- "00089215": {
75
- vr: "SQ",
76
- Value: [
77
- {
78
- "00080100": { vr: "SH", Value: ["113040"] },
79
- "00080102": { vr: "SH", Value: ["DCM"] },
80
- "00080104": { vr: "LO", Value: ["Lossy Compression"] }
81
- }
82
- ]
83
- },
84
- "00100040": { vr: "CS", Value: ["M"] },
85
- "00101020": { vr: "DS", Value: [1.6] },
86
- "00101030": { vr: "DS", Value: [68] },
87
- "00181020": { vr: "LO", Value: ["Vivid S70:203.66.0"] },
88
- "00181088": { vr: "IS", Value: [72] },
89
- "00186011": {
90
- vr: "SQ",
91
- Value: [
92
- {
93
- "00186012": { vr: "US", Value: [1] },
94
- "00186014": { vr: "US", Value: [1] },
95
- "00186016": { vr: "UL", Value: [0] },
96
- "00186018": { vr: "UL", Value: [375] },
97
- "0018601A": { vr: "UL", Value: [0] },
98
- "0018601C": { vr: "UL", Value: [639] },
99
- "0018601E": { vr: "UL", Value: [204] },
100
- "00186020": { vr: "SL", Value: [133] },
101
- "00186022": { vr: "SL", Value: [0] },
102
- "00186024": { vr: "US", Value: [3] },
103
- "00186026": { vr: "US", Value: [3] },
104
- "0018602C": { vr: "FD", Value: [0.07326203434437528] },
105
- "0018602E": { vr: "FD", Value: [0.07326203434437525] },
106
- "00186030": { vr: "UL", Value: [1670] }
107
- },
108
- {
109
- "00186012": { vr: "US", Value: [2] },
110
- "00186014": { vr: "US", Value: [1] },
111
- "00186016": { vr: "UL", Value: [2] },
112
- "00186018": { vr: "UL", Value: [50] },
113
- "0018601A": { vr: "UL", Value: [212] },
114
- "0018601C": { vr: "UL", Value: [913] },
115
- "0018601E": { vr: "UL", Value: [671] },
116
- "00186020": { vr: "SL", Value: [864] },
117
- "00186022": { vr: "SL", Value: [0] },
118
- "00186024": { vr: "US", Value: [4] },
119
- "00186026": { vr: "US", Value: [3] },
120
- "00186028": { vr: "FD", Value: [4.230744000000016] },
121
- "0018602A": { vr: "FD", Value: [0] },
122
- "0018602C": { vr: "FD", Value: [0.0023148148148148147] },
123
- "0018602E": { vr: "FD", Value: [0.03260869694792706] },
124
- "00186030": { vr: "UL", Value: [1670] }
125
- }
126
- ]
127
- },
128
- "0020000D": {
129
- vr: "UI",
130
- Value: ["1.2.840.113619.2.394.210420.1570005757.1.1"]
131
- },
132
- "0020000E": {
133
- vr: "UI",
134
- Value: ["1.2.840.113619.2.394.210420.1570005757.2.1"]
135
- },
136
- "00200010": { vr: "SH" },
137
- "00200011": { vr: "IS", Value: [1] },
138
- "00200013": { vr: "IS", Value: [4] },
139
- "00200020": { vr: "CS" },
140
- "00280002": { vr: "US", Value: [3] },
141
- "00280004": { vr: "CS", Value: ["YBR_FULL_422"] },
142
- "00280006": { vr: "US", Value: [0] },
143
- "00280010": { vr: "US", Value: [708] },
144
- "00280011": { vr: "US", Value: [1016] },
145
- "00280014": { vr: "US", Value: [0] },
146
- "00280100": { vr: "US", Value: [8] },
147
- "00280101": { vr: "US", Value: [8] },
148
- "00280102": { vr: "US", Value: [7] },
149
- "00280103": { vr: "US", Value: [0] },
150
- "00282110": { vr: "CS", Value: ["01"] },
151
- "00282112": { vr: "DS", Value: [10, 13.52] },
152
- "00282114": { vr: "CS", Value: ["", "ISO_10918_1"] },
153
- "00400275": {
154
- vr: "SQ",
155
- Value: [
156
- {
157
- "0020000D": {
158
- vr: "UI",
159
- Value: ["1.2.840.113619.2.394.210420.1570005757.1.1"]
160
- }
161
- }
162
- ]
163
- }
21
+ ]
22
+ },
23
+ "00020002": { vr: "UI", Value: ["1.2.840.10008.5.1.4.1.1.6.1"] },
24
+ "00020003": {
25
+ vr: "UI",
26
+ Value: ["1.2.276.0.7230010.3.1.4.891503823.1496.1569971389.200"]
27
+ },
28
+ "00020010": { vr: "UI", Value: ["1.2.840.10008.1.2.4.50"] },
29
+ "00020012": { vr: "UI", Value: ["1.2.276.0.7230010.3.0.3.6.4"] },
30
+ "00020013": { vr: "SH", Value: ["OFFIS_DCMTK_364"] },
31
+ "00020016": { vr: "AE", Value: ["VIVIDS70-210420"] },
32
+ "00080005": { vr: "CS", Value: ["ISO_IR 6"] },
33
+ "00080008": { vr: "CS", Value: ["DERIVED", "PRIMARY", "", "0003"] },
34
+ "00080016": { vr: "UI", Value: ["1.2.840.10008.5.1.4.1.1.6.1"] },
35
+ "00080018": {
36
+ vr: "UI",
37
+ Value: ["1.2.276.0.7230010.3.1.4.891503823.1496.1569971389.200"]
38
+ },
39
+ "00080050": { vr: "SH" },
40
+ "00080060": { vr: "CS", Value: ["US"] },
41
+ "00080070": { vr: "LO", Value: ["GE Healthcare Ultrasound"] },
42
+ "00080090": { vr: "PN" },
43
+ "00081010": { vr: "SH", Value: ["VIVIDS70-210420"] },
44
+ "00081070": { vr: "PN", Value: [{ Alphabetic: "CC" }] },
45
+ "00081090": { vr: "LO", Value: ["Vivid S70"] },
46
+ "00082111": {
47
+ vr: "ST",
48
+ Value: [
49
+ "Lossy compression with JPEG baseline, IJG quality factor 90, compression ratio 13.52"
50
+ ]
51
+ },
52
+ "00082112": {
53
+ vr: "SQ",
54
+ Value: [
55
+ {
56
+ "00081150": {
57
+ vr: "UI",
58
+ Value: ["1.2.840.10008.5.1.4.1.1.6.1"]
59
+ },
60
+ "00081155": {
61
+ vr: "UI",
62
+ Value: ["1.2.840.113619.2.394.210420.1570005923.6.1"]
63
+ },
64
+ "0040A170": {
65
+ vr: "SQ",
66
+ Value: [
67
+ {
68
+ "00080100": { vr: "SH", Value: ["121320"] },
69
+ "00080102": { vr: "SH", Value: ["DCM"] },
70
+ "00080104": {
71
+ vr: "LO",
72
+ Value: ["Uncompressed predecessor"]
73
+ }
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ ]
79
+ },
80
+ "00089215": {
81
+ vr: "SQ",
82
+ Value: [
83
+ {
84
+ "00080100": { vr: "SH", Value: ["113040"] },
85
+ "00080102": { vr: "SH", Value: ["DCM"] },
86
+ "00080104": { vr: "LO", Value: ["Lossy Compression"] }
87
+ }
88
+ ]
89
+ },
90
+ "00100040": { vr: "CS", Value: ["M"] },
91
+ "00101020": { vr: "DS", Value: [1.6] },
92
+ "00101030": { vr: "DS", Value: [68] },
93
+ "00181020": { vr: "LO", Value: ["Vivid S70:203.66.0"] },
94
+ "00181088": { vr: "IS", Value: [72] },
95
+ "00186011": {
96
+ vr: "SQ",
97
+ Value: [
98
+ {
99
+ "00186012": { vr: "US", Value: [1] },
100
+ "00186014": { vr: "US", Value: [1] },
101
+ "00186016": { vr: "UL", Value: [0] },
102
+ "00186018": { vr: "UL", Value: [375] },
103
+ "0018601A": { vr: "UL", Value: [0] },
104
+ "0018601C": { vr: "UL", Value: [639] },
105
+ "0018601E": { vr: "UL", Value: [204] },
106
+ "00186020": { vr: "SL", Value: [133] },
107
+ "00186022": { vr: "SL", Value: [0] },
108
+ "00186024": { vr: "US", Value: [3] },
109
+ "00186026": { vr: "US", Value: [3] },
110
+ "0018602C": { vr: "FD", Value: [0.07326203434437528] },
111
+ "0018602E": { vr: "FD", Value: [0.07326203434437525] },
112
+ "00186030": { vr: "UL", Value: [1670] }
113
+ },
114
+ {
115
+ "00186012": { vr: "US", Value: [2] },
116
+ "00186014": { vr: "US", Value: [1] },
117
+ "00186016": { vr: "UL", Value: [2] },
118
+ "00186018": { vr: "UL", Value: [50] },
119
+ "0018601A": { vr: "UL", Value: [212] },
120
+ "0018601C": { vr: "UL", Value: [913] },
121
+ "0018601E": { vr: "UL", Value: [671] },
122
+ "00186020": { vr: "SL", Value: [864] },
123
+ "00186022": { vr: "SL", Value: [0] },
124
+ "00186024": { vr: "US", Value: [4] },
125
+ "00186026": { vr: "US", Value: [3] },
126
+ "00186028": { vr: "FD", Value: [4.230744000000016] },
127
+ "0018602A": { vr: "FD", Value: [0] },
128
+ "0018602C": { vr: "FD", Value: [0.0023148148148148147] },
129
+ "0018602E": { vr: "FD", Value: [0.03260869694792706] },
130
+ "00186030": { vr: "UL", Value: [1670] }
131
+ }
132
+ ]
133
+ },
134
+ "0020000D": {
135
+ vr: "UI",
136
+ Value: ["1.2.840.113619.2.394.210420.1570005757.1.1"]
137
+ },
138
+ "0020000E": {
139
+ vr: "UI",
140
+ Value: ["1.2.840.113619.2.394.210420.1570005757.2.1"]
141
+ },
142
+ "00200010": { vr: "SH" },
143
+ "00200011": { vr: "IS", Value: [1] },
144
+ "00200013": { vr: "IS", Value: [4] },
145
+ "00200020": { vr: "CS" },
146
+ "00280002": { vr: "US", Value: [3] },
147
+ "00280004": { vr: "CS", Value: ["YBR_FULL_422"] },
148
+ "00280006": { vr: "US", Value: [0] },
149
+ "00280010": { vr: "US", Value: [708] },
150
+ "00280011": { vr: "US", Value: [1016] },
151
+ "00280014": { vr: "US", Value: [0] },
152
+ "00280100": { vr: "US", Value: [8] },
153
+ "00280101": { vr: "US", Value: [8] },
154
+ "00280102": { vr: "US", Value: [7] },
155
+ "00280103": { vr: "US", Value: [0] },
156
+ "00282110": { vr: "CS", Value: ["01"] },
157
+ "00282112": { vr: "DS", Value: [10, 13.52] },
158
+ "00282114": { vr: "CS", Value: ["", "ISO_10918_1"] },
159
+ "00400275": {
160
+ vr: "SQ",
161
+ Value: [
162
+ {
163
+ "0020000D": {
164
+ vr: "UI",
165
+ Value: ["1.2.840.113619.2.394.210420.1570005757.1.1"]
166
+ }
167
+ }
168
+ ]
169
+ }
164
170
  };
package/test/sr.test.js CHANGED
@@ -1 +1 @@
1
- it("No tests yet", () => {})
1
+ it("No tests yet", () => {});
@@ -0,0 +1,63 @@
1
+ import fs from "fs";
2
+ import fsPromises from "fs/promises";
3
+ import os from "os";
4
+ import path from "path";
5
+ import unzipper from "unzipper";
6
+ import followRedirects from "follow-redirects";
7
+ import { promisify } from "util";
8
+
9
+ const { https } = followRedirects;
10
+
11
+ function downloadToFile(url, filePath) {
12
+ return new Promise((resolve, reject) => {
13
+ const fileStream = fs.createWriteStream(filePath);
14
+ https
15
+ .get(url, response => {
16
+ response.pipe(fileStream);
17
+ fileStream.on("finish", () => {
18
+ resolve(filePath);
19
+ });
20
+ })
21
+ .on("error", reject);
22
+ });
23
+ }
24
+
25
+ function unzip(zipFilePath, targetPath) {
26
+ return new Promise(resolve => {
27
+ fs.createReadStream(zipFilePath).pipe(
28
+ unzipper.Extract({ path: targetPath }).on("close", resolve)
29
+ );
30
+ });
31
+ }
32
+
33
+ function ensureTestDataDir() {
34
+ var targetPath = path.join(os.tmpdir(), "dcmjs-test")
35
+ if (!fs.existsSync(targetPath)) {
36
+ fs.mkdirSync(targetPath)
37
+ }
38
+ return targetPath
39
+ }
40
+
41
+ async function getZippedTestDataset(url, filename, unpackDirectory) {
42
+ var dir = ensureTestDataDir()
43
+ var targetPath = path.join(dir, filename);
44
+ var unpackPath = path.join(dir, unpackDirectory);
45
+ if (!fs.existsSync(unpackPath)) {
46
+ await downloadToFile(url, targetPath)
47
+ await unzip(targetPath, unpackPath)
48
+ }
49
+ return unpackPath
50
+ }
51
+
52
+ async function getTestDataset(url, filename) {
53
+ var dir = ensureTestDataDir()
54
+ var targetPath = path.join(dir, filename);
55
+ if (!fs.existsSync(targetPath)) {
56
+ await downloadToFile(url, targetPath)
57
+ }
58
+ return targetPath
59
+ }
60
+
61
+ export {
62
+ getTestDataset, getZippedTestDataset
63
+ }
@@ -1,32 +1,51 @@
1
- import dcmjs from '../src/index.js';
1
+ import dcmjs from "../src/index.js";
2
2
 
3
3
  const { utilities } = dcmjs;
4
4
  const { addAccessors } = utilities;
5
5
 
6
- it("testAddAccessor", () => {
7
- const baseValue = { a: 1, b: 2 };
8
- const arrValue = [baseValue];
9
- const val = addAccessors(arrValue, baseValue);
10
- expect(val.a).toEqual(1);
11
- baseValue.a = 3;
12
- expect(val.a).toEqual(3);
13
- val.b = 4;
14
- expect(baseValue.b).toEqual(4);
6
+ describe("addAccessor", () => {
7
+ it("testAddAccessor", () => {
8
+ const baseValue = { a: 1, b: 2 };
9
+ const arrValue = [baseValue];
10
+ const val = addAccessors(arrValue);
11
+ expect(val.a).toEqual(1);
12
+ baseValue.a = 3;
13
+ expect(val.a).toEqual(3);
14
+ val.b = 4;
15
+ expect(baseValue.b).toEqual(4);
15
16
 
16
- // Check that we can iterate as an array
17
- const forArr = [];
18
- val.forEach(item => forArr.push(item));
19
- expect(forArr.length).toEqual(1);
20
- expect(forArr[0]).toEqual(baseValue);
21
- });
17
+ // Check that we can iterate as an array
18
+ const forArr = [];
19
+ val.forEach(item => forArr.push(item));
20
+ expect(forArr.length).toEqual(1);
21
+ expect(forArr[0]).toEqual(baseValue);
22
+ });
22
23
 
23
- it("testAddAccessor-adds_children", () => {
24
- const baseValue = { a: 1, b: 2 };
25
- const arrValue = [baseValue];
26
- const val = addAccessors(arrValue, baseValue);
27
- val.push({ a: "two" });
28
- expect(val.length).toBe(2);
29
- expect(val[1].a).toBe("two");
30
- expect(val.a).toBe(1);
31
- expect(val[0].a).toBe(1);
32
- });
24
+ it("testAddAccessor-adds_children", () => {
25
+ const baseValue = { a: 1, b: 2 };
26
+ const arrValue = [baseValue];
27
+ const val = addAccessors(arrValue, baseValue);
28
+ val.push({ a: "two" });
29
+ expect(val.length).toBe(2);
30
+ expect(val[1].a).toBe("two");
31
+ expect(val.a).toBe(1);
32
+ expect(val[0].a).toBe(1);
33
+ });
34
+
35
+ it("Does not double proxy", () => {
36
+ const baseValue = { a: 1, b: 2 };
37
+ const arrValue = [baseValue];
38
+ const val = addAccessors(arrValue, baseValue);
39
+ expect(val).toEqual(addAccessors(val));
40
+ expect(val.__isProxy).toBe(true);
41
+ })
42
+
43
+ it("Handles non-array dest with no sqzero", () => {
44
+ const baseValue = { a: 1, b: 2 };
45
+ expect(Array.isArray(addAccessors(baseValue))).toBe(true);
46
+ expect(addAccessors("Hello")).toBe("Hello");
47
+ expect(addAccessors([baseValue])[0]).toBe(baseValue);
48
+ expect(addAccessors([baseValue, 2])[1]).toBe(2);
49
+ })
50
+
51
+ });