Skip to main content

Interop Service — Event Schemas

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 03 platform-services · 02 DDD


1. Transport

JetStream stream: INTEROP — subject wildcard interop.>. CloudEvents envelope via @ghasi/nats-client.


2. Produced Events

interop.hl7v2.adt.received

FieldValue
CloudEvents typeghasi.interop.hl7v2.adt.received
Sourceghasi/interop
Version1
Retention30 days
{
"type": "ghasi.interop.hl7v2.adt.received",
"data": {
"messageId": "MSG_01J...",
"connectorId": "CONN_01J...",
"messageType": "ADT^A01",
"messageControlId": "12345",
"sendingApp": "HIS-KMC",
"patientId": "PAT_01J...",
"encounterId": "ENC_01J...",
"tenantId": "tenant_01J..."
}
}

interop.hl7v2.orm.sent

FieldValue
CloudEvents typeghasi.interop.hl7v2.orm.sent
Version1
Retention30 days
{
"data": {
"messageId": "MSG_01J...",
"connectorId": "CONN_01J...",
"orderId": "SRQ_01J...",
"messageControlId": "67890",
"tenantId": "tenant_01J..."
}
}

interop.hl7v2.oru.received

FieldValue
CloudEvents typeghasi.interop.hl7v2.oru.received
Version1
Retention30 days
{
"data": {
"messageId": "MSG_01J...",
"connectorId": "CONN_01J...",
"patientId": "PAT_01J...",
"resultCount": 4,
"fhirObservationIds": ["obs_01J...", "obs_02J..."],
"tenantId": "tenant_01J..."
}
}

interop.hl7v2.oru.sent

FieldValue
CloudEvents typeghasi.interop.hl7v2.oru.sent
Version1
Retention30 days
{
"data": {
"messageId": "MSG_01J...",
"connectorId": "CONN_01J...",
"resultId": "RES_01J...",
"tenantId": "tenant_01J..."
}
}

interop.hl7v2.vxu.received

FieldValue
CloudEvents typeghasi.interop.hl7v2.vxu.received
Version1
Retention30 days
{
"data": {
"messageId": "MSG_01J...",
"connectorId": "CONN_01J...",
"patientId": "PAT_01J...",
"fhirImmunizationId": "IMM_01J...",
"tenantId": "tenant_01J..."
}
}

interop.fhir.bulk_export.completed

FieldValue
CloudEvents typeghasi.interop.fhir.bulk_export.completed
Version1
Retention7 days
{
"data": {
"jobId": "JOB_01J...",
"groupId": "GRP_01J...",
"resourceTypes": ["Patient", "Observation", "DiagnosticReport"],
"fileCount": 3,
"tenantId": "tenant_01J..."
}
}

interop.connector.activated

FieldValue
CloudEvents typeghasi.interop.connector.activated
Version1
Retention30 days
{
"data": {
"connectorId": "CONN_01J...",
"protocol": "mllp",
"direction": "inbound",
"tenantId": "tenant_01J..."
}
}

interop.message.dead_lettered

FieldValue
CloudEvents typeghasi.interop.message.dead_lettered
Version1
Retention90 days
{
"data": {
"messageId": "MSG_01J...",
"connectorId": "CONN_01J...",
"messageType": "ORU^R01",
"errorCode": "MAPPING_FAILED",
"attemptCount": 5,
"tenantId": "tenant_01J..."
}
}

3. Consumed Events (for outbound HL7 v2 generation)

SubjectCloudEvents typeProducerAction
clinical.orders.placedghasi.orders.placedorders-serviceGenerate HL7 v2 ORM^O01 to external LIS
diag.laboratory.result.releasedghasi.lis.result.releasedlaboratory-serviceGenerate HL7 v2 ORU^R01 to external systems
clinical.immunizations.recordedghasi.immunizations.recordedimmunizations-serviceGenerate VXU^V04 to immunization registry
registration.encounter.registeredghasi.registration.encounter.registeredregistration-serviceGenerate ADT^A01 to external HIS

4. DLQ

Failed processing: dlq.interop.{originalSubject}. Persisted in event_dlq table.