Skip to main content
Version: v0.0.8

Interface: EmbeddedAttributeFinding

One value that was emptied because a Data Element was found inside it.

PS3.5 defines Value Length as the length of that element's own Value Field. A sender that over-declares it produces a file whose reading is self-consistent and whose next element has been absorbed into the previous one's value - and Table E.1-1 is keyed by tag, so an absorbed (0010,0020) is not an attribute any longer and no action fires on it. deidentify therefore refuses to keep a value whose tail decodes as whole Data Elements it would have acted on (PS3.15 §E.1 "all instances"; §E.3.5 is the standard's own precedent for removing identifying information embedded inside a string attribute).

Every field is structural: tag and vr are the carrier's, and hidden holds tags composed from four bytes each. No decoded value appears here, so this is safe to log.

Example

import { deidentify, parseDicom } from "@cosyte/dicom";
const { report } = deidentify(parseDicom(buf));
for (const e of report.embeddedAttributes) {
console.warn(`${e.tag} hid ${e.hidden.join(", ")} in its value`);
}

Properties

contextPath?

readonly optional contextPath?: readonly string[]

Tag/index chain when the carrier is inside a sequence item; omitted at the root.


hidden

readonly hidden: readonly string[]

The tags of the Data Elements found inside the carrier's value, in wire order.


tag

readonly tag: string

The carrier - the element whose over-declared value held the others.


vr

readonly vr: VR

The carrier's VR. Always one of the string VRs; binary VRs are not scanned.