Norvya Developers
Get a sandbox
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

  • Body. One or more ER7 messages as text/plain (the default), x-application/hl7-v2+er7, application/hl7-v2+er7 or application/hl7-v2; or JSON {"messages": "…"}. Other types answer 415 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 as ignored.
  • 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-message errors with 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_forecast is 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.
↑ ↓ to moveEnter to open