Universal API Implementation Guide
1.1.19 - ci-build

Universal API Implementation Guide - Local Development build (v1.1.19). See the Directory of published versions

Systematic Queries

Systematic Query Workflows

The approach described in this section is based on Specialty Medication Enrollment Systematic Query Workflows Updates with results of requested services from Enrollment Workflow are send to FHIR Server from transactional Genentech systems.

Long term both push and pull mechanism will be available for the client to receive updates on services.

Current implementation describes the pull mechanism where client needs to send message query and receive message query result with details about specific services.

This section…

  • describes the solicited message query flow with list of potential resources to query for in context of specific services requested
  • describes the matching mechanism on FHIR Server
  • describes the message query response structure

Solicited - Messaging

Sequence Diagram:

solicited-messaging

Query String resources

Supported resources in query-string parameter(s) per different Service Request Types are:

Resource Name Example Applicable
for GPF
Applicable
for biPA
CoverageEligibilityResponse “CoverageEligibilityResponse?status=active” Yes Yes

The matching resources under identified Patient and Organization will be returned in search-result Bundles (one search-result per Resource).

Optional parameters in Query Message are service-request and bundle-enrollment-id which are used to narrow down the search result to only specific Service Request Types and specific bundle enrollment id (transactionID) matching specific enrollment from the past.

Example references

GPF Service Request Flow

ASSUMPTIONS:

  • Vendor-Organization have successfully submitted enrollment bundle which included GPF Service Request (see Enrollment Examples section TBD).
  • The enrollment bundle was assigned bundle-enrollment-id = 30eec1b3-d067-40ee-8af5-9e7c37130b14
Client queries for status before update is available

Client identified by API key (which sets MessageHeader.source.name value in the backend) and sender.identifier.value = “HOSP-12345” submits query message (before any status update was sent to FHIR Server) Query message is identified by MessageHeader.eventCoding.code = query-message

Search criteria:

  • CoverageEligibilityResponse records for Patient with “official” identifier = 6bcd8467-0473-4836-9128-2e7972f23177 AND
  • CoverageEligibilityResponse records associated with ServiceRequests of type gpf OR biPA AND
  • CoverageEligibilityResponse records associated with bundle-enrollment-id = 30eec1b3-d067-40ee-8af5-9e7c37130b14 AND
  • CoverageEligibilityResponse records with status = active

Example Request

FHIR Server SHALL return OperationOutcome resource “request-in-progress”. Example_link_TBD

GNE Status Update

(INTERNAL ONLY) GNE Transactional System sends status update with GPF results. MessageHeader.source is set to “Genentech-PACT” but MessageHeader.sender is pointing to original Practice organization associated with specific Vendor-Organization Hospital - the Organization resource in status-update Bundle has “official” identifier which was originally received during enrollment.

        {
            "use" : "official",
            "system" : "http://dev.gene.com/fhir/mulesoft",
            "value" : "Vendor_AB_HOSP-12345",
            "assigner" : {
              "display" : "UAPI Experience API Mulesoft"
            }
        }

Example Status Update Payload

Client queries for status after update is available

1) Client identified by API key (which sets MessageHeader.source.name value in the backend) and sender.identifier.value = “HOSP-12345” submits query message. Query message is identified by MessageHeader.eventCoding.code = query-message

Search criteria:

  • CoverageEligibilityResponse records for Patient with “official” identifier = 6bcd8467-0473-4836-9128-2e7972f23177 AND
  • CoverageEligibilityResponse records associated with ServiceRequests of type gpf OR biPA AND
  • CoverageEligibilityResponse records associated with bundle-enrollment-id = 30eec1b3-d067-40ee-8af5-9e7c37130b14 AND
  • CoverageEligibilityResponse records with status = active

Example External Request

2) Genentech middletier appends “official” identifier to MessageHeader.sender based on API key of the client

Example Internal Request

3) Genentech FHIR Server returns response based on the filter criteria from the request, containing Patient resource and search-result Bundle

Example Response