Skip to content
losolPublic

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Callis

Before 1.0. 0.x releases are published on npm, and the API can still change before 1.0. Public API is designed with later work in mind to avoid breaking changes, and a breaking change states its reason and migration (API changes, releasing).

Callis is about finding data. It is a FHIRPath engine for TypeScript, with no runtime dependencies, for Node.js and browsers.

Documentation

Packages

Package Description Status
@callis/core The FHIRPath engine In development; 0.x releases of the implemented subset
@callis/ucum Opt-in UCUM conversion Implemented and released
@callis/fhir-r4, @callis/fhir-r5 Immutable R4 4.0.1 / R5 5.0.0 provider metadata Released data packages; the engine evaluates with them internally, public model option deferred
@callis/fhir-r6 Immutable provider metadata from the R6 draft 6.0.0-snapshot1 Released data package, best effort: a draft, not final R6, and there is no R6 conformance suite

Install

The first release, 0.1.0, offered the implemented subset through a small synchronous API and simple playground, after release readiness. It did not wait for full phase 1. Later 0.x releases add capabilities with documented support, limitations and per-phase conformance reports; the releases list what each one contains. The scope and criteria for 1.0 remain open.

npm install @callis/core

Quick start

The source exports synchronous model-less evaluation. See the guide for supported features, errors and exact Decimal rendering; the main branch can be ahead of the latest release.

import { compile, evaluate, FhirPathError, parseJson } from '@callis/core';

export const patient: Readonly<{ resourceType: string; name: readonly { given: readonly string[] }[] }> = {
  resourceType: 'Patient', name: [{ given: ['Ada', 'Mina'] }],
};
export const given: unknown[] = evaluate(patient, 'Patient.name.given');
export const firstGiven: unknown[] = compile('name.given[0]').evaluate(patient);

These return ['Ada', 'Mina'] and ['Ada']. Default Decimal output uses potentially lossy numbers; decimalOutput: 'string' preserves evaluator Decimal digits, but cannot recover digits lost in input JavaScript numbers; parseJson() keeps them (guide). Full phase-1 conformance and a public model option remain future work.

First 0.1 support

The support matrix lists implemented operators and functions, tested runtimes and deferred APIs. Try the browser-local playground; it executes locally without automatically sending input JSON. The 0.1.0 release inventory records what that release contains and how it was prepared.

License

MIT

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages