@cosyte/dicom 0.1.3 → 0.1.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/CHANGELOG.md +8 -0
- package/dist/index.cjs +25 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +25 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -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.4";
|
|
13
13
|
|
|
14
14
|
// src/dictionary/index.ts
|
|
15
15
|
var dictionary_exports = {};
|
|
@@ -13221,7 +13221,18 @@ var MULTIBYTE_LABELS = /* @__PURE__ */ new Set([
|
|
|
13221
13221
|
]);
|
|
13222
13222
|
function parseSpecificCharacterSet(bytes) {
|
|
13223
13223
|
const raw = bytes.toString("latin1");
|
|
13224
|
-
return raw.split("\\").map(
|
|
13224
|
+
return raw.split("\\").map(trimTermPad).map((t) => t === "" || TERM_TO_LABEL.has(t) ? t : WITHHELD);
|
|
13225
|
+
}
|
|
13226
|
+
function trimTermPad(term) {
|
|
13227
|
+
let end = term.length;
|
|
13228
|
+
while (end > 0) {
|
|
13229
|
+
const code = term.charCodeAt(end - 1);
|
|
13230
|
+
if (code !== 0 && code !== 32) break;
|
|
13231
|
+
end--;
|
|
13232
|
+
}
|
|
13233
|
+
let start = 0;
|
|
13234
|
+
while (start < end && term.charCodeAt(start) === 32) start++;
|
|
13235
|
+
return term.slice(start, end);
|
|
13225
13236
|
}
|
|
13226
13237
|
function isKnownCharsetTerm(term) {
|
|
13227
13238
|
return TERM_TO_LABEL.has(term);
|
|
@@ -13788,6 +13799,14 @@ function stripPad(bytes, tag, vr, position, warnings) {
|
|
|
13788
13799
|
}
|
|
13789
13800
|
return bytes.subarray(0, end);
|
|
13790
13801
|
}
|
|
13802
|
+
function trimSpaces(value) {
|
|
13803
|
+
let start = 0;
|
|
13804
|
+
let end = value.length;
|
|
13805
|
+
while (start < end && value.charCodeAt(start) === SPACE2) start++;
|
|
13806
|
+
while (end > start && value.charCodeAt(end - 1) === SPACE2) end--;
|
|
13807
|
+
return value.slice(start, end);
|
|
13808
|
+
}
|
|
13809
|
+
var DECIMAL_STRING = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/u;
|
|
13791
13810
|
function attachWarnings(value, warnings) {
|
|
13792
13811
|
return warnings.length > 0 ? { ...value, warnings } : value;
|
|
13793
13812
|
}
|
|
@@ -13839,7 +13858,7 @@ function decodeElementValue(element) {
|
|
|
13839
13858
|
}
|
|
13840
13859
|
if (vr === "LO" || vr === "SH" || vr === "UC") {
|
|
13841
13860
|
const text = decodeCharsetString(trimmed, tag, vr, charset, position, warnings);
|
|
13842
|
-
const values = text.split("\\").map(
|
|
13861
|
+
const values = text.split("\\").map(trimSpaces);
|
|
13843
13862
|
return attachWarnings({ kind: "strings", values }, warnings);
|
|
13844
13863
|
}
|
|
13845
13864
|
if (vr === "LT" || vr === "ST" || vr === "UT") {
|
|
@@ -13852,7 +13871,7 @@ function decodeElementValue(element) {
|
|
|
13852
13871
|
}
|
|
13853
13872
|
if (vr === "AE" || vr === "CS" || vr === "AS" || vr === "UI") {
|
|
13854
13873
|
const text = decodeAsciiString(trimmed, tag, vr, position, warnings);
|
|
13855
|
-
const values = text.split("\\").map(
|
|
13874
|
+
const values = text.split("\\").map(trimSpaces);
|
|
13856
13875
|
return attachWarnings({ kind: "strings", values }, warnings);
|
|
13857
13876
|
}
|
|
13858
13877
|
if (vr === "DS") {
|
|
@@ -13860,7 +13879,7 @@ function decodeElementValue(element) {
|
|
|
13860
13879
|
const values = text.split("\\").map((v) => {
|
|
13861
13880
|
const t = v.trim();
|
|
13862
13881
|
if (t.length === 0) return null;
|
|
13863
|
-
if (
|
|
13882
|
+
if (!DECIMAL_STRING.test(t)) return null;
|
|
13864
13883
|
const n = Number(t);
|
|
13865
13884
|
return Number.isFinite(n) ? n : null;
|
|
13866
13885
|
});
|
|
@@ -16693,7 +16712,7 @@ function effectiveCode(action, active) {
|
|
|
16693
16712
|
return action.basicProfile;
|
|
16694
16713
|
}
|
|
16695
16714
|
function resolveAction(code) {
|
|
16696
|
-
const first = code.split("/", 1)[0]?.
|
|
16715
|
+
const first = code.split("/", 1)[0]?.replaceAll("*", "") ?? "K";
|
|
16697
16716
|
return first;
|
|
16698
16717
|
}
|
|
16699
16718
|
var TEXT_DUMMIES = {
|