Type Alias: Observation
Observation =
ObservationBase& {value:number|undefined;valueType:"NM"; } | {value:SN|undefined;valueType:"SN"; } | {value:TS|undefined;valueType:"TS"|"DT"; } | {value:CWE|CE|undefined;valueType:"CWE"|"CE"; } | {value:string|undefined;valueType:string; }
One OBX segment as a typed Observation. value is discriminated by
valueType (OBX-2) per D-13:
"NM"→number | undefined"SN"→SN | undefined(structured numeric: comparator / range / ratio)"TS" | "DT"→TS | undefined(fidelity parts preserved)"CWE" | "CE"→CWE | CE | undefined(full composite per D-14)- other (
"ST","TX","FT","ID","IS","NA", unknown) →string | undefined(decoded, D-23)
D-22: value is undefined when OBX-5 is empty OR malformed for its
declared type (never throws, never NaN). A TS/DT value is always the
TS structure; check its .valid flag rather than expecting a Date.
Example
import type { Observation } from "@cosyte/hl7";
const glucose: Observation = {
setId: "1",
identifier: { identifier: "GLU", text: "Glucose" },
valueType: "NM",
value: 120,
units: { identifier: "mg/dL" },
referenceRange: "80-110",
abnormalFlags: "H",
status: "F",
};