HL7 made simple - A modern HL7/FHIR message editor for healthcare integration professionals.
- Landing page: docs/site/ - deployed to GitHub Pages
via
.github/workflows/pages.yml. Preview locally withpython3 -m http.server --directory docs/site 4173. - Changelog: CHANGELOG.md
- Plugin docs: docs/PLUGINS.md
- Test plan: TEST_PLAN.md
- Roadmap: ROADMAP.md
- 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
- Frontend: Svelte 5 + TypeScript + Monaco Editor
- Backend: Rust + Tauri 2
- Database: SQLite (rusqlite)
- Transport: tokio (MLLP), reqwest (HTTP)
- Licensing: Ed25519 signatures + hardware fingerprint
- Rust (stable)
- Node.js 20+
- pnpm 10+
- Platform-specific Tauri dependencies (setup guide)
pnpm install
pnpm tauri dev# 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 buildfeature-tests.yml- CLI feature tests, HL7 fixtures (parser/info/validate/anonymize/batch/JUnit), FHIR fixture integrity, schema-lookup Rust tests, license keygen roundtrip
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.
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.
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\BridgeLabby 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-0dependencies,utilssection - Linux AppImage: bundles the media framework so GStreamer-dependent features work offline
- Linux .rpm: declares
webkit2gtk4.1+gtk3dependencies - File association:
.hl7is 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.
Releases are built via GitHub Actions and require maintainer access. Binaries are published to GitHub Releases.
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.
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
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:
- 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.
- 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.
TECHEMV SRL
- Email: info@techemv.it
- Web: www.techemv.it
For license purchases, enterprise inquiries, integration support and bug reports outside GitHub Issues, reach us at the email above.
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