Data Exchange For Quality Measures Implementation Guide
1.0.0-ballot - STU 1 Ballot

Data Exchange For Quality Measures Implementation Guide - Downloaded Version 1.0.0-ballot See the Directory of published versions

## OperationDefinition: Bulk Submit Data

Official URL: http://hl7.org/fhir/uv/deqm/OperationDefinition/bulk-submit-data | Version: 1.0.0-ballot | Highlight text changes?
Standards status: Trial-use Active as of 2022-11-09 | 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

> NOTE: Generalized bulk data operations in FHIR are in the process of being updated based on implementer feedback and as part of industry initiatives. As of the time of this publication, those specification updates are still in progress. Implementers should be aware that the $bulk-submit-data operation proposed by this specification will be updated (up to and included simply removed in favor of referencing updated operations) when newer versions of the bulkdata import and export specifications are published.

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

Use | Name | Cardinality | Type | Binding | Documentation
IN | measureReport | 1..* | MeasureReport |  | The measure report that is being submitted
IN | exportType | 0..1 | code |  | (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.
IN | exportUrl | 1..1 | url |  | 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 | _type | 0..* | string |  | (Optional) Restrict the data exported to only be specific FHIR resource types. See the bulk data $export spec for more information on '_type'
IN | useTypeFilters | 0..1 | boolean |  | (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'