You're seeing just the function send, go back to MLLP.Client module for more information.
Link to this function

send(pid, payload, options \\ %{}, timeout \\ 5000)


  pid :: pid(),
  payload :: HL7.Message.t() | String.t() | binary(),
  options :: MLLP.ClientContract.send_options(),
  timeout :: non_neg_integer()
) ::
  {:ok, String.t()}
  | MLLP.Ack.ack_verification_result()
  | {:error, MLLP.ClientContract.client_error()}

Sends a message and receives a response.

send/4 supports both HL7.Message and String.t().

All messages and responses will be wrapped and unwrapped via MLLP.Envelope.wrap_message/1 and MLLP.Envelope.unwrap_message/1 respectively

In case the payload provided is an HL7.Message.t() the acknowledgment returned from the server will always be verified via MLLP.Ack.verify_ack_against_message/2. This is the only case where an MLLP.Ack.ack_verification_result() will be returned.


  • :reply_timeout - Optionally specify a timeout value for receiving a response. Must be a positive integer or :infinity. Defaults to :infinity.