Data Exchange For Quality Measures Implementation Guide
4.0.0 - STU4 United States of America

This page is part of the Da Vinci Data Exchange for Quality Measures (DEQM) FHIR IG (v4.0.0: STU4 (v4.0.0)) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). 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: 4.0.0
Standards status: Trial-use Maturity Level: 0 Computable Name: BulkSubmitData

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..1MeasureReport

The measure report 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'