Skip to content

IHE Source

The IHE source implements server-side IHE actor roles, enabling intu to participate in standards-based healthcare data exchange using IHE integration profiles such as XDS.b, PIX, and PDQ.

Each supported profile implements the relevant ITI transactions so that external systems can query or push data into your channel pipeline using the IHE Technical Framework.

source:
type: ihe
profile: PIX
port: 8443
tls:
cert_file: ./certs/server.crt
key_file: ./certs/server.key
auth:
type: saml
idp_metadata_url: https://idp.hospital.org/metadata
PropertyTypeRequiredDefaultDescription
profile"XDS.b" | "PIX" | "PDQ"YesIHE integration profile to implement.
portintYesTCP port the IHE actor binds to.
tlsobjectNoTLS certificate and key for HTTPS/ATNA.
authobjectNoAuthentication configuration.
TypeDescription
basicHTTP Basic authentication.
bearerBearer token validation.
samlSAML assertion validation against an IdP metadata endpoint.
ProfileActorTransactionsDescription
XDS.bDocument Repository / RegistryITI-41 (Provide & Register), ITI-42 (Register), ITI-43 (Retrieve)Cross-Enterprise Document Sharing. Receives and serves clinical documents.
PIXPIX ManagerITI-8 (Patient Identity Feed), ITI-9 (PIX Query)Patient Identifier Cross-referencing. Manages patient identity mappings across domains.
PDQPatient Demographics SupplierITI-21 (Patient Demographics Query), ITI-22 (Patient Demographics and Visit Query)Patient Demographics Query. Responds to demographic search requests.

A PIX Manager that receives patient identity feeds and cross-references them with the hospital’s master patient index:

channels/pix-manager/channel.yaml
id: pix-manager
enabled: true
group: patient-identity
source:
type: ihe
profile: PIX
port: 8443
tls:
cert_file: ./certs/server.crt
key_file: ./certs/server.key
auth:
type: saml
idp_metadata_url: https://idp.hospital.org/metadata
transformer: pix-feed-to-mpi.ts
destinations:
- master_patient_index
- audit_log

A TypeScript transformer that processes an ITI-8 Patient Identity Feed and prepares a patient record for the master patient index:

transforms/pix-feed-to-mpi.ts
export default function transform(msg: IntuMessage): IntuMessage {
const iti8 = JSON.parse(msg.payload);
const mpiRecord = {
action: iti8.eventType === "A01" || iti8.eventType === "A04" ? "upsert" : "merge",
patient: {
identifiers: iti8.patientIdentifiers.map((id: any) => ({
domain: id.assigningAuthority,
value: id.idNumber,
})),
name: {
family: iti8.patientName.family,
given: iti8.patientName.given,
},
birthDate: iti8.dateOfBirth,
gender: iti8.gender,
},
sourceSystem: iti8.sendingFacility,
timestamp: new Date().toISOString(),
};
msg.payload = JSON.stringify(mpiRecord);
return msg;
}