npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cqlab/sdk

v0.0.6

Published

CQLab sdk

Downloads

5

Readme

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