PIX v3 Query
PIXv3 Query
In transaction ITI-45Â the Patient Identifier Cross-reference Consumer queries the PIX Manager for a list of corresponding patient identifiers, if any. In return, the PIX Manager returns a list of corresponding patient identifiers, if any. The Patient Identifier Cross-reference Consumer's need to get the patient identifier associated with a domain for which it needs patient related information will trigger this request.
Get Corresponding Identifiers
The Get Corresponding Identifiers transaction is initiated by the HL7 Patient Registry Query by Identifier message (PRPA_MT201307UV02). The components of the message listed below are required, and their detailed descriptions are provided in the following subsections. The receiver shall respond to the query by sending the Patient Identifiers message (PRPA_MT201304UV02), which uses the Application Level Acknowledgement transmission wrapper. This satisfies the requirements of original mode acknowledgement and no intermediate Accept Acknowledgement message is to e sent. All appropriate identifiers shall be returned in a single response and no continuation queries are allowed in this transaction.
Major Components of the Patient Registry Query by Identifier
The PatientIdentifier parameter specifies the identifier associated with the person whose information is being queried. For this parameter item, a single patient identifier is specified in the PatientIdentifier.value attribute. The DataSource parameter is an optional parameter that specifies the assigning authority/authorities of the Patient Identity Domains whose identifiers need to be returned. If no such parameter is specified, the PIX Manager is required to return the identifiers from all known Patient Identity Domains. For a detailed description of all the fields involved see pages 198-199 of IHE IT Infrastructure Technical Framework Volume 2b.
If the requesting system wishes to select the Patient Identity Domains from which patient identifiers are returned, it does so by sending as many DataSource parameters as domains for which it wants to receive patient identifiers. Each instance of the DataSource parameter shall provide the Assigning Authority Identifier for a specific domain using the DataSource value attribute. Note that the DataSource.value.extension attribute shall not be provided, and the DataSource.vale.root attribute shall contain a valid ISO OID. The responding system shall return the Patient.id value for each requested domain, if a value is known. Note that the value of Patient.id.root attribute shall match the DataSource.value.root attribute representing the corresponding Assigning Authority.
If no DataSource parameter is specified the Patient Identifier Cross-reference Manager shall return patient identifiers for all domains for which it possesses a corresponding identifier.
The following is a sample PIX Query Message.
<?xml version="1.0" encoding="UTF-8"?> <PRPA_IN201309UV02 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hl7-org:v3" ITSVersion="XML_1.0"> <id root="2220c1c4-87ef-11dc-b865-3603d6866807"/> <creationTime value="20070810140900"/> <interactionId root="2.16.840.1.113883.1.6" extension="PRPA_IN201309UV02"/> <processingCode code="P"/> <processingModeCode code="T"/> <acceptAckCode code="AL"/> <receiver typeCode="RCV"> <device classCode="DEV" determinerCode="INSTANCE"> <id root="1.2.840.114350.1.13.99999.4567"/> <telecom value="https://example.org/PIXQuery"/> </device> </receiver> <sender typeCode="SND"> <device classCode="DEV" determinerCode="INSTANCE"> <id root="1.2.840.114350.1.13.99997.2.7788"/> </device> </sender> <controlActProcess classCode="CACT" moodCode="EVN"> <code code="PRPA_TE201309UV02" codeSystem="2.16.840.1.113883.1.6"/> <authorOrPerformer typeCode="AUT"> <assignedPerson classCode="ASSIGNED"> <id root="1.2.840.114350.1.13.99997.2.7766" extension="USR5568"/> </assignedPerson> </authorOrPerformer> <queryByParameter> <queryId root="1.2.840.114350.1.13.99999.4567.34" extension="018499884245"/> <statusCode code="new"/> <responsePriorityCode code="I"/> <parameterList> <dataSource> <value root="2.16.840.1.113883.3.72.5.9.2"/> <semanticsText>DataSource.id</semanticsText> </dataSource> <patientIdentifier> <value root="2.16.840.1.113883.3.72.5.9.1" extension="RS-491"/> <semanticsText>Patient.Id</semanticsText> </patientIdentifier> </parameterList> </queryByParameter> </controlActProcess> </PRPA_IN201309UV02>
PIX Manager Expected Actions
A RegistrationEvent, and the associated Patient class are returned only when the PIX Manager recognizes the specified patient ID in the query parameter, and an identifier exists for the specified patient in at least one other domain. The PIX Manager shall use at least one or more Patient.id attributes (and optionally, zero or more OtherIDs.id attributes) to convey the patient IDs which uniquely identify the patient within each Patient Identification Domain.
It is wholly the responsibility of the PIX Manager to perform the matching of patient identifiers based on the patient identifier it receives. The information provided by the PIX Manager to the PIX Consumer is a list of cross-referenced identifiers in one or more of the domains managed by the PIX Manager, in addition to the original identifier used in the query. The identifier used in the query is returned only in the copy of the QueryByParameter list. The list of cross-references is not made available until the set of policies and processes for managing the cross-reference function have been completed. The policies of administering identities adopted by the cooperating domains are completely internal to the PIX Manager and are outside the scope of this framework.
The PIX Manager shall respond to the query request as described by the following 6 cases:
Case 1: The PIX Manager recognizes the specified patient ID sent by the PIX Consumer and corresponding identifiers exist for the specified patient in at least one of the domains requested in the DataSource value.
AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper)
OKÂ (data found, no errors) is returned in QueryAck.queryResponseCode (control act wrapper)
A single RegistrationEvent class is returned, where at least one of the identifiers, which the PIX Manager did recognize as belonging to a requested domain, is returned in Patient.id. Subsequent such identifiers, if any, are returned in either Patient.id or OtherIDs.id, not including the queried-for patient identifier which is returned in the QueryByParameter parameter list (control act wrapper).
Case 2: The PIX Manager recognizes the specified patient ID sent by the Consumer, there are no specific domains requested in the query (no DataSource parameters) and corresponding identifiers exist for the specified patient in at least one other domain known to the PIX Manager.
AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper)
OKÂ (data found, no errors) is returned in QueryAck.queryResponseCode (control act wrapper)
A single RegistrationEvent class is returned, where at least one of the identifiers, which the PIX Manager did recognize as belonging to a requested domain, is returned in Patient.id. Subsequent such identifiers, if any, are returned in either Patient.id or OtherIDs.id, not including the queried-for patient identifier which is returned in the QueryByParameter parameter list (control act wrapper).
Case 3: The PIX Manager recognizes the specified patient ID but no identifier exists for that patient in any of the domains sent in the DataSource value.
AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper)
NF (no data found, no errors) is returned in QueryAck.queryResponseCode (control act wrapper).
No RegistrationEvent is returned. The queried for patient identifier is returned in the QueryByParameter parameter list.
Case 4: The PIX Manager does not recognize the patient ID sent in.
AE (application error) is returned in Acknowledgement.typeCode and in QueryAck.queryResponseCode.
No RegistrationEvent is returned. The queried for patient identifier is returned in the QueryByParameter parameter list. An AcknowledgementDetail class is returned in which the attributes typeCode, code, and location are valued as follows.
Attribute | Value |
---|---|
typeCode | E |
code | 204 (Unknown Key Identifier) |
location | XPath expression for the value element of the PatientIdentifier parameter |
.Case 5:Â The PIX Manager does not recognize one or more of the Patient Identification Domains for which an identifier has been requested.
AE (application error) is returned in Acknowledgement.typeCode and in QueryAck.queryResponseCode.
No RegistrationEvent is returned. The queried for patient identifier is returned in the QueryByParameter parameter list. For each domain that was not recognized, an AcknowledgementDetail class is returned in which the attributes typeCode, code, and location are valued as follows.
Attribute | Value |
---|---|
typeCode | E |
code | 204 (Unknown Key Identifier) |
location | XPath expression for the value element of the DataSource parameter (which includes the repetition number of the parameter) |
Case 6: The PIX Manager recognizes the specified patient id sent by the Consumer and corresponding identifiers exist for the specified patient in at least one of the domains registered in DataSource value, and there are multiple identifiers within at least one of the requested domains.
AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper)
OKÂ (data found, no errors) is returned in QueryAck.queryResponseCode (control act wrapper)
A single RegistrationEvent class is returned, where at least one of the identifiers, which the PIX Manager did recognize as belonging to a requested domain, is returned in Patient.id. Subsequent such identifiers, if any, are returned in either Patient.id or OtherIDs.id, not including the queried-for patient identifier which is returned in the QueryByParameter parameter list (control act wrapper). If the PIX Manager chooses to return multiple identifeirs associated with the same domain, it shall return these identifiers either grouped in a single instance of the OtherIDs class, or all represented via repetitions of the Patient.id attribute.