Patient Location Query (PLQ)

Purpose

CONNECT 5.2 has implemented ITI-56 - Patient Location Query (PLQ)  interface, in synchronous mode, to support the Care-Quality Record Locator Service (RLS) use case.

Basic Workflow

The Initiating Gateway sends an IHE Patient Location Query [ITI-56] request to the Responding NHIE to find communities where this patient may have healthcare data. The request includes the patient identifier as known by the Responding Gateway. See IHE ITI TF-1: 27 XCPD Integration Profile and IHE ITI TF-2b: 3.56  and Cross-Community Patient Discovery (XCPD) Health Data Locator and Revoke Option.

Use case

Initiating NHIE sends a Patient Discovery request. If the responding NHIE responds with a Patient Id and is a Health Data Locator, the initiating gateway will send a PLQ request with Patient Id to responding NHIE  to pull all the communities that have requested Patient's data.

Interface Description

Note: The NwHIN interface for PatientLocationQuery is defined in the NhinPatientDiscovery as both services share the same namespace.

Audit Logging

PLQ employs the ATNA audit logging as described in section 3.56.5.1 of IHE IT Infrastructure Technical Framework Supplement  Cross-Community Patient Discovery (XCPD) Health Data Locator and Revoke Option.

Message Samples

Patient Location Query Sample Request Message

Note: This is excerpt sample message without NHIN Saml Assertion section.

Sample NwHIN PLQ Request Message
<PatientLocationQueryRequest xmlns="urn:ihe:iti:xcpd:2009" xmlns:ns2="urn:hl7-org:v3" xmlns:ns3="urn:hl7-org:sdtc" xmlns:ns4="urn:gov:hhs:fha:nhinc:common:nhinccommon" xmlns:ns5="urn:gov:hhs:fha:nhinc:common:patientcorrelationfacade" xmlns:ns6="http://www.w3.org/2005/08/addressing">
  <RequestedPatientId extension="38273N244" root="2.2"/>
</PatientLocationQueryRequest>


Patient Location Query Sample Success Response Message

Sample NwHIN PLQ Success Response Message
<PatientLocationQueryResponse xmlns="urn:ihe:iti:xcpd:2009" xmlns:ns2="urn:hl7-org:v3" xmlns:ns3="urn:hl7-org:sdtc" xmlns:ns4="urn:gov:hhs:fha:nhinc:common:nhinccommon" xmlns:ns5="urn:gov:hhs:fha:nhinc:common:patientcorrelationfacade" xmlns:ns6="http://www.w3.org/2005/08/addressing">
  <PatientLocationResponse>
    <HomeCommunityId>1.1</HomeCommunityId>
    <CorrespondingPatientId extension="D123401" root="1.1"/>
    <RequestedPatientId extension="38273N244" root="2.2"/>
  </PatientLocationResponse>
  <PatientLocationResponse>
    <HomeCommunityId>4.4</HomeCommunityId>
    <CorrespondingPatientId extension="111225" root="4.4"/>
    <RequestedPatientId extension="38273N244" root="2.2"/>
  </PatientLocationResponse>
</PatientLocationQueryResponse>

Test Approach

Using JUnit and SoapUI Test Suite to verify the Patient Location Query service

Methods
JUnit

Mocking the Patient Location Query: Inbound, Outbound and Adapter

Run JUnit test suites

SoapUI Test Suite

  • Project: ValidationSuite
  • Test Case: Patient Location Query


Validation Suite: Patient Location Query

To verified the PLQ request and response, and correlated identifiers records are created

  • Starting with a clean correlated identifiers table
  • Add an correlated identifier record of the patient to be queried in the request for testing purposes
  • Send PLQ request to the gateway endpoint
  • Verify PLQ response
  • Verify correlated-identifiers records that was inserted from the response to the database

SoapUI Test Suite

  • Regression Suite: AuditLogging-passthrough
  • Test Case: Patient Location Query

Regression Suite AuditLogging-Passthrough: Patient Location Query

To verify that PLQ request and response, and audit-log records are created:

  • Clear audit log table
  • Send PLQ request
  • Verify Initiating Gateway logs the audit message in the database
  • Verify Responding Gateway logs the audit message in the database

SoapUI Test Suite

  • Regression Suite: EventLogging-passthrough
  • Test Case: Patient Location Query

Regression Suite EventLogging-Passthrough: Patient Location Query

To verify that PLQ request and response, and event-log records are created:

  • Clear event logs table
  • Send PLQ request
  • Verify Event logs
  • Verify elements logged as part of event.