Guide
HL7 v2 (ADT, VXU, syndromic)
HL7 v2 travels over HTTPS with your partner token. There is no MLLP listener. One family accepts HL7 v2 from you; the public-health family builds HL7 v2 for registries and syndromic surveillance.
ADT in: care transitions
- POST
/v1/transitions/adtSend an HL7 v2 ADT batch from your feed
- Body. One or more ER7 messages as
text/plain(the default),x-application/hl7-v2+er7,application/hl7-v2+er7orapplication/hl7-v2; or JSON{"messages": "…"}. Other types answer415 unsupported_media_type; over 5 MB,413 adt_batch_too_large. Segments may end in CR, LF or CRLF; MLLP framing bytes are stripped if you leave them in. - Events. A01, A02, A03 and A04. An A04 counts only for an emergency visit (PV1-2
E); an A01 with class E is recorded as an ED visit and an A03 for class E ends the ED visit rather than discharging an inpatient. Anything else, A08 included, is counted asignored. - Fields read. MSH-4, MSH-7, MSH-9.2, MSH-10; EVN-1, EVN-2; PID-3 (every repetition), PID-5, PID-7; PV1-2, PV1-3.4, PV1-39, PV1-44, PV1-45.
- Matching, against your organisation's linked patients only: a PID-3 identifier equal to the record number on file and the PID-7 birth date, on exactly one patient; otherwise the PID-5 name and birth date on exactly one. Anything else is held as unmatched for your staff to review. A match is never guessed.
- Idempotent on MSH-10. See safe retries.
- Response. JSON counts (
received,parsed,recorded,matched,unmatched,duplicates,ignored, episodes enrolled, returns recorded) and per-messageerrorswith a code (hl7_unreadable,missing_control_id,invalid_date). No HL7 ACK is generated and no patient data is echoed back. - Gate. A treating practice or hospital (
409 not_a_medical_practice) with a business associate agreement on file (409 transitions_baa_required). In a sandbox, messages that match none of the synthetic members are counted and discarded, never stored.
HL7 v2 out: public health (version 2.5.1)
Built, and gated in production by the state agreements described on the Public-health reporting page. A sandbox never transmits: each answer is produced by Norvya and says simulated: true. Every transmission is audited before it leaves.
- VXU^V04 (profile Z22) to an immunization registry, built to the CDC / AIRA HL7 2.5.1 Immunization Implementation Guide 1.5 and its 2018 addendum and sent with the CDC IIS SOAP web service over HTTPS. The answer is JSON: status, the registry's
ack_code(MSA-1) and error code (ERR-3). Failed sends are retried with backoff under the same control id. A preview returns a summary of the message, never the HL7 text. - QBP^Q11 (Z34 history, Z44 evaluated history and forecast). Doses returned in the RSP^K11 are imported. Forecast segments are not parsed yet, so
registry_forecastis always null. - Syndromic ADT A01 / A03 / A04 / A08, built to the PHIN Messaging Guide for Syndromic Surveillance 1.1 (August 2012 addendum): record the visit, then send it with a trigger. It has not been NIST-validated or through NSSP onboarding.
- POST
/v1/patients/{member_ref}/immunizations/{immunization_ref}/iis-submissionsReport one dose to your state immunization registry - GET
/v1/patients/{member_ref}/immunizations/{immunization_ref}/iis-previewWhat a registry report of one dose would contain - POST
/v1/patients/{member_ref}/iis-queriesAsk your registry for a patient's immunization history - POST
/v1/public-health/syndromic/visitsRecord an emergency or urgent-care visit - POST
/v1/public-health/syndromic/visits/{visit_ref}/sendSend one visit's syndromic ADT message