Skip to content

BridgeLab 1.5.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 16:30
· 35 commits to main since this release

BridgeLab 1.5.0

HL7/FHIR editor for healthcare integration professionals.

This release is about FHIR depth: conformance against real profiles, a
complete FHIRPath engine, and your own validation rules — plus three more
HL7 v2 versions in the schema catalogue.

FHIR profile validation

Install a FHIR NPM package (hl7.fhir.r4.core, a national IG, your own
profiles) from Tools → FHIR profile packages… and every FHIR validation
also checks the resource against its StructureDefinitions:

  • cardinality — a required element missing, a 0..1 element repeating
  • element types — a boolean written as a string, a number where an
    object belongs
  • choice elements — value[x] must appear as exactly one of
    valueQuantity, valueString, … A plain value, or two forms at once,
    is reported
  • fixed values and patterns the profile pins down
  • unknown elements — the check that catches a typo like genderr, or an
    element belonging to a different resource type

Profiles a resource declares in meta.profile are applied automatically
when the package defining them is installed. When it is not, BridgeLab says
so rather than quietly reporting a clean result — and when profiles did run,
the report says that too.

Verified against hl7.fhir.r4.core 4.0.1: all 4,578 resources in the
package validate with 14 findings, every one of them genuine
— thirteen
SearchParameter files that really do omit the required base, and one
ValueSet declaring a profile the core package does not contain.

Terminology stays out of scope: a required binding can only be checked by
expanding the ValueSet, so bindings are left unchecked rather than
half-checked.

FHIRPath 2.0

The evaluator now implements the language, not a subset of it: the full
operator set at specification precedence, three-valued boolean logic,
partial-precision date/time literals, quantities with unit conversion,
$this / $index / $total, and around seventy functions — sort(),
repeat(), aggregate(), iif(), ofType(), the string and math
libraries, extension(), hasValue(), and resolve(), which follows a
Reference into a contained or bundled resource.

  • Comparing values of different precision returns the empty collection
    instead of a guess: @2015-02-04 = @2015-02 is neither true nor false
  • trace('label') passes its input through and shows what it captured
    under the result, so a long path can be inspected halfway along
  • Errors name the problem — an unknown function, a missing bracket, an
    operator handed a collection where it needs one value

Checked against the official HL7 FHIRPath test suite: 836 of the 922
runnable cases pass.

Custom FHIR validation rules

The declarative plugin packs that already extend the HL7 v2 validator now
cover FHIR. A rule is either a FHIRPath invariant that must hold —
identifier.exists(), the way FHIR writes its own constraints — or a
FHIRPath selector plus a check on the values it picks up: must be present,
how many, matches a pattern, one of a list, contains text, length bounds.

Tools → FHIR validation rules… edits them in-app. It validates the
FHIRPath before saving and can run a rule against the resource in the active
tab, showing which values the selector actually matched. A rule scoped to a
type the open resource is not says so, rather than reporting a pass.

Still no code execution: rules are data.

Three more HL7 versions

v2.5.1 — the baseline most US interfaces are written against — plus
v2.1 and v2.2 for legacy feeds still in production. The catalogue
now spans ten selectable versions and 2,320 message structures, feeding
XSD export, the schema-aware tree and the Field Inspector.

Fixed

  • HL7 v2.7.1 exported v2.7 data under its own name. v2.7.1 is a
    technical-correction release of v2.7 and genuinely carries the same
    definitions, so it is now declared an alias: marked (= v2.7) in the
    version dropdown, exporting from the v2.7 catalogue, without a duplicate
    payload in the binary.
  • Editor autocomplete and hover always described fields against v2.5,
    whatever version the open message declared. Both now read MSH-12 and use
    the matching catalogue.
  • Double-clicking a .hl7 file did not open BridgeLab on Linux. The
    desktop entry claimed the application/hl7-v2 type, but nothing on the
    system defined it, so no file ever matched. The .deb and .rpm now
    register the type with a *.hl7 rule and a content rule on the leading
    MSH|, so a message saved without an extension is recognised too. Windows
    and macOS were unaffected.

Upgrading

Nothing changes until you choose it. Profile validation only runs once you
install a package; FHIR rules only run once you write them. No file format,
setting or workflow changes, and existing plugin packs keep working.

Installing a profile package and the FHIR rules editor require a
Professional license. Rules and packages already in place keep validating in
every tier, so a lapsed trial never turns previously clean resources red.

Downloads

See the assets below for installers for Windows, macOS (Intel and Apple
Silicon), and Linux.

Download BridgeLab