HL7 Sender is a message delivery and testing program for healthcare interfaces. It sends HL7 v2 messages over MLLP, HTTP(S), folders or a FHIR R4 server, stores each message in a durable queue, and reports whether the receiver accepted or rejected it. Acknowledgments are matched to their original messages, and error details are decoded for inspection. A test listener simulates a receiving system with configurable responses, delays and failure modes, so interfaces can be exercised without a live EHR.
The application includes validation against HL7 versions and conformance profiles, templates with random and sequential variables, bulk import of files and folders, rate limits, scheduled sends and load testing with latency percentiles. Security features cover TLS and mutual TLS, certificates with expiry warnings, OS keychain password storage and optional encryption of the queue database. Destinations can be shared as JSON profiles, and several destinations can receive the same message independently. A command-line tool supports scripts and CI pipelines.
HL7 Sender runs on Windows, macOS and Linux with bundled Java runtimes. It is written in Java and distributed under the MIT license by developer Vijay Amirtharaj Xavier. The program is a testing tool, so fictitious or test messages should be used rather than real patient data. It is intended for interface analysts, integration engineers and testers who need precise control over message delivery and clear evidence of what a receiving system returned for each message.
| Transmits HL7 v2 messages over MLLP with standard framing | Configurable ACK deadline, optional MSH-7 and MSH-10 generation |
| Processes AA, AE, AR plus enhanced CA, CE, CR acknowledgment codes | Application ACK waits for later response matched by MSA-2 |
| Local SQLite database stores messages before sending, nothing lost | Strict FIFO per destination with one message in flight |
| Imports files, folders, N copies with progress and cancellation | Reads HL7 batch files with FHS, BHS, BTS, FTS segments |
| MLLP over TLS and mutual TLS per destination with trust store | Passwords stored in OS keychain, never in settings or database |
| Dashboard shows queue depth, in-flight, dead-letter counts | Throughput charts, ACK latency averages, recent alerts listed |
| Variables include NOW, SEQ, UUID, CONTROL_ID, RANDOM names | One value per message, new value for next message generated |
| Lenient, Standard, Strict validation modes per destination | HAPI checks structure and data types from v2.1 to v2.8.1 |
| Syntax-highlighted editor shows field names on hover | History tab searches every message by destination, status, type |
| Load Test opens N connections at target rate for duration | Reports throughput, ACK latency percentiles, pass or fail thresholds |
| Transform scripts run JavaScript per message with sandbox time limit | Transports include HTTP, folder, FHIR R4 besides MLLP |
| Shared PostgreSQL database lets several computers work on one queue | Roles viewer, operator, admin with audit trail recording usernames |
| Light and dark themes with WCAG AA contrast for status colours | Ctrl+1 through Ctrl+7 switch tabs, F5 refresh, Ctrl+Enter send |