website logo
โŒ˜K
๐Ÿ‘‹Welcome!
๐Ÿš€About Founda
Introduction to Founda
Glossary
๐Ÿ”ŒGetting started
Start your integration
Founda FHIR Sandbox
๐Ÿง‘โ€๐ŸซTutorials
Console
Authentication with OAuth2.0
๐Ÿ“–Interaction Guides
Patient Demographics Exchange
Clinical Information Exchange
Subscription Management
Audit Record Repository
Docs powered byย archbeeย 
website logo

Retrieve clinical data

20min

Through the Founda Health Platform, Application Providers can query clinical data elements from connected Provider Organizations in a consistent way, using the IHE QEDm Profile.

These data elements include observations, allergy and intolerances, conditions, diagnostic results, medications, immunizations, procedures, encounters and provenance.

Overview

Query for Existing Data flow
Query for Existing Data flow
๏ปฟ

Actors

There are two actors in the QEDm profile:

  • Clinical Data Consumer sends (FHIR-based) queries to the Clinical Data Source for one or more clinical data elements based on available parameters.
  • Clinical Data Source responds to (FHIR-based) queries for one or more data elements that match the query parameters.

Supported Transactions

There is one transaction defined within the QEDm profile:

  • PCC-44: the Mobile Query Existing Data transaction can be used to query for the clinical data elements that satisfy a set of parameters and results in a FHIR Bundle containing all clinical data Resources (of the same type) that match these parameters.

Mobile Query Existing Data (PCC-44)

To connected Provider Organizations, the Founda Health Platform acts as a Clinical Data Consumer interacting through the PCC-44 transaction to query the data elements that are available in the Provider Organization's EHR (i.e. the Clinical Data Source). To connected Application Providers that interact with the Founda Health Platform through the PCC-44 transaction, the Founda Health Platform acts as a Clinical Data Source. The transaction can be used to search for clinical data for a patient of interest after this patient has been identified (e.g. with a ๏ปฟPatient Demographics Query).

Search for Clinical Data

The transaction can be used to send either a GET or a POST request to search for existing data.

GET Request

Send a GET request to endpoint https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/{resourceName}?<parameters>. Search parameters must be added as key value pairs to the URL as described by the FHIR specification.

To indicate that the request and response should comply with PCC-44, the _profile parameters should be included to the search set:

https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/{resourceName}?_profile=https://profiles.ihe.net/ITI/QEDm/.

Parameters

Every resource defines its own set of parameters as defined in section 3.44.4.1.2.1 of the QEDm profile.

Allergies and Intolerances: https://api.founda.com/1/health/organizations/{organizationId}/fhir/4/AllergyIntolerance?<parameters>

Parameters combination

Type

Required

Description

patient

reference

๏ปฟ

The patient to search data for

Condition: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Condition?<parameters>

Parameters combination

Type

Required

Description

patient

reference

๏ปฟ

The patient to search data for

patient + category

reference + token

๏ปฟ

The patient to search data for + the category name of the resource

patient + clinical status

reference + token

๏ปฟ

The patient to search data for + the clinical status (which can be active, resolved, or inactive)

Diagnostic Report: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/DiagnosticReport?<parameters>

Parameters combination

Type

Required

Description

patient + category

reference + token

๏ปฟ

The patient to search data for + the category name of the resource

patient + category + code

reference + token + token

๏ปฟ

The patient to search data for + the category name of the resource + the code of the resource

patient + category + date

reference + token + date

๏ปฟ

The patient to search data for + the category name of the resource + the date of creation of the resource

patient + category + code + date

reference + token + token + date

๏ปฟ

The patient to search data for + the category name of the resource + the code of the resource + the date of creation of the resource

Encounter: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Encounter?<parameters>

Parameters combination

Type

Required

Description

patient

reference

๏ปฟ

The patient to search data for

patient + date

reference + date

๏ปฟ

The patient to search data for + the date of creation of the resource

Immunization: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Immunization?<parameters>

Parameters combination

Type

Required

Description

patient

reference

๏ปฟ

The patient to search data for

Medication Request: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/MedicationRequest?<parameters>

Parameters combination

Type

Required

Description

patient

reference

Yes

The patient to search data for

patient + _include=MedicationRequest::medication

reference + token

๏ปฟ

The patient to search data for + the parameter for specifying if medication resource should be included in the response

Medication Statement: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/MedicationStatement?<parameters>

Parameters combination

Type

Required

Description

patient

reference

Yes

The patient to search data for

patient + _include=MedicationStatement::medication

reference + token

๏ปฟ

The patient to search data for + the parameter for specifying if medication resource should be included in the response

Observation: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Observation?<parameters>

Parameters combination

Type

Required

Description

patient + category

reference + token

๏ปฟ

The patient to search data for + the category name of the resource

patient + category + code

reference + token + token

๏ปฟ

The patient to search data for + the category name of the resource + the code of the resource

patient + category + date

reference + token + date

๏ปฟ

The patient to search data for + the category name of the resource + the date of creation of the resource

patient + category + code + date

reference + token + token + date

๏ปฟ

The patient to search data for + the category name of the resource + the code of the resource + the date of creation of the resource

Procedure: https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/Procedure?<parameters>

Parameters combination

Type

Required

Description

patient

reference

๏ปฟ

The patient to search data for

patient + date

reference + date

๏ปฟ

The patient to search data for + the date of creation of the resource

These modifiers can be used for all date parameters:

  • ge: greater than or equal to
  • le: less than or equal to
  • gt: greater than
  • lt: less than

For example: date=gt2023-01-01

POST Request

Send a POST request to endpoint https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/{resourceName}/_search?<parameters>

The request body for the POST request should be of type x-www-form-urlencoded. The list of keys that can be included in this request is equal to the provided tables for the GET request.

Response

When 0, 1, or N matching resources are identified, the payload is a FHIR4 Bundle resource of type searchset.

Status code: 200 (OK)

An example response - one or more resources found

JSON
|
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 4,
  "link": [
    {
      "relation": "self",
      "url": "https://api.eu.founda.com/1/health/organizations/org-x/fhir/4/Observation?_profile=https%3A%2F%2Fprofiles.ihe.net%2FITI%2FQEDm%2F&_count=15&patient=erXuFYUfucBZaryVksYEcMg3&category=laboratory"
    }
  ],
  "entry": [
    {
      "link": [
        {
          "relation": "self",
          "url": "https://api.eu.founda.com/1/health/organizations/org-x/fhir/4/Observation/eyPMWgv2u2RUfsV4p1lLKuUtqyPs2-QNi2zKvbTsFYtRByc6B.cSi1iVU5V2HOpX23"
        }
      ],
      "fullUrl": "https://api.eu.founda.com/1/health/organizations/org-x/fhir/4/Observation/eyPMWgv2u2RUfsV4p1lLKuUtqyPs2-QNi2zKvbTsFYtRByc6B.cSi1iVU5V2HOpX23",
      "resource": {
        "resourceType": "Observation",
        "id": "eyPMWgv2u2RUfsV4p1lLKuUtqyPs2-QNi2zKvbTsFYtRByc6B.cSi1iVU5V2HOpX23",
        "basedOn": [
          {
            "reference": "ServiceRequest/egf4KkhXmgeVWImXEEYH.CEE1ZgJG5SQy2vBX1HgvBCs3",
            "display": "Hemoglobin A1c"
          }
        ],
        "status": "final",
        "category": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/observation-category",
                "code": "laboratory",
                "display": "Laboratory"
              }
            ],
            "text": "Laboratory"
          },
          {
            "coding": [
              {
                "system": "urn:oid:1.2.840.114350.1.13.0.1.7.10.798268.30",
                "code": "Lab",
                "display": "Lab"
              }
            ],
            "text": "Lab"
          }
        ],
        "code": {
          "coding": [
            {
              "system": "http://loinc.org",
              "code": "4548-4",
              "display": "Hemoglobin A1c/Hemoglobin.total in Blood"
            },
            {
              "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.768282",
              "code": "1558024",
              "display": "Hemoglobin A1C"
            }
          ],
          "text": "Hemoglobin A1C"
        },
        "subject": {
          "reference": "Patient/erXuFYUfucBZaryVksYEcMg3",
          "display": "Lopez, Camila Maria"
        },
        "encounter": {
          "reference": "Encounter/elMz2mwjsRvKnZiR.0ceTUg3",
          "identifier": {
            "use": "usual",
            "system": "urn:oid:1.2.840.114350.1.13.0.1.7.3.698084.8",
            "value": "27558"
          },
          "display": "Office Visit"
        },
        "effectiveDateTime": "2019-05-28T14:22:00Z",
        "issued": "2019-05-28T14:22:41Z",
        "valueQuantity": {
          "value": 5.1
        },
        "specimen": {
          "reference": "Specimen/e.n21kE9PMQ94vOo1lkT2XkN1av86guPxYsFU20qTQ1M3",
          "display": "Specimen"
        }
      },
      "search": {
        "mode": "match"
      }
    },
    {...one more resource here...},
    {...one more resource here...},
    {...one more resource here...}
  ]
}
๏ปฟ

An example response - resource not found

JSON
|
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 0,
  "entry": [],
  "link": [
    {
      "relation": "self",
      "url": "https://api.eu.founda.com/1/health/organizations/org-x/fhir/4/Observation?_profile=https%3A%2F%2Fprofiles.ihe.net%2FITI%2FQEDm%2F&_count=15&patient=erXuFYUfucBZaryVksYEcMg3&category=laboratoryaf"
    }
  ]
}
๏ปฟ

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, an OperationOutcome is returned that provides additional details.

JSON
|
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "fatal",
      "code": "business-rule",
      "details": {
        "coding": [
          {
            "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.657369",
            "code": "59159",
            "display": "The content/operation failed to pass a business rule, and so could not proceed."
          }
        ],
        "text": "The content/operation failed to pass a business rule, and so could not proceed."
      },
      "diagnostics": "This resource requires a patient or _id parameter for searching.",
      "location": [
        "/f:patient/_id"
      ],
      "expression": [
        "patient/_id"
      ]
    }
  ]
}
๏ปฟ

Retrieve Resource

When a resource of interest is identified in the response to a search request, the complete FHIR Resource can be retrieved.

An example clinical resource query

https://api.eu.founda.com/1/health/organizations/{organizationId}/fhir/4/{resourceName}/<resource_id>?_profile=https://profiles.ihe.net/ITI/QEDm/

The _profile parameter should still be included to denote that it's an IHE QEDm-based retrieve request.

An example response of a FHIR Observation payload

JSON
|
{
  "resourceType": "Observation",
  "id": "eyPMWgv2u2RUfsV4p1lLKuUtqyPs2-QNi2zKvbTsFYtRByc6B.cSi1iVU5V2HOpX23",
  "basedOn": [
    {
      "reference": "ServiceRequest/egf4KkhXmgeVWImXEEYH.CEE1ZgJG5SQy2vBX1HgvBCs3",
      "display": "Hemoglobin A1c"
    }
  ],
  "status": "final",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/observation-category",
          "code": "laboratory",
          "display": "Laboratory"
        }
      ],
      "text": "Laboratory"
    },
    {
      "coding": [
        {
          "system": "urn:oid:1.2.840.114350.1.13.0.1.7.10.798268.30",
          "code": "Lab",
          "display": "Lab"
        }
      ],
      "text": "Lab"
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "4548-4",
        "display": "Hemoglobin A1c/Hemoglobin.total in Blood"
      },
      {
        "system": "urn:oid:1.2.840.114350.1.13.0.1.7.2.768282",
        "code": "1558024",
        "display": "Hemoglobin A1C"
      }
    ],
    "text": "Hemoglobin A1C"
  },
  "subject": {
    "reference": "Patient/erXuFYUfucBZaryVksYEcMg3",
    "display": "Lopez, Camila Maria"
  },
  "encounter": {
    "reference": "Encounter/elMz2mwjsRvKnZiR.0ceTUg3",
    "identifier": {
      "use": "usual",
      "system": "urn:oid:1.2.840.114350.1.13.0.1.7.3.698084.8",
      "value": "27558"
    },
    "display": "Office Visit"
  },
  "effectiveDateTime": "2019-05-28T14:22:00Z",
  "issued": "2019-05-28T14:22:41Z",
  "valueQuantity": {
    "value": 5.1
  },
  "specimen": {
    "reference": "Specimen/e.n21kE9PMQ94vOo1lkT2XkN1av86guPxYsFU20qTQ1M3",
    "display": "Specimen"
  }
}
๏ปฟ

๏ปฟ

Updated 28 Mar 2023
Did this page help you?
Yes
No
PREVIOUS
Access to Health Documents
NEXT
Subscription Management
Docs powered byย archbeeย 
TABLE OF CONTENTS
Overview
Actors
Supported Transactions
Mobile Query Existing Data (PCC-44)
Search for Clinical Data
GET Request
POST Request
Response
Possible error responses
Retrieve Resource