@cqlab/sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

CQLab Typescript SDK

The CQLab SDK is the official TypeScript SDK for cqlab.io.

CQLab is a platform for building, testing, and publishing clinical artifacts built according to HL7 FHIR standards.

This SDK provides a convenience wrapper around the CQLab REST API to query artifacts such as CQL Files, Value Sets, and FHIR Test Data. It also provides support for executing CQL against FHIR patient bundles using cql-execution.

Code Generation

CQLab generates code for each artifact accessible through the API. Just copy and paste the generated code and execute artifcats on your own machines.

Learn more using a detailed walkthrough available in the docs.

Installation

npm install @cqlab/sdk

CQL Library Fetch and Execution

Execute CQL in just 3 lines of code. We'll use the example from the walkthrough to illustrate.

import { CQLab, MockPatient1 } from '@cqlab/sdk';

const cqlab = new CQLab();

/** Make sure to wrap await call in an async function */
const libraryVersion = await cqlab.fetchLibraryVersionByName({
  labName: 'cq_examples',
  libraryName: 'CheckMedX',
  version: 'Draft',
});

/** Execute your CQL. */
const result = libraryVersion.execute(MockPatient1);
console.log(result['Is Male']);
  1. Instantiate the CQLab instance
const cqlab = new CQLab();

Be sure to provide an apiToken if this is a private resource.

const cqlab = new CQLab({ apiToken: 'my-token-1234' });
  1. Next we fetch a specific version of a CQL Library for execution.
const libraryVersion = await cqlab.fetchLibraryVersionByName({
  labName: 'cq_examples',
  libraryName: 'CheckMedX',
  version: 'Draft',
});

Alternatively we can fetch the libraryVersion by id

const libraryVersion = await cqlab.fetchByLibraryVersionId(
  '28d822ec-96d2-44a0-b5cd-c5312afb549a'
);

Or use promise syntax:

cqlab
  .fetchLibraryVersionByName({
    labName: 'cq_examples',
    libraryName: 'CheckMedX',
    version: 'Draft',
  })
  .then((libraryVersion) => {
    console.log(libraryVersion);
  });
  1. We execute using a provided MockPatient bundle. Replace with your own FHIR data. Access each CQL statement execution result in the dictionary.
const result = libraryVersion.execute(MockPatient1))
console.log(result['Is Male']);

Value Set Fetch

Fetch value set versions using the ID.

import { CQLab } from '@cqlab/sdk';
const cqlab = new CQLab();

/** Fetch your Value Set Version By ID */
const valueSetVersion = await cqlab.fetchValueSetVersionById(
  '64331f0c-c00b-4ba0-a02c-f5e4cbad053f'
);

/** Access the codes */
const codes = valueSetVersion.getCodes();
console.log(codes);

Test Data Fetch

import { CQLab } from '@cqlab/sdk';
const cqlab = new CQLab();

/** Fetch your Test Data By ID */
const testData = await cqlab.fetchTestDataById(
  'ee69fddd-0142-46c4-936b-e4b447d83018'
);

/** Access the data */
const data = testData.getData();

console.log(data);

This repo was cloned from starter pack:

Typescript-starter: https://github.com/bitjson/typescript-starter

Readme

Keywords

Package Sidebar

Install

npm i @cqlab/sdk

Weekly Downloads

0

Version

0.0.6

License

MIT

Unpacked Size

2.1 MB

Total Files

76

Last publish

Collaborators

  • csenn