Data Exchange For Quality Measures Implementation Guide
5.0.0-ballot - STU5 Ballot United States of America flag

This page is part of the Da Vinci Data Exchange for Quality Measures (DEQM) FHIR IG (v5.0.0-ballot: STU5 (v5.0.0) Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 4.0.0. For a full list of available versions, see the Directory of published versions

OperationDefinition: Bulk Submit Data

Official URL: http://hl7.org/fhir/us/davinci-deqm/OperationDefinition/bulk-submit-data Version: 5.0.0-ballot
Standards status: Trial-use Maturity Level: 0 Computable Name: BulkSubmitData
Other Identifiers: OID:2.16.840.1.113883.4.642.40.2.33.1

The bulk-submit-data operation sends a bulk import request based on the data requirements of a FHIR Measure. This operation is modeled off the existing draft of the Bulk Data Import Ping and Pull Approach.

Operation Request Body

The request body for this operation is a FHIR Parameters Resource. The body SHALL include a FHIR MeasureReport Resource of type data-collection that references a measure by canonical URL. Additionally, the FHIR Parameters resource SHALL include the URL of a Data Provider, as defined in the Bulk Data Import Ping and Pull Approach. The Data Provider SHALL support $export. It is assumed that the data-of-interest for the measure referenced in the MeasureReport lives on the Data Provider server.

Request Flow

The Data Consumer server SHALL support invocation of the bulk submit-data operation using the FHIR Asynchronous Request Pattern via a POST request containing the FHIR Parameters Resource described above. To avoid overloading the standard $submit-data operation, the bulk submit-data operation will send a POST request to the $bulk-submit-data endpoint.

When kicking off the request, if the “prefer”: “respond-async” header is provided, the bulk submit-data operation will calculate the data requirements for the measure-of-interest. The Data Consumer will kick off an $export request to the Data Provider. Then, the data exported from the Data Provider is uploaded to the system.

Required header(s):

"prefer": "respond-async"

Specifies whether the response is immediate or asynchronous.

Examples

Request: Submit data of interest for FHIR Measure with "test-measure" identifier from the Data Provider http://example.com/

POST [base]/Measure/test-measure/$bulk-submit-data
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "exportUrl",
      "valueUrl": "http://example.com/$export"
    },
    {
      "name": "exportType",
      "valueCode": "dynamic"
    },
    {
      "name": "measureReport",
      "resource": [
          {
            "resourceType": "MeasureReport",
            "type": "data-collection,
            "status": "pending",
            "measure": "http://example.com/Measure/test-measure",
            "period": {
              "start": "2022-01-01",
              "end": "2022-12-31"
            }
          }
      ]          
    }
  ]
}

Response:

HTTP/1.1 202 Accepted

Request: Submit data of interest related to patients in the group "test-group" for FHIR Measure with id "test-measure" from the Data Provider http://example.com/. Group "test-group" must exist on the export server.

POST [base]/Measure/test-measure/$bulk-submit-data
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "exportUrl",
      "valueUrl": "http://example.com/Group/test-group/$export"
    },
    {
      "name": "measureReport",
      "resource": [
         {
           "resourceType": "MeasureReport",
           "type": "data-collection,
           "status": "pending",
           "measure": "http://example.com/Measure/test-measure",
           "period": {
             "start": "2022-01-01",
             "end": "2022-12-31"
           }
         }
       ]         
    }
  ]
}

Response:

HTTP/1.1 202 Accepted

Request: Submit all FHIR Observations and Procedures of interest for FHIR Measure with id "test-measure" from the Data Provider http://example.com/.

POST [base]/Measure/test-measure/$bulk-submit-data
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "exportUrl",
      "valueUrl": "http://example.com/$export"
    },
    {
      "name": "_type",
      "valueString": "Observation"
    },
    {
      "name": "_type",
      "valueString": "Procedure"
    },
    {
      "name": "measureReport",
      "resource": [
         {
           "resourceType": "MeasureReport",
           "type": "data-collection,
           "status": "pending",
           "measure": "http://example.com/Measure/test-measure",
           "period": {
             "start": "2022-01-01",
             "end": "2022-12-31"
           }
         }
      ]         
    }
  ]
}

Response:

HTTP/1.1 202 Accepted

URL: [base]/Measure/$bulk-submit-data

URL: [base]/Measure/[id]/$bulk-submit-data

Parameters

UseNameCardinalityTypeBindingDocumentation
INmeasureReport1..*MeasureReport

The measure report that is being submitted

INexportType0..1code

(Optional) String of static or dynamic. Defaults to dynamic if omitted.

If the value is dynamic, the Data Consumer will issue a POST request to the exportUrl to obtain a dataset from the Data Provider.

If the value is static, the Data Consumer will issue a GET request to the exportUrl to retrieve a Bulk Data manifest file with the location of the Bulk Data files.

INexportUrl1..1url

The absolute URL of the bulk export endpoint of a Data Provider (if the exportType parameter is dynamic) OR the location of a FHIR Bulk Data Export manifest file (if the exportType parameter is static)

IN_type0..*string

(Optional) Restrict the data exported to only be specific FHIR resource types. See the bulk data $export spec for more information on '_type'

INuseTypeFilters0..1boolean

(Optional) If enabled, data exported by the 'exportUrl' system will be filtered according to the data requirements of the Measure. Requires support of the _typeFilter experimental parameter in the export server. See the bulk data $export spec for more information on '_typeFilter'