Module @iguhealth/fhirpath - v0.12.0

FHIRPath

Returns a JS object/primitive based on the evaluation.

evaluate(
expression: string,
ctx: unknown,
options?: Options
): NonNullable<unknown>[]

Returns a @iguhealth/meta-value singular value which contains data along with metadata about the evaluation.

function evaluateWithMeta(
expression: string,
ctx: unknown,
options?: Options,
): MetaValueSingular<NonNullable<unknown>>[];
name type description
expression string FHIRPath expression to evaluate.
ctx unknown The context which the fhirpath is being evaluated from (sets $this context).
options Object Includes variables and metadata deriviation functions.
options.variables Object | Function If an object is Record<variableName, variableValue> else (variableName)=> variableValue.
options.meta Object MetaInformation used to zip metadata with value. Used in type functions and operators.
options.meta.type string Root type for ctx.
options.meta.getSD (fhir_version: FHIRVersion, type: string) => StructureDefinition Returns a StructureDefinition based on type passed in.
import * as fhirpath from "@iguhealth/fhirpath";

// Default returns javascript object.
expect(fhirpath.evaluate("4 + 5", {})).toEqual([9]);
expect(fhirpath.evaluate("$this.test + 2 * 4", { test: 4 })).toEqual([12]);

// Evaluation with metavalue return (returns value in addition to meta information.)
expect(
evaluateWithMeta(
"$this.name",
{
resourceType: "Patient",
name: [{ given: ["bob"], family: "jameson" }],
},
{
meta: {
type: "Patient",
getSD: (fhirVersion, type: code) => {
const foundSD = sds.find((sd) => sd.type === type);
return foundSD;
},
},
},
).map((v) => v.meta()?.type),
).toEqual(["HumanName"]);
Operation Description Supported
+ (addition) Concatenate strings or add values if numeric. true
- (subtraction) Subtracts the right operand from the left operand. true
as type specifier Returns left operand if value is of type specified. true
is(type : type specifier) Filters left operand based on type specifier. true
* (multiplication) Multiplies both arguments. true
/ (division) Divides the left operand by the right operand true
| (union collections) Merge the two collections into a single collection true
= (Equals) Returns true if the left collection is equal to the right collection true
!= (Not Equals) Converse operator of equals returns true if left collection is not equal to right collection true
Name Description Supported
empty Returns true if the input collection is empty ({ }) and false otherwise. true
exists Returns true if the collection has any elements, and false otherwise. true
all Returns true if for every element in the input collection, criteria evaluates to true. true
allTrue Takes a collection of Boolean values and returns true if all the items are true. true
anyTrue Takes a collection of Boolean values and returns true if any of the items are true. true
allFalse Takes a collection of Boolean values and returns true if all the items are false. true
anyFalse Takes a collection of Boolean values and returns true if any of the items are false. true
subsetOf Returns true if all items in the input collection are members of the collection passed in. true
supersetOf Returns true if all items in the collection passed as the other argument are members of the input collection. true
count Returns the integer count of the number of items in the input collection. true
distinct Returns a collection containing only the unique items in the input collection. true
isDistinct Returns true if all the items in the input collection are distinct. true
where Returns a collection containing only those elements in the input collection based on where expression. true
select Evaluates the projection expression for each item in the input collection. true
repeat A version of select that will repeat the projection and add it to the output collection. true
ofType Returns a collection that contains all items in the input collection that are of the given type. true
as Returns filter same as ofType used for backwards compatibility. true

Index

Classes

Type Aliases

Functions