Repository navigation
0.0.3
·
92 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
- Snapshots of the derived form over the whole vendored corpus (#18). An
inventory carries one line per template with its group and field counts and
the kinds it derives, so a change shows as one changed line naming the
template rather than as a moved total; four whole documents are snapshotted
beside it, from a 4-field form to a 303-field one. A test also derives twenty
templates twice and compares the bytes, so the format's determinism claim is
checked rather than trusted. - The ADL 2 reader runs over the published archetype library (#49): 322
archetypes parse, 306 flatten into an operational template, and 301 read.
The 5 the reader refuses are mandatory unfilled slots, which is the
adjudication on #13; the 16 it never sees are refused by the upstream
flattener because a differential path in a specialised child does not
resolve in its parent, in a 2013 export that predates the AOM 2 validity
rules. The two families are counted apart, because they belong to different
owners. CI fetches the library and setsFERROCHART_REQUIRE_ADL2, so a
fetch that stops working is a red build rather than a skipped suite. - A fetch script for the ADL 2 archetype library (#49), pinned to a commit of
openEHR/adl-archetypes. It brings 322 ADL 2 archetypes and 330 ADL 1.4
twins, 321 of them the same archetype in both dialects, which is the first
real input for the property that both readers fill one internal constraint
model. Nothing from it is committed: one of the 652 files states a licence
and the rest state none, so the tree is fetched into a directory
.gitignorerefuses andPROVENANCE.mdrecords the omission. - The published form definition type (#17), in
ferrochart-form. A definition
is a tree of groups rooted at the template root; a group holds items, an item
is a nested group or a field, and a field carries one of eighteen field
kinds, one per thing a clinician can enter. Labels and help text are resolved
per language from the archetype terminology, occurrences carry repeatability
and optionality, anELEMENTthe template permits to be omitted carries the
four null flavours openEHR RM Release-1.1.0data_structures.html
section 4.1 names, and adefault_valueprefills the field. The crate
performs no I/O and depends on nothing else in the tree, so a third party can
write a renderer against it. Every map in the format is ordered and every
list keeps template order, so recompiling an unchanged template produces an
identical document. - The field derivation (#16), in
ferrochart-compile:docs/architecture.md
section 5 implemented against the internal constraint model, so it is written
once for both ADL generations. Each permitted unit of a quantity carries its
own magnitude bounds and decimal precision, so changing the unit changes
both; a coded field's value set is enumerated with its rubrics where the
archetype lists them and marked for expansion at render time where it only
names them; an ordinal keeps list order, scores by its integer and stores its
symbol's code; a date, time, date-and-time or duration pattern is honoured
component by component; an occurrences upper bound above one makes an item
repeatable; anassumed_valuenever reaches the data; and an open slot is
recorded as undetermined content rather than rendered. A constraint the
derivation does not understand is a typed error naming the node, never a
permissive field. Each of the twelve casesdocs/architecture.md
section 5.2 lists as ungoverned carries a decision in code labelled as
FerroCHART's own design. All 121 committed CKM templates the reader reads
derive a form.