Skip to content

Commit

Permalink
Merge pull request #28 from google:suyashkumar-patch-3
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 646643880
  • Loading branch information
copybara-github committed Jun 25, 2024
2 parents 44f0ed8 + 5c4756c commit c3b3418
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 43 deletions.
73 changes: 30 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ scale</p>
</p>
</p>



CQL is a domain specific language designed for querying and executing logic on
healthcare data. CQL excels at healthcare data analysis such as defining quality
measures, clinical decision support, cohorts or preparing data for dashboards.
Expand All @@ -18,6 +16,15 @@ querying of FHIR via FHIRPath, graceful handling of mixed precision or missing
data and built in clinical helper functions. You can find an intro to the CQL
Language at https://cql.hl7.org.

This repository contains an experimental CQL execution engine in Go, along
with various supporting tools and ecosystem connectors. See the
[Getting Started](#getting-started) section to get up and running quickly.

<div align="center">
<img width="600" src="https://github.com/google/cql/assets/6299853/f11cbde5-9a44-41ea-847d-1de20e327306"/>
<p><i>An example CQL snippet.</i></p>
</div>

## Features

Notable features of this engine include:
Expand Down Expand Up @@ -54,46 +61,26 @@ Language:

## Getting Started

There are several different ways to use this engine. For quick experimentation
we have a Command Line Interface and REPL. For executing CQL over a large
patient population there is a Beam job. Finally, the CQL Golang Module allows
you to execute CQL by implementing your own connector to a database and
terminology server.

> ⚠️⚠️ **Warning** ⚠️⚠️
>
> When using these tools with protected health information (PHI), please be sure
to follow your organization's policies with respect to PHI.

## Web Playground
To quickly experiment with the CQL engine and editable FHIR data, try our local
web playground in the browser at [cmd/cqlplay](cmd/cqlplay).

## CLI

When intending to run the CQL engine locally over small populations or for quick
experimentation use the CLI located at [cmd/cli](cmd/cli). For documentation
and examples see [cmd/cli/README.md](cmd/cli/README.md).

## Apache Beam Pipeline

The Beam pipeline is recommended when running CQL over large patient populations.
More information and usage examples are documented at
[beam/README.md](beam/README.md).

## Golang Module

The engine can be used via the CQL golang module documented in the
[godoc](https://pkg.go.dev/github.com/google/cql).
The [Retriever interface](retriever/retriever.go) can be implemented to connect
to a custom database or FHIR server. The
[Terminology Provider interface](terminology/provider.go) can be implemented to
connect to a custom Terminology server.

## REPL

For quick experiments with our CQL Engine we have a REPL. More information and
usage examples are documented at [cmd/repl/README.md](cmd/repl/README.md).
There are several different ways to use this CQL engine, and get up and running quickly.
Click on the links below for details:

* [__Web Playground__](cmd/cqlplay/README.md): A local interactive web playground
in the browser, to quickly experiment with our CQL engine. Includes CQL syntax
highlighting and a basic FHIR editor.
* [__CLI__](cmd/cli/README.md): A command-line interface to run this CQL engine
over small populations or for quick experimentation.
* [__Apache Beam__](beam/README.md): The Beam pipeline is recommended when running CQL over
large patient populations.
* [__REPL__](cmd/repl/README.md): An interactive command line REPL for quick CQL explorations and experiments.
* [__Golang Module__](https://pkg.go.dev/github.com/google/cql): The CQL execution engine can be
used as a Go library via the [CQL golang module](https://pkg.go.dev/github.com/google/cql).
The [Retriever interface](retriever/retriever.go) can be implemented to connect
to a custom database or FHIR server. The
[Terminology Provider interface](terminology/provider.go) can be implemented to
connect to a custom Terminology server.

**⚠️ Warning: When using these tools with protected health information (PHI), please be sure
to follow your organization's policies with respect to PHI. ⚠️**

## Documentation

Expand All @@ -117,4 +104,4 @@ Eng Manager: [Ed Nanale](https://github.com/enanale)

Contributors since the initial squash commit can be seen in the [contributors tab](https://github.com/google/cql/graphs/contributors).

Thank you to all contributors!
Thank you to all contributors!
3 changes: 3 additions & 0 deletions beam/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ sharding datasets, and other such tasks. See these
[docs](https://cloud.google.com/dataflow/docs/concepts/beam-programming-model)
for more information on Apache Beam.

**Warning: When using these tools with protected health information (PHI),
please be sure to follow your organization's policies with respect to PHI.**

## Running

The CQL on Beam pipeline is currently limited to local file system IO. The
Expand Down
3 changes: 3 additions & 0 deletions cmd/cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ The CLI is primarily designed for executing single patient or small population
workflows. For larger population sets the scalable beam job is a more
appropriate solution.

**Warning: When using these tools with protected health information (PHI),
please be sure to follow your organization's policies with respect to PHI.**

## Running

To build the program from source run the following from the root of the
Expand Down
3 changes: 3 additions & 0 deletions cmd/repl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

A REPL CLI for interacting with the CQL engine. This can be a useful tool for quickly iterating while authoring CQL measures.

**Warning: When using these tools with protected health information (PHI),
please be sure to follow your organization's policies with respect to PHI.**

## Running

To build the program from source run the following from the root of the
Expand Down

0 comments on commit c3b3418

Please sign in to comment.