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?
readonlyoptionalcontextPath?: readonlystring[]
Tag/index chain when the carrier is inside a sequence item; omitted at the root.
hidden
readonlyhidden: readonlystring[]
The tags of the Data Elements found inside the carrier's value, in wire order.
tag
readonlytag:string
The carrier - the element whose over-declared value held the others.
vr
readonlyvr:VR
The carrier's VR. Always one of the string VRs; binary VRs are not scanned.