Build your interfaces in VS Code
Build interfaces with wizards or Python, autocomplete HL7 fields, and test with synthetic data in VS Code. The extension is optional.
Autocomplete the HL7, catch mistakes on save
Choose segment and field references such as PID-5 and MSH-9.2 from a bundled HL7 schema.
Validation on save flags unknown segments, malformed field paths, and typos.
@handler("route_adt") def route_adt(msg): mrn = msg["PID-3.1"] # ⌄ from the HL7 schema name = msg["PID-5.1"] event = msg["MSH-9.2"] # A01 / A04 / A08 … if event not in ("A01", "A04", "A08"): return None return Send("EHR_Out", msg) # Typo a segment? Flagged the moment you save.
Wizards for the routine, code for the rest
Generate an interface with a wizard or write Python directly. Both produce the same configuration format.
New Route Wizard
Generate an inbound connection, router, handler, and outbound connection in one wizard. The output is Python configuration wired by name.
Connections sidebar
Find and open connections in a tree you can filter and group, or use the Home authoring page.
connections.toml editor
Edit connections.toml with a form, a text editor, or the messagefoundry connection command.
Test with synthetic data before deployment
Run a synthetic .hl7 message through a route and compare the before-and-after output. No running engine is required.
- Step-through debugging — set a breakpoint and walk a message through your router and handlers line by line.
- Synthetic, PHI-free — the Test Bench runs on generated sample messages, so testing never touches patient data.
Stage → Promote
Stage a tested route, then promote it to a running engine from the editor.
The editor calls the MessageFoundry command-line tools for inspection. Git hooks and automated checks can call the same tools.
An @messagefoundry chat that speaks the API
The optional chat assistant includes context for MessageFoundry’s Router and Handler APIs. It uses the model configured in VS Code. MessageFoundry bundles no model or provider keys.
The assistant sends code and configuration names to your provider. Keep patient data and secrets out of that context. Administrators can disable assistance centrally.
Slash commands
/explain— walk through what a router or handler does./transform— draft a@handlerfrom a description of the mapping./review— review the handler you're writing, against the real API.
More commands are in progress.
Configuration stays in Python and connections.toml files in your Git repository. You can edit and run it without the extension.