Clinical Quality Framework is an effort to “identify, develop, and harmonize standards that promote integration and reuse between Clinical Decision Support (CDS) and Clinical Quality Measurement (CQM)” (see http://wiki.hl7.org/index.php?title=Clinical_Quality_Framework). The framework defines a large breadth of use cases, requirements, and tools. CQF-Ruler, a project by the Database Consulting Group, is an open source project that has several CQF tools in the form of API endpoints. The HSPC Sandbox Manager has implemented the CQF-Ruler project into our STU3 FHIR server for all users to try out.
Endpoints
In these examples, I’ll be using a sandbox I called cqfruler.
If you want to try these endpoints on your own sandbox, I have provided a Bundle resource which contains all of the FHIR resources needed. You can download this bundle (cqf-example-resources.json) and upload it to your Sandbox via a POST method similar to this:
POST https://api-v5-stu3.hspconsortium.org/cqfruler/data
$submit-data
This endpoint allows users to submit FHIR data to a “payer”. The operation requires a Parameter resource that contains a list of resources you’d like to submit (see http://build.fhir.org/ig/Healthedata1/DaVinci/OperationDefinition-submit-data.html).
POST https://api-v5-stu3.hspconsortium.org/cqfruler/open/Measure/measure-mrp/$submit-data --- REQUEST BODY --- [use content in submit-data-parameter-resource.json]
The server will return a "transaction-response" bundle showing whether the resources were successfully created in the server.
$evaluate-measure
This endpoint “calculate[s] the measure for the given patient, or all patients if no patient is supplied” (see https://www.hl7.org/fhir/measure-operations.html). In this example we provide a patient, as well as a period which the api uses to limit its evaluation.
https://api-v5-stu3.hspconsortium.org/cqfruler/open/Measure/measure-asf/$evaluate-measure?periodStart=2003-01-01&periodEnd=2003-12-31&patient=Patient/Patient-6529
The server will return a MeasureReport resource summarizing the evaluation.
$care-gaps
This endpoint is used to “determine gaps-in-care based on the results of quality measures” (see http://build.fhir.org/operation-measure-care-gaps.html). This example uses the same parameters as above but includes a “topic” parameter which is used to determine which measures are included in the report.
GET https://api-v5-stu3.hspconsortium.org/cqfruler/open/Measure/$care-gaps?periodStart=1997-01-01&periodEnd=1997-12-31&patient=Patient/Patient-6523&topic=Preventive%20Care%20and%20Screening
The server will return a bundle summarizing the results of each measure found.
$apply
This endpoint “applies” either an ActivityDefinition or PlanDefinition resource to a given context. The context is given in the parameters of the url call. In these examples, only patient is used although others are available (see https://www.hl7.org/fhir/activitydefinition-operations.html and https://www.hl7.org/fhir/plandefinition-operations.html).
GET https://api-v5-stu3.hspconsortium.org/cqfruler/open/ActivityDefinition/ad-apply-example/$apply?patient=Patient-12214
Returns the applicable resource which is defined in the ActivityDefinition. This example returns a ProcedureRequest.
GET https://api-v5-stu3.hspconsortium.org/cqfruler/open/PlanDefinition/apply-example/$apply?patient=Patient-12214
Returns a CarePlan resource.
$data-requirements
This endpoint “aggregates and returns the parameters and data requirements for a resource and all its dependencies as a single module definition” (see https://www.hl7.org/fhir/library-operations.html).
GET https://api-v5-stu3.hspconsortium.org/cqfruler/open/Measure/measure-asf/$data-requirements?periodStart=2018-07-06&periodEnd=2018-09-06
Returns a Library resource that “contains all the parameter definitions and data requirements of the target resource and any libraries referenced by it.”