HL7v2 Integration
medOS supports HL7v2 ADT / ORM / ORU message parsing for legacy system integration: lab instruments, ADT feeds, and pharmacy systems.
2575
MLLP port
0x0B / 0x1C
Framing
ADT / ORM / ORU
Message types
30s
Default idle timeout
Architecture
Lab / ADT Feed ──MLLP(:2575)──▶ Interoperability Service ──▶ Moleculer ──▶ MongoDB
(external) hl7v2-parser → mappers │
▲ │ NATS events
│ hl7v2-ack.builder │
└───── ACK/NAK ◀──────────────┘ webhookDispatcher
Components
Parser
hl7v2-parser
Pipe-delimited → structured segments (MSH, PID, PV1, ORC, OBR, OBX).
MSHPIDPV1ORCOBROBX
ACK
hl7v2-ack.builder
Build ACK / NAK responses for every inbound message.
ACKNAK
ADT
adt-to-medos.mapper
ADT A01–A08 → patient + encounter operations.
A01A02A03A04A08
ORM
orm-to-medos.mapper
ORM O01 → diagnostic order CRUD.
ORM O01
ORU
oru-to-medos.mapper
ORU R01 → lab result creation.
ORU R01
REST
hl7v2.controller.mixin
POST /hl7/adt, /hl7/orm, /hl7/oru, /hl7/raw.
/hl7/adt/hl7/orm/hl7/oru/hl7/raw
TCP
mllp.listener
TCP server with 0x0B / 0x1C framing.
TCPMLLP :2575
File locations
| Component | Path |
|---|---|
| Parser | services/interoperability/.../modules/hl7v2/hl7v2-parser.service.ts |
| ACK builder | services/interoperability/.../modules/hl7v2/hl7v2-ack.builder.ts |
| ADT mapper | services/interoperability/.../modules/hl7v2/mappers/adt-to-medos.mapper.ts |
| ORM mapper | services/interoperability/.../modules/hl7v2/mappers/orm-to-medos.mapper.ts |
| ORU mapper | services/interoperability/.../modules/hl7v2/mappers/oru-to-medos.mapper.ts |
| Controller | services/interoperability/.../modules/hl7v2/hl7v2.controller.mixin.ts |
| MLLP listener | services/interoperability/.../modules/hl7v2/mllp.listener.ts |
| Entity schema | packages/platform-api-schema/src/interoperability/hl7Message/ |
| Frontend types | web/packages/integration-kit/src/types/hl7.types.ts |
| Frontend service | web/packages/integration-kit/src/services/hl7.service.ts |
Feature flags
| Flag | Default | Purpose |
|---|---|---|
HL7V2_MLLP_ENABLED | false | Enable MLLP TCP listener |
HL7V2_MLLP_PORT | 2575 | TCP port for MLLP connections |
HL7V2_MLLP_TIMEOUT | 30000 | Connection idle timeout (ms) |