Server side components to support electronic clinical quality measure calculation
Switch branches/tags
Nothing to show
Clone or download
eedrummer Documentation updates
MongoDB host can now be specified on the command line
Changing the docs to reflect dependency management via glide. No longer
using Godep.
Latest commit ea01768 Dec 2, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
controllers Endpoint to get patients by population in measure Sep 9, 2016
glide.yaml Upgrading to STU3 Sep 30, 2016

ecqm Build Status

This project contains the components to serve information about electronic Clinical Quality Measures. It is assumed that this project will be used with the Go based FHIR server for the storage of patient information. Clinical quality measure calculation will be handled by the node.js based quality measure engine.

This library provides a RESTful JSON API for accessing information on quality measures as well as running calculations and accessing their results. This can also be used with the eCQM Frontend for a web based interface to this information.

This project also includes the services for the Patient Matching Test Harness. That allows the project to calculate quality measures, function as a patient matching test harness or work as a plain FHIR server.


  • Git
  • Go >= 1.7
  • Ruby >= 2.2
  • MongoDB >= 3.2


Get the code:

mkdir -p $GOPATH/src/
cd $GOPATH/src/
git clone

Running and Testing

This project uses Glide to manage dependencies. To get all of the dependencies needed run:

go get
glide install

To run all of the tests for this project, run:

go test $(glide novendor)

in this directory.

To start the server, run:

go run server.go -assets PATH_TO_ASSETS

In this case, PATH_TO_ASSETS should be a location where a version of either the eCQM Frontend or Patient Match Frontend has been built.

It is also possible to use the -mongoHost argument to provide a hostname for the MongoDB server. If one is not provided, it defaults to localhost.

HEART authentication and authorization:

This server has the ability to authenticate users by acting as a HEART compliant OpenID Connect relying party. It can also perform OAuth 2.0 token introspection in a HEART compliant manner. To enable it, the following command line flags must be used:

-heartJWK - The path to the client's private key in [JWK format]( The
            public key must be registered at the OpenID Connect Provider
-heartOP - The URL of the HEART compliant OpenID Connect Provider
-heartClientID - The client identifier for this system as registered at the OpenID Connect Provider


Copyright 2016 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

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.