HL7v2.Profiles.IHE (HL7v2 v3.10.1)

Copy Markdown View Source

Pre-built IHE conformance profiles for HL7 v2.x transactions.

Each profile is a %HL7v2.Profile{} preconfigured with the constraints from the IHE Technical Framework for its transaction. Use them directly with HL7v2.validate/2 or HL7v2.Validation.ProfileRules.check/2.

Coverage

This module ships profiles across five IHE specifications:

SpecCategoryTransactions
IHE ITIPAM (Patient Administration Management)ITI-30, ITI-31
IHE ITIPIX (Patient Identifier Cross-Reference)ITI-8, ITI-9, ITI-10
IHE ITIPDQ (Patient Demographics Query)ITI-21, ITI-22
IHE PaLMLTW (Laboratory Testing Workflow)LAB-1, LAB-3
IHE RADSWF (Scheduled Workflow)RAD-1, RAD-4

See the individual sub-modules (HL7v2.Profiles.IHE.PAM, HL7v2.Profiles.IHE.PIX, etc.) for the transaction-level factory functions.

Example

profile = HL7v2.Profiles.IHE.PAM.iti_31_adt_a01()
{:ok, msg} = HL7v2.parse(wire, mode: :typed)
HL7v2.validate(msg, profile: profile)

Or look up by IHE transaction code:

catalog = HL7v2.Profiles.IHE.all()
profile = Map.fetch!(catalog, "ITI-31.A01")

Disclaimer

The profiles encode the public constraints from the IHE Technical Framework Volume 2 documents at the time of this release. IHE updates its TFs regularly — consult the latest published version at profiles.ihe.net for any clarification, and feel free to compose additional constraints on top of these profiles with the full HL7v2.Profile DSL.

Summary

Functions

Returns the full IHE profile catalog as a map keyed by IHE transaction code (e.g. "ITI-31.A01", "LAB-3", "RAD-4").

Returns the LTW (Laboratory Testing Workflow) profile catalog — LAB-1 (Placer Order Management, v2.5.1) and LAB-3 (Order Results Management, v2.5.1).

Returns the PAM (Patient Administration Management) profile catalog — ITI-30 and ITI-31 transactions.

Returns the PDQ (Patient Demographics Query) profile catalog — ITI-21 (Query/Response, v2.5) and ITI-22 (Visit Query/Response, v2.5).

Returns the PIX (Patient Identifier Cross-Reference) profile catalog — ITI-8 (Feed, v2.3.1), ITI-9 (Query/Response, v2.5), and ITI-10 (Update Notification, v2.5).

Returns the RAD-SWF (Radiology Scheduled Workflow) profile catalog — RAD-1 (Patient Registration, v2.3.1) and RAD-4 (Procedure Scheduled, v2.5.1 OMI^O23).

Functions

all()

@spec all() :: %{required(String.t()) => HL7v2.Profile.t()}

Returns the full IHE profile catalog as a map keyed by IHE transaction code (e.g. "ITI-31.A01", "LAB-3", "RAD-4").

The exact set grows over time. Callers should not assume the cardinality is fixed.

ltw()

@spec ltw() :: %{required(String.t()) => HL7v2.Profile.t()}

Returns the LTW (Laboratory Testing Workflow) profile catalog — LAB-1 (Placer Order Management, v2.5.1) and LAB-3 (Order Results Management, v2.5.1).

pam()

@spec pam() :: %{required(String.t()) => HL7v2.Profile.t()}

Returns the PAM (Patient Administration Management) profile catalog — ITI-30 and ITI-31 transactions.

pdq()

@spec pdq() :: %{required(String.t()) => HL7v2.Profile.t()}

Returns the PDQ (Patient Demographics Query) profile catalog — ITI-21 (Query/Response, v2.5) and ITI-22 (Visit Query/Response, v2.5).

pix()

@spec pix() :: %{required(String.t()) => HL7v2.Profile.t()}

Returns the PIX (Patient Identifier Cross-Reference) profile catalog — ITI-8 (Feed, v2.3.1), ITI-9 (Query/Response, v2.5), and ITI-10 (Update Notification, v2.5).

rad_swf()

@spec rad_swf() :: %{required(String.t()) => HL7v2.Profile.t()}

Returns the RAD-SWF (Radiology Scheduled Workflow) profile catalog — RAD-1 (Patient Registration, v2.3.1) and RAD-4 (Procedure Scheduled, v2.5.1 OMI^O23).