Skip to content

Data Requirements and Submission

mgramigna edited this page Apr 8, 2022 · 3 revisions

eCQM calculation is done for a specific measurement period, which is a date range that usually encompasses one year.

Data Requirements

For a patient to calculate into the "Numerator" population of CMS122, they must have at minimum the following data elements/requirements on their patient record:

Patient Resource

There must be a FHIR Patient resource whose .birthDate property makes their age during the measurement period between 18-75 years old.

Encounter Resource

There must be a FHIR Encounter resource with the following requirements:

  • The .type property comes from any of the following ValueSets:
    • "Annual Wellness Visit": http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240
    • "Home Healthcare Services": http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016
    • "Office Visit": http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001
    • "Preventive Care Services - Established Office Visit, 18 and Up": http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025
    • "Preventive Care Services-Initial Office Visit, 18 and Up": http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023
  • The .status property must be "finished"
  • The .effectivePeriod or .effectiveDateTime property must be during the measurement period
  • The .subject property must reference the above patient by id

Condition Resource

There must be a FHIR Condition resource with the following requirements:

  • The .code property comes from the "Diabetes" ValueSet http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.103.12.1001
  • The .onsetPeriod property has a .start property (can be any date), and has no .end property
  • The .subject property must reference the above Patient by id
  • The .encounter property should reference the above Encounter by id

Observation Resource

NOTE: Technically, a patient can be in the "Numerator" population if they have no HbA1c Observation resource on their record at all. This section assumes that there is an Observation, and describes the requirements of it

There should be at least one FHIR Observation resource (there can be multiple if desired) with the following requirements:

  • The .code property must be from the "HbA1c Laboratory Test" ValueSet http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1013
  • The .status property is either "final", "amended", or "corrected"
  • The .effectivePeriod or .effectiveDateTime property must be during the measurement period
  • The .valueQuantity property must satisfy one of the following:
    • .valueQuantity has a .value property that is greater than 9.0 and a unit of "%"
    • .valueQuantity is missing entirely

Example

This FHIR Bundle is a simple collection of data that satisfies all of the above requirements for a measurement period of 2019-01-01 - 2019-12-31. Note that it has two Observation resources, one where the value is > 9.0% and one where it is not. The former will cause the patient to calculate into the "Numerator", the latter will not.

ValueSet Content

The following links provide the expanded ValuSets referenced above:

Submitting the Data to deqm-test-server

deqm-test-server supports the $submit-data operation for submitting the "data-of-interest" for a given eCQM to the server, with the intention of running eCQM calculation or care gaps after the data has been uploaded to the server.

Request

URL

POST http://<base-url-of-test-server>/Measure/$submit-data

Headers

Content-Type: application/fhir+json

Body

Fill in the period start and end with your measurement period, and the "resource" parameters with the JSON content of the FHIR resources mentioned above:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "measureReport",
      "resource": {
        "resourceType": "MeasureReport",
        "status": "complete",
        "type": "data-collection",
        "measure": "http://ecqi.healthit.gov/ecqms/Measure/DiabetesHemoglobinA1cHbA1cPoorControl9FHIR",
        "period": {
          "start": "yyyy-mm-dd",
          "end": "yyyy-mm-dd"
        }
      }
    },
    {
      "name": "resource",
      "resource": { <Patient resource> }
    },
    {
      "name": "resource",
      "resource": { <Condition resource> }
    },
    {
      "name": "resource",
      "resource": { <Encounter resource> }
    },
    {
      "name": "resource",
      "resource": { <Observation resource> }
    }
  ]
}

Response

The response will be a transaction response that contains locations to the submitted resources such that they can be further referenced by id:

{
  "resourceType": "Bundle",
  "id": "<uuid>",
  "type": "transaction-response",
  "link": [
    {
      "relation": "self",
      "url": "http://<base-url-of-test-server>"
    }
  ],
  "entry": [
    {
      "response": {
        "status": "201 Created",
        "location": "<base-url-of-test-server>/MeasureReport/<measurereport-uuid>"
      }
    },
    {
      "response": {
        "status": "201 Created",
        "location": "<base-url-of-test-server>/Patient/<patient-uuid>"
      }
    },
    {
      "response": {
        "status": "201 Created",
        "location": "<base-url-of-test-server>/Encounter/<encounter-uuid>"
      }
    },
    {
      "response": {
        "status": "201 Created",
        "location": "<base-url-of-test-server>/Condition/<condition-uuid>"
      }
    },
    {
      "response": {
        "status": "201 Created",
        "location": "<base-url-of-test-server>/Procedure/<procedure-uuid>"
      }
    }
  ]
}

You can then use <patient-uuid> as the subject for doing a $care-gaps request, as described in Gaps in Care Expected Outputs.