Through the Founda Health Platform, Application Providers can query and retrieve patient demographics from connected Provider Organizations in a consistent way, using the IHE ITI PDQm Profile.
Overview
Patient Demographics Query flow
Actors
There are two actors in the PDQm profile:
Patient Demographics Consumer queries the patient based on available demographics (search parameters) and gets the complete set of patient demographics in return (if there are any).
Patient Demographics Supplier returns the complete set of available patient demographics based on the provided set of search parameters. The Founda Health Platform acts as the Patient Demographics Supplier in this profile.
Supported Transactions
There is one transaction defined within the PDQm profile:
ITI-78: the Patient Demographics Supplier receives a request from the Patient Demographics Consumer to collect information about patients whose demographics data match data provided in the query parameters on the request message. The request is processed by the Patient Demographics Supplier and returns a response in the form of demographics information for the matching patients.
Mobile Patient Demographics Query (ITI-78)
The Founda Health Platform acts as a Patient Demographics Supplier to connected Clients of Application Providers that interact through the ITI-78 transaction. The transaction can be used to search for existing patients and retrieving the complete FHIR Patient Resource after the patient of interest has been identified.
Search for Patient Demographics
The transaction can be used to send either a GET or a POST request to search for existing patients.
GET Request
Send a GET request to endpoint https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Patient?<parameters>. Search parameters are added as key value pairs to the URL as described by the FHIR specification.
To indicate that the request and response should comply with ITI-78, the _profile parameter should be included to the search set: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Patient?_profile=https://profiles.ihe.net/ITI/PDQm/ .
Parameters
All parameters as listed in section 2:3.78.4.1.2.1 of the PDQm profile can be used as search parameters.
Parameter
Type
Required
Description
_id
string
Resource (logical) identifier for the patient
active
boolean
Search for active (true) or inactive (false) patients
family
string
Family name or last name of the patient
given
string
Given name of the patient
identifier
token
A patient identifier, formatted as: <system>|<value>. Multiple identifiers can be added.
When 0, 1, or N matching patient records are identified, the payload is a FHIR4 Bundle resource of type searchset.
Status code: 200 (OK)
An example response - one or more patients found:
JSON
|
{"resourceType":"Bundle","id":"02d646fb-495e-402c-9079-1b6945fa6758","meta":{"lastUpdated":"2023-02-20T14:19:21.218+00:00"},"type":"searchset","total":4,"link":[{"relation":"self","url":"https://api.eu.founda.com/1/health/organizations/org-x/fhir/4/Patient?family=Campbell"}],"entry":[{"fullUrl":"https://api.eu.founda.com/1/health/organizations/org-x/fhir/4/Patient/38018","resource":{"resourceType":"Patient","id":"38018","meta":{"versionId":"1","lastUpdated":"2023-01-10T10:08:08.159+00:00","source":"#9nxOehVPDEImgl9S",},"identifier":[{"use":"usual","type":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v2-0203","code":"MR","display":"Medical Record Number"}],"text":"Medical Record Number"},"system":"urn:oid:1.2.3.4.5.6.7.8.9","value":"42759"}],"active":true,"name":[{"family":"Campbell","given":["Mavis"]}],"telecom":[{"system":"phone","value":"555-555-2759","use":"home"}],"gender":"female","birthDate":"1998-09-10","address":[{"line":["427 Fake St"],"city":"Pittsburg","state":"KS","postalCode":"66762","country":"US",}]},"search":{"mode":"match"}},{// another matching record},{// another matching record},{// another matchin record}]}
When pagination is supported by the connected EHR, pagination URLs are included in the Bundle response.
Possible error responses
In case an error occurs during processing of the request, error codes 401, 404 are returned with an OperationOutcome that providers additional details.
Status code: 401, 404
An example response - error:
JSON
|
{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Request format is incorrect"}]}
POST Request
Send a POST request to endpoint https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Patient/_search. The Founda Health Platform will transform a POST request into a GET request, depending on the connected EHR capabilities.
Note that the request and response should comply with ITI-78, hence the Client should include the _profile parameter with the URL.
The request body for the POST request should be of type application/x-www-form-urlencoded. The list of keys that can be included in this request is equal to the provided table for the GET request.
The keys of type string can also be used with an :exact modifier. Note that this is an optional part of the IHE PDQm profile specifications, which implies that not all EHRs might support it.
The _profile parameter should still be included to denote that it's an IHE PDQm-based retrieve request.
An example response of a FHIR Patient payload
JSON
|
{"resourceType":"Patient","id":"38018","meta":{"versionId":"1","lastUpdated":"2023-01-10T10:08:08.159+00:00","source":"#9nxOehVPDEImgl9S",},"identifier":[{"use":"usual","type":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v2-0203","code":"MR","display":"Medical Record Number"}],"text":"Medical Record Number"},"system":"urn:oid:1.2.3.4.5.6.7.8.9","value":"42759"}],"active":true,"name":[{"family":"Campbell","given":["Mavis"],"period":{"start":"1998-09-10"}}],"telecom":[{"system":"phone","value":"555-555-2759","use":"home"},{"system":"email","value":"Mavis.Campbell@example.com"}],"gender":"female","birthDate":"1998-09-10","address":[{"line":["427 Fake St"],"city":"Pittsburg","state":"KS","postalCode":"66762","country":"US","period":{"start":"1998-09-10"}}]}