@cosyte/dicom 0.1.4 → 0.1.5
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/CHANGELOG.md +8 -0
- package/dist/index.cjs +26 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +26 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -2
package/dist/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@ var __export = (target, all) => {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
// src/version.ts
|
|
12
|
-
var VERSION = "0.1.
|
|
12
|
+
var VERSION = "0.1.5";
|
|
13
13
|
|
|
14
14
|
// src/dictionary/index.ts
|
|
15
15
|
var dictionary_exports = {};
|
|
@@ -14941,6 +14941,7 @@ function toDate(value, options) {
|
|
|
14941
14941
|
return Number.isNaN(instant.getTime()) ? void 0 : instant;
|
|
14942
14942
|
}
|
|
14943
14943
|
var UNDEFINED_LENGTH4 = 4294967295;
|
|
14944
|
+
var MAX_SHORT_FORM_LENGTH = 65534;
|
|
14944
14945
|
var NULL_PAD_VRS = /* @__PURE__ */ new Set(["UI", "OB", "OW", "OF", "OD", "OL", "OV", "UN"]);
|
|
14945
14946
|
function padValue(value, vr) {
|
|
14946
14947
|
if (value.length % 2 === 0) return Buffer.from(value);
|
|
@@ -14959,6 +14960,19 @@ function uint32(n, littleEndian) {
|
|
|
14959
14960
|
else buf.writeUInt32BE(n, 0);
|
|
14960
14961
|
return buf;
|
|
14961
14962
|
}
|
|
14963
|
+
function littleEndianValue(value, vr, littleEndian) {
|
|
14964
|
+
const stride = BE_VR_STRIDE[vr];
|
|
14965
|
+
if (littleEndian || stride === 0) return value;
|
|
14966
|
+
const swapped = Buffer.from(value);
|
|
14967
|
+
const whole = swapped.subarray(0, swapped.length - swapped.length % stride);
|
|
14968
|
+
if (stride === 2) whole.swap16();
|
|
14969
|
+
else if (stride === 4) whole.swap32();
|
|
14970
|
+
else whole.swap64();
|
|
14971
|
+
return swapped;
|
|
14972
|
+
}
|
|
14973
|
+
function isPrivateCreator(group, element) {
|
|
14974
|
+
return group % 2 === 1 && element >= 16 && element <= 255;
|
|
14975
|
+
}
|
|
14962
14976
|
function isFullSpanElement(el, encoding) {
|
|
14963
14977
|
if (el.length === UNDEFINED_LENGTH4) return true;
|
|
14964
14978
|
return el.vr === "SQ" && encoding !== "implicit";
|
|
@@ -14990,6 +15004,17 @@ function encodeDatasetElement(el, encoding, rawBytes = el.rawBytes) {
|
|
|
14990
15004
|
value
|
|
14991
15005
|
]);
|
|
14992
15006
|
}
|
|
15007
|
+
if (value.length > MAX_SHORT_FORM_LENGTH && !isPrivateCreator(group, element)) {
|
|
15008
|
+
return Buffer.concat([
|
|
15009
|
+
uint16(group, littleEndian),
|
|
15010
|
+
uint16(element, littleEndian),
|
|
15011
|
+
Buffer.from("UN", "ascii"),
|
|
15012
|
+
Buffer.from([0, 0]),
|
|
15013
|
+
// reserved (PS3.5 §7.1.2)
|
|
15014
|
+
uint32(value.length, littleEndian),
|
|
15015
|
+
littleEndianValue(value, el.vr, littleEndian)
|
|
15016
|
+
]);
|
|
15017
|
+
}
|
|
14993
15018
|
return Buffer.concat([
|
|
14994
15019
|
uint16(group, littleEndian),
|
|
14995
15020
|
uint16(element, littleEndian),
|