jennifer registry

@deckyard/astm

The ASTM protocol of clinical lab instruments, E1381 / E1394 (CLSI LIS01-A2 / LIS02-A2): records, results, orders, host queries, and the low-level link over TCP or serial

astmlislis01lis02e1394

Depend on it

[decks]
"@deckyard/astm" = "^0.1.0"

Versions

VersionStatusKindPinRequiresEnginesCapabilities
0.1.0livegite9683baa29a5-jennifer >=0.26.0net

License

LGPL-3.0-only

Source

Released from
0.1.0
Published under
@deckyard mplx
Repository owner
deckyard

Readme

@deckyard/astm

test Documentation release

The ASTM protocol of clinical laboratory instruments for Jennifer programs: ASTM E1381 / E1394, now CLSI LIS01-A2 (the low-level link) and LIS02-A2 (the records). Parse and build records and messages; read results, orders and host queries; answer queries with orders; and move messages over TCP or a serial port with the LIS01 handshake, framing, checksums, retries, timers and contention, for a LIS or for an instrument simulator. Strict: a damaged frame is refused with NAK, records that break LIS02 are an error, and a device that differs from the standard in a documented way gets a Profile, not leniency.

Documentation

Install

jvc add @deckyard/astm

This vendors the deck to vendor/<scope>/astm/. Without jvc, unpack the src/ subtree of a release archive (<scope>-astm-<version>.tar.gz) there.

Usage

use io;

import "@deckyard/astm/" as astm;

def link as astm.Link init astm.accept(astm.listen(":4001"), astm.profile());
for (def m in astm.receive($link, 60000)) {
    for (def r in astm.results($m)) {
        io.printf("%s %s = %s %s\n", $r.sampleId, $r.test, $r.value, $r.units);
    }
}
astm.close($link);

Requirements

Jennifer 0.26.0 or newer and the default jennifer binary: the deck needs net, which the stock jennifer-tiny lacks. A serial port needs Linux.

Development

tools/check-all.sh                   # the full gate, as CI runs it
jennifer test src/astm_test.j        # the tests, against a scripted peer
tools/check-docs.sh                  # docs against the code
tools/pack.sh dist                   # build the release archive

Licence

LGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <[email protected]>.

tools/check-headers.sh checks every source file's SPDX header against deck.toml.

This deck as JSON