3.47 Patient Demographics Query HL7 V3 [ITI-47]
This section corresponds to transaction [ITI-47] of the IHE Technical Framework. Transaction [ITI-47] is used by the Patient Demographics Consumer and Patient Demographics Supplier Actors. Additional components to be included if the Pediatric Demographics Option is supported are also indicated in Sections 3.47.4.1.2.1 to 3.47.4.1.2.4.
3.47.1 Scope
The scope is identical to ITI TF-2: 3.21.1 .
3.47.2 Use Case Roles
Actor: Patient Demographics Consumer
Role: Requests a list of patients matching the supplied set of demographics criteria (example: ID or Name) from the Patient Demographics Supplier.
Corresponding HL7 v3 Application Roles:
Person Registry Query Placer (PRPA_AR201303UV02)
Actor: Patient Demographics Supplier
Role: Returns demographic information for all patients matching the demographic criteria provided by the Patient Demographics Consumer.
Corresponding HL7 v3 Application Roles:
Person Registry Query Fulfiller (PRPA_AR201304UV02)
3.47.3 Referenced Standards
HL7 Version 3 Edition 2008, Patient Administration DSTU, Patient Topic (found at https://www.hl7.org/implement/standards/product_brief.cfm?product_id=186 )
Implementers of this transaction shall comply with all requirements described in ITI TF-2: Appendix V Web Services for IHE Transactions.
3.47.4 Messages
Figure 3.47.4-1: Find Candidates Query
3.47.4.1 Patient Demographics Query
3.47.4.1.1 Trigger Events
A Patient Demographics Consumer’s need to select a patient based on demographic information about patients whose information matches a set of known data will trigger the Patient Demographics Query based on the following HL7 trigger event:
Find Candidates Query (PRPA_TE201305UV02)
An application, in the role of Query Placer, sends a query-by-parameter message to request that the application return all person records that match the demographic information sent in the query parameters.
3.47.4.1.2 Message Semantics
The Find Candidates Query is supported by the Patient Registry Query by Demographics (PRPA_MT201306UV02) message. The Patient Demographics Consumer shall generate the query message whenever it needs to select from a list of patients whose information matches a set of demographic data.
The components of the Patient Registry Query by Demographics message with cardinality greater than 0 (as shown below) are required, and the detailed description of the message is provided in Sections 3.47.4.1.2.1 to 3.47.4.1.2.4. Additional components to be included if the Pediatric Demographics Option is supported are also indicated in Section 3.47.4.1.2.1 to 3.47.4.1.2.4.
The receiver shall respond to the query by sending the Patient Registry Find Candidates Response message (PRPA_MT201310UV02), which uses the Application Level Acknowledgement transmission wrapper. This satisfies the requirements of original mode acknowledgment; no intermediate Accept Acknowledgement is to be sent. The response message shall contain demographic records that reflect the best fit to all of the search criteria received in the Patient Registry Query by Demographics message.
3.47.4.1.2.1 Major Components of the Patient Registry Query by Demographics
LivingSubjectName Parameter
This optional parameter specifies the name of the person whose information is being queried. For this parameter item, a single person name (PN) data item shall be specified in the LivingSubjectName.value attribute. Only certain name parts within the PN data type (e.g., family name) may be specified. If the sender needs to indicate that the name parts specified are not limited to an exact match, then the use attribute of the value element shall be set to "SRCH". Handling of phonetic issues, alternate spellings, upper and lower case, partial matching, accented characters, etc. if deemed appropriate, is to be supported by the Patient Demographics Supplier rather than by the Patient Demographics Consumer. The Supplier shall return at least all exact matches to the query parameters sent by the Consumer. IHE does not further specify matching requirements, however, the MatchAlgorithm parameter may be used to indicate more specific requirements for the Supplier, based on an existing agreement on allowable values for MatchAlgorithm.value.
LivingSubjectAdministrativeGender Parameter
This optional parameter specifies the administrative gender of the person whose information is being queried. For this parameter item, a single administrative gender code shall be specified in the LivingSubjectAdministrativeGender.value attribute.
LivingSubjectBirthTime Parameter
This optional parameter specifies the birth data and time of the person whose information is being queried. This parameter can convey an exact moment (e.g., January 1, 1960 @ 03:00:00 EST), an approximate date (e.g., January 1960), or even a range of dates (e.g., December 1, 1959 through March 31, 1960).
PatientAddress Parameter
This optional parameter specifies one or more addresses associated with the person whose information is being queried.
LivingSubjectId Parameter
This optional repeating parameter specifies an identifier associated with the patient whose information is being queried (e.g., a local identifier, or an account identifier). If multiple instances of this parameter are provided in the query, all of the associated identifiers must match. The identifier specified in the LivingSubjectId.value attribute is expressed using the II data type. Please see ITI TF-2: Appendix E for the use of the II data type for patient identifiers.
OtherIDsScopingOrganization Parameter
This optional repeating parameter specifies the assigning authority/authorities of the Patient Identity Domain(s) for which identifiers are to be returned. The identifier specified in the OtherIDsScopingOrganization.value attribute shall be expressed using the II data type, where the root element contains a valid ISO OID, and there is no extension element. If no such parameter is supplied, the patient demographics supplier is required to return the identifiers from all Patient Identity Domains known to it. Any parameter value which is not recognized by the target patient information source shall cause an error condition.
Additional components to be included if the Pediatric Demographics Option is supported are also indicated below:
MothersMaidenName Parameter
This optional parameter specifies the maiden name of the mother of the person whose information is being queried. For this parameter item, a single person name (PN) data item shall be specified in the Person.value attribute. Within the PN data type, the given name and family name may be specified. If the sender needs to indicate that the name parts specified are not limited to an exact match, then the use attribute of the value element shall be set to "SRCH".
PatientTelecom Parameter
This optional parameter specifies the primary telephone number or email address of the person whose information is being queried.
Additional components to be included if the Pediatric Demographics Option is supported are also indicated below:
MothersMaidenName Parameter
This optional parameter specifies the maiden name of the mother of the person whose information is being queried. For this parameter item, a single person name (PN) data item shall be specified in the Person.value attribute. Within the PN data type, the given name and family name may be specified. If the sender needs to indicate that the name parts specified are not limited to an exact match, then the use attribute of the value element shall be set to "SRCH".
PatientTelecom Parameter
This optional parameter specifies the primary telephone number or email address of the person whose information is being queried.
3.47.4.1.2.2 Message Information Model of the Patient Registry Query by Demographics Message
Below is the Message Information Model for the Query by Demographics message, as restricted for this transaction. The purpose of the model is to describe the data elements relevant for this transaction. It is a strict subset of the Patient Registry Query by Demographics (PRPA_RM201306UV02) RMIM. If the Pediatric Demographics Option is supported, there are somewhat fewer constraints on the RMIM; these are also indicated.
The base RMIM can be found on the HL7 V3 2008 Edition CD at Edition2008/domains/uvpa/editable/PRPA_RM201306UV.htm . The following restrictions were made on the original RMIMs to arrive at the restricted model:
- Exactly one value attribute shall be present in each parameter
- Only the LivingSubjectId, OtherIDsScopingOrganization, and LivingSubjectName parameters can have more than one instance
- The optional attributes ParameterList.id, MatchCriterionList.id, QueryByParameter responseElementGroupId, QueryByParameter.modifyCode, and QueryByParameter.executionAndDeliveryTime were omitted from the model
- QueryByParameter.responsePriorityCode is required and is fixed to I (Immediate)
- QueryByParameter.responseModalityCode is required and is fixed to R (Real Time)
- QueryByParameter.statusCode is defaulted to "new".
- The data type of MatchAlgorithm.value is constrained to ST
- The data type of MinimumDegreeMatch.value is constrained to INT
- The data type of LivingSubjectName.value is constrained to PN
- The optional SortControl was omitted from the model
- The optional MatchWeight was omitted from the model
- The following optional parameters were omitted from the model:
- PatientTelecom (not omitted if Pediatric Demographics Option is supported)
- PrincipalCareProviderId
- PrinicpalCareProvisionId
- MothersMaidenName (not omitted if Pediatric Demographics Option is supported)
- LivingSubjectDeceasedTime
- PatientStatusCode
- LivingSubjectBirthPlaceName
- LivingSubjectBirthPlaceAddress
Figure 3.47.4.1.2.2-1: Message Information Model for the Query by Demographics Message
The attributes of this model are described in the following table:
Table 3.47.4.1.2.2-1: Model Attributes
PRPA_HD201306IHE
|
This HMD extract defines the message used to query a patient registry for records matching a set of demographics information. Derived from Figure 3.47.4.1.2.2-1 (PRPA_RM201306IHE) |
QueryByParameter | The entry point for the domain content in this query |
queryId [1..1]
|
Unique identifier for the query |
statusCode [1..1] (M)
|
The status of the query, default is "new" |
responseModalityCode [1..1]
|
The mode of the response – always real-time. |
responsePriorityCode [1..1]
|
The Patient Demographics Supplier is required to send an immediate response. |
initialQuantity [0..1]
|
Defines the maximum size of the response that can be accepted by the requesting application |
initialQuantityCode [0..1]
|
Defines the units associated with the initialQuantity; default is "records". |
MatchAlgorithm | This parameter conveys instructions to the patient demographics supplier specifying the preferred matching algorithm to use |
value [1..1]
|
The name of the algorithm |
semanticsText [1..1]
|
|
MinimumDegreeMatch | This parameter conveys instructions to the patient demographics supplier specifying minimum degree of match to use in filtering results |
value [1..1]
|
The numeric value of the degree of match |
semanticsText [1..1]
|
|
LivingSubjectAdministrativeGender | This query parameter is a code representing the administrative gender of a person in a patient registry. |
value [1..1]
|
|
semanticsText [1..1]
|
|
LivingSubjectBirthTime | This query parameter is the birth date of a living subject. |
value [1..1]
|
A date or date range. This parameter can convey an exact moment (e.g., January 1, 1960 @ 03:00:00 EST), an approximate date (e.g., January 1960), or even a range of dates (e.g., December 1, 1959 through March 31, 1960). |
semanticsText [1..1]
|
|
LivingSubjectId | |
value [1..1] (M)
|
A patient identifier, used to assist in finding a match for the query. |
semanticsText [1..1]
|
|
LivingSubjectName | This query parameter is the name of a person. If multiple instances of LivingSubjectName are provided, the receiver must consider them as possible alternatives, logically connected with an "or". |
value [1..1]
|
The name "use" attribute can convey that a name is to be matched using "fuzzy" matching, and does not require exact match. Only some of the name parts may be populated. If, for example, only a family name part of a person's name is sent, then the query would match all persons with that family name regardless of their given names or initials. |
semanticsText [1..1]
|
|
PatientAddress | This query parameter is a postal address for corresponding with a patient. There shall be only a single PatientAddress element |
value [1..*]
|
Multiple instances of the value element within a Patient Address may be specified and are combined with OR logic. |
semanticsText [1..1]
|
|
OtherIDsScopingOrganization | Optional parameter specifying the assigning authority of a Patient Identity Domain |
value [1..1]
|
The identifier for a Patient Identity Domain's assigning authority. IHE restriction:
|
semanticsText [1..1]
|
When the Pediatric Demographics Option is supported, the following sections may be included.
MothersMaidenName | Design Comments: This query parameter is the maiden name of a focal person's mother. It is included as a parameter because it is a common attribute for confirming the identity of persons in some registries. This parameter does not map to a single RIM attribute, instead, in RIM terms Mother's maiden name is the person name part of "family" with an EntityNamePartQualifier of "birth" for the person who is the player in a PersonalRelationship of type of "mother" to the focal person. |
value [1..1] ParameterItem (PN) |
Design Comments: A person name. In this case it may consist of only the given name part, the family name part, or both. |
semanticsText [1..1] ParameterItem (ST){default= "Person.MothersMaidenName"} |
|
PatientTelecom | Design Comments: This query parameter is a telecommunications address for communicating with a living subject in the context of the target patient registry. It could be a telephone number, fax number or even an email address. There shall be only a single PatientTelecom element. |
value [1..*] ParameterItem (TEL) |
Design Comments: A telecommunications address. The scheme attribute specifies whether this is a telephone number, fax number, email address, etc. Multiple instances of the value element within a PatientTelecom may be specified and are combined with OR logic. |
3.47.4.1.2.3 Control Act and Transmission Wrappers
Please see ITI TF-2: Appendix O for details on the IHE guidelines for implementing the wrappers. Table 3.47.4.1.2.3-1 contains the Transmission and Control Act wrappers used for this interaction, and the associated constraints.
Table 3.47.4.1.2.3-1: Wrappers and Constraints
Transmission Wrapper | Trigger Event Control Act Wrapper |
MCCI_MT000100UV01 – Send Message Payload | QUQI_MT021001UV01 – Query Control Act Request: Query By Parameter |
The value of interactionId SHALL be set to PRPA_IN201305UV02 The value of processingModeCode SHALL be set to T The acceptAckCode SHALL be set to AL There SHALL be only one receiver Device |
The value of ControlActProcess.moodCode SHALL be set to EVN The trigger event code in ControlActProcess.code SHALL be set to PRPA_TE201305UV02 If an authorOrPerformer participation is present, the value of authorOrPerformer.typeCode SHALL be set to AUT |
The composite message schemas which describe the full payload of this interaction, including the wrappers, can be found online: see
ITI TF-2: Appendix W
. The schemas from the HL7 V3 2008 Normative Edition can be found at
Edition2008/processable/multicacheschemas/PRPA_IN201305UV02.xsd)
3.47.4.1.2.4 Web Services Types and Messages
The Patient Registry Query by Demographics message will be transmitted using Web Services, according to the requirements specified in ITI TF-2: Appendix V .
The following WSDL naming conventions SHALL apply:
query message -> "PRPA_IN201305UV02_Message"
The following WSDL snippet describes the type for this message:
…
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="urn:hl7-org:v3"
xmlns:hl7="urn:hl7-org:v3">
<!-- Include the message schema -->
<xsd:import namespace="urn:hl7-org:v3" schemaLocation="../schema/HL7V3/NE2008/multicacheschemas/PRPA_IN201305UV02.xsd"/>
<xsd:element name="PRPA_IN201305UV02"/>
</xsd:schema>
</types>
…
The message is described by the following snippet:
…
<message name="PRPA_IN201305UV02_Message">
<part element="hl7:PRPA_IN201305UV02" name="Body"/>
</message>
…
The port types for the WSDL describing the Patient Demographics Service are described together with the expected actions of the actors which receive these messages in Section 3.47.4.2.3.
3.47.4.1.3 Expected Actions
3.47.4.1.3.1 Immediate Response
The Patient Demographics Supplier shall immediately return a Find Candidates Response message as specified below in Section 3.47.4.2. The response message uses the Application Acknowledgement transmission wrapper, as specified in ITI TF-2: Appendix O.1.3, and no other acknowledgments are part of this transaction.
3.47.4.1.3.2 Query Parameter Processing
The Patient Demographics Supplier shall be capable of accepting, searching on, and responding with attributes in the Query Person by Demographics message.
Handling of phonetic issues, alternate spellings, upper and lower case, partial matching, accented characters, etc., if deemed appropriate, is to be supported by the Patient Demographics Supplier rather than by the Patient Demographics Consumer. The Supplier shall return at least all exact matches to the query parameters sent by the Consumer; IHE does not further specify matching requirements, except as already discussed in the LivingSubjectName parameter description.
3.47.4.1.3.3 Incremental Response Processing
The Patient Demographics Supplier, which supports the Continuation Option, shall be capable of accepting and processing the QueryByParameter.responsePriorityCode attribute. In particular, the Patient Demographics Supplier shall respond in immediate mode.
Also, the Patient Demographics Supplier shall be able to interpret QueryByParameter.initialQuantity to return successive responses of partial lists of records. When processing incremental responses, the Patient Demographics Consumer shall request additional responses using the Query Control Act Request Continue/Cancel message (QUQI_MT000001UV01), as described in Section 3.47.4.3.
3.47.4.1.3.4 Web Services Port Type and Binding Definitions
These definitions are part of the query response message. Please see Section 3.47.4.2.3 for more information.
3.47.4.1.3.5 Message Examples
Message examples can be found online: see ITI TF-2: Appendix W .
3.47.4.2 Patient Demographics Query Response
3.47.4.2.1 Trigger Events
The Patient Demographics Supplier’s response to the Find Candidates Query message is triggered by the following trigger:
Find Candidates Response (PRPA_TE201306UV02)
An application returns a Patient Registry Find Candidates Response message populated with information it holds for each person whose record matches the demographic information sent as parameters in a query-by-parameter message.
3.47.4.2.2 Message Semantics
The Patient Registry Find Candidates Response message (PRPA_MT201310UV02) is sent by the Patient Demographics Supplier in direct response to the query (PRPA_MT201306UV02) or, if the Continuation Option is supported, the query continuation (QUQI_MT000001UV01) message previously received. The components of the message with cardinality greater than 0 (as shown below) are required, and the detailed description of the message is provided in Sections 3.47.4.2.2.1 to 3.47.4.2.2.4. All other attributes of the message are optional.
3.47.4.2.2.1 Major Components of the Patient Registry Find Candidates Response Message
This message shares all the major components of the Patient Activate/Revise messages, as described in Section 3.44.4.1.2.1. The only additional component is the QueryMatchObservation class.
Query Match Observation
The QueryMatchObservation class is used to convey information about the quality of the match for each record returned by the query response.
3.47.4.2.2.2 Message Information Model of the Patient Registry Find Candidates Response Message
Below is the Message Information Model for the Patient Registry Find Candidates Response message, as restricted for this transaction. The purpose of the model is to describe the data elements relevant for this transaction. It is a strict common subset of the Patient Registry Find Candidates Response (PRPA_RM201310UV02) RMIM.
The base RMIM can be found on the HL7 V3 2008 Edition CD at Edition2008/domains/uvpa/editable/PRPA_RM201310UV.htm . The following restrictions were made on the original RMIMs to arrive at the restricted model:
- The focal entity choice is restricted to be only a person
- The relationship holder of the personal relationship is restricted to be a person (using CMET COCT_MT030207UV)
- The following roles are omitted:
- asPatientOfOtherProvider
- birthPlace
- guarantor
- guardian
- contactParty
- asMember
- careGiver
- asStudent
- The following participations are omitted:
- subjectOf (administrativeObservation)
- coveredPartyOf (coverage)
Figure 3.47.4.2.2.2-1: Message Information Model for the Patient Registry Find Candidates Response Message
The attributes of this model are described in the following table. Note that CMETs are not discussed, as the HL7 definitions for them are being used.
Table 3.47.4.2.2.2-1: Model Attributes
PRPA_HD201310IHE
|
This HMD extract defines the message used to return records from a patient registry in response to a Find Candidates Query. Derived from Figure 3.47.4.2.2.2-1 (PRPA_RM201310IHE) |
Patient | The primary record for the focal person in a Patient Demographics Supplier |
classCode [1..1] (M) Patient (CS) {CNE:PAT} |
Structural attribute; this is a "patient" role |
id [1..*] (M) Patient ( SET < II >) |
Patient identifiers. Patient Identifiers from different Identity Domains may be contained either here, or in the OtherIDs.id attributes, but not in both places. At least one Patient Identifier shall be present in this attribute |
statusCode [1..1] Patient (CS) {CNE:active, fixed value= "active"} |
A value specifying the state of this record in a patient registry (based on the RIM role class state-machine). This record is active. |
confidentialityCode [0..*] Patient (SET<CE>) {CWE:Confidentiality} |
Value(s) that control the disclosure of information about this living subject as a patient |
veryImportantPersonCode [0..1] Patient (CE) {CWE:PatientImportance} |
A code specifying the patient's special status granted by the scoper organization, often resulting in preferred treatment and special considerations. Examples include board member, diplomat. |
Person |
A subtype of LivingSubject representing a human being Either Person.name or Patient.id must be non-null |
classCode [1..1] (M) Person (CS) {CNE:PSN, fixed value= "PSN"} |
Structural attribute; this is a "person" entity |
determinerCode [1..1] (M) Person (CS) {CNE:INSTANCE, fixed value= "INSTANCE"} |
Structural attribute; this is a specific person |
name [1..*] Person (BAG<PN>) |
Name(s) for this person |
telecom [0..*] Person (BAG<TEL>) |
Telecommunication address(es) for communicating with this person |
administrativeGenderCode [0..1] Person (CE) {CWE:AdministrativeGender} |
A value representing the gender (sex) of this person. Note: this attribute does not include terms related to clinical gender which is a complex physiological, genetic and sociological concept that requires multiple observations in order to be comprehensively described. |
birthTime [0..1] Person (TS) |
The date and time this person was born |
deceasedInd [0..1] Person (BL) |
An indication that this person is dead |
deceasedTime [0..1] Person (TS) |
The date and time this person died |
multipleBirthInd [0..1] Person (BL) |
An indication that this person was part of a multiple birth |
multipleBirthOrderNumber [0..1] Person (INT) |
The order in which this person was born if part of a multiple birth |
addr [0..*] Person (BAG<AD>) |
Address(es) for corresponding with this person |
maritalStatusCode [0..1] Person (CE) {CWE:MaritalStatus} |
A value representing the domestic partnership status of this person |
religiousAffiliationCode [0..1] Person (CE) {CWE:ReligiousAffiliation} |
A value representing the primary religious preference of this person |
raceCode [0..*] Person (SET<CE>) {CWE:Race} |
A set of values representing the races of this person |
ethnicGroupCode [0..*] Person (SET<CE>) {CWE:Ethnicity} |
A set of values representing the ethnic groups of this person |
OtherIDs | Used to capture additional identifiers for the person such as a Drivers’ license or Social Security Number. |
classCode [1..1] (M) Role (CS) {CNE:ROL} |
Structural attribute. This can be any specialization of "role" except for Citizen, or Employee., |
id [1..*] (M) Role (SET<II>) |
One or more identifiers issued to the focal person by the associated scopingOrganization (e.g., identifiers from a different Patient Identity Domain). |
PersonalRelationship | A personal relationship between the focal living subject and another living subject |
classCode [1..1] (M) Role (CS) {CNE:PRS, fixed value= "PRS"} |
Structural attribute; this is a "personal relationship" role |
id [0..*] Role ( SET < II >) |
Identifier(s) for this personal relationship |
code [1..1] (M) Role (CE) {CWE:PersonalRelationshipRoleType} |
A required value specifying the type of personal relationship between the relationshipHolder and the scoping living subject drawn from the PersonalRelationshipRoleType domain, for example, spouse, parent, unrelated friend |
Citizen | Used to capture person information relating to citizenship. |
classCode [1..1] (M) Role (CS) {CNE:CIT, fixed value= "CIT"} |
Structural attribute; this is a "citizen" role |
id [0..*] Role (SET<II>) |
Identifier(s) for the focal person as a citizen of a nation |
Nation | A politically organized body of people bonded by territory and known as a nation. |
classCode [1..1] (M) Organization (CS) {CNE:NAT, fixed value= "NAT"} |
Structural attribute; this is a 'nation' type of entity |
determinerCode [1..1] (M) Organization (CS) {CNE:INSTANCE, fixed value= "INSTANCE"} |
Structural attribute; this is a specific entity |
code [1..1] (M) Organization (CD) {CWE:NationEntityType} |
A value that identifies a nation state |
name [0..1] Organization (ON) |
A non-unique textual identifier or moniker for this nation |
Employee | A relationship of the focal person with an organization to receive wages or salary. The purpose of this class is to identify the type of relationship the employee has to the employer rather than the nature of the work actually performed. For example, it can be used to capture whether the person is a Military Veteran or not.. |
classCode [1..1] (M) Employee (CS) {CNE:EMP} |
Structural attribute; this is an "employee" role |
statusCode [0..1] Employee (CS) {CNE:RoleStatus} |
A value specifying the state of this employment relationship (based on the RIM Role class state-machine), for example, active, suspended, terminated. |
occupationCode [0..1] Employee (CE) {CWE:EmployeeOccupationCode} |
A code qualifying the classification of kind-of-work based upon a recognized industry or jurisdictional standard. OccupationCode is used to convey the person's occupation as opposed to jobClassCode (not used in this transaction) which characterizes this particular job. For example, it can be used to capture whether the person is a Military Veteran or not. |
LanguageCommunication | A language communication capability of the focal person |
languageCode [1..1] (M) LanguageCommunication (CE) {CWE:HumanLanguage} |
A value representing a language for which the focal person has some level of proficiency for written or spoken communication. Examples: Spanish, Italian, German, English, American Sign |
preferenceInd [0..1] LanguageCommunication (BL) |
An indicator specifying whether or not this language is preferred by the focal person for the associated mode |
QueryMatchObservation | Used to convey information about the quality of the match for each record. |
classCode [1..1] (M)
|
Structural attribute – this is an observation |
moodCode [1..1] (M)
|
Structural attribute – this is an event |
code [1..1] (M)
|
A code, identifying this observation as a query match observation. |
value [1..1] (M)
|
A numeric value indicating the quality of match for this record. It shall correspond to the MinimumDegreeMatch.value attribute of the original query, and it shall have the same meaning (e.g., percentage, indicating confidence in the match). |
3.47.4.2.2.3 Control Act and Transmission Wrappers
Please see ITI TF-2: Appendix O for details on the IHE guidelines for implementing the wrappers. Table 3. 47 .4. 2.2.3-1 contains the Transmission and Control Act wrappers used for this interaction, and the associated constraints.
Table 3.47.4.4.2.3-1: Wrappers and Constraints
Transmission Wrapper | Trigger Event Control Act Wrapper |
MCCI_MT000300UV01 – Send Application Acknowledgement | MFMI_MT700711UV01 – Master File/Registry Query Response Control Act (Role Subject) |
The value of interactionId SHALL be set to PRPA_IN201306UV02 The value of processingModeCode SHALL be set to T The acceptAckCode SHALL be set to NE There SHALL be only one receiver Device |
The value of ControlActProcess.moodCode SHALL be set to EVN The trigger event code in ControlActProcess.code SHALL be set to PRPA_TE201306UV02 There SHALL be zero or more RegistrationEvents present in this message. For each matching record returned, there SHALL be exactly one RegistrationEvent present in this message. If a RegistrationEvent is part of the message, there SHALL be exactly one Patient role present in the payload. There SHALL be no replacementOf act-relationship present in this message There SHALL be a QueryByParameter copy of the original query. The QueryAck.resultTotalQuantity, QueryAck.resultCurrentQuantity, and QueryAck.resultRemainingQuantity attributes SHALL have the appropriate values populated. |
The composite message schemas which describe the full payload of this interaction, including the wrappers, can be found online: see
ITI TF-2: Appendix W
. The schemas from the HL7 V3 2008 Normative Edition can be found at
Edition2008/processable/multicacheschemas/PRPA_IN201306UV02.xsd).
3.47.4.2.2.4 Web Services Types and Messages
The Patient Registry Query by Demographics message will be transmitted using Web Services, according to the requirements specified in ITI TF-2: Appendix V .
The following WSDL naming conventions SHALL apply:
response message -> " PRPA_IN201306UV02 _Message"
The following WSDL snippet describes the type for these messages:
…
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="urn:hl7-org:v3"
xmlns:hl7="urn:hl7-org:v3">
<!-- Include the message schema -->
<xsd:import namespace="urn:hl7-org:v3" schemaLocation="../schema/HL7V3/NE2008/multicacheschemas/PRPA_IN201306UV02.xsd"/>
<xsd:element name="PRPA_IN201306UV02"/>
</xsd:schema>
</types>
…
The message is described by the following snippet:
…
<message name="PRPA_IN201306UV02_Message">
<part element="hl7:PRPA_IN201306UV02" name="Body"/>
</message>
…
3.47.4.2.3 Expected Actions
The Patient Demographics Supplier shall perform the matching of patient data based on the query parameter values it receives. The information provided by the Patient Demographics Supplier to Patient Demographics Consumers is a list of possible matching patients from the patient information source associated with the value that the Consumer sent in the Device class of the transmission wrapper of the query message.
If OtherIDsScopingOrganization parameters were part of the query, and they were recognized by the Patient Demographics Supplier as identifying known Patient Identity Domains, the response will also, for each patient, contain any Patient ID values found in the specified domains.
The mechanics of the matching algorithms used are internal to the Patient Demographics Supplier and are outside of the scope of this framework.
The Patient Demographics Supplier shall respond to the query request as described by the following 3 cases:
Case 1 The Patient Demographics Supplier finds (in the patient information source associated with Receiver.Device in the query transmission wrapper) at least one patient record matching the criteria sent in the query parameters. There were no OtherIDsScopingOrganization parameters in the query.
AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper).
OK (data found, no errors) is returned in QueryAck.queryResponseCode (control act wrapper)
One RegistrationEvent (and the associated Patient role, subject of that event) is returned from the patient information source for each patient record found. If the Patient Demographics Supplier returns data for multiple patients, it shall return these data in successive occurrences of the RegistrationEvent class within the transmission wrapper.
For each patient, one or more identifiers from the Patient ID Domain associated with the target patient information source identified by Receiver.Device are represented as Patient.id attributes.
If an incremental number of records are specified in QueryByParamter.initialQuantity (i.e., the Consumer supports the Continuation Option), and the number of records to be sent exceeds that incremental number, the Supplier shall return only up to the incremental number of records. If the Supplier supports the Continuation Option, it shall correctly populate the resultTotalQuantity , resultCurrentQuantity , and resultRemainingQuantity attributes of the QueryAck class in the control act wrapper. If the Supplier does not support the Continuation Option, in addition to returning only up to the incremental number of records requested, it shall return AE (application error in the Acknowledgement.typeCode (transmission wrapper) and AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper).
The Consumer may then send a query continuation message as a subsequent query request for the next increment of responses.
Case 2 : The Patient Demographics Supplier finds (in the patient information source associated with Receiver.Device in the query transmission wrapper) at least one patient record matching the criteria sent in the query parameters. One or more OtherIDsScopingOrganization parameters are present in the query; the Supplier recognizes all 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)
One RegistrationEvent (and the associated Patient role, subject of that event) is returned from the patient information source for each patient record found. If the Patient Demographics Supplier returns data for multiple patients, it shall return these data in successive occurrences of the RegistrationEvent class within the transmission wrapper.
For each patient, the identifiers from all the Patient ID Domains requested via the OtherIDsScopingOrganization parameter are returned either as values of the Patient.id attribute, or as values of the OtherIDs.id attribute. The same patient identifier value shall not appear in both the Patient.id and OtherIDs.id attributes. The Patient Demographics consumer shall consider the identifiers from both places as equivalently valid. If the Patient Demographics supplier cannot provide a patient ID for some of the requested Patient ID Domains, then an OtherIDs.id attribute shall have an appropriate null value, and the ScopingOrganization class shall identify the corresponding domain.
If an incremental number of records are specified in QueryByParamter.initialQuantity , and the number of records to be sent exceeds that incremental number, and the Patient Demographics Supplier supports the Continuation Option, the Supplier returns only the incremental number of records, correctly populating the resultTotalQuantity , resultCurrentQuantity , and resultRemainingQuantity attributes of the QueryAck class in the control act wrapper. The consumer will send a query continuation message as a subsequent query request for the next increment of responses. If the Supplier does not support the Continuation Option, then AE (application error) is returned in the Acknowledgement.typeCode (transmission wrapper) and AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper).
Case 3 : The Patient Demographics Supplier does not recognize one or more OtherIDsScopingOrganization parameters as representing valid Patient Identity Domains.
AE (application error) is returned in Acknowledgement.typeCode (transmission wrapper) and in QueryAck.queryResponseCode (control act wrapper).
No RegistrationEvent is returned.
The queried-for patient identification domains are returned in the QueryByParameter parameter list (control act wrapper).
For each domain that was not recognized, an AcknowledgmentDetail 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 OtherIDsScopingOrganization parameter
|
3.47.4.2.3.1 Web Services Port Type and Binding Definitions
IHE-WSP201) The attribute /wsdl:definitions/@name SHALL be “PDSupplier”.
The following WSDL naming conventions SHALL apply:
wsdl:definitions/@name="PDSupplier":
patient demographics query -> "PRPA_IN201305UV02_Message"
patient demographics response -> "PRPA_IN201306UV02_Message"
continuation query -> "QUQI_IN000003UV01_Message"
accept acknowledgement -> "MCCI_IN000002UV01_Message"
portType -> "PDSupplier_PortType"
get candidates operation -> "PDSupplier_PRPA_IN201305UV02"
continuation operation -> "PDSupplier_PRPA_IN201305UV02_Continue"
cancel operation -> "PDSupplier_PRPA_IN201305UV02_Cancel"
SOAP 1.2 binding -> "PDSupplier_Binding_Soap12"
SOAP 1.2 port -> "PDSupplier_Port_Soap12"
The following WSDL snippets specify the Patient Demographics Query Port Type and Binding definitions, according to the requirements specified in ITI TF-2: Appendix V .
<portType name="PDSupplier_PortType">
<operation name="PDSupplier_PRPA_IN201305UV02">
<input message="tns:PRPA_IN201305UV02_Message" wsaw:Action="urn:hl7-org:v3:PRPA_IN201305UV02"/>
<output message="tns:PRPA_IN201306UV02_Message" wsaw:Action="urn:hl7-org:v3:PRPA_IN201306UV02"/>
</operation>
<operation name="PDSupplier_QUQI_IN000003UV01_Continue">
<input message="tns:QUQI_IN000003UV01_Message" wsaw:Action="urn:hl7-org:v3:QUQI_IN000003UV01_Continue"/>
<output message="tns:PRPA_IN201306UV02_Message" wsaw:Action="urn:hl7-org:v3:PRPA_IN201306UV02"/>
</operation>
<operation name="PIXManager_QUQI_IN000003UV01_Cancel">
<input message="tns:QUQI_IN000003UV01_Message" wsaw:Action="urn:hl7-org:v3: QUQI_IN000003UV01_Cancel"/>
<output message="tns:MCCI_IN000002UV01_Message" wsaw:Action="urn:hl7-org:v3:MCCI_IN000002UV01"/>
</operation>
</portType>
SOAP 1.2 binding:
…
<binding name="PDSupplier_Binding_Soap12" type="PDSupplier_PortType">
<wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="PDSupplier_PRPA_IN201305UV02">
<wsoap12:operation soapActionRequired="false"/>
<input>
<wsoap12:body use="literal"/>
</input>
<output>
<wsoap12:body use="literal"/>
</output>
</operation>
<operation name="PDSupplier_QUQI_IN000003UV01_Continue">
<wsoap12:operation soapActionRequired="false"/>
<input>
<wsoap12:body use="literal"/>
</input>
<output>
<wsoap12:body use="literal"/>
</output>
</operation>
<operation name="PDSupplier_QUQI_IN000003UV01_Cancel">
<wsoap12:operation soapActionRequired="false"/>
<input>
<wsoap12:body use="literal"/>
</input>
<output>
<wsoap12:body use="literal"/>
</output>
</operation>
</binding>
…
An informative WSDL for the Patient Demographics Supplier implementing the PDQV3 Profile is available online: see ITI TF-2: Appendix W .
3.47.4.2.3.2 Message Examples
Message examples can be found online: see ITI TF-2: Appendix W .
3.47.4.3 Patient Demographics Query HL7V3 Continuation
3.47.4.3.1 Trigger Events
A Patient Demographics Consumer’s need to get another set of matching records to a previously sent Patient Demographics query will trigger the Patient Demographics Query Continuation based on the following HL7 trigger event:
Query General Activate Query Continuation (QUQI_TE000003UV01)
An application, in the role of Query Placer, sends a query continuation message to request that the application return up to a specified number of matching records based on a previous demographics query.
3.47.4.3.2 Message Semantics
The Query continuation is supported by the Query Control Act Request Continue / Cancel (QUQI_MT000001UV01) message. The Patient Demographics Consumer shall generate the continuation message whenever it needs to receive another set of matching records based on the results of a previously sent query.
If the Supplier supports the Continuation Option, it shall respond to the continuation request by sending the Patient Registry Find Candidates Response message (PRPA_MT201310), which uses the Application Level Acknowledgement transmission wrapper. This satisfies the requirements of original mode acknowledgment; no intermediate Accept Acknowledgement is to be sent.
If a cancellation request is sent by the Patient Demographics Consumer, then the receiver shall respond by sending an Accept Acknowledgement (see ITI TF-2: Appendix O for the descriptions of the Accept Acknowledgement transmission wrapper).
3.47.4.3.2.1 Major Components of the Query Continuation Message
This message contains no domain payload, it is built from a transmission and control act wrappers.
3.47.4.3.2.2 Message Information Model of the Query Continuation Message
Please see ITI TF-2: Appendix O for the description of the transmission and control act wrappers used by this message. The next section discusses the wrappers, and the specific constraints relevant to this transaction.
3.47.4.3.2.3 Control Act and Transmission Wrappers
Please see ITI TF-2: Appendix O for details on the IHE guidelines for implementing the wrappers. Table 3.47.4.3.2.3-1 contains the Transmission and Control Act wrappers used for this interaction, and the associated constraints.
Table 3.47.4.3.2.3-1: Wrappers and Constraints
Transmission Wrapper | Trigger Event Control Act Wrapper |
MCCI_MT000300UV01 – Send Application Acknowledgement | QUQI_MT000001UV01 – Query Control Act Request Continue / Cancel |
The value of interactionId SHALL be set to QUQI_IN000003UV01 The value of processingModeCode SHALL be set to T The acceptAckCode SHALL be set to AL There SHALL be only one receiver Device The Acknowledgement.typeCode SHALL be set to AA The TargetMessage.id SHALL be the message ID of the immediately preceding Query response message |
The trigger event code in ControlActProcess.code SHALL be set to PRPA_TE000003UV01 QueryContinuation.queryId SHALL be set to the original query identifier |
The composite message schemas which describe the full payload of this interaction, including the wrappers, can be found online: see
ITI TF-2: Appendix W
. The schemas from the HL7 V3 2008 Normative Edition can be found at
Edition2008/processable/multicacheschemas/QUQI_IN000003UV01.xsd)
3.47.4.3.2.4 Web Services Types and Messages
The Query Continuation message will be transmitted using Web Services, according to the requirements specified in ITI TF-2: Appendix V .
The following WSDL naming conventions SHALL apply:
query continuation -> "QUQI_IN000003UV01_Message"
The following WSDL snippet describes the type for this message:
…
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="urn:hl7-org:v3"
xmlns:hl7="urn:hl7-org:v3">
<!-- Include the message schema -->
<xsd:import namespace="urn:hl7-org:v3" schemaLocation="../schema/HL7V3/NE2008/multicacheschemas/QUQI_IN000003UV01.xsd"/>
<xsd:element name="QUQI_IN000003UV01"/>
</xsd:schema>
</types>
…
The message is described by the following snippet:
…
<message name="QUQI_IN000003UV01_Message">
<part element="hl7:QUQI_IN000003UV01" name="Body"/>
</message>
…
The port types for the WSDL describing the Patient Demographics Service are described together with the expected actions of the actors which receive these messages in Section 3.47.4.2.3.
3.47.4.3.3 Expected Actions
If a number of records is specified in the initialQuantity of the original quantity, and the Patient Demographics Supplier supports the Continuation Option, the Patient Demographics Supplier shall return an incremental response of that number of records when the number of matching records it finds exceeds the number of records specified. In subsequent query continuation messages, the Patient Demographics Consumer may specify a different number of records to be returned from now on for this query session by populating the continuationQuantity attribute. In addition, the consumer may specify from which record the next set of matches should start by populating the startResultNumber attribute. If the Patient Demographics Supplier does not support the Continuation Option and the number of matching records to the original query exceeds the number specified, then, in addition to returning up to that number of records, the Supplier shall return AE (application error) in the Acknowledgement.typeCode (transmission wrapper) and AE (application error) in QueryAck.queryResponseCode (control act wrapper).
The Patient Demographics Supplier shall always populate the resultTotalQuantity , resultCurrentQuantity , and resultRemainingQuantity in the QueryAck class. This information will indicate to the Patient Demographics Consumer whether there are any remaining records to be returned in subsequent continuations.
The Patient Demographics Consumer shall indicate a query session cancellation by sending a continuation message, and setting the continuationQuantity attribute to 0, and setting the statusCode to "aborted". In such case, the Patient Demographics Supplier shall respond with an Accept Acknowledgement (as described in ITI TF-2: Appendix O ).
Sending a query cancellation message is optional. The Patient Demographics Supplier may simply not send any continuation messages once a record has been selected. How long the Patient Demographic Supplier retains query results (for incremental response) is an implementation decision and therefore beyond the scope of IHE.
3.47.4.3.3.1 Web Services Port Type and Binding Definitions
This information is part of the specification of the Patient Demographics Query response in Section 3.47.4.2.3.1.
An informative WSDL for the Patient Demographics Supplier implementing the PDQV3 Profile is available online: see ITI TF-2: Appendix W .
3.47.4.2.3.2 Message Examples
Message examples can be found online: see ITI TF-2: Appendix W .
3.47.5 Security Requirements
No transaction specific security considerations.
3.47.5.1 Audit Record Considerations
When grouped with ATNA Secure Node or Secure Application Actors, this transaction is to be audited as “Query Information” event, as defined in ITI TF-2: Table 3.20.4.1.1.1-1. The following tables show items that are required to be part of the audit record for this transaction.
3.47.5.1.1 Patient Demographics Consumer audit message:
Field Name | Opt | Value Constraints | |
Event
AuditMessage/
|
EventID | M | EV(110112, DCM, “Query”) |
EventActionCode | M | “E” (Execute) | |
EventDateTime | M | not specialized | |
EventOutcomeIndicator | M | not specialized | |
EventTypeCode | M | EV(“ITI-47”, “IHE Transactions”, “Patient Demographics Query”) | |
Source (Patient Demographics Consumer) (1) | |||
Human Requestor (0..n) | |||
Destination (Patient Demographics Supplier) (1) | |||
Audit Source (Patient Demographics Consumer) (1) | |||
Patient (0..n) | |||
Query Parameters (1) |
Where:
Source
AuditMessage/
|
UserID | U | not specialized |
AlternativeUserID | M | the process ID as used within the local operating system in the local system logs. | |
UserName | U | not specialized | |
UserIsRequestor | U | not specialized | |
RoleIDCode | M | EV(110153, DCM, "Source Role ID") | |
NetworkAccessPointTypeCode | M | “1” for machine (DNS) name, “2” for IP address | |
NetworkAccessPointID | M | the machine name or IP address. |
Human Requestor (if known)
AuditMessage/
|
UserID | M | identity of the human that initiated the transaction. |
AlternativeUserID | U | not specialized | |
UserName | U | not specialized | |
UserIsRequestor | U | not specialized | |
RoleIDCode | U | Access Control role(s) the user holds that allows this transaction. | |
NetworkAccessPointTypeCode | U | not specialized | |
NetworkAccessPointID | U | not specialized |
Destination
AuditMessage/
|
UserID | M | SOAP endpoint URI |
AlternativeUserID | U | not specialized | |
UserName | U | not specialized | |
UserIsRequestor | M | “false” | |
RoleIDCode | M | EV(110152, DCM, "Destination Role ID") | |
NetworkAccessPointTypeCode | M | “1” for machine (DNS) name, “2” for IP address | |
NetworkAccessPointID | M | the machine name or IP address. |
Audit Source
AuditMessage/
|
AuditSourceID | U | not specialized |
AuditEnterpriseSiteID | U | not specialized | |
AuditSourceTypeCode | U | not specialized |
Patient
(AuditMessage/
|
ParticipantObjectTypeCode | M | “1” (Person) |
ParticipantObjectTypeCodeRole | M | “1” (Patient) | |
ParticipantObjectDataLifeCycle | U | not specialized | |
ParticipantObjectIDTypeCode | M | not specialized | |
ParticipantObjectSensitivity | U | not specialized | |
ParticipantObjectID | M | The patient ID in HL7 CX format (see ITI TF-2: Appendix E ) from the livingSubjectId. | |
ParticipantObjectName | U | not specialized | |
ParticipantObjectQuery | U | not specialized | |
ParticipantObjectDetail | U | not specialized |
Query Parameters
(AuditMessage/
|
ParticipantObjectTypeCode | M | “2” (system object) |
ParticipantObjectTypeCodeRole | M | “24” (query) | |
ParticipantObjectDataLifeCycle | U | not specialized | |
ParticipantObjectIDTypeCode | M | EV(“ITI-47”, “IHE Transactions”, “Patient Demographics Query”) | |
ParticipantObjectSensitivity | U | not specialized | |
ParticipantObjectID | U | not specialized | |
ParticipantObjectName | U | not specialized | |
ParticipantObjectQuery | M | the QueryByParameter segment of the query, base64 encoded | |
ParticipantObjectDetail | U | not specialized |
3.47.5.1.2 Patient Demographics Source audit message:
Field Name | Opt | Value Constraints | |
Event
AuditMessage/
|
EventID | M | EV(110112, DCM, “Query”) |
EventActionCode | M | “E” (Execute) | |
EventDateTime | M | not specialized | |
EventOutcomeIndicator | M | not specialized | |
EventTypeCode | M | EV(“ITI-47”, “IHE Transactions”, “Patient Demographics Query”) | |
Source (Patient Demographics Consumer) (1) | |||
Destination (Patient Demographics Supplier) (1) | |||
Audit Source (Patient Demographics Supplier) (1) | |||
Patient (0..n) | |||
Query Parameters (1) |
Where:
Source
AuditMessage/
|
UserID | U | not specialized |
AlternativeUserID | U | not specialized | |
UserName | U | not specialized | |
UserIsRequestor | U | not specialized | |
RoleIDCode | M | EV(110153, DCM, "Source Role ID") | |
NetworkAccessPointTypeCode | M | “1” for machine (DNS) name, “2” for IP address | |
NetworkAccessPointID | M | the machine name or IP address. |
Destination
AuditMessage/
|
UserID | M | SOAP endpoint URI |
AlternativeUserID | M | the process ID as used within the local operating system in the local system logs. | |
UserName | U | not specialized | |
UserIsRequestor | M | “false” | |
RoleIDCode | M | EV(110152, DCM, "Destination Role ID") | |
NetworkAccessPointTypeCode | M | “1” for machine (DNS) name, “2” for IP address | |
NetworkAccessPointID | M | the machine name or IP address. |
Audit Source
AuditMessage/
|
AuditSourceID | U | not specialized |
AuditEnterpriseSiteID | U | not specialized | |
AuditSourceTypeCode | U | not specialized |
Patient
(AuditMessage/
|
ParticipantObjectTypeCode | M | “1” (Person) |
ParticipantObjectTypeCodeRole | M | “1” (Patient) | |
ParticipantObjectDataLifeCycle | U | not specialized | |
ParticipantObjectIDTypeCode | M | not specialized | |
ParticipantObjectSensitivity | U | not specialized | |
ParticipantObjectID | M | The patient ID in HL7 CX format (see ITI TF-2: Appendix E ) from the livingSubjectId. | |
ParticipantObjectName | U | not specialized | |
ParticipantObjectQuery | U | not specialized | |
ParticipantObjectDetail | U | not specialized |
Query Parameters
(AuditMessage/
|
ParticipantObjectTypeCode | M | “2” (system object) |
ParticipantObjectTypeCodeRole | M | “24” (query) | |
ParticipantObjectDataLifeCycle | U | not specialized | |
ParticipantObjectIDTypeCode | M | EV(“ITI-47”, “IHE Transactions”, “Patient Demographics Query”) | |
ParticipantObjectSensitivity | U | not specialized | |
ParticipantObjectID | U | not specialized | |
ParticipantObjectName | U | not specialized | |
ParticipantObjectQuery | M | the QueryByParameter segment of the query, base64 encoded | |
ParticipantObjectDetail | U | not specialized |