@medplum/core 0.9.23 → 0.9.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/esm/base-schema.json.js +4872 -0
- package/dist/esm/base-schema.json.js.map +1 -0
- package/dist/{types → esm}/cache.d.ts +0 -0
- package/dist/esm/cache.js +70 -0
- package/dist/esm/cache.js.map +1 -0
- package/dist/{types → esm}/client.d.ts +0 -0
- package/dist/esm/client.js +1450 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/{types → esm}/crypto.d.ts +0 -0
- package/dist/esm/crypto.js +23 -0
- package/dist/esm/crypto.js.map +1 -0
- package/dist/{types → esm}/eventtarget.d.ts +0 -0
- package/dist/esm/eventtarget.js +41 -0
- package/dist/esm/eventtarget.js.map +1 -0
- package/dist/{types → esm}/fhirpath/atoms.d.ts +0 -0
- package/dist/esm/fhirpath/atoms.js +329 -0
- package/dist/esm/fhirpath/atoms.js.map +1 -0
- package/dist/{types → esm}/fhirpath/date.d.ts +0 -0
- package/dist/esm/fhirpath/date.js +24 -0
- package/dist/esm/fhirpath/date.js.map +1 -0
- package/dist/{types → esm}/fhirpath/functions.d.ts +0 -0
- package/dist/esm/fhirpath/functions.js +1503 -0
- package/dist/esm/fhirpath/functions.js.map +1 -0
- package/dist/{types → esm}/fhirpath/index.d.ts +0 -0
- package/dist/{types → esm}/fhirpath/parse.d.ts +0 -0
- package/dist/esm/fhirpath/parse.js +258 -0
- package/dist/esm/fhirpath/parse.js.map +1 -0
- package/dist/{types → esm}/fhirpath/tokenize.d.ts +0 -0
- package/dist/esm/fhirpath/tokenize.js +185 -0
- package/dist/esm/fhirpath/tokenize.js.map +1 -0
- package/dist/{types → esm}/fhirpath/utils.d.ts +0 -0
- package/dist/esm/fhirpath/utils.js +372 -0
- package/dist/esm/fhirpath/utils.js.map +1 -0
- package/dist/{types → esm}/format.d.ts +0 -0
- package/dist/esm/format.js +51 -0
- package/dist/esm/format.js.map +1 -0
- package/dist/{types → esm}/hl7.d.ts +0 -0
- package/dist/esm/hl7.js +111 -0
- package/dist/esm/hl7.js.map +1 -0
- package/dist/{types → esm}/index.d.ts +0 -0
- package/dist/esm/index.js +15 -10752
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/{types → esm}/jwt.d.ts +0 -0
- package/dist/esm/jwt.js +35 -0
- package/dist/esm/jwt.js.map +1 -0
- package/dist/esm/node_modules/tslib/tslib.es6.js +40 -0
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/{types → esm}/outcomes.d.ts +0 -0
- package/dist/esm/outcomes.js +151 -0
- package/dist/esm/outcomes.js.map +1 -0
- package/dist/{types → esm}/readablepromise.d.ts +0 -0
- package/dist/esm/readablepromise.js +87 -0
- package/dist/esm/readablepromise.js.map +1 -0
- package/dist/{types → esm}/search.d.ts +0 -0
- package/dist/esm/search.js +207 -0
- package/dist/esm/search.js.map +1 -0
- package/dist/{types → esm}/searchparams.d.ts +0 -0
- package/dist/esm/searchparams.js +145 -0
- package/dist/esm/searchparams.js.map +1 -0
- package/dist/{types → esm}/storage.d.ts +0 -0
- package/dist/esm/storage.js +94 -0
- package/dist/esm/storage.js.map +1 -0
- package/dist/{types → esm}/types.d.ts +0 -0
- package/dist/esm/types.js +223 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/{types → esm}/utils.d.ts +8 -0
- package/dist/esm/utils.js +590 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +5 -5
- package/stats.html +4034 -0
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.esm.json +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atoms.js","sources":["../../../src/fhirpath/atoms.ts"],"sourcesContent":["import { Resource } from '@medplum/fhirtypes';\nimport { PropertyType } from '../types';\nimport { FhirPathFunction } from './functions';\nimport {\n booleanToTypedValue,\n fhirPathArrayEquals,\n fhirPathArrayEquivalent,\n fhirPathIs,\n fhirPathNot,\n getTypedPropertyValue,\n isQuantity,\n removeDuplicates,\n toJsBoolean,\n toTypedValue,\n} from './utils';\n\nexport interface TypedValue {\n readonly type: string;\n readonly value: any;\n}\n\nexport interface Atom {\n eval(context: TypedValue[]): TypedValue[];\n}\n\nexport class FhirPathAtom implements Atom {\n constructor(public readonly original: string, public readonly child: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n try {\n if (context.length > 0) {\n return context.map((e) => this.child.eval([e])).flat();\n } else {\n return this.child.eval([]);\n }\n } catch (error) {\n throw new Error(`FhirPathError on \"${this.original}\": ${error}`);\n }\n }\n}\n\nexport class LiteralAtom implements Atom {\n constructor(public readonly value: TypedValue) {}\n eval(): TypedValue[] {\n return [this.value];\n }\n}\n\nexport class SymbolAtom implements Atom {\n constructor(public readonly name: string) {}\n eval(context: TypedValue[]): TypedValue[] {\n if (this.name === '$this') {\n return context;\n }\n return context\n .map((e) => this.#evalValue(e))\n .flat()\n .filter((e) => e?.value !== undefined) as TypedValue[];\n }\n\n #evalValue(typedValue: TypedValue): TypedValue[] | TypedValue | undefined {\n const input = typedValue.value;\n if (!input || typeof input !== 'object') {\n return undefined;\n }\n\n if ('resourceType' in input && (input as Resource).resourceType === this.name) {\n return typedValue;\n }\n\n return getTypedPropertyValue(typedValue, this.name);\n }\n}\n\nexport class EmptySetAtom implements Atom {\n eval(): [] {\n return [];\n }\n}\n\nexport class UnaryOperatorAtom implements Atom {\n constructor(public readonly child: Atom, public readonly impl: (x: TypedValue[]) => TypedValue[]) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n return this.impl(this.child.eval(context));\n }\n}\n\nexport class AsAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n return this.left.eval(context);\n }\n}\n\nexport class ArithemticOperatorAtom implements Atom {\n constructor(\n public readonly left: Atom,\n public readonly right: Atom,\n public readonly impl: (x: number, y: number) => number | boolean\n ) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftEvalResult = this.left.eval(context);\n if (leftEvalResult.length !== 1) {\n return [];\n }\n const rightEvalResult = this.right.eval(context);\n if (rightEvalResult.length !== 1) {\n return [];\n }\n const leftValue = leftEvalResult[0].value;\n const rightValue = rightEvalResult[0].value;\n const leftNumber = isQuantity(leftValue) ? leftValue.value : leftValue;\n const rightNumber = isQuantity(rightValue) ? rightValue.value : rightValue;\n const result = this.impl(leftNumber, rightNumber);\n if (typeof result === 'boolean') {\n return booleanToTypedValue(result);\n } else if (isQuantity(leftValue)) {\n return [{ type: PropertyType.Quantity, value: { ...leftValue, value: result } }];\n } else {\n return [toTypedValue(result)];\n }\n }\n}\n\nexport class ConcatAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n const result = [...leftValue, ...rightValue];\n if (result.length > 0 && result.every((e) => typeof e.value === 'string')) {\n return [{ type: PropertyType.string, value: result.map((e) => e.value as string).join('') }];\n }\n return result;\n }\n}\n\nexport class ContainsAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n return booleanToTypedValue(leftValue.some((e) => e.value === rightValue[0].value));\n }\n}\n\nexport class InAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n return booleanToTypedValue(rightValue.some((e) => e.value === leftValue[0].value));\n }\n}\n\nexport class DotAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n eval(context: TypedValue[]): TypedValue[] {\n return this.right.eval(this.left.eval(context));\n }\n}\n\nexport class UnionAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n eval(context: TypedValue[]): TypedValue[] {\n const leftResult = this.left.eval(context);\n const rightResult = this.right.eval(context);\n return removeDuplicates([...leftResult, ...rightResult]);\n }\n}\n\nexport class EqualsAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n return fhirPathArrayEquals(leftValue, rightValue);\n }\n}\n\nexport class NotEqualsAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n return fhirPathNot(fhirPathArrayEquals(leftValue, rightValue));\n }\n}\n\nexport class EquivalentAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n return fhirPathArrayEquivalent(leftValue, rightValue);\n }\n}\n\nexport class NotEquivalentAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n return fhirPathNot(fhirPathArrayEquivalent(leftValue, rightValue));\n }\n}\n\nexport class IsAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n if (leftValue.length !== 1) {\n return [];\n }\n const typeName = (this.right as SymbolAtom).name;\n return booleanToTypedValue(fhirPathIs(leftValue[0], typeName));\n }\n}\n\n/**\n * 6.5.1. and\n * Returns true if both operands evaluate to true,\n * false if either operand evaluates to false,\n * and the empty collection otherwise.\n */\nexport class AndAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n const rightValue = this.right.eval(context);\n if (leftValue[0]?.value === true && rightValue[0]?.value === true) {\n return booleanToTypedValue(true);\n }\n if (leftValue[0]?.value === false || rightValue[0]?.value === false) {\n return booleanToTypedValue(false);\n }\n return [];\n }\n}\n\nexport class OrAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftValue = this.left.eval(context);\n if (toJsBoolean(leftValue)) {\n return leftValue;\n }\n\n const rightValue = this.right.eval(context);\n if (toJsBoolean(rightValue)) {\n return rightValue;\n }\n\n return [];\n }\n}\n\n/**\n * 6.5.4. xor\n * Returns true if exactly one of the operands evaluates to true,\n * false if either both operands evaluate to true or both operands evaluate to false,\n * and the empty collection otherwise.\n */\nexport class XorAtom implements Atom {\n constructor(public readonly left: Atom, public readonly right: Atom) {}\n\n eval(context: TypedValue[]): TypedValue[] {\n const leftResult = this.left.eval(context);\n const rightResult = this.right.eval(context);\n if (leftResult.length === 0 && rightResult.length === 0) {\n return [];\n }\n const leftValue = leftResult.length === 0 ? null : leftResult[0].value;\n const rightValue = rightResult.length === 0 ? null : rightResult[0].value;\n if ((leftValue === true && rightValue !== true) || (leftValue !== true && rightValue === true)) {\n return booleanToTypedValue(true);\n }\n if ((leftValue === true && rightValue === true) || (leftValue === false && rightValue === false)) {\n return booleanToTypedValue(false);\n }\n return [];\n }\n}\n\nexport class FunctionAtom implements Atom {\n constructor(public readonly name: string, public readonly args: Atom[], public readonly impl: FhirPathFunction) {}\n eval(context: TypedValue[]): TypedValue[] {\n return this.impl(context, ...this.args);\n }\n}\n\nexport class IndexerAtom implements Atom {\n constructor(public readonly left: Atom, public readonly expr: Atom) {}\n eval(context: TypedValue[]): TypedValue[] {\n const evalResult = this.expr.eval(context);\n if (evalResult.length !== 1) {\n return [];\n }\n const index = evalResult[0].value;\n if (typeof index !== 'number') {\n throw new Error(`Invalid indexer expression: should return integer}`);\n }\n const leftResult = this.left.eval(context);\n if (!(index in leftResult)) {\n return [];\n }\n return [leftResult[index]];\n }\n}\n"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function parseDateString(str) {
|
|
2
|
+
if (str.startsWith('T')) {
|
|
3
|
+
// If a time string,
|
|
4
|
+
// then normalize to full length.
|
|
5
|
+
return str + 'T00:00:00.000Z'.substring(str.length);
|
|
6
|
+
}
|
|
7
|
+
if (str.length <= 10) {
|
|
8
|
+
// If a local date (i.e., "2021-01-01"),
|
|
9
|
+
// then return as-is.
|
|
10
|
+
return str;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
// Try to normalize to UTC
|
|
14
|
+
return new Date(str).toISOString();
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
// Fallback to original input
|
|
18
|
+
// This happens on unsupported time formats such as "2021-01-01T12"
|
|
19
|
+
return str;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { parseDateString };
|
|
24
|
+
//# sourceMappingURL=date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","sources":["../../../src/fhirpath/date.ts"],"sourcesContent":["export function parseDateString(str: string): string {\n if (str.startsWith('T')) {\n // If a time string,\n // then normalize to full length.\n return str + 'T00:00:00.000Z'.substring(str.length);\n }\n\n if (str.length <= 10) {\n // If a local date (i.e., \"2021-01-01\"),\n // then return as-is.\n return str;\n }\n\n try {\n // Try to normalize to UTC\n return new Date(str).toISOString();\n } catch (e) {\n // Fallback to original input\n // This happens on unsupported time formats such as \"2021-01-01T12\"\n return str;\n }\n}\n"],"names":[],"mappings":"AAAM,SAAU,eAAe,CAAC,GAAW,EAAA;AACzC,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;;;QAGvB,OAAO,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,KAAA;AAED,IAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;;;AAGpB,QAAA,OAAO,GAAG,CAAC;AACZ,KAAA;IAED,IAAI;;QAEF,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACpC,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;;;AAGV,QAAA,OAAO,GAAG,CAAC;AACZ,KAAA;AACH;;;;"}
|
|
File without changes
|