Function: applyLivd()
applyLivd(
msg,catalog):LivdResult
Apply a consumer-supplied LIVD catalog to a parsed message, producing an
additive, advisory layer of LOINC annotations over its R (result) and O
(order) records. The source message is never mutated; the raw reported codes and
values stay exactly as parsed.
Fail-safe: with no matching entry a code is unmapped (+ an
ASTM_LIVD_UNMAPPED_CODE warning); with a conflicting mapping it is ambiguous
(+ an ASTM_LIVD_AMBIGUOUS_MAPPING warning); a LOINC is never guessed. When
the wire already carried an inline LOINC candidate, it is surfaced from the wire
(never overwritten by the catalog).
Parameters
msg
A parsed ASTM message.
catalog
The consumer-supplied LIVD catalog (build with defineLivdCatalog).
Returns
The annotations and value-free warnings (deeply frozen).
Example
import { parseAstmRecords, defineLivdCatalog, applyLivd } from "@cosyte/astm";
const msg = parseAstmRecords("H|\\^&\rR|1|^^^687|28.6|U/L||N||F\rL|1\r");
const catalog = defineLivdCatalog([{ vendorCode: "687", loinc: "1920-8", loincLongName: "AST" }]);
const { annotations } = applyLivd(msg, catalog);
annotations[0]?.mapping; // { status: "mapped", loinc: "1920-8", loincLongName: "AST", source: "livd", derived: true }