Smile CDR v2024.08.PRE
On this page:

23.4.1Table of Contents

 

23.4.2Overview

 

Smile CDR offers DQM Module users a bridge for CMS Quality Payment Program (QPP) participants to use FHIR authored Quality Measure artifacts and produced FHIR Measure Reports into CMS accepted QPP JSON format.

This feature is available to users as a FHIR endpoint exposed data transformation operation called $qpp-build.

Smile also offers a user interface on a Smart-On-FHIR application that enables users to seamlessly build, authenticate, and submit CMS QPP measurement-sets for annual reporting to CMS API.

23.4.2.1CMS Program Background and Information

In the US, 'Centers for Medicare & Medicaid Services' (CMS) acts as a federal agency within the US department of Health and Human Services that administers the Medicaid and Medicare programs.

The QPP program establishes a model of funding that rewards clinicians who provide high-quality patient-centered care. This is with the aim to improve the quality and safety of care for all individuals and to reduce the administrative burden to clinicians, allowing more time to focus on person-centered care and improving health outcomes.

23.4.2.1.1CMS QPP Important References

23.4.3QPP on DQM UI

 

An add-on application that authenticates users to CMS servers and authenticates users to Smile CDR to drive back-end operations from a user-friendly interface.

This application allows users to leverage FHIR quality reporting generation via FHIR's Clinical Reasoning operations as well as seamlessly leverage $qpp-build operation to execute, manage, and submit CMS QPP compliant reports.

23.4.3.0.1QPP Workflow on DQM UI

  1. Run FHIR Authored Quality Measures using $evaluate-measure operation and generate results for your desired patient population in FHIR Measure Report resources.

  2. Build QPP Quality Reporting per performance year for your respective Organization or Practice by building a measurement-set for your selected specialty and quality program.

    • Select Measure Reports to add to measurement-set for specialty profiles
    • Preview performance metrics by using Pre-Score to simulate CMS scoring
  3. Authenticate to CMS using your CMS login or Registry token

  4. Submit Reporting to CMS via API.

  5. Manage and Edit submitted Reporting.

    • View Submitted reporting
    • Edit or Replace submitted reporting
  6. Store and save CMS Submissions in CDR for Provenance

23.4.4Operation

 

DQM Module enabled operation exclusive to CDR $qpp-build. This operation relies on upstream resource creation and report generation from $evaluate-measure and is configurable in CDR Web-Admin-Console.

23.4.5Operation Parameters

 
ParameterDataTypeRequiredDescription
organizationIdIdTypethe id of the Organization resource for this qpp report
programIdIdTypethe id of the Library-Program resource that specifies the measure program requirements
measureReportIdsStringthe list of the MeasureReport id's that fulfill Program measure requirements
performanceYearStringThe qpp year you are submitting for, ex. 2023
entityTypeStringthe qpp entity designation. Acceptable values are apm/virtualGroup/group/individual
entityIdString The unique identifier for the virtualGroup or APM associated with the submission. Required if entityType is "apm" or "virtualGroup"
qppPartialTypeString the type of qpp report being built, options are submission, measurementSet, measurement. Required
measureSetIDString the unique id given to a measurementSet after it has been submitted, this is required for qppPartialType = Measurement

23.4.5.0.0.1Organization Parameter

Organization parameter represents a profile for a qpp-build submitting entity and is leveraged by $qpp-buld to source required identifiers for qpp submission and report building, the key critical pieces used by QPP are the following

  • NPI
  • TaxID (TIN)
  • EntityId

This Organization resource would be referenced by $qpp-build by referencing its id, which in this example below would be organization-1.

This specific example represents how all three identifiers would be represented for an organization so that $qpp-build could locate them. EntityId specifically can be passed in from the operation request or sourced from the Organization identifier field, as shown below.

23.4.5.0.0.1.1Connecting Organization to MeasureReports

See Evaluation Reporter Documentation on how to append this profile to reports created from $evaluate-measure.

23.4.5.0.0.1.2Example Organization Resource
{
	"resourceType" : "Organization",
	"id" : "organization-1",
	"identifier" : [
		{
			"use": "official",
			"type": {
				"coding": [
					{
						"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
						"code": "XX",
						"display": "CMS QPP EntityId"
					}
				]
			},
			"value": "abc123456"
		},
		{
			"use": "official",
			"type": {
				"coding": [
					{
						"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
						"code": "TAX",
						"display": "Tax ID Number"
					}
				]
			},
			"value": "000000001"
		},
		{
			"use": "official",
			"type": {
				"coding": [
					{
						"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
						"code": "NPI",
						"display": "National Provider Identifier"
					}
				]
			},
			"value": "1234567893"
		}
	],
	"active" : true,
	"type" : [
		{
			"coding" : [
				{
					"system" : "http://terminology.hl7.org/CodeSystem/organization-type",
					"code" : "pay"
				}
			],
			"text" : "Payer"
		}
	],
	"name" : "Reporting Payer",
	"telecom" : [
		{
			"system" : "phone",
			"value" : "(+1) 555-555-5555"
		},
		{
			"system" : "email",
			"value" : "hq@acme.org"
		}
	],
	"address" : [
		{
			"line" : [
				"100 Insurance Avenue"
			],
			"city" : "Amherst",
			"state" : "MA",
			"postalCode" : "01002",
			"country" : "USA"
		}
	]
}

23.4.5.0.0.2ProgramId Parameter

The ProgramId references a FHIR Library resource Id and is meant to define a Specialty Measurement Set profile the user is intended to match conform to with the other input parameters.

ProgramId acts as a business rule enforcing profile that forces the user to populate $qpp-build parameters to match the required conformance rules.

23.4.5.0.0.2.1ProgramId Conformance Rules
23.4.5.0.0.2.2Program Profile Required Data Points

MIPS Example

{"useContext": [
    {
      "code": {
        "system": "http://terminology.hl7.org/CodeSystem/usage-context-type",
        "code": "program"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "system": "http://hl7.org/fhir/us/cqfmeasures/CodeSystem/quality-programs",
            "code": "mips",
            "display": "MIPS"
          }
        ]
      }
    }
  ]
}

APP1 Example

  • App1 Program is currently represented by AAPM, and replaced in operation with correct value of app1
{
	"useContext": [
                    {
                        "code": {
                            "system": "http://terminology.hl7.org/CodeSystem/usage-context-type",
                            "code": "program"
                        },
                        "valueCodeableConcept": {
                            "coding": [
                                {
                                    "system": "http://hl7.org/fhir/us/cqfmeasures/CodeSystem/quality-programs",
                                    "code": "aapm",
                                    "display": "AAPM"
                                }
                            ]
                        }
                    }
                ]
}
23.4.5.0.0.2.3ProgramID RelatedArtifacts
23.4.5.0.0.2.4ProgramID RelatedArtifacts Example
{
  "relatedArtifact": [
    {
      "type": "composed-of",
      "id": "113",
      "display": "CMS130",
      "resource": "http://ecqi.healthit.gov/ecqms/Measure/ColorectalCancerScreeningsFHIR|0.0.003"
    }
  ]
}
23.4.5.0.0.2.5ProgramId Full Resource Example

This is an example of a Program Profile for electronicHealthRecord submission Method and MIPS Program

{"resourceType": "Library",
                "id": "qpp-quality-program-mips-ehr-1",
                "meta": {
                    "profile": [
                        "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/quality-program-cqfm"
                    ]
                },
                "url": "http://hl7.org/fhir/us/cqfmeasures/Library/ep-ec-quality-program",
                "identifier": [
                    {
                        "use": "official",
                        "system": "http://example.org/fhir/cqi/ecqm/Library/Identifier",
                        "value": "Mips Test Quality Program"
                    }
                ],
                "version": "0.1.0",
                "name": "MeasurementSet MIPS EHR Measures",
                "title": "qpp-mips-ehr-program",
                "status": "active",
                "experimental": true,
                "type": {
                    "coding": [
                        {
                            "system": "http://terminology.hl7.org/CodeSystem/library-type",
                            "code": "asset-collection"
                        }
                    ]
                },
                "date": "2019-09-03",
                "publisher": "Smile Digital Health",
                "description": "This library is an example of a quality program specification",
                "useContext": [
                    {
                        "code": {
                            "system": "http://terminology.hl7.org/CodeSystem/usage-context-type",
                            "code": "program"
                        },
                        "valueCodeableConcept": {
                            "coding": [
                                {
                                    "system": "http://hl7.org/fhir/us/cqfmeasures/CodeSystem/quality-programs",
                                    "code": "mips",
                                    "display": "mips"
                                }
                            ]
                        }
                    }
                ],
                "approvalDate": "2019-08-03",
                "lastReviewDate": "2019-08-03",
                "relatedArtifact": [
                    {
                        "type": "composed-of",
                        "id": "113",
                        "display": "CMS130",
                        "resource": "http://ecqi.healthit.gov/ecqms/Measure/ColorectalCancerScreeningsFHIR|0.0.003"
                    },
                    {
                        "type": "composed-of",
                        "id": "309",
                        "display": "CMS124",
                        "resource": "http://ecqi.healthit.gov/ecqms/Measure/CervicalCancerScreeningFHIR|0.0.005"
                    },
                    {
                        "type": "composed-of",
                        "id": "143",
                        "display": "CMS157",
                        "resource": "http://content.alphora.com/fhir/dqm/Measure/CMS157|2.0.0"
                    },
                    {
                        "type": "composed-of",
                        "id": "226",
                        "display": "CMS138",
                        "resource": "http://content.alphora.com/fhir/dqm/Measure/CMS138"
                    }
                ]
            }

23.4.5.0.0.3EntityType Parameter

  • Supported values for entityType parameter for qpp-build are listed below, these values are used to define the type of entity you are submitting to CMS for.

    • Individual - One of several MIPS participation options, where MIPS data is collected and submitted on behalf a single clinician (identified by TIN/NPI combination).
    • Group - One of several MIPS participation options, where MIPS data is collected, aggregated and submitted on behalf all the clinicians in the TIN.
    • virtualGroup - A participation option available to solo practitioners and practices with 10 or fewer clinicians that allows them to join forces and submit aggregated data for all the clinicians in the TINs.
    • APM - An entity that participates in an Alternative Payment Model or other payer arrangement through a direct agreement with CMS, other payer, or through federal or state law or regulation.

for more information on what entityType your organization is, reach out to your known CMS contact or representative.

23.4.5.0.0.4EntityId Parameter

  • The unique identifier for the virtualGroup or APM entityType associated with the submission. This value should be supplied to you from CMS and can be appended to your qpp json report via this parameter or by storing on Organization resource used in OrganizationId parameter.

23.4.5.0.0.5QPP Partial Type Parameter

  • This optional parameter is a way that qpp-build operation can construct different elements of qpp json to conform to a specific workflow need in the submission process.

Initial Report Submission Replace MeasurementSet Replace Measurement

  • Submission-- this will force the user to generate reports for each Measure specified in the "Quality Program Profile", and will assume no submission was created before it. If this parameter is left blank, this will be the default behavior of qpp-build operation.

  • MeasurementSet-- this will force the user to generate a single MeasurementSet that matches the measures in Specialty MeasurementSet Profile, this will require a single MeasurementSet, so any profile with multiple measurementSets will not work.

    • This operation generates a whole measurementSet with measurements within, as a resource intended to overwrite/replace a fully populated measurementSet posted in CMS.
  • Measurement-- this will force the user to generate a single Measurement json body that is inside the "Quality Program Profile", this will only create one measurement resource. This will overwrite existing measurement with the same id and requires the measurementSetId parameter to be populated with the value from CMS server.

    • Main use case is to edit/add/replace existing submission's measurement by replacing it within the measurementSet on CMS server. This avoids resubmitting all elements again.

23.4.5.0.0.6MeasurementSetId Parameter

  • This parameter is a CMS sourced value from a posted MeasurementSet and is only required for qpp-build when qppPartialType parameter is set.
  • When this value is set for designed use case, it adds it to the qpp json body generated from qpp-build operation.

23.4.5.0.0.7PerformanceYear Parameter

  • This parameter represents the performance year that an organization is submitting reporting to CMS for. The value populated for this parameter is used to populate the qpp reporting dates for the year selected and will default the period interval to first day of year and last day of performance-year for the measurmentSet. This value also is used to validate that the reports added into the measureReportIds parameter are from the same year as the performanceYear.
  • The format required for this value is YYYY or as an example value 2023, this will store as start of 2023-01-01 and end at 2023-12-31.

23.4.5.0.0.8MeasureReports Parameter

  • Once reporting is generated from the $evaluate-measure operation, and an output MeasureReport exists in CDR, you would reference the "id" of the MeasureReport(s) and add to the $qpp-build operation parameter as a comma separated list.

    • For the example below, the "id" that would be used for $qpp-build would be
      • single report =
      measureReportIds=measurereport-QPP-130
      
      • multiple reports =
      measureReportIds=measurereport-QPP-130, measurereport-QPP-124, measurereport-QPP-138
      
23.4.5.0.0.8.1MeasureReports Parameter Rules
  • These reports populated in this parameter must match the Measures defined in the Specialty MeasurementSet profile referenced by the parameter ProgramId.
    • Matching is done on qty of Measures defined in measurementSet.
      • If 6 measures are defined in profile, 6 Measure Reports need to be referenced.
    • Matching is also done by Measure canonical url defined in measurementSet
      • CMS130 Measure defined in profile, CMS130 MeasureReport is required in measureReportId parameter
    • Reports selected also must have a Measurement Period defined in the report that matches year defined in the PerformanceYear parameter.
      • Correct Example
        • MeasurementPeriod on MeasureReport (2023-01-01 - 2023-12-31) matches PerformanceYear '2023'
      • Bad Example
        • MeasurementPeriod on MeasureReport (2023-01-01 - 2024-12-31) matches PerformanceYear '2024'
        • MeasurementPeriod must be within the same year of PerformanceYear

23.4.5.0.1User Rights and Dependencies in CDR

If executing $qpp-build operation from the backend, ensure the user has the correct rights and modules on CDR.

  • License -- premium DQM license key is required to use DQM and this operation
  • DQM module -- operation is exposed within the DQM module, along with configuration.
  • UserRole Fhir -- FHIR Client Super user and above will also allow this to be accessed.
  • Operation -- toggle Activate QPP_build toggle inside user management if user is below FHIR_SuperUser role

23.4.6CDR DQM Module Configuration

 

$qpp-build Operation is enabled through the DQM Module and has configurations available within the web-admin console that are required for qpp workflows.

23.4.6.0.0.1QPP Submission Method Configuration

This configuration is found within the DQM Module under qpp category, the user will be able to change the type of qpp-build output required for performing CMS qpp submissions. This accepts only values of electronicHealthRecord or registry. The default value is electronicHealthRecord.

This means only Measures that are compliant with the chosen submission method are able to be added to the $qpp-build operation for submission.

This also controls behavior of the operation by building either a Submission or MeasurementSet for posting to CMS within the DQM UI.

See here for Dqm Module Configuration Categories

23.4.6.0.0.2Evaluate Measure Configurations

$qpp-build relies on the output MeasureReport resources that are created from the $evaluate-measure operation and is a configurable to help users identify and correlate to Organization resources used for $qpp-build.

This correlation is especially helpful when building reporting for multiple Providers, Practices, or/and Organizations that may simultaneously store data in the same CDR server. This will allow you to append references to a reporting Organization into MeasureReport resources to delineate which report created belongs to which Organization.

This Organization based filtering of reporting is directly integrated into DQM UI to manage this for users. see DQM UI for more information.

See here for Dqm Module Configuration Categories

23.4.6.0.0.2.1Default Evaluate Measure Reporter

When running Distributed Evaluate Measure, you have the option to populate a MeasureReport.reporter value by setting this configuration to point at an Organization FHIR resource reference.

For the use cases that will use the same Organization resource for all MeasureReport resources created, and only performing submissions for one entity. This setting can be used to globally represent and tie your reporting to the organizationId that you will use for $qpp-build operations.

If left blank it will not populate MeasureReport.reporter.

See here for Default Reporter Configuration

23.4.6.0.0.2.2Use Group Resource for Reporter

When this config is enabled, the user will be able to populate MeasureReport.reporter when running Distributed Evaluate Measure with a reference to an Organization sourced from a Group resource used as a subject or practitioner parameter value to represent the subject population.

The operation would take the priority of looking for a pre-defined field on the passed in Group called managingEntity as a reference to extract Organization. If no reference exists, then it will use the Default Reporter config setting instead.

This is how you can run reporting for defined populations of patients or defined attributions to practitioners that are defined for different organizations, practices, and providers. The managingEntity field should be the sameorganizationId that you will use for $qpp-build operations.

See here for Group managingEntity Configuration

23.4.6.0.0.2.2.1Example Group Resource

Patient Group

{
    "resourceType": "Group",
    "id": "demo-group-patients-1",
    "type": "person",
    "actual": true,
    "name": "Demo Group 1",
    "identifier": [
	{
		"use": "usual",
		"type": {
			"coding": [
				{
					"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
					"code": "MR",
					"display": "Medical Record Number"
				}
			]
		},
		"system": "http://hospital.smarthealthit.org",
		"value": "demo-group-1"
	}
],
    "member": [
                  {  "entity": {  "reference": "Patient/denom-EXM130" } },
                  {  "entity": {  "reference": "Patient/neg-ip-EXM130" } },
                  {  "entity": {  "reference": "Patient/numer-EXM130" } }
    ],
    "managingEntity": "Organization/organization-1"
    }

Practitioner Group

{
    "resourceType": "Group",
    "id": "practitioner-group-1",
    "type": "practitioner",
    "actual": true,
    "member": [
      {  "entity": {  "reference": "Practitioner/practitioner-2" } },
      {  "entity": {  "reference": "Practitioner/practitioner-1" } }
    ],
    "managingEntity": "Organization/organization-1"
  }

23.4.7Example Requests

 
23.4.7.0.0.0.1Example Build Submission Request
GET http://localhost:8000/MeasureReport/$qpp-build?organizationId=org-acme-payer-1&programId=QPP-quality-program&measureReportIds=measurereport-QPP-157, measurereport-QPP-130, measurereport-QPP-124&performanceYear=2023&entityType=group
23.4.7.0.0.0.2Example Build Submission Response
{
  "measurementSets": [
    {
      "performanceEnd": "2023-12-31",
      "performanceStart": "2023-01-01",
      "programName": "mips",
      "category": "quality",
      "submissionMethod": "electronicHealthRecord",
      "measurements": [
        {
          "measureId": "113",
          "value": {
            "eligiblePopulation": 2,
            "eligiblePopulationExclusion": 0,
            "performanceMet": 1,
            "performanceNotMet": 1,
            "isEndToEndReported": true,
            "eligiblePopulationException": 0
          }
        },
        {
          "measureId": "309",
          "value": {
            "eligiblePopulation": 2,
            "eligiblePopulationExclusion": 0,
            "performanceMet": 1,
            "performanceNotMet": 1,
            "isEndToEndReported": true,
            "eligiblePopulationException": 0
          }
        },
        {
          "measureId": "143",
          "value": {
            "eligiblePopulation": 27,
            "eligiblePopulationExclusion": 0,
            "performanceMet": 13,
            "performanceNotMet": 14,
            "isEndToEndReported": true,
            "eligiblePopulationException": 0
          }
        },
        {
          "measureId": "226",
          "value": {
            "strata": [
              {
                "eligiblePopulation": 12,
                "eligiblePopulationExclusion": 0,
                "performanceMet": 10,
                "performanceNotMet": 0,
                "eligiblePopulationException": 2,
                "stratum": "screened"
              },
              {
                "eligiblePopulation": 12,
                "eligiblePopulationExclusion": 0,
                "performanceMet": 5,
                "performanceNotMet": 1,
                "eligiblePopulationException": 2,
                "stratum": "overall"
              },
              {
                "eligiblePopulation": 12,
                "eligiblePopulationExclusion": 0,
                "performanceMet": 7,
                "performanceNotMet": 1,
                "eligiblePopulationException": 4,
                "stratum": "combinedPopulations"
              }
            ],
            "isEndToEndReported": true
          }
        }
      ]
    }
  ],
  "performanceYear": 2023,
  "entityType": "group",
  "taxpayerIdentificationNumber": "000000001"
}
23.4.7.0.0.0.3Example Build MeasurementSet Request
GET http://localhost:8000/MeasureReport/$qpp-build?organizationId=org-acme-payer-1&programId=QPP-quality-program&measureReportIds=measurereport-QPP-157, measurereport-QPP-130, measurereport-QPP-124&performanceYear=2023&entityType=group&QPPPartialType=measurementSet
23.4.7.0.0.0.4Example Build MeasurementSet Response

Requires only one measurementSet be provided

{
  "measurementSets": [
    {
      "performanceEnd": "2023-12-31",
      "performanceStart": "2023-01-01",
      "programName": "mips",
      "category": "quality",
      "submissionMethod": "electronicHealthRecord",
      "measurements": [
        {
          "measureId": "113",
          "value": {
            "eligiblePopulation": 2,
            "eligiblePopulationExclusion": 0,
            "performanceMet": 1,
            "performanceNotMet": 1,
            "isEndToEndReported": true,
            "eligiblePopulationException": 0
          }
        },
        {
          "measureId": "309",
          "value": {
            "eligiblePopulation": 2,
            "eligiblePopulationExclusion": 0,
            "performanceMet": 1,
            "performanceNotMet": 1,
            "isEndToEndReported": true,
            "eligiblePopulationException": 0
          }
        },
        {
          "measureId": "143",
          "value": {
            "eligiblePopulation": 27,
            "eligiblePopulationExclusion": 0,
            "performanceMet": 13,
            "performanceNotMet": 14,
            "isEndToEndReported": true,
            "eligiblePopulationException": 0
          }
        },
        {
          "measureId": "226",
          "value": {
            "strata": [
              {
                "eligiblePopulation": 12,
                "eligiblePopulationExclusion": 0,
                "performanceMet": 10,
                "performanceNotMet": 0,
                "eligiblePopulationException": 2,
                "stratum": "screened"
              },
              {
                "eligiblePopulation": 12,
                "eligiblePopulationExclusion": 0,
                "performanceMet": 5,
                "performanceNotMet": 1,
                "eligiblePopulationException": 2,
                "stratum": "overall"
              },
              {
                "eligiblePopulation": 12,
                "eligiblePopulationExclusion": 0,
                "performanceMet": 7,
                "performanceNotMet": 1,
                "eligiblePopulationException": 4,
                "stratum": "combinedPopulations"
              }
            ],
            "isEndToEndReported": true
          }
        }
      ]
    }
  ],
  "performanceYear": 2023,
  "entityType": "group",
  "taxpayerIdentificationNumber": "000000001"
}
23.4.7.0.0.0.5Example Build Measurement Request

requires measurementSetId parameter

GET http://localhost:8000/MeasureReport/$qpp-build?organizationId=org-acme-payer-1&programId=QPP-quality-program&measureReportIds=measurereport-QPP-130&performanceYear=2023&entityType=group&QPPPartialType=measurement&measurementsetid=1234567
23.4.7.0.0.0.6Example Build Measurement Response
{
  "measurementSetId": "1234567",
  "measureId": "113",
  "value": {
    "eligiblePopulation": 2,
    "eligiblePopulationExclusion": 0,
    "performanceMet": 1,
    "performanceNotMet": 1,
    "isEndToEndReported": true,
    "eligiblePopulationException": 0
  }
}