@abasb75/dicom-parser 0.0.0-test3 → 0.0.1-a
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 +14 -62
- package/dist/index.d.mts +137 -0
- package/dist/index.d.ts +137 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +22 -32
- package/Dataset.d.ts +0 -57
- package/Dataset.js +0 -469
- package/Loader.d.ts +0 -8
- package/Loader.js +0 -105
- package/Parser.d.ts +0 -31
- package/Parser.js +0 -282
- package/PixelData.d.ts +0 -7
- package/PixelData.js +0 -124
- package/Tag.d.ts +0 -17
- package/Tag.js +0 -128
- package/Value.d.ts +0 -12
- package/Value.js +0 -152
- package/enums/TagsDictionary.d.ts +0 -8
- package/enums/TagsDictionary.js +0 -3610
- package/enums/TransferSyntax.d.ts +0 -17
- package/enums/TransferSyntax.js +0 -17
- package/enums/ValueRepresentations.d.ts +0 -2
- package/enums/ValueRepresentations.js +0 -2
- package/enums/index.d.ts +0 -12
- package/enums/index.js +0 -9
- package/index.d.ts +0 -10
- package/index.js +0 -48
- package/types.d.ts +0 -71
- package/types.js +0 -1
package/Loader.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var Loader = /** @class */ (function () {
|
|
38
|
-
function Loader(dicomSrc) {
|
|
39
|
-
Object.defineProperty(this, "dicomSrc", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
configurable: true,
|
|
42
|
-
writable: true,
|
|
43
|
-
value: void 0
|
|
44
|
-
});
|
|
45
|
-
Object.defineProperty(this, "xhr", {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true,
|
|
48
|
-
writable: true,
|
|
49
|
-
value: void 0
|
|
50
|
-
});
|
|
51
|
-
this.dicomSrc = dicomSrc;
|
|
52
|
-
this.xhr = new XMLHttpRequest();
|
|
53
|
-
}
|
|
54
|
-
Object.defineProperty(Loader.prototype, "load", {
|
|
55
|
-
enumerable: false,
|
|
56
|
-
configurable: true,
|
|
57
|
-
writable: true,
|
|
58
|
-
value: function (dicomSrc) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
-
var dicom_1;
|
|
61
|
-
var _this = this;
|
|
62
|
-
return __generator(this, function (_a) {
|
|
63
|
-
if (typeof dicomSrc === "string") {
|
|
64
|
-
dicom_1 = dicomSrc || this.dicomSrc;
|
|
65
|
-
if (!dicom_1)
|
|
66
|
-
return [2 /*return*/];
|
|
67
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
68
|
-
_this.xhr.onload = function () {
|
|
69
|
-
resolve(_this.xhr.response);
|
|
70
|
-
};
|
|
71
|
-
_this.xhr.onerror = function () {
|
|
72
|
-
reject(_this.xhr);
|
|
73
|
-
};
|
|
74
|
-
_this.xhr.responseType = 'arraybuffer';
|
|
75
|
-
_this.xhr.open('GET', dicom_1, true);
|
|
76
|
-
_this.xhr.send();
|
|
77
|
-
})];
|
|
78
|
-
}
|
|
79
|
-
else if (dicomSrc instanceof File) {
|
|
80
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
81
|
-
dicomSrc.arrayBuffer().then(function (arrayBuffer) {
|
|
82
|
-
resolve(arrayBuffer);
|
|
83
|
-
}).catch(function (reason) { return reject(reason); });
|
|
84
|
-
})];
|
|
85
|
-
}
|
|
86
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
87
|
-
if (false)
|
|
88
|
-
resolve(new ArrayBuffer(1));
|
|
89
|
-
reject("dicom source is not valid");
|
|
90
|
-
})];
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
Object.defineProperty(Loader.prototype, "cancel", {
|
|
96
|
-
enumerable: false,
|
|
97
|
-
configurable: true,
|
|
98
|
-
writable: true,
|
|
99
|
-
value: function () {
|
|
100
|
-
this.xhr.abort();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
return Loader;
|
|
104
|
-
}());
|
|
105
|
-
export default Loader;
|
package/Parser.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import Dataset from "./Dataset";
|
|
2
|
-
declare class Parser {
|
|
3
|
-
private start;
|
|
4
|
-
private end;
|
|
5
|
-
private arrayBuffer;
|
|
6
|
-
private offset;
|
|
7
|
-
private dataView;
|
|
8
|
-
private tags;
|
|
9
|
-
private dataSet;
|
|
10
|
-
private EXEPTED;
|
|
11
|
-
private VRS;
|
|
12
|
-
private IMPLICT_TRANSFER_SYNTAXES;
|
|
13
|
-
private BIG_ENDIAN_TRANSFER_SYNTAXES;
|
|
14
|
-
private DEFLATED_TRANSFER_SYNTAXES;
|
|
15
|
-
private littleEndian;
|
|
16
|
-
private implicit;
|
|
17
|
-
private transferSyntaxUID;
|
|
18
|
-
private inflated;
|
|
19
|
-
constructor(arrayBuffer: ArrayBuffer);
|
|
20
|
-
parse(): Dataset;
|
|
21
|
-
getDataset(): Dataset | undefined;
|
|
22
|
-
getNextElement(): void;
|
|
23
|
-
getValue(len: number): ArrayBuffer;
|
|
24
|
-
getNextGroupAndElement(): {
|
|
25
|
-
group: number;
|
|
26
|
-
element: number;
|
|
27
|
-
};
|
|
28
|
-
getNextVR(groupInt: number, elementInt: number): string;
|
|
29
|
-
concatArrayBuffers: (buffer1: ArrayBuffer, buffer2: ArrayBuffer) => ArrayBufferLike;
|
|
30
|
-
}
|
|
31
|
-
export default Parser;
|
package/Parser.js
DELETED
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import Dataset from "./Dataset";
|
|
2
|
-
import Tag from "./Tag";
|
|
3
|
-
import Value from "./Value";
|
|
4
|
-
import * as pako from "pako";
|
|
5
|
-
var Parser = /** @class */ (function () {
|
|
6
|
-
function Parser(arrayBuffer) {
|
|
7
|
-
Object.defineProperty(this, "start", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
configurable: true,
|
|
10
|
-
writable: true,
|
|
11
|
-
value: void 0
|
|
12
|
-
});
|
|
13
|
-
Object.defineProperty(this, "end", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
configurable: true,
|
|
16
|
-
writable: true,
|
|
17
|
-
value: void 0
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(this, "arrayBuffer", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
configurable: true,
|
|
22
|
-
writable: true,
|
|
23
|
-
value: void 0
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(this, "offset", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
configurable: true,
|
|
28
|
-
writable: true,
|
|
29
|
-
value: void 0
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(this, "dataView", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
configurable: true,
|
|
34
|
-
writable: true,
|
|
35
|
-
value: void 0
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(this, "tags", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
configurable: true,
|
|
40
|
-
writable: true,
|
|
41
|
-
value: {}
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(this, "dataSet", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
configurable: true,
|
|
46
|
-
writable: true,
|
|
47
|
-
value: void 0
|
|
48
|
-
});
|
|
49
|
-
Object.defineProperty(this, "EXEPTED", {
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: true,
|
|
52
|
-
writable: true,
|
|
53
|
-
value: ["OB", "OW", "SQ", "UN", "UT", "OF", "UC"]
|
|
54
|
-
});
|
|
55
|
-
Object.defineProperty(this, "VRS", {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
configurable: true,
|
|
58
|
-
writable: true,
|
|
59
|
-
value: ["AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD", "IS", "LO", "LT", "OB", "OD", "OF", "OW", "PN", "SH", "SL", "SS", "ST", "TM", "UI", "UL", "UN", "US", "UT", "UC"]
|
|
60
|
-
});
|
|
61
|
-
Object.defineProperty(this, "IMPLICT_TRANSFER_SYNTAXES", {
|
|
62
|
-
enumerable: true,
|
|
63
|
-
configurable: true,
|
|
64
|
-
writable: true,
|
|
65
|
-
value: ["1.2.840.10008.1.2"]
|
|
66
|
-
});
|
|
67
|
-
Object.defineProperty(this, "BIG_ENDIAN_TRANSFER_SYNTAXES", {
|
|
68
|
-
enumerable: true,
|
|
69
|
-
configurable: true,
|
|
70
|
-
writable: true,
|
|
71
|
-
value: ["1.2.840.10008.1.2.2"]
|
|
72
|
-
});
|
|
73
|
-
Object.defineProperty(this, "DEFLATED_TRANSFER_SYNTAXES", {
|
|
74
|
-
enumerable: true,
|
|
75
|
-
configurable: true,
|
|
76
|
-
writable: true,
|
|
77
|
-
value: ["1.2.840.10008.1.2.1.99"]
|
|
78
|
-
});
|
|
79
|
-
Object.defineProperty(this, "littleEndian", {
|
|
80
|
-
enumerable: true,
|
|
81
|
-
configurable: true,
|
|
82
|
-
writable: true,
|
|
83
|
-
value: true
|
|
84
|
-
});
|
|
85
|
-
Object.defineProperty(this, "implicit", {
|
|
86
|
-
enumerable: true,
|
|
87
|
-
configurable: true,
|
|
88
|
-
writable: true,
|
|
89
|
-
value: false
|
|
90
|
-
});
|
|
91
|
-
Object.defineProperty(this, "transferSyntaxUID", {
|
|
92
|
-
enumerable: true,
|
|
93
|
-
configurable: true,
|
|
94
|
-
writable: true,
|
|
95
|
-
value: ""
|
|
96
|
-
});
|
|
97
|
-
// private UNDEFIENED_LEN:number = 0xffffffff;
|
|
98
|
-
Object.defineProperty(this, "inflated", {
|
|
99
|
-
enumerable: true,
|
|
100
|
-
configurable: true,
|
|
101
|
-
writable: true,
|
|
102
|
-
value: false
|
|
103
|
-
});
|
|
104
|
-
Object.defineProperty(this, "concatArrayBuffers", {
|
|
105
|
-
enumerable: true,
|
|
106
|
-
configurable: true,
|
|
107
|
-
writable: true,
|
|
108
|
-
value: function (buffer1, buffer2) {
|
|
109
|
-
var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
|
|
110
|
-
tmp.set(new Uint8Array(buffer1), 0);
|
|
111
|
-
tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
|
|
112
|
-
return tmp.buffer;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
this.start = Date.now();
|
|
116
|
-
this.offset = 0;
|
|
117
|
-
this.arrayBuffer = arrayBuffer;
|
|
118
|
-
this.dataView = new DataView(arrayBuffer);
|
|
119
|
-
if (this.arrayBuffer.byteLength < 132) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
var prefix = Value.getString(new Uint8Array(arrayBuffer, 128, 4));
|
|
123
|
-
if (prefix !== 'DICM') {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
this.offset = 132;
|
|
127
|
-
this.parse();
|
|
128
|
-
}
|
|
129
|
-
Object.defineProperty(Parser.prototype, "parse", {
|
|
130
|
-
enumerable: false,
|
|
131
|
-
configurable: true,
|
|
132
|
-
writable: true,
|
|
133
|
-
value: function () {
|
|
134
|
-
this.getNextElement();
|
|
135
|
-
this.end = Date.now();
|
|
136
|
-
this.dataSet = new Dataset(this.tags, this.dataView, this.littleEndian, this.start, this.end);
|
|
137
|
-
this.dataSet.transferSyntaxUID = this.transferSyntaxUID;
|
|
138
|
-
return this.dataSet;
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
Object.defineProperty(Parser.prototype, "getDataset", {
|
|
142
|
-
enumerable: false,
|
|
143
|
-
configurable: true,
|
|
144
|
-
writable: true,
|
|
145
|
-
value: function () {
|
|
146
|
-
return this.dataSet;
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
Object.defineProperty(Parser.prototype, "getNextElement", {
|
|
150
|
-
enumerable: false,
|
|
151
|
-
configurable: true,
|
|
152
|
-
writable: true,
|
|
153
|
-
value: function () {
|
|
154
|
-
if (this.offset >= this.arrayBuffer.byteLength) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
var _a = this.getNextGroupAndElement(), group = _a.group, element = _a.element;
|
|
158
|
-
if (!group && !element) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
if (group === 0xFFFE && (element === 0xE0DD || element === 0xE00D || element === 0xE000)) {
|
|
162
|
-
this.offset += 4;
|
|
163
|
-
return this.getNextElement();
|
|
164
|
-
}
|
|
165
|
-
if (!this.implicit && group !== 0x0002 && this.IMPLICT_TRANSFER_SYNTAXES.includes(this.transferSyntaxUID)) {
|
|
166
|
-
this.implicit = true;
|
|
167
|
-
}
|
|
168
|
-
if (this.littleEndian && group !== 0x0002 && this.BIG_ENDIAN_TRANSFER_SYNTAXES.includes(this.transferSyntaxUID)) {
|
|
169
|
-
this.littleEndian = false;
|
|
170
|
-
}
|
|
171
|
-
if (!this.inflated && group !== 0x0002 && this.DEFLATED_TRANSFER_SYNTAXES.includes(this.transferSyntaxUID)) {
|
|
172
|
-
this.offset -= 4;
|
|
173
|
-
var meta = this.dataView.buffer.slice(0, this.offset);
|
|
174
|
-
var body = this.dataView.buffer.slice(this.offset);
|
|
175
|
-
var infaltedBody = pako.inflateRaw(body);
|
|
176
|
-
this.arrayBuffer = this.concatArrayBuffers(meta, infaltedBody);
|
|
177
|
-
this.dataView = new DataView(this.arrayBuffer);
|
|
178
|
-
this.inflated = true;
|
|
179
|
-
return this.getNextElement();
|
|
180
|
-
}
|
|
181
|
-
var vr = this.getNextVR(group, element);
|
|
182
|
-
var len = 0;
|
|
183
|
-
if (this.implicit) {
|
|
184
|
-
len = this.dataView.getUint32(this.offset, this.littleEndian);
|
|
185
|
-
this.offset += 4;
|
|
186
|
-
}
|
|
187
|
-
else if (this.EXEPTED.includes(vr)) {
|
|
188
|
-
this.offset += 2; // skip 2 byte reserved
|
|
189
|
-
len = this.dataView.getUint32(this.offset, this.littleEndian);
|
|
190
|
-
this.offset += 4;
|
|
191
|
-
}
|
|
192
|
-
else if (this.VRS.includes(vr)) {
|
|
193
|
-
len = this.dataView.getUint16(this.offset, this.littleEndian);
|
|
194
|
-
this.offset += 2;
|
|
195
|
-
}
|
|
196
|
-
else if ((!vr || !vr.match(/^[A-Z]{2}$/)) && group === 0x0002 && element === 0x0000) {
|
|
197
|
-
this.offset = 132;
|
|
198
|
-
this.tags = {};
|
|
199
|
-
this.implicit = true;
|
|
200
|
-
return this.getNextElement();
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
if (group === 0x0002 && element === 0x0010) {
|
|
206
|
-
this.transferSyntaxUID = (Value.getString(new Uint8Array(this.arrayBuffer, this.offset, len))).replace('\0', '');
|
|
207
|
-
}
|
|
208
|
-
var tag = new Tag(group, element, vr, len, this.offset);
|
|
209
|
-
var key = tag.generateKey();
|
|
210
|
-
this.tags[key] = tag;
|
|
211
|
-
if (len === 0xFFFFFFFF && group === 0x7FE0 && element === 0x0010) {
|
|
212
|
-
var _b = this.getNextGroupAndElement(), group_1 = _b.group, element_1 = _b.element;
|
|
213
|
-
while (true) {
|
|
214
|
-
if (group_1 === 0xFFFE && element_1 === 0xE000) {
|
|
215
|
-
var len_1 = this.dataView.getUint32(this.offset, this.littleEndian);
|
|
216
|
-
this.offset += 4;
|
|
217
|
-
var t = this.getNextGroupAndElement();
|
|
218
|
-
group_1 = t.group;
|
|
219
|
-
element_1 = t.element;
|
|
220
|
-
this.offset += len_1;
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
this.offset -= 4;
|
|
227
|
-
}
|
|
228
|
-
if (vr === "SQ") {
|
|
229
|
-
this.getNextElement();
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
this.offset += len;
|
|
233
|
-
this.getNextElement();
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
Object.defineProperty(Parser.prototype, "getValue", {
|
|
238
|
-
enumerable: false,
|
|
239
|
-
configurable: true,
|
|
240
|
-
writable: true,
|
|
241
|
-
value: function (len) {
|
|
242
|
-
var value = this.arrayBuffer.slice(this.offset, len);
|
|
243
|
-
this.offset += len;
|
|
244
|
-
return value;
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
Object.defineProperty(Parser.prototype, "getNextGroupAndElement", {
|
|
248
|
-
enumerable: false,
|
|
249
|
-
configurable: true,
|
|
250
|
-
writable: true,
|
|
251
|
-
value: function () {
|
|
252
|
-
try {
|
|
253
|
-
var group = this.dataView.getUint16(this.offset, this.littleEndian);
|
|
254
|
-
this.offset += 2;
|
|
255
|
-
var element = this.dataView.getUint16(this.offset, this.littleEndian);
|
|
256
|
-
this.offset += 2;
|
|
257
|
-
return { group: group, element: element };
|
|
258
|
-
}
|
|
259
|
-
catch (_a) {
|
|
260
|
-
return { group: 0, element: 0 };
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
Object.defineProperty(Parser.prototype, "getNextVR", {
|
|
265
|
-
enumerable: false,
|
|
266
|
-
configurable: true,
|
|
267
|
-
writable: true,
|
|
268
|
-
value: function (groupInt, elementInt) {
|
|
269
|
-
if (this.offset >= this.dataView.byteLength) {
|
|
270
|
-
return "";
|
|
271
|
-
}
|
|
272
|
-
if (this.implicit) {
|
|
273
|
-
return Tag.getTagVRFromDictionary(groupInt, elementInt) || "AA";
|
|
274
|
-
}
|
|
275
|
-
var vr = Value.getString(new Uint8Array(this.arrayBuffer, this.offset, 2));
|
|
276
|
-
this.offset += 2;
|
|
277
|
-
return vr;
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
return Parser;
|
|
281
|
-
}());
|
|
282
|
-
export default Parser;
|
package/PixelData.d.ts
DELETED
package/PixelData.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import Tag from "./Tag";
|
|
38
|
-
var PixelData = /** @class */ (function () {
|
|
39
|
-
function PixelData() {
|
|
40
|
-
}
|
|
41
|
-
Object.defineProperty(PixelData, "getAll", {
|
|
42
|
-
enumerable: false,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: function (dataset) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
-
return __generator(this, function (_a) {
|
|
48
|
-
return [2 /*return*/, PixelData._getixelDataViews(dataset)];
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
Object.defineProperty(PixelData, "get", {
|
|
54
|
-
enumerable: false,
|
|
55
|
-
configurable: true,
|
|
56
|
-
writable: true,
|
|
57
|
-
value: function (dataset_1) {
|
|
58
|
-
return __awaiter(this, arguments, void 0, function (dataset, frame) {
|
|
59
|
-
var pixelDatas;
|
|
60
|
-
if (frame === void 0) { frame = 0; }
|
|
61
|
-
return __generator(this, function (_a) {
|
|
62
|
-
pixelDatas = PixelData._getixelDataViews(dataset);
|
|
63
|
-
if (frame > pixelDatas.length) {
|
|
64
|
-
throw new Error("Frame ".concat(frame, " not found."));
|
|
65
|
-
}
|
|
66
|
-
return [2 /*return*/, pixelDatas[frame]];
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
Object.defineProperty(PixelData, "_getixelDataViews", {
|
|
72
|
-
enumerable: false,
|
|
73
|
-
configurable: true,
|
|
74
|
-
writable: true,
|
|
75
|
-
value: function (dataset) {
|
|
76
|
-
var pixelData = dataset.tags['0x7FE00010'] || dataset.tags['0x7FE00008'] || dataset.tags['0x7FE00009'];
|
|
77
|
-
var pixelDatas = [];
|
|
78
|
-
var numberOfFrames = dataset.pixelModule.numberOfFrames || 1;
|
|
79
|
-
if (pixelData.valueLength === 0xFFFFFFFF) {
|
|
80
|
-
var offset = pixelData.offset;
|
|
81
|
-
while (true) {
|
|
82
|
-
if (offset >= dataset.dataView.byteLength) {
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
var group = dataset.dataView.getUint16(offset, dataset.littleEndian);
|
|
86
|
-
offset += 2;
|
|
87
|
-
var element = dataset.dataView.getUint16(offset, dataset.littleEndian);
|
|
88
|
-
offset += 2;
|
|
89
|
-
if (group !== 0xFFFE && element !== 0xE000) {
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
}
|
|
94
|
-
console.log('group', Tag.intTo4digitString(group));
|
|
95
|
-
console.log('element', Tag.intTo4digitString(element));
|
|
96
|
-
var len = dataset.dataView.getUint32(offset, dataset.littleEndian);
|
|
97
|
-
offset += 4;
|
|
98
|
-
if (len !== 0) {
|
|
99
|
-
console.log('element is 2', len);
|
|
100
|
-
if (len > 4) {
|
|
101
|
-
var dataView = new DataView(dataset.dataView.buffer.slice(offset, offset + len));
|
|
102
|
-
pixelDatas.push(dataView);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
offset - 4;
|
|
106
|
-
}
|
|
107
|
-
offset += len;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
var frameLen = pixelData.valueLength / numberOfFrames;
|
|
113
|
-
for (var i = 0; i < numberOfFrames; i++) {
|
|
114
|
-
var offset = pixelData.offset + (frameLen * i);
|
|
115
|
-
var dataView = new DataView(dataset.dataView.buffer.slice(offset, offset + frameLen));
|
|
116
|
-
pixelDatas.push(dataView);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return pixelDatas;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
return PixelData;
|
|
123
|
-
}());
|
|
124
|
-
export default PixelData;
|
package/Tag.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
declare class Tag {
|
|
2
|
-
name: string;
|
|
3
|
-
vr: string;
|
|
4
|
-
group: number;
|
|
5
|
-
element: number;
|
|
6
|
-
value: unknown;
|
|
7
|
-
valueLength: number;
|
|
8
|
-
offset: number;
|
|
9
|
-
constructor(group: number, element: number, vr: string, valueLength: number, offset: number, value?: ArrayBuffer, name?: string | null);
|
|
10
|
-
generateKey(): string;
|
|
11
|
-
static getTagNameFromDictionary(groupInt: number, elementInt: number): string;
|
|
12
|
-
static getTagVRFromDictionary(group: number | string, element: number | string): string;
|
|
13
|
-
static intTo4digitString(int: number): string;
|
|
14
|
-
static int8digitString(int: number): string;
|
|
15
|
-
getValue(): void;
|
|
16
|
-
}
|
|
17
|
-
export default Tag;
|