Build an order message (HL7 or JSON) and deliver it over URL or TCP/IP

Build the outbound message for an order event and deliver it. The wire protocol is chosen by ``integration_configs.protocol``: - ``HL7`` builds the ORM message, applies HL7 ``rule_templates``, and delivers the rendered message; - ``JSON`` serialises the canonical event, applies JSON ``rule_templates``, strips transport/rules metadata, and delivers the resulting payload. Any other protocol (or a missing protocol) is rejected with a 422. Delivery mode follows ``configuration_data.connection_type``: an ``ENDPOINT_URL`` template is sent over HTTP to ``endpoint_url``; a ``TCP/IP`` template over a plain TCP socket to ``host``/``port``. Fire-and-forget (no ACK is awaited beyond an HTTP status check). Raises 422 when the payload is invalid or no transport is configured, and 502 when the receiver cannot be reached.

Authentication

AuthorizationBearer

Static shared-secret token for internal service-to-service calls.

Request

This endpoint expects an object.
event_typeenumRequired
Type of order lifecycle event
event_timestampdatetimeRequired

UTC timestamp when the event occurred (ISO 8601)

event_idintegerRequired
Unique monotonic event identifier
patientobjectRequired
Full patient record
orderobjectRequired
Full order record
organization_detailsobject or nullOptional

Organisation context (absent when the event has no org)

referral_detailsobject or nullOptional

Referral source context (absent when there is no referral)

laboratory_informationobject or nullOptional

Laboratory context (absent when not supplied)

rule_templateslist of objectsOptional

Rule templates attached to the event (applied downstream)

integration_configsobject or nullOptional
Integration configuration used to build the outbound message
integration_payloadmap from strings to any or nullOptional

Transport/logging metadata (log_id, lab_id, callback context). Not part of the canonical event; forwarded to the delivery layer so the Fusion worker receives full context / the Mirth receiver gets LABID/LOGID segments.

aoesobjectOptional

Answer-on-order-entry responses (per-report and billing)

labformslist of objectsOptional

Lab form question/answer responses for the order

obx_risk_and_typelist of maps from strings to anyOptional

OBX risk and type entries (structure TBD)

obx_component_typesmap from strings to lists of objectsOptional

OBX component types keyed by lab_report_id (string key)

attachmentsobject or nullOptional

Attachments bundled with the order (patient/order files, TRF)

Response

Successful Response
DeliverHl7Responseobject

Successful HL7 delivery: transport outcome plus the message that was sent.

OR
DeliverJsonResponseobject

Successful JSON delivery: transport outcome plus the payload that was sent.

Errors

422
Unprocessable Entity Error