lambogenius-mllp-connector-samples
The samples repository has five Logic Apps. Each folder builds and runs on its own: ./run.ps1 starts Azurite, the stand-in systems (Python, standard library only) and the Logic App; ./demo.ps1 sends every message, checks each ACK and what reached the stand-ins, and exits with 1 when a check fails. All test messages are made up.
| Sample | Shows |
|---|---|
| 01 · Receive with auto ACK | AA (CA in enhanced mode) once the run is saved; AR for malformed messages, with no run; a batch split into one run per message and one batch ACK; every message and ACK archived to files |
| 02 · Workflow acknowledgements | A two-way receive: the workflow answers AA, AE with the EHR's reason, or AR with Send acknowledgement; the connector's timeout AE for a slow EHR; enhanced mode with an application ACK built by Create acknowledgement |
| 03 · Send | An HTTP-triggered workflow sends orders to a lab and returns its ACK: AA, AE, and a lab that doesn't answer; persistent connections |
| 04 · TLS | MLLP over TLS 1.2 both ways with throwaway certificates: plain MLLP and the wrong TLS version refused, a pinned thumbprint on send, an impostor certificate refused |
| 05 · With the HL7 v2 Codec | Receive over MLLP, decode with the HL7 v2 Codec in schemaless mode, and return the codec's ACK; AR for an unsupported version |
Run one
git clone https://github.com/lambogenius/lambogenius-mllp-connector-samples C:\src\mllp-samples
cd C:\src\mllp-samples
# save Lambogenius.MllpConnector.LogicApps.1.4.0.nupkg from Downloads in packages/
# (sample 05 also needs Lambogenius.Hl7Codec.LogicApps.1.1.0.nupkg)
cd 01-receive-auto-ack
./run.ps1 # window 1
./demo.ps1 # window 2Prerequisites: Windows, the .NET 8 SDK, Azure Functions Core Tools 4, Azurite, PowerShell 7, and Python 3. No license is needed under func start. Clone to a short path: the builds write files up to about 165 characters below the clone folder, and Windows limits paths to 260. Every sample also works with the mllp test tool instead of its Python sender or receiver; the repository's README has one command per sample.