Behaviour for MLLP message handlers.
Implement handle_message/2 to process incoming HL7v2 messages and return
a response. The handler receives the raw HL7v2 message (without MLLP framing)
and connection metadata. The returned response message will be MLLP-framed
before sending back to the client.
Example
defmodule MyHandler do
@behaviour HL7v2.MLLP.Handler
@impl true
def handle_message(message, _meta) do
# Parse, process, build ACK...
{:ok, ack_message}
end
endConnection metadata
The meta map contains:
:peer—{address, port}of the remote client:ref— the Ranch listener reference:handler_state— the value passed as:handler_stateto the listener
Summary
Callbacks
Handles an incoming HL7v2 message.
Types
@type meta() :: %{ peer: {:inet.ip_address(), :inet.port_number()}, ref: :ranch.ref(), handler_state: term() }
Callbacks
@callback handle_message(message :: binary(), meta :: meta()) :: {:ok, response :: binary()} | {:error, reason :: term()}
Handles an incoming HL7v2 message.
Receives the raw message binary (MLLP framing already stripped) and
connection metadata. Must return {:ok, response_binary} or
{:error, reason}.