Interface: ParseOptions
Options accepted by parseDicom.
Per 02-CONTEXT.md D-02 - Phase 2 form only. No profile field; Phase 6
adds it. With exactOptionalPropertyTypes: true, callers omit unset keys
rather than passing undefined for any field below.
Example
import { parseDicom } from "@cosyte/dicom";
const ds = parseDicom(buf, {
strict: false,
stripPreamble: "tolerate",
copyValues: false,
onWarning: (w) => console.warn(w.code),
});
Properties
copyValues?
readonlyoptionalcopyValues?:boolean
When true, every Element.rawBytes is Buffer.from(slice) - copying
each value out so the source buffer can be released. When false (the
default), Element.rawBytes is Buffer.subarray(slice) - a zero-copy
view that pins the source ArrayBuffer until every Element is GC'd.
Per D-16 / MODEL-03. Omit to use the default.
onWarning?
readonlyoptionalonWarning?:OnWarningCallback
Synchronous callback invoked once per Tier-2 warning, after the warning
has been pushed to Dataset.warnings. Throwing handlers are silently
swallowed (parser-state safety per D-03).
Omit to skip the callback entirely.
profile?
readonlyoptionalprofile?:Profile
Source/vendor tolerance preset (Phase 6, D-45). Applies the profile's
escalations / suppressions to warning emission and its
privateDictionary to Implicit-VR resolution of private data elements.
A profile only tightens or annotates - it never makes the default
lenient parse throw outside the four Tier-3 fatals, and a private
creator the profile does not recognize degrades to generic UN handling
plus a DICOM_PRIVATE_CREATOR_UNKNOWN warning, never a wrong decode.
Omit (do not pass undefined) for the unprofiled default behaviour.
strict?
readonlyoptionalstrict?:boolean
When true, every Tier-2 warning is escalated to a thrown
DicomParseError carrying the warning code. Default false.
Omit (do not pass undefined) to use the default.
stripPreamble?
readonlyoptionalstripPreamble?:"tolerate"|"require"
Preamble policy:
"tolerate"(default): attempt to start at offset 0 ifDICMmagic is missing at offset 128; emitDICOM_MISSING_PREAMBLE."require": throwDicomParseError(NOT_DICOM_PART_10)when noDICMmagic is present.
Omit to use the default.