CQF Implementation in Logica Sandboxes
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 Logica 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.logicahealth.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.logicahealth.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.logicahealth.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.
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).
The server will return the applicable resource which is defined in the ActivityDefinition. The above example returns a ProcedureRequest.
The server will return 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).
The server will return a Library resource that “contains all the parameter definitions and data requirements of the target resource and any libraries referenced by it.”