Sign inSign up

tacoma/fqm-execution-service

By tacoma

•Updated almost 5 years ago

Image
0

1.3K

tacoma/fqm-execution-service repository overview

⁠fqm-execution-service

Web service wrapper for fqm-execution⁠.

⁠API

EndpointInputOutput
POST /calculateRequestBody⁠ExecutionResult[]⁠
POST /calculateRawRequestBody⁠cql.Results⁠
POST /calculateMeasureReportsRequestBody⁠R4.IMeasureReport[]⁠
POST /Measure/$care-gapsRequestBody⁠R4.IBundle⁠
POST /Measure/$data-requirementsDataRequirementsBody⁠R4.ILibrary⁠
⁠Request Inputs

The input to each of the endpoints listed above is expected to be a JSON object, which conforms to the type format specified in RequestBody⁠, or in DataRequirementsBody⁠. This object contains 3 properties:

  • measure: a FHIR Bundle resource containing the Measure object, Library objects for every CQL/ELM library used in the measure, as well as ValueSet objects with code expansions included.

    • NOTE: ValueSet objects are not needed for /Measure/$data-requirements.
  • patients: an array of FHIR Bundle resources, each of which contains the Patient object and any required clinical resources (Condition, Medication, etc.) for measure calculation. This must be an array, even if only one patient is provided.

    • NOTE: /Measure/$care-gaps only accepts 1 patient in this array currently.
    • NOTE: /Measure/$data-requirements does not accept Patient resources.
  • options: an optional object containing Calculation Options, each of which is listed below, with its default.

    • NOTE: /Measure/$data-requirements does not accept an options resource.
⁠Calculation Options

The options that we support for calculation are as follows:

optiontypeoptional?description
includeClauseResultsbooleanyesOption to include clause results. Defaults to false.
includePrettyResultsbooleanyesOption to include pretty results on statement results. Defaults to false.
includeHighlightingbooleanyesInclude highlighting in MeasureReport narrative. Defaults to false.
measurementPeriodStartstringyesStart of measurement period. Defaults to the period provided in the Measure resource
measurementPeriodEndstringyesEnd of measurement period. Defaults to the period provided in the Measure resource
calculateSDEsbooleanyesInclude Supplemental Data Elementss in calculation. Defaults to false.
calculateHTMLbooleanyesInclude HTML structure for highlighting. Defaults to false.
reportTypestringyesType of MeasureReport to generate: "summary" or "individual". Defaults to "individual".

These types will be passed through to the calculation service, and will be used in the execution of the measure.

⁠Request Outputs

Each request output has a different output format, based on the data being conveyed:

  • /calculate: an array of ExecutionResult objects. Each ExecutionResult object contains:

    • patient: the ID of the patient this object is associated with

    • detailedResults, a map of groups to an object which contains population-, statement-, and clause-level results for that group, as well as the html

      for that group (if requested by the provided options)

    • evaluatedResource: an array of the FHIR resources used in the calculation of the measure for this patient

    • supplementalData: if requested by the provided options, an array containing the raw and HTML structure results for each supplemental data element in the measure, calculated for the specified patient

  • /calculateRaw: a cql.Result object, which contains:

    • patientResults: A map of patient IDs to Statement-level results for that patient

      • A Statement-level result describes the results of one CQL Statement for this patient, including the name, the Library and ID of the Statement, the relevance of a given Statement to a patient population, and the actual result from the patient. See below for an example:
      {
             "libraryName": "EXM130",
             "statementName": "Denominator",
             "localId": "37",
             "final": "TRUE",
             "relevance": "TRUE",
             "raw": true,
             "pretty": "true"
      }
      
      • For more information on Clinical Quality Language (CQL) and Expression Logical Model (ELM) formats, see the CQL specification⁠
    • localIdPatientResultsMap: A map of patient IDs to the raw results from every clause in every Library in the Measure resource.

    • patientEvaluatedRecords: A map of patient IDs to the evaluated records for that patient

  • /Measure/$care-gaps: a FHIR Bundle resource, which contains:

    • a Composition resource containing the actual Gaps in Care report

    • a MeasureReport resource containing the individual measure results for the patient passed in

    • a set of DetectedIssue resources, one for each gap in the measure. Each DetectedIssue resource represents a particular gap in care, and will contain one or more GuidanceResponse resources detailing the data that could close that gap.

  • /Measure/$data-requirements: a FHIR module-definition Library resource, which contains:

    • a dataRequirement array, with resources for each datatype/valueSet combination required.
⁠Calculator Architecture

See fqm-execution's README⁠ for an overview of the Calculation architecture.

⁠Usage

⁠Docker
docker run -p 3000:3000 tacoma/fqm-execution-service:latest # Run server on port 3000
⁠Local

Run the service with npm start. By default, it will run on port 3000. To change the port, do PORT=XXXX npm start

⁠License

Copyright 2020 The MITRE Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Tag summary

Content type

Image

Digest

Size

401.3 MB

Last updated

almost 5 years ago

docker pull tacoma/fqm-execution-service