Skip to content

Repository files navigation

BridgeLab

HL7 made simple - A modern HL7/FHIR message editor for healthcare integration professionals.

Made by TECHEMV SRL License Platforms

Links

Features

  • HL7 v2.x parser - SIMD-accelerated streaming parser, handles 5-10MB messages with base64 sections smoothly
  • FHIR support - Parse and validate JSON/XML FHIR resources (Patient, Observation, Bundle, ...)
  • Smart truncation - Large fields auto-truncated to {...N bytes}, expandable inline or all at once
  • Validation - Structural, field-level, data-type validation with 5 rule categories
  • MLLP transport - Client & server with custom framing, auto-ACK, encoding selection
  • HTTP client - GET/POST/PUT/DELETE/PATCH with Basic/Bearer auth, headers, timeout
  • Anonymization - 21 known PHI field definitions across PID/NK1/IN1/GT1
  • Export - JSON, CSV, structured representations
  • XSD schema export - Generate HL7 v2.xml compatible XSD files for any supported message type (4 common messages in v2.5 free, full catalogue in Pro). Useful for integration engines that accept hand-authored schemas (Astraia, BizTalk, XMLSpy…).
  • 5 Languages - English, Italian, French, Spanish, German
  • Licensing - Ed25519-signed offline license verification, hardware binding, 14-day trial
  • Field Inspector - Side panel showing HL7 standard metadata (name, type, required, max length, description) for the selected tree node
  • Schema-aware Tree - Optional view that injects placeholder rows for every field defined by the standard so you see what could be populated
  • Precise Editor ↔ Tree navigation - Right-click a field in the editor to highlight it in the tree, or right-click a tree node to select the matching range in Monaco

Stack

  • Frontend: Svelte 5 + TypeScript + Monaco Editor
  • Backend: Rust + Tauri 2
  • Database: SQLite (rusqlite)
  • Transport: tokio (MLLP), reqwest (HTTP)
  • Licensing: Ed25519 signatures + hardware fingerprint

Development

Prerequisites

Running

pnpm install
pnpm tauri dev

Testing

# Rust tests (parser, validation, anonymization, licensing, ...)
cd src-tauri && cargo test

# Frontend check & build
pnpm check
pnpm build

# Generate the QA Excel workbook from TEST_PLAN.md
pip install openpyxl
python scripts/test_plan_to_excel.py   # -> TEST_PLAN.xlsx (gitignored)

Full manual test catalogue lives in TEST_PLAN.md (~300 cases organized by feature area). CI automates the automatable slice:

  • ci.yml - cargo check/cargo test --all, svelte-check (0 errors), pnpm build
  • feature-tests.yml - CLI feature tests, HL7 fixtures (parser/info/validate/anonymize/batch/JUnit), FHIR fixture integrity, schema-lookup Rust tests, license keygen roundtrip

Plugin packs (declarative rules)

BridgeLab accepts user-supplied JSON plugin packs that extend the built-in validator and PHI anonymizer without running any code.

<config_dir>/BridgeLab/plugins/
├── validation/    *.json  - extra validation rules (not_empty, regex,
│                            one_of, max_length, min_length, contains)
└── anonymization/ *.json  - extra PHI fields merged with the built-in list

Manage packs from Settings → Plugins: list, toggle on/off (persisted), Reload, "Open plugins folder". See docs/PLUGINS.md for the full schema and examples; ready-to-copy reference packs live under examples/plugins/.

Scripted plugins (sandboxed JS, WASM) are on the roadmap as layers on top of this declarative baseline.

Resource usage

BridgeLab does not require memory tuning - the Rust backend uses zero-copy parsing plus on-demand field truncation, and peak RAM stays below ~300 MB even on 10 MB messages. If you want to trade display fidelity for IPC size on unusually large files, adjust Settings → Parser → Truncation threshold.

Installer options

Per-platform installer configuration lives in src-tauri/tauri.conf.json.

  • Windows NSIS: shows the MIT license page, a language selector (EN/IT/FR/ES/DE), installs to %LOCALAPPDATA%\Programs\BridgeLab by default (current user), LZMA compression
  • Windows MSI (WiX): multi-language (en-US/it-IT/fr-FR/es-ES/de-DE)
  • macOS DMG: presents a drag-to-Applications layout with the app + Applications icons
  • Linux .deb: declares libwebkit2gtk-4.1-0 + libgtk-3-0 dependencies, utils section
  • Linux AppImage: bundles the media framework so GStreamer-dependent features work offline
  • Linux .rpm: declares webkit2gtk4.1 + gtk3 dependencies
  • File association: .hl7 is registered so double-clicking a file opens BridgeLab

The MIT LICENSE file at the repo root is referenced from the bundle licenseFile field and included in the installer payload.

Building a Release

Releases are built via GitHub Actions and require maintainer access. Binaries are published to GitHub Releases.

License Keys

BridgeLab uses Ed25519-signed license keys with hardware binding, verified locally — there is no license server dependency at runtime.

Online activation (default) — buy a license and receive an activation code (BL-PRO-XXXX-XXXX-XXXX) by e-mail. Paste it in Settings → License → Activate: the app exchanges it once over HTTPS for a signed key bound to this machine, then everything works offline. Each seat allows a limited number of activations; use Deactivate to free the seat before moving to another machine.

Offline keys — for air-gapped sites, send your Hardware ID (shown in the activation dialog) to info@techemv.it and receive a signed key by e-mail. No network access is ever required with this flow.

Contact TECHEMV SRL (info@techemv.it) for license purchases.

Project Structure

BridgeLab/
├── src/                      # Svelte 5 frontend
│   ├── lib/components/       # UI components
│   ├── lib/ipc/              # Tauri command wrappers
│   ├── lib/i18n/             # Translations (EN, IT, FR, ES, DE)
│   └── lib/stores/           # Svelte 5 runes stores
├── src-tauri/                # Rust backend
│   └── src/
│       ├── parser/           # HL7 v2.x + FHIR parsers
│       ├── validation/       # Validation engine
│       ├── communication/    # MLLP, HTTP clients
│       ├── anonymization/    # PHI detection & masking
│       ├── licensing/        # Ed25519 license verification
│       └── commands/         # IPC command handlers
├── tools/
│   └── bridgelab-cli/        # Validation + anonymization CLI
└── .github/workflows/        # CI/CD pipelines

Troubleshooting installs

Windows Server 2022 / corporate desktops — WebView2 install fails with code -2147012866

The error 0x800072EFE (WININET_E_CONNECTION_RESET) means the WebView2 bootstrapper could not download the runtime from Microsoft's CDN — typically because the machine has no internet, sits behind a firewall that blocks msedge.api.cdp.microsoft.com, or has Internet Explorer Enhanced Security Configuration enabled (default on Windows Server).

Two ways to fix:

  1. Use the offline installer — from v0.2.0 onwards the standard BridgeLab installer ships with the WebView2 runtime embedded (~150 MB instead of ~13 MB). Download the latest from Releases.
  2. Install WebView2 manually first, then run any older BridgeLab installer: https://developer.microsoft.com/microsoft-edge/webview2/ — pick the Evergreen Standalone Installer for x64. Once installed system-wide, BridgeLab installers (online or offline) will skip the WebView2 step entirely.

Per-user vs per-machine install (Windows)

The installer asks where to install:

  • Current user only — installs under %LOCALAPPDATA%\Programs\BridgeLab, no admin elevation required.
  • All users on this machine — installs under %PROGRAMFILES%\BridgeLab, prompts for admin (UAC). Useful on shared workstations and Windows Server.

The choice is remembered for in-place upgrades.

Contact

TECHEMV SRL

For license purchases, enterprise inquiries, integration support and bug reports outside GitHub Issues, reach us at the email above.

License

Open Core — the core is MIT-licensed and free for commercial use. Paid-tier feature implementations live in two clearly marked directories — src-tauri/src/pro/ and src/lib/pro/ — licensed under the Business Source License 1.1 (production use requires an active subscription; each converts to MIT four years after publication). See the root LICENSE file for the exact carve-out; everything published before those directories existed remains MIT. Building the Rust backend with --no-default-features produces a Community-only binary that compiles without the BUSL directories.

Copyright (c) 2026 TECHEMV SRL

About

No description, website, or topics provided.

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages