Skip to main content
Version: v0.0.10

Dictionary

Public Dictionary namespace for @cosyte/dicom - Phase 1 deliverable.

D-10:

  • lookup - accepts either an 8-char hex tag ("00100010") or a keyword ("PatientName") and returns the typed DictionaryEntry or undefined.
  • byKeyword - keyword-only lookup; for cases where the caller has already validated the input shape and wants a narrower call.
  • uid - UID lookup (DICT-06).

No function throws on miss (D-10: "Returns the typed entry or undefined. No throws on miss."). Returned entries are deeply frozen - mutation attempts throw TypeError in strict mode (which all of @cosyte/dicom's emitted code runs under, given "use strict" is implicit for ES modules).

Interfaces

DictionaryEntry

One DICOM attribute as published in PS3.6 (Data Dictionary).

Example

import { Dictionary } from "@cosyte/dicom";
const entry = Dictionary.lookup("00100010");
if (entry) {
// entry.keyword === "PatientName"
// entry.vr === ["PN"]
}

Properties

keyword

readonly keyword: string

name

readonly name: string

repeatingGroup?

readonly optional repeatingGroup?: boolean

true for repeating-group families ((50xx,xxxx), (60xx,xxxx): curves/overlays); the DictionaryEntry.tag field for these contains lowercase x placeholders, NOT a concrete 8-hex-char tag. Repeating-group entries are not surfaced by Dictionary.lookup(tag) for concrete tags.

retired

readonly retired: boolean

tag

readonly tag: string

vm

readonly vm: string

vr

readonly vr: readonly VR[]


UidEntry

One DICOM UID as published in PS3.6 / PS3.4 (UID registry).

Example

import { Dictionary } from "@cosyte/dicom";
const ts = Dictionary.uid("1.2.840.10008.1.2.1");
if (ts) {
// ts.name === "Explicit VR Little Endian"
// ts.type === "TransferSyntax"
}

Properties

name

readonly name: string

retired

readonly retired: boolean

type

readonly type: "TransferSyntax" | "SOPClass" | "MetaSOPClass" | "WellKnownFrameOfReference" | "WellKnownSOPInstance" | "CodingScheme" | "ApplicationContext" | "ServiceClass" | "Other"

uid

readonly uid: string

Type Aliases

Tag

Tag = string

8-character uppercase hex DICOM tag, e.g., "00100010" (Patient's Name).

For repeating-group attribute families ((50xx,xxxx) curves, (60xx,xxxx) overlays, etc.), the tag string preserves lowercase x placeholders verbatim

Example

const tag: Tag = "00100010"; // Patient's Name

VR

VR = "AE" | "AS" | "AT" | "CS" | "DA" | "DS" | "DT" | "FL" | "FD" | "IS" | "LO" | "LT" | "OB" | "OD" | "OF" | "OL" | "OV" | "OW" | "PN" | "SH" | "SL" | "SQ" | "SS" | "ST" | "SV" | "TM" | "UC" | "UI" | "UL" | "UN" | "UR" | "US" | "UT" | "UV"

The 33 standard DICOM Value Representations from PS3.5 §6.2 plus the 64-bit additions (OV, SV, UV) introduced in DICOM 2018.

Note that some attributes in the data dictionary list MULTIPLE possible VRs

  • see DictionaryEntry.vr (which is always an array, possibly empty for retired entries with no VR or special "See Note" entries).

Example

const vr: VR = "PN"; // Person Name

Functions

byKeyword()

byKeyword(keyword): DictionaryEntry | undefined

Look up a DICOM attribute strictly by keyword ("PatientName").

Returns undefined for unknown keywords or malformed input. Use lookup if the input could be either a tag or a keyword.

Parameters

keyword

string

Returns

DictionaryEntry | undefined

Example

import { Dictionary } from "@cosyte/dicom";
const e = Dictionary.byKeyword("StudyInstanceUID");
// e?.tag === "0020000D"

lookup()

lookup(tagOrKeyword): DictionaryEntry | undefined

Look up a DICOM attribute by tag ("00100010") or keyword ("PatientName").

Hex tag input is normalized to uppercase; keyword input is case-sensitive. Returns undefined for unknown tags, unknown keywords, malformed input, or tags from repeating-group families (those resolve via the family entry's repeatingGroup flag - see DictionaryEntry).

Parameters

tagOrKeyword

string

Returns

DictionaryEntry | undefined

Example

import { Dictionary } from "@cosyte/dicom";
const a = Dictionary.lookup("00100010"); // by tag
const b = Dictionary.lookup("PatientName"); // by keyword (DICT-04)
const c = Dictionary.lookup("not-real"); // undefined (D-10 no-throw)

uid()

uid(uidValue): UidEntry | undefined

Look up a DICOM UID by its dotted-decimal value.

Returns undefined for unknown UIDs or malformed input. Used by parseDicom() (Phase 2) to render human-readable Transfer Syntax names (DICT-06).

Parameters

uidValue

string

Returns

UidEntry | undefined

Example

import { Dictionary } from "@cosyte/dicom";
const ts = Dictionary.uid("1.2.840.10008.1.2.1");
// ts?.name === "Explicit VR Little Endian"
// ts?.type === "TransferSyntax"