From 773e04ee2f7ad323017a945f904968df85e056fa Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 22 Jul 2025 00:09:05 +0200 Subject: [PATCH 01/18] Use spezi-firebase-fhir --- functions/models/package-lock.json | 52 +++- functions/models/package.json | 4 +- functions/models/src/codes/quantityUnit.ts | 12 +- .../src/fhir/baseTypes/fhirCodeableConcept.ts | 33 --- .../models/src/fhir/baseTypes/fhirCoding.ts | 36 --- .../models/src/fhir/baseTypes/fhirDosage.ts | 67 ----- .../models/src/fhir/baseTypes/fhirElement.ts | 278 ------------------ .../models/src/fhir/baseTypes/fhirMeta.ts | 35 --- .../models/src/fhir/baseTypes/fhirPeriod.ts | 29 -- .../models/src/fhir/baseTypes/fhirQuantity.ts | 32 -- .../fhir/baseTypes/fhirQuestionnaireItem.ts | 198 ------------- .../models/src/fhir/baseTypes/fhirRatio.ts | 39 --- .../src/fhir/baseTypes/fhirReference.ts | 32 -- .../models/src/fhir/baseTypes/fhirTiming.ts | 57 ---- .../src/fhir/baseTypes/fhirUsageContext.ts | 39 --- .../models/src/fhir/fhirAllergyIntolerance.ts | 65 ++-- functions/models/src/fhir/fhirAppointment.ts | 54 +--- functions/models/src/fhir/fhirMedication.ts | 153 +++------- .../models/src/fhir/fhirMedicationRequest.ts | 52 ++++ functions/models/src/fhir/fhirObservation.ts | 228 +++----------- .../models/src/fhir/fhirQuestionnaire.ts | 137 +-------- .../src/fhir/fhirQuestionnaireResponse.ts | 189 ++---------- functions/models/src/fhir/fhirResource.ts | 66 +++++ .../models/src/helpers/schemaConverter.ts | 15 + functions/models/src/index.ts | 13 +- ...{observation.ts => observationQuantity.ts} | 2 +- .../src/types/userMedicationRecommendation.ts | 22 +- functions/package-lock.json | 49 ++- 28 files changed, 374 insertions(+), 1614 deletions(-) delete mode 100644 functions/models/src/fhir/baseTypes/fhirCodeableConcept.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirCoding.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirDosage.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirElement.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirMeta.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirPeriod.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirQuantity.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirQuestionnaireItem.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirRatio.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirReference.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirTiming.ts delete mode 100644 functions/models/src/fhir/baseTypes/fhirUsageContext.ts create mode 100644 functions/models/src/fhir/fhirMedicationRequest.ts create mode 100644 functions/models/src/fhir/fhirResource.ts rename functions/models/src/types/{observation.ts => observationQuantity.ts} (89%) diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index fc3175f2..150a9d12 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -6,9 +6,11 @@ "": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { + "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir", "zod": "^3.23.8" }, "devDependencies": { + "@types/fhir": "^0.0.41", "@types/node": "^20", "eslint": "^9.22", "eslint-config-google": "^0.14", @@ -26,6 +28,39 @@ "node": "22" } }, + "../../../spezi-firebase/packages/spezi-firebase-fhir": { + "name": "@stanfordspezi/spezi-firebase-fhir", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "@stanfordspezi/spezi-firebase-utils": "file:../spezi-firebase-utils", + "firebase-admin": "^12.0", + "zod": "^3.25" + }, + "devDependencies": { + "@types/jest": "^29.5.3", + "@types/node": "^20", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", + "eslint": "^8.57", + "eslint-config-google": "^0.14", + "eslint-config-prettier": "^9", + "eslint-plugin-import": "^2", + "eslint-plugin-prettier": "^5", + "jest": "^29.6.2", + "ts-jest": "^29.1.1", + "typescript": "^5" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "firebase-admin": "^12.0" + } + }, + "../../spezi-firebase/packages/spezi-firebase-fhir": { + "extraneous": true + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -1404,6 +1439,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/fhir": { + "version": "0.0.41", + "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.41.tgz", + "integrity": "sha512-MAQAFufNZBZ6V0F94Nhknmmh/E3iMXFK4n/L8RkSNjKtOJnvaAJERivNOj35VVx9VCQBJbE0BHSzikfBahoRhA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -6287,6 +6329,10 @@ "source-map": "^0.6.0" } }, + "node_modules/spezi-firebase-fhir": { + "resolved": "../../../spezi-firebase/packages/spezi-firebase-fhir", + "link": true + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -7169,9 +7215,9 @@ } }, "node_modules/zod": { - "version": "3.24.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/functions/models/package.json b/functions/models/package.json index 157b0f41..d31d9208 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -22,9 +22,11 @@ ], "main": "lib/index.js", "dependencies": { - "zod": "^3.23.8" + "zod": "^3.23.8", + "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" }, "devDependencies": { + "@types/fhir": "^0.0.41", "@types/node": "^20", "eslint": "^9.22", "eslint-config-google": "^0.14", diff --git a/functions/models/src/codes/quantityUnit.ts b/functions/models/src/codes/quantityUnit.ts index 2214ed97..087258eb 100644 --- a/functions/models/src/codes/quantityUnit.ts +++ b/functions/models/src/codes/quantityUnit.ts @@ -6,8 +6,8 @@ // SPDX-License-Identifier: MIT // -import { type FHIRQuantity } from '../fhir/baseTypes/fhirQuantity.js' -import { type Observation } from '../types/observation.js' +import { Quantity } from 'fhir/r4b.js' +import { ObservationQuantity } from '../types/observationQuantity.js' export class QuantityUnit { // Static Properties @@ -57,7 +57,7 @@ export class QuantityUnit { // Methods - isUsedIn(other: FHIRQuantity): boolean { + isUsedIn(other: Quantity): boolean { return ( this.code === other.code && this.system === other.system && @@ -73,7 +73,7 @@ export class QuantityUnit { ) } - convert(observation: Observation): Observation | undefined { + convert(observation: ObservationQuantity): ObservationQuantity | undefined { const value = QuantityUnitConverter.allValues .find( (converter) => @@ -86,7 +86,7 @@ export class QuantityUnit { : undefined } - fhirQuantity(value: number): FHIRQuantity { + fhirQuantity(value: number): Quantity { return { system: this.system, code: this.code, @@ -95,7 +95,7 @@ export class QuantityUnit { } } - valueOf(quantity: FHIRQuantity | undefined): number | undefined { + valueOf(quantity: Quantity | undefined): number | undefined { if (!quantity?.value) return undefined if (this.isUsedIn(quantity)) return quantity.value diff --git a/functions/models/src/fhir/baseTypes/fhirCodeableConcept.ts b/functions/models/src/fhir/baseTypes/fhirCodeableConcept.ts deleted file mode 100644 index 2f48647f..00000000 --- a/functions/models/src/fhir/baseTypes/fhirCodeableConcept.ts +++ /dev/null @@ -1,33 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirCodingConverter } from './fhirCoding.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirCodeableConceptConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - coding: optionalish( - z.lazy(() => fhirCodingConverter.value.schema).array(), - ), - text: optionalish(z.string()), - }), - encode: (object) => ({ - coding: object.coding?.map(fhirCodingConverter.value.encode) ?? null, - text: object.text ?? null, - }), - }), -) - -export type FHIRCodeableConcept = z.output< - typeof fhirCodeableConceptConverter.value.schema -> diff --git a/functions/models/src/fhir/baseTypes/fhirCoding.ts b/functions/models/src/fhir/baseTypes/fhirCoding.ts deleted file mode 100644 index 3a20632f..00000000 --- a/functions/models/src/fhir/baseTypes/fhirCoding.ts +++ /dev/null @@ -1,36 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirElementConverter } from './fhirElement.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirCodingConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirElementConverter.value.schema.extend({ - system: optionalish(z.string()), - version: optionalish(z.string()), - code: optionalish(z.string()), - display: optionalish(z.string()), - userSelected: optionalish(z.boolean()), - }), - encode: (object) => ({ - ...fhirElementConverter.value.encode(object), - system: object.system ?? null, - version: object.version ?? null, - code: object.code ?? null, - display: object.display ?? null, - userSelected: object.userSelected ?? null, - }), - }), -) - -export type FHIRCoding = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirDosage.ts b/functions/models/src/fhir/baseTypes/fhirDosage.ts deleted file mode 100644 index 62c04c19..00000000 --- a/functions/models/src/fhir/baseTypes/fhirDosage.ts +++ /dev/null @@ -1,67 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirCodeableConceptConverter } from './fhirCodeableConcept.js' -import { fhirQuantityConverter } from './fhirQuantity.js' -import { fhirTimingConverter } from './fhirTiming.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -const fhirDosageDoseAndRateConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - type: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - doseQuantity: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - }), - encode: (object) => ({ - type: - object.type ? - fhirCodeableConceptConverter.value.encode(object.type) - : null, - doseQuantity: - object.doseQuantity ? - fhirQuantityConverter.value.encode(object.doseQuantity) - : null, - }), - }), -) - -export const fhirDosageConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - text: optionalish(z.string()), - patientInstruction: optionalish(z.string()), - timing: optionalish(z.lazy(() => fhirTimingConverter.value.schema)), - doseAndRate: optionalish( - z.lazy(() => fhirDosageDoseAndRateConverter.value.schema).array(), - ), - }), - encode: (object) => ({ - text: object.text ?? null, - patientInstruction: object.patientInstruction ?? null, - timing: - object.timing ? - fhirTimingConverter.value.encode(object.timing) - : null, - doseAndRate: - object.doseAndRate?.map( - fhirDosageDoseAndRateConverter.value.encode, - ) ?? null, - }), - }), -) - -export type FHIRDosage = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirElement.ts b/functions/models/src/fhir/baseTypes/fhirElement.ts deleted file mode 100644 index 9f9d6de6..00000000 --- a/functions/models/src/fhir/baseTypes/fhirElement.ts +++ /dev/null @@ -1,278 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { - fhirCodeableConceptConverter, - type FHIRCodeableConcept, -} from './fhirCodeableConcept.js' -import { type FHIRCoding } from './fhirCoding.js' -import { type FHIRDosage, fhirDosageConverter } from './fhirDosage.js' -import { type FHIRMeta, fhirMetaConverter } from './fhirMeta.js' -import { fhirQuantityConverter } from './fhirQuantity.js' -import { type FHIRReference, fhirReferenceConverter } from './fhirReference.js' -import { type FHIRExtensionUrl } from '../../codes/codes.js' -import { QuantityUnit } from '../../codes/quantityUnit.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -const fhirExtensionBaseConverter = new SchemaConverter({ - schema: z.object({ - url: z.string(), - valueQuantities: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema).array(), - ), - valueReference: optionalish( - z.lazy(() => fhirReferenceConverter.value.schema), - ), - valueString: optionalish(z.string()), - }), - encode: (object) => ({ - url: object.url, - valueQuantities: - object.valueQuantities?.map(fhirQuantityConverter.value.encode) ?? null, - valueReference: - object.valueReference ? - fhirReferenceConverter.value.encode(object.valueReference) - : null, - valueString: object.valueString ?? null, - }), -}) - -export interface FHIRExtensionInput - extends z.input { - valueCodeableConcept?: - | z.input - | null - | undefined - valueMedicationRequest?: - | z.input - | null - | undefined -} - -export interface FHIRExtension - extends z.output { - valueCodeableConcept?: FHIRCodeableConcept - valueMedicationRequest?: FHIRMedicationRequest -} - -export const fhirExtensionConverter = (() => { - const fhirExtensionSchema: z.ZodType< - FHIRExtension, - z.ZodTypeDef, - FHIRExtensionInput - > = fhirExtensionBaseConverter.value.schema.extend({ - valueCodeableConcept: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - valueMedicationRequest: optionalish( - z.lazy(() => fhirMedicationRequestConverter.value.schema), - ), - }) - - function fhirExtensionEncode( - object: z.output, - ): z.input { - return { - ...fhirExtensionBaseConverter.value.encode(object), - valueCodeableConcept: - object.valueCodeableConcept ? - fhirCodeableConceptConverter.value.encode(object.valueCodeableConcept) - : null, - valueMedicationRequest: - object.valueMedicationRequest ? - fhirMedicationRequestConverter.value.encode( - object.valueMedicationRequest, - ) - : null, - } - } - - return new SchemaConverter({ - schema: fhirExtensionSchema, - encode: fhirExtensionEncode, - }) -})() - -export const fhirElementConverter = new SchemaConverter({ - schema: z.object({ - id: optionalish(z.string()), - extension: optionalish( - z.lazy(() => fhirExtensionConverter.value.schema).array(), - ), - }), - encode: (object) => ({ - id: object.id ?? null, - extension: - object.extension?.map(fhirExtensionConverter.value.encode) ?? null, - }), -}) - -export abstract class FHIRElement { - // Properties - - readonly id?: string - readonly extension?: FHIRExtension[] - - // Constructor - - constructor(input: { id?: string; extension?: FHIRExtension[] }) { - this.id = input.id - this.extension = input.extension - } - - // Methods - - extensionsWithUrl(url: FHIRExtensionUrl): FHIRExtension[] { - return ( - this.extension?.filter((extension) => extension.url === url.toString()) ?? - [] - ) - } -} - -export const fhirResourceConverter = new SchemaConverter({ - schema: fhirElementConverter.value.schema.extend({ - resourceType: z.string(), - meta: optionalish(fhirMetaConverter.schema), - }), - encode: (object) => ({ - ...fhirElementConverter.value.encode(object), - resourceType: object.resourceType, - meta: object.meta ? fhirMetaConverter.encode(object.meta) : null, - }), -}) - -export type FHIRResourceInput = z.output & { - meta?: FHIRMeta -} - -export abstract class FHIRResource extends FHIRElement { - // Properties - - abstract get resourceType(): string - readonly meta?: FHIRMeta - - // Constructor - - constructor(input: FHIRResourceInput) { - super(input) - this.meta = input.meta - } - - // Methods - - codes( - concept: FHIRCodeableConcept | undefined, - filter: FHIRCoding, - ): string[] { - return ( - concept?.coding?.flatMap((coding) => { - if (filter.system && coding.system !== filter.system) return [] - if (filter.version && coding.version !== filter.version) return [] - return coding.code ? [coding.code] : [] - }) ?? [] - ) - } - - containsCoding( - concept: FHIRCodeableConcept | undefined, - filter: FHIRCoding[], - ): boolean { - return filter.some( - (filterCoding) => - concept?.coding?.some((coding) => { - if (filterCoding.code && coding.code !== filterCoding.code) - return false - if (filterCoding.system && coding.system !== filterCoding.system) - return false - if (filterCoding.version && coding.version !== filterCoding.version) - return false - return true - }) ?? false, - ) - } -} - -export const fhirMedicationRequestConverter = new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - medicationReference: optionalish( - z.lazy(() => fhirReferenceConverter.value.schema), - ), - dosageInstruction: optionalish( - z.lazy(() => fhirDosageConverter.value.schema).array(), - ), - }) - .transform((values) => new FHIRMedicationRequest(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - medicationReference: - object.medicationReference !== undefined ? - fhirReferenceConverter.value.encode(object.medicationReference) - : null, - dosageInstruction: - object.dosageInstruction?.map(fhirDosageConverter.value.encode) ?? null, - }), -}) - -export class FHIRMedicationRequest extends FHIRResource { - // Static Functions - - static create(input: { - medicationReference: string - medicationReferenceDisplay?: string - frequencyPerDay: number - quantity: number - extension?: FHIRExtension[] - }): FHIRMedicationRequest { - return new FHIRMedicationRequest({ - medicationReference: { - reference: input.medicationReference, - display: input.medicationReferenceDisplay, - }, - extension: input.extension, - dosageInstruction: [ - { - timing: { - repeat: { - frequency: input.frequencyPerDay, - period: 1, - periodUnit: 'd', - }, - }, - doseAndRate: [ - { - doseQuantity: QuantityUnit.tablet.fhirQuantity(input.quantity), - }, - ], - }, - ], - }) - } - - // Properties - - readonly resourceType: string = 'MedicationRequest' - readonly medicationReference?: FHIRReference - readonly dosageInstruction?: FHIRDosage[] - - // Constructor - - constructor( - input: FHIRResourceInput & { - medicationReference?: FHIRReference - dosageInstruction?: FHIRDosage[] - }, - ) { - super(input) - this.medicationReference = input.medicationReference - this.dosageInstruction = input.dosageInstruction - } -} diff --git a/functions/models/src/fhir/baseTypes/fhirMeta.ts b/functions/models/src/fhir/baseTypes/fhirMeta.ts deleted file mode 100644 index 69fe3c6c..00000000 --- a/functions/models/src/fhir/baseTypes/fhirMeta.ts +++ /dev/null @@ -1,35 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirCodingConverter } from './fhirCoding.js' -import { dateTimeConverter } from '../../helpers/dateConverter.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirMetaConverter = new SchemaConverter({ - schema: z.object({ - versionId: optionalish(z.string()), - lastUpdated: optionalish(dateTimeConverter.schema), - profile: optionalish(z.string().array()), - security: optionalish( - z.lazy(() => fhirCodingConverter.value.schema).array(), - ), - tag: optionalish(z.lazy(() => fhirCodingConverter.value.schema).array()), - }), - encode: (object) => ({ - versionId: object.versionId ?? null, - lastUpdated: - object.lastUpdated ? dateTimeConverter.encode(object.lastUpdated) : null, - profile: object.profile ?? null, - security: object.security?.map(fhirCodingConverter.value.encode) ?? null, - tag: object.tag?.map(fhirCodingConverter.value.encode) ?? null, - }), -}) - -export type FHIRMeta = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirPeriod.ts b/functions/models/src/fhir/baseTypes/fhirPeriod.ts deleted file mode 100644 index c6eb5703..00000000 --- a/functions/models/src/fhir/baseTypes/fhirPeriod.ts +++ /dev/null @@ -1,29 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { dateTimeConverter } from '../../helpers/dateConverter.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirPeriodConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - start: optionalish(dateTimeConverter.schema), - end: optionalish(dateTimeConverter.schema), - }), - encode: (object) => ({ - start: object.start ? dateTimeConverter.encode(object.start) : null, - end: object.end ? dateTimeConverter.encode(object.end) : null, - }), - }), -) - -export type FHIRPeriod = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirQuantity.ts b/functions/models/src/fhir/baseTypes/fhirQuantity.ts deleted file mode 100644 index 0edb1a09..00000000 --- a/functions/models/src/fhir/baseTypes/fhirQuantity.ts +++ /dev/null @@ -1,32 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirQuantityConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - code: optionalish(z.string()), - system: optionalish(z.string()), - unit: optionalish(z.string()), - value: optionalish(z.number()), - }), - encode: (object) => ({ - code: object.code ?? null, - system: object.system ?? null, - unit: object.unit ?? null, - value: object.value ?? null, - }), - }), -) - -export type FHIRQuantity = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirQuestionnaireItem.ts b/functions/models/src/fhir/baseTypes/fhirQuestionnaireItem.ts deleted file mode 100644 index 0000a883..00000000 --- a/functions/models/src/fhir/baseTypes/fhirQuestionnaireItem.ts +++ /dev/null @@ -1,198 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirCodingConverter } from './fhirCoding.js' -import { fhirExtensionConverter } from './fhirElement.js' -import { fhirQuantityConverter } from './fhirQuantity.js' -import { fhirReferenceConverter } from './fhirReference.js' -import { - dateConverter, - dateTimeConverter, -} from '../../helpers/dateConverter.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export enum FHIRQuestionnaireItemType { - group = 'group', - display = 'display', - boolean = 'boolean', - choice = 'choice', - decimal = 'decimal', - integer = 'integer', - date = 'date', - dateTime = 'dateTime', - time = 'time', - string = 'string', - text = 'text', - url = 'url', - coding = 'coding', - quantity = 'quantity', - reference = 'reference', -} - -const fhirQuestionnaireItemAnswerOptionConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - valueCoding: optionalish( - z.lazy(() => fhirCodingConverter.value.schema), - ), - }), - encode: (object) => ({ - valueCoding: - object.valueCoding ? - fhirCodingConverter.value.encode(object.valueCoding) - : null, - }), - }), -) - -export type FHIRQuestionnaireItemAnswerOption = z.output< - typeof fhirQuestionnaireItemAnswerOptionConverter.value.schema -> - -export enum FHIRQuestionnaireItemEnableWhenOperator { - exists = 'exists', - equals = '=', - notEquals = '!=', - greaterThan = '>', - lessThan = '<', - greaterThanOrEqual = '>=', - lessThanOrEqual = '<=', -} - -export enum FHIRQuestionnaireItemEnableBehavior { - all = 'all', - any = 'any', -} - -const fhirQuestionnaireItemEnableWhenConverter = new SchemaConverter({ - schema: z.object({ - question: z.string(), - operator: z.nativeEnum(FHIRQuestionnaireItemEnableWhenOperator), - answerBoolean: optionalish(z.boolean()), - answerDecimal: optionalish(z.number()), - answerInteger: optionalish(z.number().int()), - answerDate: optionalish(dateConverter.schema), - answerDateTime: optionalish(dateTimeConverter.schema), - answerString: optionalish(z.string()), - answerCoding: optionalish(fhirCodingConverter.value.schema), - answerQuantity: optionalish(fhirQuantityConverter.value.schema), - answerReference: optionalish(fhirReferenceConverter.value.schema), - }), - encode: (object) => ({ - question: object.question, - operator: object.operator, - answerBoolean: object.answerBoolean ?? null, - answerDecimal: object.answerDecimal ?? null, - answerInteger: object.answerInteger ?? null, - answerDate: - object.answerDate !== undefined ? - dateConverter.encode(object.answerDate) - : null, - answerDateTime: - object.answerDateTime !== undefined ? - dateTimeConverter.encode(object.answerDateTime) - : null, - answerString: object.answerString ?? null, - answerCoding: - object.answerCoding !== undefined ? - fhirCodingConverter.value.encode(object.answerCoding) - : null, - answerQuantity: - object.answerQuantity !== undefined ? - fhirQuantityConverter.value.encode(object.answerQuantity) - : null, - answerReference: - object.answerReference !== undefined ? - fhirReferenceConverter.value.encode(object.answerReference) - : null, - }), -}) - -export type FHIRQuestionnaireItemEnableWhen = z.output< - typeof fhirQuestionnaireItemEnableWhenConverter.schema -> - -const fhirQuestionnaireItemBaseConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - linkId: optionalish(z.string()), - type: optionalish(z.nativeEnum(FHIRQuestionnaireItemType)), - text: optionalish(z.string()), - required: optionalish(z.boolean()), - unit: optionalish(z.string()), - answerOption: optionalish( - fhirQuestionnaireItemAnswerOptionConverter.value.schema.array(), - ), - enableWhen: optionalish( - fhirQuestionnaireItemEnableWhenConverter.schema.array(), - ), - enableBehavior: optionalish( - z.nativeEnum(FHIRQuestionnaireItemEnableBehavior), - ), - extension: z.lazy(() => - optionalish(fhirExtensionConverter.schema.array()), - ), - }), - encode: (object) => ({ - linkId: object.linkId ?? null, - type: object.type ?? null, - text: object.text ?? null, - required: object.required ?? null, - unit: object.unit ?? null, - answerOption: - object.answerOption?.map((option) => - fhirQuestionnaireItemAnswerOptionConverter.value.encode(option), - ) ?? null, - enableWhen: - object.enableWhen?.map((option) => - fhirQuestionnaireItemEnableWhenConverter.encode(option), - ) ?? null, - enableBehavior: object.enableBehavior ?? null, - extension: object.extension?.map(fhirExtensionConverter.encode) ?? null, - }), - }), -) - -export interface FHIRQuestionnaireItemInput - extends z.input { - item?: FHIRQuestionnaireItemInput[] | null | undefined -} - -export interface FHIRQuestionnaireItem - extends z.output { - item?: FHIRQuestionnaireItem[] -} - -export const fhirQuestionnaireItemConverter = new Lazy(() => { - const fhirQuestionnaireItemSchema: z.ZodType< - FHIRQuestionnaireItem, - z.ZodTypeDef, - FHIRQuestionnaireItemInput - > = fhirQuestionnaireItemBaseConverter.value.schema.extend({ - item: optionalish(z.lazy(() => fhirQuestionnaireItemSchema.array())), - }) - - function fhirQuestionnaireItemEncode( - object: z.output, - ): z.input { - return { - ...fhirQuestionnaireItemBaseConverter.value.encode(object), - item: object.item ? object.item.map(fhirQuestionnaireItemEncode) : null, - } - } - - return new SchemaConverter({ - schema: fhirQuestionnaireItemSchema, - encode: fhirQuestionnaireItemEncode, - }) -}) diff --git a/functions/models/src/fhir/baseTypes/fhirRatio.ts b/functions/models/src/fhir/baseTypes/fhirRatio.ts deleted file mode 100644 index 862c19a2..00000000 --- a/functions/models/src/fhir/baseTypes/fhirRatio.ts +++ /dev/null @@ -1,39 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirQuantityConverter } from './fhirQuantity.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirRatioConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - numerator: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - denominator: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - }), - encode: (object) => ({ - numerator: - object.numerator ? - fhirQuantityConverter.value.encode(object.numerator) - : null, - denominator: - object.denominator ? - fhirQuantityConverter.value.encode(object.denominator) - : null, - }), - }), -) - -export type FHIRRatio = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirReference.ts b/functions/models/src/fhir/baseTypes/fhirReference.ts deleted file mode 100644 index d1f9308b..00000000 --- a/functions/models/src/fhir/baseTypes/fhirReference.ts +++ /dev/null @@ -1,32 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirReferenceConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - reference: z.string(), - type: optionalish(z.string()), - display: optionalish(z.string()), - identifier: optionalish(z.string()), - }), - encode: (object) => ({ - reference: object.reference, - type: object.type ?? null, - display: object.display ?? null, - identifier: object.identifier ?? null, - }), - }), -) - -export type FHIRReference = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirTiming.ts b/functions/models/src/fhir/baseTypes/fhirTiming.ts deleted file mode 100644 index 341fe59d..00000000 --- a/functions/models/src/fhir/baseTypes/fhirTiming.ts +++ /dev/null @@ -1,57 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirCodeableConceptConverter } from './fhirCodeableConcept.js' -import { Lazy } from '../../helpers/lazy.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirTimingRepeatConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - frequency: optionalish(z.number()), - period: optionalish(z.number()), - periodUnit: optionalish(z.string()), - timeOfDay: optionalish(z.string().array()), - }), - encode: (object) => ({ - frequency: object.frequency ?? null, - period: object.period ?? null, - periodUnit: object.periodUnit ?? null, - timeOfDay: object.timeOfDay ?? null, - }), - }), -) - -export const fhirTimingConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - repeat: optionalish( - z.lazy(() => fhirTimingRepeatConverter.value.schema), - ), - code: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - }), - encode: (object) => ({ - repeat: - object.repeat ? - fhirTimingRepeatConverter.value.encode(object.repeat) - : null, - code: - object.code ? - fhirCodeableConceptConverter.value.encode(object.code) - : null, - }), - }), -) - -export type FHIRTiming = z.output diff --git a/functions/models/src/fhir/baseTypes/fhirUsageContext.ts b/functions/models/src/fhir/baseTypes/fhirUsageContext.ts deleted file mode 100644 index da5670f3..00000000 --- a/functions/models/src/fhir/baseTypes/fhirUsageContext.ts +++ /dev/null @@ -1,39 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { z } from 'zod' -import { fhirCodeableConceptConverter } from './fhirCodeableConcept.js' -import { fhirCodingConverter } from './fhirCoding.js' -import { fhirQuantityConverter } from './fhirQuantity.js' -import { optionalish } from '../../helpers/optionalish.js' -import { SchemaConverter } from '../../helpers/schemaConverter.js' - -export const fhirUsageContextConverter = new SchemaConverter({ - schema: z.object({ - code: fhirCodingConverter.value.schema, - valueCodeableConcept: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - valueQuantity: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - }), - encode: (object) => ({ - code: fhirCodingConverter.value.encode(object.code), - valueCodeableConcept: - object.valueCodeableConcept ? - fhirCodeableConceptConverter.value.encode(object.valueCodeableConcept) - : null, - valueQuantity: - object.valueQuantity ? - fhirQuantityConverter.value.encode(object.valueQuantity) - : null, - }), -}) - -export type FHIRUsageContext = z.output diff --git a/functions/models/src/fhir/fhirAllergyIntolerance.ts b/functions/models/src/fhir/fhirAllergyIntolerance.ts index b254a3bd..7c6cfbeb 100644 --- a/functions/models/src/fhir/fhirAllergyIntolerance.ts +++ b/functions/models/src/fhir/fhirAllergyIntolerance.ts @@ -7,34 +7,19 @@ // import { z } from 'zod' -import { - fhirCodeableConceptConverter, - type FHIRCodeableConcept, -} from './baseTypes/fhirCodeableConcept.js' -import { - FHIRResource, - fhirResourceConverter, - type FHIRResourceInput, -} from './baseTypes/fhirElement.js' import { CodingSystem } from '../codes/codes.js' import { type MedicationReference } from '../codes/references.js' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' +import { AllergyIntolerance } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource.js' +import { + AllergyIntoleranceCriticality, + AllergyIntoleranceType, +} from 'spezi-firebase-fhir' -export enum FHIRAllergyIntoleranceType { - allergy = 'allergy', - intolerance = 'intolerance', - financial = 'financial', - preference = 'preference', -} - -export enum FHIRAllergyIntoleranceCriticality { - low = 'low', - high = 'high', - unableToAssess = 'unable-to-assess', -} - +/* export const fhirAllergyIntoleranceConverter = new Lazy( () => new SchemaConverter({ @@ -60,16 +45,22 @@ export const fhirAllergyIntoleranceConverter = new Lazy( }), }), ) + */ -export class FHIRAllergyIntolerance extends FHIRResource { +export class FHIRAllergyIntolerance extends FHIRResource { // Static Functions static create(input: { - type: FHIRAllergyIntoleranceType - criticality?: FHIRAllergyIntoleranceCriticality + type: AllergyIntoleranceType + criticality?: AllergyIntoleranceCriticality reference: MedicationReference + userId: string }): FHIRAllergyIntolerance { return new FHIRAllergyIntolerance({ + resourceType: 'AllergyIntolerance', + patient: { + reference: `users/${input.userId}`, + }, type: input.type, criticality: input.criticality, code: { @@ -83,31 +74,9 @@ export class FHIRAllergyIntolerance extends FHIRResource { }) } - // Stored Properties - - readonly resourceType: string = 'AllergyIntolerance' - readonly type: FHIRAllergyIntoleranceType - readonly criticality?: FHIRAllergyIntoleranceCriticality - readonly code?: FHIRCodeableConcept - // Computed Properties get rxNormCodes(): string[] { - return this.codes(this.code, { system: CodingSystem.rxNorm }) - } - - // Constructor - - constructor( - input: FHIRResourceInput & { - type: FHIRAllergyIntoleranceType - criticality?: FHIRAllergyIntoleranceCriticality - code?: FHIRCodeableConcept - }, - ) { - super(input) - this.type = input.type - this.criticality = input.criticality - this.code = input.code + return this.codes(this.data.code, { system: CodingSystem.rxNorm }) } } diff --git a/functions/models/src/fhir/fhirAppointment.ts b/functions/models/src/fhir/fhirAppointment.ts index 0c0aeb4a..fd5b3590 100644 --- a/functions/models/src/fhir/fhirAppointment.ts +++ b/functions/models/src/fhir/fhirAppointment.ts @@ -6,6 +6,13 @@ // SPDX-License-Identifier: MIT // +import { Appointment } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource.js' +import { AppointmentStatus } from 'spezi-firebase-fhir' +import { compactMap } from '../helpers/array.js' +import { FHIRExtensionUrl } from '../codes/codes.js' + +/* import { z } from 'zod' import { fhirCodeableConceptConverter } from './baseTypes/fhirCodeableConcept.js' import { @@ -93,26 +100,29 @@ export const fhirAppointmentConverter = new Lazy( }), }), ) + */ -export class FHIRAppointment extends FHIRResource { +export class FHIRAppointment extends FHIRResource { // Static Functions static create(input: { userId: string created: Date - status: FHIRAppointmentStatus + status: AppointmentStatus start: Date durationInMinutes: number }): FHIRAppointment { return new FHIRAppointment({ + resourceType: 'Appointment', status: input.status, - created: input.created, - start: input.start, + created: input.created.toISOString(), + start: input.start.toISOString(), end: new Date( input.start.getTime() + input.durationInMinutes * 60 * 1000, - ), + ).toISOString(), participant: [ { + status: 'accepted', actor: { reference: `users/${input.userId}`, }, @@ -121,17 +131,6 @@ export class FHIRAppointment extends FHIRResource { }) } - // Stored Properties - - readonly resourceType: string = 'Appointment' - readonly status: FHIRAppointmentStatus - readonly created: Date - readonly start: Date - readonly end: Date - readonly comment?: string - readonly patientInstruction?: string - readonly participant?: FHIRAppointmentParticipant[] - // Computed Properties get providerNames(): string[] { @@ -140,27 +139,4 @@ export class FHIRAppointment extends FHIRResource { (extension) => extension.valueString, ) } - - // Constructor - - constructor( - input: FHIRResourceInput & { - status: FHIRAppointmentStatus - created: Date - start: Date - end: Date - comment?: string - patientInstruction?: string - participant?: FHIRAppointmentParticipant[] - }, - ) { - super(input) - this.status = input.status - this.created = input.created - this.start = input.start - this.end = input.end - this.comment = input.comment - this.patientInstruction = input.patientInstruction - this.participant = input.participant - } } diff --git a/functions/models/src/fhir/fhirMedication.ts b/functions/models/src/fhir/fhirMedication.ts index c715b497..a4a6cd2f 100644 --- a/functions/models/src/fhir/fhirMedication.ts +++ b/functions/models/src/fhir/fhirMedication.ts @@ -6,104 +6,23 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' -import { - type FHIRCodeableConcept, - fhirCodeableConceptConverter, -} from './baseTypes/fhirCodeableConcept.js' -import { - FHIRResource, - fhirResourceConverter, - type FHIRResourceInput, - type FHIRMedicationRequest, -} from './baseTypes/fhirElement.js' -import { fhirRatioConverter } from './baseTypes/fhirRatio.js' -import { type FHIRReference } from './baseTypes/fhirReference.js' -import { CodingSystem, FHIRExtensionUrl } from '../codes/codes.js' -import { QuantityUnit } from '../codes/quantityUnit.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' +import { Medication, MedicationRequest, Reference } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource' +import { CodingSystem, FHIRExtensionUrl } from '../codes/codes' +import { QuantityUnit } from '../codes/quantityUnit' +import { FHIRMedicationRequest } from './fhirMedicationRequest' -export const fhirMedicationIngredientConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - strength: optionalish(z.lazy(() => fhirRatioConverter.value.schema)), - itemCodeableConcept: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - }), - encode: (object) => ({ - strength: - object.strength ? - fhirRatioConverter.value.encode(object.strength) - : null, - itemCodeableConcept: - object.itemCodeableConcept ? - fhirCodeableConceptConverter.value.encode( - object.itemCodeableConcept, - ) - : null, - }), - }), -) -export type FHIRMedicationIngredient = z.output< - typeof fhirMedicationIngredientConverter.value.schema -> - -export const fhirMedicationConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - code: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - form: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - ingredient: optionalish( - z - .lazy(() => fhirMedicationIngredientConverter.value.schema) - .array(), - ), - }) - .transform((values) => new FHIRMedication(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - code: - object.code ? - fhirCodeableConceptConverter.value.encode(object.code) - : null, - form: - object.form ? - fhirCodeableConceptConverter.value.encode(object.form) - : null, - ingredient: - object.ingredient?.map( - fhirMedicationIngredientConverter.value.encode, - ) ?? null, - }), - }), -) - -export class FHIRMedication extends FHIRResource { - // Stored Properties - - readonly resourceType: string = 'Medication' - readonly code?: FHIRCodeableConcept - readonly form?: FHIRCodeableConcept - readonly ingredient?: FHIRMedicationIngredient[] +export class FHIRMedication extends FHIRResource { // Computed Properties get displayName(): string | undefined { return ( - this.code?.text ?? - this.code?.coding?.find((coding) => coding.system === CodingSystem.rxNorm) - ?.display + this.data.code?.text ?? + this.data.code?.coding?.find( + (coding) => coding.system === CodingSystem.rxNorm, + )?.display ) } @@ -113,39 +32,48 @@ export class FHIRMedication extends FHIRResource { ) } - get medicationClassReference(): FHIRReference | undefined { + get medicationClassReference(): Reference | undefined { return this.extensionsWithUrl(FHIRExtensionUrl.medicationClass).at(0) ?.valueReference } - get minimumDailyDoseRequest(): FHIRMedicationRequest | undefined { - return this.extensionsWithUrl(FHIRExtensionUrl.minimumDailyDose).at(0) - ?.valueMedicationRequest + get minimumDailyDoseRequest(): MedicationRequest | undefined { + const reference = this.extensionsWithUrl( + FHIRExtensionUrl.minimumDailyDose, + ).at(0)?.valueReference?.reference + if (!reference) return undefined + return this.containedResource(reference.substring(1)) } get minimumDailyDose(): number[] | undefined { const request = this.minimumDailyDoseRequest if (!request) return undefined - return this.extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) - .at(0) - ?.valueQuantities?.flatMap((quantity) => { + const requestResource = new FHIRMedicationRequest(request) + return requestResource + .extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) + .map((extension) => extension.valueQuantity) + .flatMap((quantity) => { const value = QuantityUnit.mg.valueOf(quantity) return value ? [value] : [] }) } - get targetDailyDoseRequest(): FHIRMedicationRequest | undefined { - return this.extensionsWithUrl(FHIRExtensionUrl.targetDailyDose).at(0) - ?.valueMedicationRequest + get targetDailyDoseRequest(): MedicationRequest | undefined { + const reference = this.extensionsWithUrl( + FHIRExtensionUrl.targetDailyDose, + ).at(0)?.valueReference?.reference + if (!reference) return undefined + return this.containedResource(reference.substring(1)) } get targetDailyDose(): number[] | undefined { const request = this.targetDailyDoseRequest if (!request) return undefined - const result = request + const requestResource = new FHIRMedicationRequest(request) + const result = requestResource .extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) - .at(0) - ?.valueQuantities?.flatMap((quantity) => { + .map((extension) => extension.valueQuantity) + .flatMap((quantity) => { const value = QuantityUnit.mg.valueOf(quantity) return value ? [value] : [] }) @@ -153,23 +81,8 @@ export class FHIRMedication extends FHIRResource { } get rxNormCode(): string | undefined { - return this.code?.coding?.find( + return this.data.code?.coding?.find( (coding) => coding.system === CodingSystem.rxNorm, )?.code } - - // Constructor - - constructor( - input: FHIRResourceInput & { - readonly code?: FHIRCodeableConcept - readonly form?: FHIRCodeableConcept - readonly ingredient?: FHIRMedicationIngredient[] - }, - ) { - super(input) - this.code = input.code - this.ingredient = input.ingredient - this.form = input.form - } } diff --git a/functions/models/src/fhir/fhirMedicationRequest.ts b/functions/models/src/fhir/fhirMedicationRequest.ts new file mode 100644 index 00000000..c0c60408 --- /dev/null +++ b/functions/models/src/fhir/fhirMedicationRequest.ts @@ -0,0 +1,52 @@ +// +// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project +// +// SPDX-FileCopyrightText: 2023 Stanford University +// +// SPDX-License-Identifier: MIT +// + +import { Extension, MedicationRequest, Reference } from 'fhir/r4b' +import { FHIRResource } from './fhirResource' +import { QuantityUnit } from '../codes/quantityUnit' + +export class FHIRMedicationRequest extends FHIRResource { + // Static Functions + + static create(input: { + medicationReference: string + medicationReferenceDisplay?: string + frequencyPerDay: number + quantity: number + extension?: Extension[] + userId: string + }): FHIRMedicationRequest { + return new FHIRMedicationRequest({ + resourceType: 'MedicationRequest', + medicationReference: { + reference: input.medicationReference, + display: input.medicationReferenceDisplay, + }, + intent: 'plan', + status: 'draft', + subject: {}, + extension: input.extension, + dosageInstruction: [ + { + timing: { + repeat: { + frequency: input.frequencyPerDay, + period: 1, + periodUnit: 'd', + }, + }, + doseAndRate: [ + { + doseQuantity: QuantityUnit.tablet.fhirQuantity(input.quantity), + }, + ], + }, + ], + }) + } +} diff --git a/functions/models/src/fhir/fhirObservation.ts b/functions/models/src/fhir/fhirObservation.ts index a4d2473c..ed58917c 100644 --- a/functions/models/src/fhir/fhirObservation.ts +++ b/functions/models/src/fhir/fhirObservation.ts @@ -6,33 +6,11 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' -import { - type FHIRCodeableConcept, - fhirCodeableConceptConverter, -} from './baseTypes/fhirCodeableConcept.js' -import { type FHIRCoding } from './baseTypes/fhirCoding.js' -import { - FHIRResource, - fhirResourceConverter, - type FHIRResourceInput, -} from './baseTypes/fhirElement.js' -import { fhirPeriodConverter, type FHIRPeriod } from './baseTypes/fhirPeriod.js' -import { - type FHIRQuantity, - fhirQuantityConverter, -} from './baseTypes/fhirQuantity.js' import { CodingSystem, LoincCode } from '../codes/codes.js' import { QuantityUnit } from '../codes/quantityUnit.js' -import { dateTimeConverter } from '../helpers/dateConverter.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' -import { type Observation } from '../types/observation.js' -import { - type FHIRReference, - fhirReferenceConverter, -} from './baseTypes/fhirReference.js' +import { Coding, Observation, Reference } from 'fhir/r4b.js' +import { ObservationQuantity } from '../types/observationQuantity.js' +import { FHIRResource } from './fhirResource.js' export enum UserObservationCollection { bodyWeight = 'bodyWeightObservations', @@ -44,96 +22,7 @@ export enum UserObservationCollection { potassium = 'potassiumObservations', } -export enum FHIRObservationStatus { - registered = 'registered', - preliminary = 'preliminary', - final = 'final', - amended = 'amended', - corrected = 'corrected', - cancelled = 'cancelled', - entered_in_error = 'entered-in-error', - unknown = 'unknown', -} - -export const fhirObservationComponentConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - code: z.lazy(() => fhirCodeableConceptConverter.value.schema), - valueQuantity: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - }), - encode: (object) => ({ - code: fhirCodeableConceptConverter.value.encode(object.code), - valueQuantity: - object.valueQuantity ? - fhirQuantityConverter.value.encode(object.valueQuantity) - : null, - }), - }), -) - -export type FHIRObservationComponent = z.output< - typeof fhirObservationComponentConverter.value.schema -> - -export const fhirObservationConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - status: z.nativeEnum(FHIRObservationStatus), - code: z.lazy(() => fhirCodeableConceptConverter.value.schema), - component: optionalish( - z - .lazy(() => fhirObservationComponentConverter.value.schema) - .array(), - ), - valueQuantity: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - effectivePeriod: optionalish( - z.lazy(() => fhirPeriodConverter.value.schema), - ), - effectiveDateTime: optionalish(dateTimeConverter.schema), - effectiveInstant: optionalish(dateTimeConverter.schema), - derivedFrom: optionalish(fhirReferenceConverter.value.schema.array()), - }) - .transform((values) => new FHIRObservation(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - status: object.status, - code: fhirCodeableConceptConverter.value.encode(object.code), - component: - object.component?.map( - fhirObservationComponentConverter.value.encode, - ) ?? null, - valueQuantity: - object.valueQuantity ? - fhirQuantityConverter.value.encode(object.valueQuantity) - : null, - effectivePeriod: - object.effectivePeriod ? - fhirPeriodConverter.value.encode(object.effectivePeriod) - : null, - effectiveDateTime: - object.effectiveDateTime ? - dateTimeConverter.encode(object.effectiveDateTime) - : null, - effectiveInstant: - object.effectiveInstant ? - dateTimeConverter.encode(object.effectiveInstant) - : null, - derivedFrom: - object.derivedFrom ? - object.derivedFrom.map(fhirReferenceConverter.value.encode) - : null, - }), - }), -) - -export class FHIRObservation extends FHIRResource { +export class FHIRObservation extends FHIRResource { // Static Functions private static readonly loincDisplay = new Map([ @@ -161,8 +50,9 @@ export class FHIRObservation extends FHIRResource { diastolic: number }): FHIRObservation { return new FHIRObservation({ + resourceType: 'Observation', id: input.id, - status: FHIRObservationStatus.final, + status: 'final', code: { text: this.loincDisplay.get(LoincCode.bloodPressure), coding: [ @@ -213,7 +103,7 @@ export class FHIRObservation extends FHIRResource { }, }, ], - effectiveDateTime: input.date, + effectiveDateTime: input.date.toISOString(), }) } @@ -223,11 +113,12 @@ export class FHIRObservation extends FHIRResource { value: number unit: QuantityUnit code: LoincCode - derivedFrom?: FHIRReference[] + derivedFrom?: Reference[] }): FHIRObservation { return new FHIRObservation({ + resourceType: 'Observation', id: input.id, - status: FHIRObservationStatus.final, + status: 'final', code: { text: this.loincDisplay.get(input.code) ?? undefined, coding: [ @@ -244,27 +135,15 @@ export class FHIRObservation extends FHIRResource { system: input.unit.system, code: input.unit.code, }, - effectiveDateTime: input.date, + effectiveDateTime: input.date.toISOString(), derivedFrom: input.derivedFrom, }) } - // Stored Properties - - readonly resourceType: string = 'Observation' - readonly status: FHIRObservationStatus - readonly code: FHIRCodeableConcept - readonly component?: FHIRObservationComponent[] - readonly valueQuantity?: FHIRQuantity - readonly effectivePeriod?: FHIRPeriod - readonly effectiveDateTime?: Date - readonly effectiveInstant?: Date - readonly derivedFrom?: FHIRReference[] - // Computed Properties - get systolicBloodPressure(): Observation | undefined { - return this.observations({ + get systolicBloodPressure(): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.bloodPressure, system: CodingSystem.loinc, unit: QuantityUnit.mmHg, @@ -275,8 +154,8 @@ export class FHIRObservation extends FHIRResource { }).at(0) } - get diastolicBloodPressure(): Observation | undefined { - return this.observations({ + get diastolicBloodPressure(): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.bloodPressure, system: CodingSystem.loinc, unit: QuantityUnit.mmHg, @@ -287,111 +166,86 @@ export class FHIRObservation extends FHIRResource { }).at(0) } - bodyWeight(unit: QuantityUnit): Observation | undefined { - return this.observations({ + bodyWeight(unit: QuantityUnit): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.bodyWeight, system: CodingSystem.loinc, unit: unit, }).at(0) } - dryWeight(unit: QuantityUnit): Observation | undefined { - return this.observations({ + dryWeight(unit: QuantityUnit): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.dryWeight, system: CodingSystem.loinc, unit: unit, }).at(0) } - get creatinine(): Observation | undefined { - return this.observations({ + get creatinine(): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.creatinine, system: CodingSystem.loinc, unit: QuantityUnit.mg_dL, }).at(0) } - get estimatedGlomerularFiltrationRate(): Observation | undefined { - return this.observations({ + get estimatedGlomerularFiltrationRate(): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.estimatedGlomerularFiltrationRate, system: CodingSystem.loinc, unit: QuantityUnit.mL_min_173m2, }).at(0) } - get heartRate(): Observation | undefined { - return this.observations({ + get heartRate(): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.heartRate, system: CodingSystem.loinc, unit: QuantityUnit.bpm, }).at(0) } - get potassium(): Observation | undefined { - return this.observations({ + get potassium(): ObservationQuantity | undefined { + return this.observationQuantities({ code: LoincCode.potassium, system: CodingSystem.loinc, unit: QuantityUnit.mEq_L, }).at(0) } - // Constructor - - constructor( - input: FHIRResourceInput & { - status: FHIRObservationStatus - code: FHIRCodeableConcept - component?: FHIRObservationComponent[] - valueQuantity?: FHIRQuantity - effectivePeriod?: FHIRPeriod - effectiveDateTime?: Date - effectiveInstant?: Date - derivedFrom?: FHIRReference[] - }, - ) { - super(input) - this.status = input.status - this.code = input.code - this.component = input.component - this.valueQuantity = input.valueQuantity - this.effectivePeriod = input.effectivePeriod - this.effectiveDateTime = input.effectiveDateTime - this.effectiveInstant = input.effectiveInstant - this.derivedFrom = input.derivedFrom - } - // Methods - private observations( + private observationQuantities( options: { unit: QuantityUnit - component?: FHIRCoding - } & FHIRCoding, - ): Observation[] { - const result: Observation[] = [] - if (!this.containsCoding(this.code, [options])) return result + component?: Coding + } & Coding, + ): ObservationQuantity[] { + const result: ObservationQuantity[] = [] + if (!this.containsCoding(this.data.code, [options])) return result const date = - this.effectiveDateTime ?? - this.effectiveInstant ?? - this.effectivePeriod?.start ?? - this.effectivePeriod?.end + this.data.effectiveDateTime ?? + this.data.effectiveInstant ?? + this.data.effectivePeriod?.start ?? + this.data.effectivePeriod?.end if (!date) return result if (options.component) { - for (const component of this.component ?? []) { + for (const component of this.data.component ?? []) { if (!this.containsCoding(component.code, [options.component])) continue const value = options.unit.valueOf(component.valueQuantity) if (!value) continue result.push({ - date: date, + date: new Date(date), value: value, unit: options.unit, }) } } else { - const value = options.unit.valueOf(this.valueQuantity) + const value = options.unit.valueOf(this.data.valueQuantity) if (!value) return result - result.push({ date: date, value: value, unit: options.unit }) + result.push({ date: new Date(date), value: value, unit: options.unit }) } return result } diff --git a/functions/models/src/fhir/fhirQuestionnaire.ts b/functions/models/src/fhir/fhirQuestionnaire.ts index 0d38716b..0f4426c4 100644 --- a/functions/models/src/fhir/fhirQuestionnaire.ts +++ b/functions/models/src/fhir/fhirQuestionnaire.ts @@ -6,138 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' -import { - FHIRResource, - fhirResourceConverter, - type FHIRResourceInput, -} from './baseTypes/fhirElement.js' -import { - fhirQuestionnaireItemConverter, - type FHIRQuestionnaireItem, -} from './baseTypes/fhirQuestionnaireItem.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' -import { - type FHIRUsageContext, - fhirUsageContextConverter, -} from './baseTypes/fhirUsageContext.js' +import { Questionnaire } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource' -export enum FHIRQuestionnairePublicationStatus { - draft = 'draft', - active = 'active', - retired = 'retired', - unknown = 'unknown', -} - -export const fhirContactPointConverter = new SchemaConverter({ - schema: z.object({ - system: optionalish(z.string()), - value: optionalish(z.string()), - }), - encode: (object) => ({ - system: object.system ?? null, - value: object.value ?? null, - }), -}) - -export type FHIRContactPoint = z.output - -export const fhirContactDetailConverter = new SchemaConverter({ - schema: z.object({ - name: optionalish(z.string()), - telecom: optionalish( - z.lazy(() => fhirContactPointConverter.value.schema).array(), - ), - }), - encode: (object) => ({ - name: object.name ?? null, - telecom: - object.telecom?.map(fhirContactPointConverter.value.encode) ?? null, - }), -}) - -export type FHIRContactDetail = z.output< - typeof fhirContactDetailConverter.schema -> - -export const fhirQuestionnaireConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - status: z.nativeEnum(FHIRQuestionnairePublicationStatus), - title: optionalish(z.string()), - language: optionalish(z.string()), - subjectType: optionalish(z.string().array()), - publisher: optionalish(z.string()), - useContext: optionalish(fhirUsageContextConverter.schema.array()), - url: optionalish(z.string()), - contact: optionalish( - z.lazy(() => fhirContactDetailConverter.value.schema).array(), - ), - item: optionalish( - z.lazy(() => fhirQuestionnaireItemConverter.value.schema).array(), - ), - }) - .transform((values) => new FHIRQuestionnaire(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - title: object.title ?? null, - language: object.language ?? null, - status: object.status, - publisher: object.publisher ?? null, - subjectType: object.subjectType ?? null, - useContext: - object.useContext?.map(fhirUsageContextConverter.encode) ?? null, - contact: - object.contact?.map(fhirContactDetailConverter.value.encode) ?? null, - url: object.url ?? null, - item: - object.item?.map(fhirQuestionnaireItemConverter.value.encode) ?? null, - }), - }), -) - -export class FHIRQuestionnaire extends FHIRResource { - // Properties - - readonly resourceType: string = 'Questionnaire' - readonly title?: string - readonly status: FHIRQuestionnairePublicationStatus - readonly language?: string - readonly contact?: FHIRContactDetail[] - readonly useContext?: FHIRUsageContext[] - readonly subjectType?: string[] - readonly publisher?: string - readonly url?: string - readonly item?: FHIRQuestionnaireItem[] - - // Constructor - - constructor( - input: FHIRResourceInput & { - title?: string - status: FHIRQuestionnairePublicationStatus - language?: string - contact?: FHIRContactDetail[] - useContext?: FHIRUsageContext[] - subjectType?: string[] - publisher?: string - url?: string - item?: FHIRQuestionnaireItem[] - }, - ) { - super(input) - this.title = input.title - this.status = input.status - this.language = input.language - this.contact = input.contact - this.useContext = input.useContext - this.subjectType = input.subjectType - this.publisher = input.publisher - this.url = input.url - this.item = input.item - } -} +export class FHIRQuestionnaire extends FHIRResource {} diff --git a/functions/models/src/fhir/fhirQuestionnaireResponse.ts b/functions/models/src/fhir/fhirQuestionnaireResponse.ts index aa76579f..d4e70dc1 100644 --- a/functions/models/src/fhir/fhirQuestionnaireResponse.ts +++ b/functions/models/src/fhir/fhirQuestionnaireResponse.ts @@ -6,168 +6,13 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' -import { fhirCodingConverter } from './baseTypes/fhirCoding.js' -import { - FHIRResource, - fhirResourceConverter, - type FHIRResourceInput, -} from './baseTypes/fhirElement.js' -import { dateConverter, dateTimeConverter } from '../helpers/dateConverter.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' -import { fhirQuantityConverter } from './baseTypes/fhirQuantity.js' - -const fhirQuestionnaireResponseItemBaseConverter = new SchemaConverter({ - schema: z.object({ - answer: optionalish( - z - .object({ - valueCoding: optionalish( - z.lazy(() => fhirCodingConverter.value.schema), - ), - valueDate: optionalish(dateConverter.schema), - valueDateTime: optionalish(dateTimeConverter.schema), - valueString: optionalish(z.string()), - valueBoolean: optionalish(z.boolean()), - valueInteger: optionalish(z.number().int()), - valueDecimal: optionalish(z.number()), - valueQuantity: optionalish( - z.lazy(() => fhirQuantityConverter.value.schema), - ), - }) - .array(), - ), - linkId: optionalish(z.string()), - }), - encode: (object) => ({ - answer: - object.answer?.flatMap((value) => ({ - valueCoding: - value.valueCoding ? - fhirCodingConverter.value.encode(value.valueCoding) - : null, - valueDate: - value.valueDate ? dateConverter.encode(value.valueDate) : null, - valueDateTime: - value.valueDateTime ? - dateTimeConverter.encode(value.valueDateTime) - : null, - valueString: value.valueString ?? null, - valueBoolean: value.valueBoolean ?? null, - valueInteger: value.valueInteger ?? null, - valueDecimal: value.valueDecimal ?? null, - valueQuantity: - value.valueQuantity ? - fhirQuantityConverter.value.encode(value.valueQuantity) - : null, - })) ?? null, - linkId: object.linkId ?? null, - }), -}) - -export interface FHIRQuestionnaireResponseItemValue - extends z.input< - typeof fhirQuestionnaireResponseItemBaseConverter.value.schema - > { - item?: - | Array> - | null - | undefined -} - -export const fhirQuestionnaireResponseItemConverter = (() => { - const fhirQuestionnaireResponseItemSchema: z.ZodType< - FHIRQuestionnaireResponseItem, - z.ZodTypeDef, - FHIRQuestionnaireResponseItemValue - > = fhirQuestionnaireResponseItemBaseConverter.value.schema.extend({ - item: optionalish( - z.array(z.lazy(() => fhirQuestionnaireResponseItemSchema)), - ), - }) - - function fhirQuestionnaireResponseItemEncode( - object: z.output, - ): z.input { - return { - ...fhirQuestionnaireResponseItemBaseConverter.value.encode(object), - item: - object.item ? - object.item.map(fhirQuestionnaireResponseItemConverter.value.encode) - : null, - } - } - - return new SchemaConverter({ - schema: fhirQuestionnaireResponseItemSchema, - encode: fhirQuestionnaireResponseItemEncode, - }) -})() - -export interface FHIRQuestionnaireResponseItem - extends z.output< - typeof fhirQuestionnaireResponseItemBaseConverter.value.schema - > { - item?: FHIRQuestionnaireResponseItem[] -} - -export const fhirQuestionnaireResponseConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - authored: optionalish(dateTimeConverter.schema), - item: optionalish( - z - .lazy(() => fhirQuestionnaireResponseItemConverter.value.schema) - .array(), - ), - questionnaire: z.string(), - }) - .transform((values) => new FHIRQuestionnaireResponse(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - authored: - object.authored !== undefined ? - dateTimeConverter.encode(object.authored) - : null, - item: - object.item?.map( - fhirQuestionnaireResponseItemConverter.value.encode, - ) ?? null, - questionnaire: object.questionnaire, - }), - }), -) - -export class FHIRQuestionnaireResponse extends FHIRResource { - // Stored Properties - - readonly resourceType: string = 'QuestionnaireResponse' - readonly authored?: Date - readonly item?: FHIRQuestionnaireResponseItem[] - readonly questionnaire: string - - // Constructor - - constructor( - input: FHIRResourceInput & { - authored?: Date - item?: FHIRQuestionnaireResponseItem[] - questionnaire: string - }, - ) { - super(input) - this.authored = input.authored - this.item = input.item - this.questionnaire = input.questionnaire - } +import { QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource.js' +export class FHIRQuestionnaireResponse extends FHIRResource { // Methods - Response items from path - responseItem(linkIdPath: string[]): FHIRQuestionnaireResponseItem | null { + responseItem(linkIdPath: string[]): QuestionnaireResponseItem | null { const items = this.responseItems(linkIdPath) switch (items.length) { case 0: @@ -179,9 +24,9 @@ export class FHIRQuestionnaireResponse extends FHIRResource { } } - responseItems(linkIdPath: string[]): FHIRQuestionnaireResponseItem[] { - const resultValue: FHIRQuestionnaireResponseItem[] = [] - for (const child of this.item ?? []) { + responseItems(linkIdPath: string[]): QuestionnaireResponseItem[] { + const resultValue: QuestionnaireResponseItem[] = [] + for (const child of this.data.item ?? []) { resultValue.push(...this.responseItemsRecursive(linkIdPath, child)) } return resultValue @@ -189,8 +34,8 @@ export class FHIRQuestionnaireResponse extends FHIRResource { private responseItemsRecursive( linkIdPath: string[], - item: FHIRQuestionnaireResponseItem, - ): FHIRQuestionnaireResponseItem[] { + item: QuestionnaireResponseItem, + ): QuestionnaireResponseItem[] { switch (linkIdPath.length) { case 0: break @@ -202,7 +47,7 @@ export class FHIRQuestionnaireResponse extends FHIRResource { default: if (item.linkId === linkIdPath[0]) { const childLinkIds = linkIdPath.slice(1) - const resultValue: FHIRQuestionnaireResponseItem[] = [] + const resultValue: QuestionnaireResponseItem[] = [] for (const child of item.item ?? []) { resultValue.push( ...this.responseItemsRecursive(childLinkIds, child), @@ -217,7 +62,7 @@ export class FHIRQuestionnaireResponse extends FHIRResource { // Methods - Response items from leaf link id - leafResponseItem(linkId: string): FHIRQuestionnaireResponseItem | null { + leafResponseItem(linkId: string): QuestionnaireResponseItem | null { const items = this.leafResponseItems(linkId) switch (items.length) { case 0: @@ -229,9 +74,9 @@ export class FHIRQuestionnaireResponse extends FHIRResource { } } - leafResponseItems(linkId: string): FHIRQuestionnaireResponseItem[] { - const items: FHIRQuestionnaireResponseItem[] = [] - for (const item of this.item ?? []) { + leafResponseItems(linkId: string): QuestionnaireResponseItem[] { + const items: QuestionnaireResponseItem[] = [] + for (const item of this.data.item ?? []) { items.push(...this.leafResponseItemsRecursive(linkId, item)) } return items @@ -239,13 +84,13 @@ export class FHIRQuestionnaireResponse extends FHIRResource { private leafResponseItemsRecursive( linkId: string, - item: FHIRQuestionnaireResponseItem, - ): FHIRQuestionnaireResponseItem[] { + item: QuestionnaireResponseItem, + ): QuestionnaireResponseItem[] { const children = item.item ?? [] if (children.length === 0 && item.linkId === linkId) { return [item] } - const items: FHIRQuestionnaireResponseItem[] = [] + const items: QuestionnaireResponseItem[] = [] for (const child of item.item ?? []) { items.push(...this.leafResponseItemsRecursive(linkId, child)) } diff --git a/functions/models/src/fhir/fhirResource.ts b/functions/models/src/fhir/fhirResource.ts new file mode 100644 index 00000000..452c1958 --- /dev/null +++ b/functions/models/src/fhir/fhirResource.ts @@ -0,0 +1,66 @@ +// +// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project +// +// SPDX-FileCopyrightText: 2023 Stanford University +// +// SPDX-License-Identifier: MIT +// + +import { CodeableConcept, Coding, DomainResource, Extension } from 'fhir/r4b' +import { FHIRExtensionUrl } from '../codes/codes' + +export abstract class FHIRResource { + // Properties + + data: ResourceType + + // Constructor + + constructor(data: ResourceType) { + this.data = data + } + + // Methods + + codes(concept: CodeableConcept | undefined, filter: Coding): string[] { + return ( + concept?.coding?.flatMap((coding) => { + if (filter.system && coding.system !== filter.system) return [] + if (filter.version && coding.version !== filter.version) return [] + return coding.code ? [coding.code] : [] + }) ?? [] + ) + } + + containsCoding( + concept: CodeableConcept | undefined, + filter: Coding[], + ): boolean { + return filter.some( + (filterCoding) => + concept?.coding?.some((coding) => { + if (filterCoding.code && coding.code !== filterCoding.code) + return false + if (filterCoding.system && coding.system !== filterCoding.system) + return false + if (filterCoding.version && coding.version !== filterCoding.version) + return false + return true + }) ?? false, + ) + } + + containedResource(id: string): T | undefined { + return this.data.contained?.find((resource) => resource.id === id) as + | T + | undefined + } + + extensionsWithUrl(url: FHIRExtensionUrl): Extension[] { + return ( + this.data.extension?.filter( + (extension) => extension.url === url.toString(), + ) ?? [] + ) + } +} diff --git a/functions/models/src/helpers/schemaConverter.ts b/functions/models/src/helpers/schemaConverter.ts index a778cb4e..6d2a6c83 100644 --- a/functions/models/src/helpers/schemaConverter.ts +++ b/functions/models/src/helpers/schemaConverter.ts @@ -10,6 +10,21 @@ import { type z } from 'zod' import { type Lazy } from './lazy.js' export class SchemaConverter { + // Static functions + + static keepingProperties( + schema: Schema, + properties: (keyof z.infer)[], + ): SchemaConverter> { + return new SchemaConverter({ + schema: schema, + encode: (value) => { + const result = schema.parse(value) + return result + }, + }) + } + // Properties readonly schema: Schema diff --git a/functions/models/src/index.ts b/functions/models/src/index.ts index 3ce8da52..bc63d263 100644 --- a/functions/models/src/index.ts +++ b/functions/models/src/index.ts @@ -9,19 +9,10 @@ export * from './codes/codes.js' export * from './codes/quantityUnit.js' export * from './codes/references.js' -export * from './fhir/baseTypes/fhirCodeableConcept.js' -export * from './fhir/baseTypes/fhirCoding.js' -export * from './fhir/baseTypes/fhirDosage.js' -export * from './fhir/baseTypes/fhirElement.js' -export * from './fhir/baseTypes/fhirPeriod.js' -export * from './fhir/baseTypes/fhirQuantity.js' -export * from './fhir/baseTypes/fhirQuestionnaireItem.js' -export * from './fhir/baseTypes/fhirRatio.js' -export * from './fhir/baseTypes/fhirReference.js' -export * from './fhir/baseTypes/fhirTiming.js' export * from './fhir/fhirAllergyIntolerance.js' export * from './fhir/fhirAppointment.js' export * from './fhir/fhirMedication.js' +export * from './fhir/fhirMedicationRequest.js' export * from './fhir/fhirObservation.js' export * from './fhir/fhirQuestionnaire.js' export * from './fhir/fhirQuestionnaireResponse.js' @@ -52,7 +43,7 @@ export * from './helpers/schemaConverter.js' export * from './types/invitation.js' export * from './types/localizedText.js' export * from './types/medicationClass.js' -export * from './types/observation.js' +export * from './types/observationQuantity.js' export * from './types/organization.js' export * from './types/symptomQuestionnaireResponse.js' export * from './types/symptomScore.js' diff --git a/functions/models/src/types/observation.ts b/functions/models/src/types/observationQuantity.ts similarity index 89% rename from functions/models/src/types/observation.ts rename to functions/models/src/types/observationQuantity.ts index 3b44b590..1e018017 100644 --- a/functions/models/src/types/observation.ts +++ b/functions/models/src/types/observationQuantity.ts @@ -8,7 +8,7 @@ import { type QuantityUnit } from '../codes/quantityUnit.js' -export interface Observation { +export interface ObservationQuantity { date: Date value: number unit: QuantityUnit diff --git a/functions/models/src/types/userMedicationRecommendation.ts b/functions/models/src/types/userMedicationRecommendation.ts index 91d5349e..c99d545d 100644 --- a/functions/models/src/types/userMedicationRecommendation.ts +++ b/functions/models/src/types/userMedicationRecommendation.ts @@ -8,13 +8,11 @@ import { z } from 'zod' import { localizedTextConverter } from './localizedText.js' -import { - type FHIRReference, - fhirReferenceConverter, -} from '../fhir/baseTypes/fhirReference.js' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' +import { Reference } from 'fhir/r4b.js' +import { referenceSchema } from 'spezi-firebase-fhir' export enum UserMedicationRecommendationType { improvementAvailable = 'improvementAvailable', @@ -120,12 +118,8 @@ export const userMedicationRecommendationConverter = new Lazy( new SchemaConverter({ schema: z .object({ - currentMedication: z - .lazy(() => fhirReferenceConverter.value.schema) - .array(), - recommendedMedication: optionalish( - z.lazy(() => fhirReferenceConverter.value.schema), - ), + currentMedication: z.lazy(() => referenceSchema).array(), + recommendedMedication: optionalish(z.lazy(() => referenceSchema)), displayInformation: z.lazy( () => userMedicationRecommendationDisplayInformationConverter.value @@ -152,15 +146,15 @@ export const userMedicationRecommendationConverter = new Lazy( export class UserMedicationRecommendation { // Properties - readonly currentMedication: FHIRReference[] - readonly recommendedMedication?: FHIRReference + readonly currentMedication: Reference[] + readonly recommendedMedication?: Reference readonly displayInformation: UserMedicationRecommendationDisplayInformation // Constructor constructor(input: { - currentMedication: FHIRReference[] - recommendedMedication?: FHIRReference + currentMedication: Reference[] + recommendedMedication?: Reference displayInformation: UserMedicationRecommendationDisplayInformation }) { this.currentMedication = input.currentMedication diff --git a/functions/package-lock.json b/functions/package-lock.json index 34189ee9..1ad54509 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -42,12 +42,44 @@ "node": "22" } }, + "../../spezi-firebase/packages/spezi-firebase-fhir": { + "name": "@stanfordspezi/spezi-firebase-fhir", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "@stanfordspezi/spezi-firebase-utils": "file:../spezi-firebase-utils", + "firebase-admin": "^12.0", + "zod": "^3.25" + }, + "devDependencies": { + "@types/jest": "^29.5.3", + "@types/node": "^20", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", + "eslint": "^8.57", + "eslint-config-google": "^0.14", + "eslint-config-prettier": "^9", + "eslint-plugin-import": "^2", + "eslint-plugin-prettier": "^5", + "jest": "^29.6.2", + "ts-jest": "^29.1.1", + "typescript": "^5" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "firebase-admin": "^12.0" + } + }, "models": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { + "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir", "zod": "^3.23.8" }, "devDependencies": { + "@types/fhir": "^0.0.41", "@types/node": "^20", "eslint": "^9.22", "eslint-config-google": "^0.14", @@ -65,6 +97,10 @@ "node": "22" } }, + "models/node_modules/spezi-firebase-fhir": { + "resolved": "../../spezi-firebase/packages/spezi-firebase-fhir", + "link": true + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -3076,6 +3112,13 @@ "@types/send": "*" } }, + "node_modules/@types/fhir": { + "version": "0.0.41", + "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.41.tgz", + "integrity": "sha512-MAQAFufNZBZ6V0F94Nhknmmh/E3iMXFK4n/L8RkSNjKtOJnvaAJERivNOj35VVx9VCQBJbE0BHSzikfBahoRhA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/geojson": { "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", @@ -11860,9 +11903,9 @@ } }, "node_modules/zod": { - "version": "3.24.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" From 1653d5611cec85de8104e5362fcde0401d8e5613 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Tue, 22 Jul 2025 22:12:46 +0200 Subject: [PATCH 02/18] Fix some more things and then break everything --- functions/models/package-lock.json | 12 +- functions/models/package.json | 1 - .../models/src/fhir/fhirAllergyIntolerance.ts | 46 ++--- functions/models/src/fhir/fhirAppointment.ts | 114 +++--------- functions/models/src/fhir/fhirMedication.ts | 14 +- .../models/src/fhir/fhirMedicationRequest.ts | 22 ++- functions/models/src/fhir/fhirObservation.ts | 10 + .../models/src/fhir/fhirQuestionnaire.ts | 14 +- .../src/fhir/fhirQuestionnaireResponse.ts | 12 ++ functions/models/src/fhir/fhirResource.ts | 8 +- .../models/src/functions/createInvitation.ts | 2 +- functions/models/src/functions/customSeed.ts | 6 +- functions/models/src/functions/defaultSeed.ts | 4 +- .../models/src/functions/deleteInvitation.ts | 2 +- functions/models/src/functions/deleteUser.ts | 2 +- functions/models/src/functions/disableUser.ts | 2 +- .../models/src/functions/dismissMessage.ts | 2 +- .../models/src/functions/dismissMessages.ts | 2 +- functions/models/src/functions/enableUser.ts | 2 +- functions/models/src/functions/enrollUser.ts | 2 +- .../src/functions/exportHealthSummary.ts | 2 +- .../src/functions/getUsersInformation.ts | 2 +- functions/models/src/functions/phoneNumber.ts | 2 +- .../models/src/functions/registerDevice.ts | 2 +- .../src/functions/shareHealthSummary.ts | 2 +- .../models/src/functions/unregisterDevice.ts | 2 +- .../models/src/functions/updateStaticData.ts | 2 +- .../src/functions/updateUserInformation.ts | 2 +- functions/models/src/helpers/dateConverter.ts | 2 +- .../models/src/helpers/fhirSchemaConverter.ts | 59 ++++++ functions/models/src/helpers/optionalish.ts | 2 +- .../models/src/helpers/schemaConverter.ts | 17 +- functions/models/src/index.ts | 1 + functions/models/src/types/invitation.ts | 2 +- functions/models/src/types/localizedText.ts | 4 +- functions/models/src/types/medicationClass.ts | 2 +- functions/models/src/types/organization.ts | 2 +- functions/models/src/types/symptomScore.ts | 2 +- functions/models/src/types/user.ts | 2 +- functions/models/src/types/userAuth.ts | 2 +- functions/models/src/types/userDevice.ts | 2 +- .../src/types/userMedicationRecommendation.ts | 22 +-- functions/models/src/types/userMessage.ts | 2 +- .../models/src/types/userMessagesSettings.ts | 2 +- .../models/src/types/userRegistration.ts | 2 +- functions/models/src/types/userShareCode.ts | 2 +- functions/models/src/types/video.ts | 2 +- functions/models/src/types/videoSection.ts | 2 +- functions/package-lock.json | 15 +- functions/package.json | 3 +- .../src/functions/createInvitation.test.ts | 2 +- functions/src/functions/defaultSeed.ts | 2 +- functions/src/functions/helpers.ts | 2 +- functions/src/functions/updateStaticData.ts | 2 +- .../src/healthSummary/keyPointsMessage.ts | 2 +- .../services/database/databaseConverter.ts | 2 +- .../src/services/history/historyService.ts | 2 +- .../egfr/egfrCalculator.test.ts | 2 +- .../questionnaireResponseService.ts | 2 +- .../src/services/seeding/seedingService.ts | 2 +- .../registrationQuestionnaireFactory.ts | 3 +- .../seeding/staticData/rxNorm/rxNormApi.ts | 2 +- .../seeding/staticData/rxNorm/rxNormModels.ts | 2 +- .../staticData/rxNorm/rxNormService.test.ts | 12 +- .../staticData/rxNorm/rxNormService.ts | 174 ++++++++++-------- .../seeding/staticData/staticDataService.ts | 20 +- .../services/trigger/triggerService.test.ts | 7 +- .../src/services/trigger/triggerService.ts | 16 +- functions/src/tests/mocks/questionnaire.ts | 37 ++-- .../src/tests/mocks/recommendationVitals.ts | 7 +- 70 files changed, 383 insertions(+), 363 deletions(-) create mode 100644 functions/models/src/helpers/fhirSchemaConverter.ts diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index 150a9d12..4a115c58 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -6,8 +6,7 @@ "": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir", - "zod": "^3.23.8" + "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" }, "devDependencies": { "@types/fhir": "^0.0.41", @@ -7213,15 +7212,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/functions/models/package.json b/functions/models/package.json index d31d9208..c76c41e2 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -22,7 +22,6 @@ ], "main": "lib/index.js", "dependencies": { - "zod": "^3.23.8", "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" }, "devDependencies": { diff --git a/functions/models/src/fhir/fhirAllergyIntolerance.ts b/functions/models/src/fhir/fhirAllergyIntolerance.ts index 7c6cfbeb..d57a5cae 100644 --- a/functions/models/src/fhir/fhirAllergyIntolerance.ts +++ b/functions/models/src/fhir/fhirAllergyIntolerance.ts @@ -6,46 +6,17 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' import { CodingSystem } from '../codes/codes.js' import { type MedicationReference } from '../codes/references.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' import { AllergyIntolerance } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' import { AllergyIntoleranceCriticality, + allergyIntoleranceSchema, AllergyIntoleranceType, } from 'spezi-firebase-fhir' - -/* -export const fhirAllergyIntoleranceConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - type: z.nativeEnum(FHIRAllergyIntoleranceType), - criticality: optionalish( - z.nativeEnum(FHIRAllergyIntoleranceCriticality), - ), - code: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - }) - .transform((values) => new FHIRAllergyIntolerance(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - type: object.type, - criticality: object.criticality ?? null, - code: - object.code ? - fhirCodeableConceptConverter.value.encode(object.code) - : null, - }), - }), -) - */ +import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' +import { ZodType } from 'zod/v4' export class FHIRAllergyIntolerance extends FHIRResource { // Static Functions @@ -80,3 +51,14 @@ export class FHIRAllergyIntolerance extends FHIRResource { return this.codes(this.data.code, { system: CodingSystem.rxNorm }) } } + +const schema: ZodType = allergyIntoleranceSchema +/* +export const allergyIntoleranceConverter = + new FHIRSchemaConverter({ + schema: allergyIntoleranceSchema.transform( + (data) => new FHIRAllergyIntolerance(data), + ), + nullProperties: [], + }) + */ diff --git a/functions/models/src/fhir/fhirAppointment.ts b/functions/models/src/fhir/fhirAppointment.ts index fd5b3590..62f641aa 100644 --- a/functions/models/src/fhir/fhirAppointment.ts +++ b/functions/models/src/fhir/fhirAppointment.ts @@ -12,96 +12,6 @@ import { AppointmentStatus } from 'spezi-firebase-fhir' import { compactMap } from '../helpers/array.js' import { FHIRExtensionUrl } from '../codes/codes.js' -/* -import { z } from 'zod' -import { fhirCodeableConceptConverter } from './baseTypes/fhirCodeableConcept.js' -import { - FHIRResource, - fhirResourceConverter, - type FHIRResourceInput, -} from './baseTypes/fhirElement.js' -import { fhirReferenceConverter } from './baseTypes/fhirReference.js' -import { FHIRExtensionUrl } from '../codes/codes.js' -import { compactMap } from '../helpers/array.js' -import { dateTimeConverter } from '../helpers/dateConverter.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' - -export enum FHIRAppointmentStatus { - proposed = 'proposed', - pending = 'pending', - booked = 'booked', - arrived = 'arrived', - fulfilled = 'fulfilled', - cancelled = 'cancelled', - noshow = 'noshow', - enterdInError = 'entered-in-error', - checkedIn = 'checked-in', - waitlist = 'waitlist', -} - -export const fhirAppointmentParticipantConverter = new Lazy( - () => - new SchemaConverter({ - schema: z.object({ - actor: optionalish(z.lazy(() => fhirReferenceConverter.value.schema)), - type: optionalish( - z.lazy(() => fhirCodeableConceptConverter.value.schema), - ), - }), - encode: (object) => ({ - actor: - object.actor ? - fhirReferenceConverter.value.encode(object.actor) - : null, - type: - object.type ? - fhirCodeableConceptConverter.value.encode(object.type) - : null, - }), - }), -) - -export type FHIRAppointmentParticipant = z.output< - typeof fhirAppointmentParticipantConverter.value.schema -> - -export const fhirAppointmentConverter = new Lazy( - () => - new SchemaConverter({ - schema: fhirResourceConverter.value.schema - .extend({ - status: z.nativeEnum(FHIRAppointmentStatus), - created: dateTimeConverter.schema, - start: dateTimeConverter.schema, - end: dateTimeConverter.schema, - comment: optionalish(z.string()), - patientInstruction: optionalish(z.string()), - participant: optionalish( - z - .lazy(() => fhirAppointmentParticipantConverter.value.schema) - .array(), - ), - }) - .transform((values) => new FHIRAppointment(values)), - encode: (object) => ({ - ...fhirResourceConverter.value.encode(object), - status: object.status, - created: dateTimeConverter.encode(object.created), - start: dateTimeConverter.encode(object.start), - end: dateTimeConverter.encode(object.end), - comment: object.comment ?? null, - patientInstruction: object.patientInstruction ?? null, - participant: - object.participant?.map( - fhirAppointmentParticipantConverter.value.encode, - ) ?? null, - }), - }), -) - */ - export class FHIRAppointment extends FHIRResource { // Static Functions @@ -133,6 +43,22 @@ export class FHIRAppointment extends FHIRResource { // Computed Properties + get startDate(): Date | undefined { + return this.data.start ? new Date(this.data.start) : undefined + } + + set startDate(date: Date) { + this.data.start = date.toISOString() + } + + get endDate(): Date | undefined { + return this.data.end ? new Date(this.data.end) : undefined + } + + set endDate(date: Date) { + this.data.end = date.toISOString() + } + get providerNames(): string[] { return compactMap( this.extensionsWithUrl(FHIRExtensionUrl.providerName), @@ -140,3 +66,11 @@ export class FHIRAppointment extends FHIRResource { ) } } + +/* +export const fhirAppointmentConverter = + new FHIRSchemaConverter({ + schema: appointmentSchema.transform((data) => new FHIRAppointment(data)), + nullProperties: [], + }) +*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirMedication.ts b/functions/models/src/fhir/fhirMedication.ts index a4a6cd2f..b7cda513 100644 --- a/functions/models/src/fhir/fhirMedication.ts +++ b/functions/models/src/fhir/fhirMedication.ts @@ -11,8 +11,8 @@ import { FHIRResource } from './fhirResource' import { CodingSystem, FHIRExtensionUrl } from '../codes/codes' import { QuantityUnit } from '../codes/quantityUnit' import { FHIRMedicationRequest } from './fhirMedicationRequest' - - +import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' +import { medicationRequestSchema } from 'spezi-firebase-fhir' export class FHIRMedication extends FHIRResource { // Computed Properties @@ -86,3 +86,13 @@ export class FHIRMedication extends FHIRResource { )?.code } } + +/* +export const fhirMedicationConverter = + new FHIRSchemaConverter({ + schema: medicationRequestSchema.transform( + (data) => new FHIRMedicationRequest(data), + ), + nullProperties: [], + }) +*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirMedicationRequest.ts b/functions/models/src/fhir/fhirMedicationRequest.ts index c0c60408..078d1981 100644 --- a/functions/models/src/fhir/fhirMedicationRequest.ts +++ b/functions/models/src/fhir/fhirMedicationRequest.ts @@ -6,22 +6,24 @@ // SPDX-License-Identifier: MIT // -import { Extension, MedicationRequest, Reference } from 'fhir/r4b' -import { FHIRResource } from './fhirResource' -import { QuantityUnit } from '../codes/quantityUnit' +import { Extension, MedicationRequest } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource.js' +import { medicationRequestSchema } from 'spezi-firebase-fhir' +import { QuantityUnit } from '../codes/quantityUnit.js' export class FHIRMedicationRequest extends FHIRResource { // Static Functions static create(input: { + id?: string medicationReference: string medicationReferenceDisplay?: string frequencyPerDay: number quantity: number extension?: Extension[] - userId: string }): FHIRMedicationRequest { return new FHIRMedicationRequest({ + id: input.id, resourceType: 'MedicationRequest', medicationReference: { reference: input.medicationReference, @@ -49,4 +51,16 @@ export class FHIRMedicationRequest extends FHIRResource { ], }) } + + // Computed Properties } + +/* +export const medicationRequestSchema = + new FHIRSchemaConverter({ + schema: medicationRequestSchema.transform( + (data) => new FHIRMedicationRequest(data), + ), + nullProperties: [], + }) +*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirObservation.ts b/functions/models/src/fhir/fhirObservation.ts index ed58917c..1d89c838 100644 --- a/functions/models/src/fhir/fhirObservation.ts +++ b/functions/models/src/fhir/fhirObservation.ts @@ -11,6 +11,8 @@ import { QuantityUnit } from '../codes/quantityUnit.js' import { Coding, Observation, Reference } from 'fhir/r4b.js' import { ObservationQuantity } from '../types/observationQuantity.js' import { FHIRResource } from './fhirResource.js' +import { observationSchema } from 'spezi-firebase-fhir' +import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' export enum UserObservationCollection { bodyWeight = 'bodyWeightObservations', @@ -250,3 +252,11 @@ export class FHIRObservation extends FHIRResource { return result } } + +/* +export const fhirObservationConverter = + new FHIRSchemaConverter({ + schema: observationSchema.transform((data) => new FHIRObservation(data)), + nullProperties: ['effectiveDateTime', 'effectiveInstant'], + }) +*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirQuestionnaire.ts b/functions/models/src/fhir/fhirQuestionnaire.ts index 0f4426c4..2d1b99c8 100644 --- a/functions/models/src/fhir/fhirQuestionnaire.ts +++ b/functions/models/src/fhir/fhirQuestionnaire.ts @@ -7,6 +7,18 @@ // import { Questionnaire } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource' +import { FHIRResource } from './fhirResource.js' +import { questionnaireSchema } from 'spezi-firebase-fhir' +import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' export class FHIRQuestionnaire extends FHIRResource {} + +/* +export const fhirQuestionnaireConverter = + new FHIRSchemaConverter({ + schema: questionnaireSchema.transform( + (data) => new FHIRQuestionnaire(data), + ), + nullProperties: ['date'], + }) +*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirQuestionnaireResponse.ts b/functions/models/src/fhir/fhirQuestionnaireResponse.ts index d4e70dc1..d5edcc91 100644 --- a/functions/models/src/fhir/fhirQuestionnaireResponse.ts +++ b/functions/models/src/fhir/fhirQuestionnaireResponse.ts @@ -8,6 +8,8 @@ import { QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' +import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' +import { questionnaireResponseSchema } from 'spezi-firebase-fhir' export class FHIRQuestionnaireResponse extends FHIRResource { // Methods - Response items from path @@ -97,3 +99,13 @@ export class FHIRQuestionnaireResponse extends FHIRResource({ + schema: questionnaireResponseSchema.transform( + (data) => new FHIRQuestionnaireResponse(data), + ), + nullProperties: ['authored'], + }) +*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirResource.ts b/functions/models/src/fhir/fhirResource.ts index 452c1958..e3323da1 100644 --- a/functions/models/src/fhir/fhirResource.ts +++ b/functions/models/src/fhir/fhirResource.ts @@ -6,10 +6,12 @@ // SPDX-License-Identifier: MIT // -import { CodeableConcept, Coding, DomainResource, Extension } from 'fhir/r4b' -import { FHIRExtensionUrl } from '../codes/codes' +import { CodeableConcept, Coding, DomainResource, Extension } from 'fhir/r4b.js' +import { FHIRExtensionUrl } from '../codes/codes.js' -export abstract class FHIRResource { +export abstract class FHIRResource< + ResourceType extends DomainResource = DomainResource, +> { // Properties data: ResourceType diff --git a/functions/models/src/functions/createInvitation.ts b/functions/models/src/functions/createInvitation.ts index 3ff8b152..95153f27 100644 --- a/functions/models/src/functions/createInvitation.ts +++ b/functions/models/src/functions/createInvitation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { userAuthConverter } from '../types/userAuth.js' import { userRegistrationConverter } from '../types/userRegistration.js' diff --git a/functions/models/src/functions/customSeed.ts b/functions/models/src/functions/customSeed.ts index 55143dfc..22913fe8 100644 --- a/functions/models/src/functions/customSeed.ts +++ b/functions/models/src/functions/customSeed.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { optionalish } from '../helpers/optionalish.js' import { userConverter } from '../types/user.js' @@ -18,12 +18,12 @@ export const userSeedingOptionsSchema = z.object({ displayName: z.string(), }), user: optionalish(z.lazy(() => userConverter.value.schema)), - collections: optionalish(z.record(z.record(z.any()))), + collections: optionalish(z.record(z.string(), z.record(z.string(), z.any()))), }) export type UserSeedingOptions = z.output export const customSeedingOptionsSchema = z.object({ users: userSeedingOptionsSchema.array(), - firestore: optionalish(z.record(z.record(z.any()))), + firestore: optionalish(z.record(z.string(), z.record(z.string(), z.any()))), }) export type CustomSeedingOptions = z.output diff --git a/functions/models/src/functions/defaultSeed.ts b/functions/models/src/functions/defaultSeed.ts index af0bcf06..bc1869df 100644 --- a/functions/models/src/functions/defaultSeed.ts +++ b/functions/models/src/functions/defaultSeed.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { updateStaticDataInputSchema } from './updateStaticData.js' import { dateTimeConverter } from '../helpers/dateConverter.js' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' @@ -34,7 +34,7 @@ export enum UserDebugDataComponent { } export const defaultSeedInputSchema = z.object({ - date: dateTimeConverter.schema.default(new Date().toISOString()), + date: dateTimeConverter.schema.default(new Date()), only: optionalishDefault( z.nativeEnum(DebugDataComponent).array(), Object.values(DebugDataComponent), diff --git a/functions/models/src/functions/deleteInvitation.ts b/functions/models/src/functions/deleteInvitation.ts index e0cfb929..ef3752d7 100644 --- a/functions/models/src/functions/deleteInvitation.ts +++ b/functions/models/src/functions/deleteInvitation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' export const deleteInvitationInputSchema = z.object({ invitationCode: z.string(), diff --git a/functions/models/src/functions/deleteUser.ts b/functions/models/src/functions/deleteUser.ts index c3f65265..b3b6b2b6 100644 --- a/functions/models/src/functions/deleteUser.ts +++ b/functions/models/src/functions/deleteUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' export const deleteUserInputSchema = z.object({ userId: z.string(), diff --git a/functions/models/src/functions/disableUser.ts b/functions/models/src/functions/disableUser.ts index 50269220..ec646f2b 100644 --- a/functions/models/src/functions/disableUser.ts +++ b/functions/models/src/functions/disableUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' export const disableUserInputSchema = z.object({ userId: z.string(), diff --git a/functions/models/src/functions/dismissMessage.ts b/functions/models/src/functions/dismissMessage.ts index f1f97b1d..342fd54f 100644 --- a/functions/models/src/functions/dismissMessage.ts +++ b/functions/models/src/functions/dismissMessage.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' export const dismissMessageInputSchema = z.object({ diff --git a/functions/models/src/functions/dismissMessages.ts b/functions/models/src/functions/dismissMessages.ts index f413883e..ac9a5191 100644 --- a/functions/models/src/functions/dismissMessages.ts +++ b/functions/models/src/functions/dismissMessages.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' export const dismissMessagesInputSchema = z.object({ diff --git a/functions/models/src/functions/enableUser.ts b/functions/models/src/functions/enableUser.ts index 4c36acef..ea2cceaf 100644 --- a/functions/models/src/functions/enableUser.ts +++ b/functions/models/src/functions/enableUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' export const enableUserInputSchema = z.object({ userId: z.string(), diff --git a/functions/models/src/functions/enrollUser.ts b/functions/models/src/functions/enrollUser.ts index b65635e2..cbe5e1ca 100644 --- a/functions/models/src/functions/enrollUser.ts +++ b/functions/models/src/functions/enrollUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' export const enrollUserInputSchema = z.object({ invitationCode: z.string().regex(/^[A-Z0-9]{8,16}$/), diff --git a/functions/models/src/functions/exportHealthSummary.ts b/functions/models/src/functions/exportHealthSummary.ts index 289e6503..7abcba67 100644 --- a/functions/models/src/functions/exportHealthSummary.ts +++ b/functions/models/src/functions/exportHealthSummary.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { QuantityUnit } from '../codes/quantityUnit.js' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' diff --git a/functions/models/src/functions/getUsersInformation.ts b/functions/models/src/functions/getUsersInformation.ts index 6ecbfffc..1132e0ac 100644 --- a/functions/models/src/functions/getUsersInformation.ts +++ b/functions/models/src/functions/getUsersInformation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { optionalishDefault } from '../helpers/optionalish.js' import { type InferEncoded } from '../helpers/schemaConverter.js' import { type userConverter } from '../types/user.js' diff --git a/functions/models/src/functions/phoneNumber.ts b/functions/models/src/functions/phoneNumber.ts index cc247d16..3ea231c5 100644 --- a/functions/models/src/functions/phoneNumber.ts +++ b/functions/models/src/functions/phoneNumber.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' const phoneNumberRegex = /^\+?[1-9]\d{1,14}$/ const codeRegex = /^\d{4,10}$/ diff --git a/functions/models/src/functions/registerDevice.ts b/functions/models/src/functions/registerDevice.ts index bf0265a1..8a64801c 100644 --- a/functions/models/src/functions/registerDevice.ts +++ b/functions/models/src/functions/registerDevice.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { type z } from 'zod' +import { type z } from 'zod/v4' import { userDeviceConverter } from '../types/userDevice.js' export const registerDeviceInputSchema = userDeviceConverter.value.schema diff --git a/functions/models/src/functions/shareHealthSummary.ts b/functions/models/src/functions/shareHealthSummary.ts index 7e5a9c84..b019ab29 100644 --- a/functions/models/src/functions/shareHealthSummary.ts +++ b/functions/models/src/functions/shareHealthSummary.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { optionalish } from '../helpers/optionalish.js' export const shareHealthSummaryInputSchema = z.object({ diff --git a/functions/models/src/functions/unregisterDevice.ts b/functions/models/src/functions/unregisterDevice.ts index f9332069..9265ec0e 100644 --- a/functions/models/src/functions/unregisterDevice.ts +++ b/functions/models/src/functions/unregisterDevice.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { UserDevicePlatform } from '../types/userDevice.js' export const unregisterDeviceInputSchema = z.object({ diff --git a/functions/models/src/functions/updateStaticData.ts b/functions/models/src/functions/updateStaticData.ts index 5e3a326f..1039d6fc 100644 --- a/functions/models/src/functions/updateStaticData.ts +++ b/functions/models/src/functions/updateStaticData.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { optionalishDefault } from '../helpers/optionalish.js' export enum CachingStrategy { diff --git a/functions/models/src/functions/updateUserInformation.ts b/functions/models/src/functions/updateUserInformation.ts index 4338e3ba..13e384ee 100644 --- a/functions/models/src/functions/updateUserInformation.ts +++ b/functions/models/src/functions/updateUserInformation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { userAuthConverter } from '../types/userAuth.js' export const updateUserInformationInputSchema = z.object({ diff --git a/functions/models/src/helpers/dateConverter.ts b/functions/models/src/helpers/dateConverter.ts index 451ee094..9fe8665b 100644 --- a/functions/models/src/helpers/dateConverter.ts +++ b/functions/models/src/helpers/dateConverter.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { SchemaConverter } from './schemaConverter.js' export const dateConverter = new SchemaConverter({ diff --git a/functions/models/src/helpers/fhirSchemaConverter.ts b/functions/models/src/helpers/fhirSchemaConverter.ts new file mode 100644 index 00000000..3d491742 --- /dev/null +++ b/functions/models/src/helpers/fhirSchemaConverter.ts @@ -0,0 +1,59 @@ +// +// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project +// +// SPDX-FileCopyrightText: 2023 Stanford University +// +// SPDX-License-Identifier: MIT +// + +import { ZodType } from 'zod/v4' +import { FHIRResource } from '../fhir/fhirResource.js' + +export class FHIRSchemaConverter { + // Properties + + readonly schema: ZodType + readonly nullProperties: string[] + + // Constructor + + constructor(input: { + schema: ZodType + nullProperties: string[] + }) { + this.schema = input.schema + this.nullProperties = input.nullProperties + } + + // Methods + + decode(input: unknown) { + return this.schema.parse(this.removeNulls(input)) + } + + encode(input: FHIRResourceType): unknown { + const returnValue = input.data as any + + for (const key of this.nullProperties) { + returnValue[key] = returnValue[key] ?? null + } + + return returnValue + } + + // Helpers + + private removeNulls(value: unknown): unknown { + if (Array.isArray(value)) { + return value.map(this.removeNulls).filter((v) => v !== null) + } else if (value !== null && typeof value === 'object') { + return Object.fromEntries( + Object.entries(value) + .filter(([, v]) => v !== null) + .map(([k, v]) => [k, this.removeNulls(v)]), + ) + } else { + return value + } + } +} diff --git a/functions/models/src/helpers/optionalish.ts b/functions/models/src/helpers/optionalish.ts index 19b4e0c0..bc841f5c 100644 --- a/functions/models/src/helpers/optionalish.ts +++ b/functions/models/src/helpers/optionalish.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' export function optionalish(type: T) { return type.or(z.null().transform(() => undefined)).optional() diff --git a/functions/models/src/helpers/schemaConverter.ts b/functions/models/src/helpers/schemaConverter.ts index 6d2a6c83..4d019d8d 100644 --- a/functions/models/src/helpers/schemaConverter.ts +++ b/functions/models/src/helpers/schemaConverter.ts @@ -6,25 +6,10 @@ // SPDX-License-Identifier: MIT // -import { type z } from 'zod' +import { type z } from 'zod/v4' import { type Lazy } from './lazy.js' export class SchemaConverter { - // Static functions - - static keepingProperties( - schema: Schema, - properties: (keyof z.infer)[], - ): SchemaConverter> { - return new SchemaConverter({ - schema: schema, - encode: (value) => { - const result = schema.parse(value) - return result - }, - }) - } - // Properties readonly schema: Schema diff --git a/functions/models/src/index.ts b/functions/models/src/index.ts index bc63d263..d2ca9eea 100644 --- a/functions/models/src/index.ts +++ b/functions/models/src/index.ts @@ -6,6 +6,7 @@ // SPDX-License-Identifier: MIT // +export * from 'spezi-firebase-fhir' export * from './codes/codes.js' export * from './codes/quantityUnit.js' export * from './codes/references.js' diff --git a/functions/models/src/types/invitation.ts b/functions/models/src/types/invitation.ts index c62c7f32..9b6cef1b 100644 --- a/functions/models/src/types/invitation.ts +++ b/functions/models/src/types/invitation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { userAuthConverter, type UserAuth } from './userAuth.js' import { userRegistrationConverter, diff --git a/functions/models/src/types/localizedText.ts b/functions/models/src/types/localizedText.ts index aa765341..96a86869 100644 --- a/functions/models/src/types/localizedText.ts +++ b/functions/models/src/types/localizedText.ts @@ -6,13 +6,13 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { SchemaConverter } from '../helpers/schemaConverter.js' export const localizedTextConverter = new SchemaConverter({ schema: z .string() - .or(z.record(z.string())) + .or(z.record(z.string(), z.string())) .transform((content) => LocalizedText.raw(content)), encode: (object) => object.content, }) diff --git a/functions/models/src/types/medicationClass.ts b/functions/models/src/types/medicationClass.ts index 50be1cfa..33d22d2f 100644 --- a/functions/models/src/types/medicationClass.ts +++ b/functions/models/src/types/medicationClass.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { localizedTextConverter, type LocalizedText } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/organization.ts b/functions/models/src/types/organization.ts index 11546be3..93971e98 100644 --- a/functions/models/src/types/organization.ts +++ b/functions/models/src/types/organization.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/symptomScore.ts b/functions/models/src/types/symptomScore.ts index 11bdfe23..7423de05 100644 --- a/functions/models/src/types/symptomScore.ts +++ b/functions/models/src/types/symptomScore.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { dateTimeConverter } from '../helpers/dateConverter.js' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' diff --git a/functions/models/src/types/user.ts b/functions/models/src/types/user.ts index 9de5d332..19457958 100644 --- a/functions/models/src/types/user.ts +++ b/functions/models/src/types/user.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { userRegistrationConverter, userRegistrationInputConverter, diff --git a/functions/models/src/types/userAuth.ts b/functions/models/src/types/userAuth.ts index eb4bb034..7d94700c 100644 --- a/functions/models/src/types/userAuth.ts +++ b/functions/models/src/types/userAuth.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/userDevice.ts b/functions/models/src/types/userDevice.ts index d842a3fb..36ca6f71 100644 --- a/functions/models/src/types/userDevice.ts +++ b/functions/models/src/types/userDevice.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/userMedicationRecommendation.ts b/functions/models/src/types/userMedicationRecommendation.ts index c99d545d..e306f7ee 100644 --- a/functions/models/src/types/userMedicationRecommendation.ts +++ b/functions/models/src/types/userMedicationRecommendation.ts @@ -6,13 +6,12 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { localizedTextConverter } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' import { Reference } from 'fhir/r4b.js' -import { referenceSchema } from 'spezi-firebase-fhir' export enum UserMedicationRecommendationType { improvementAvailable = 'improvementAvailable', @@ -113,13 +112,19 @@ export type UserMedicationRecommendationDisplayInformation = z.output< typeof userMedicationRecommendationDisplayInformationConverter.value.schema > +const referenceSchema = z.object({ + reference: z.string().optional(), + type: z.string().optional(), + display: z.string().optional(), +}) + export const userMedicationRecommendationConverter = new Lazy( () => new SchemaConverter({ schema: z .object({ - currentMedication: z.lazy(() => referenceSchema).array(), - recommendedMedication: optionalish(z.lazy(() => referenceSchema)), + currentMedication: referenceSchema.array(), + recommendedMedication: optionalish(referenceSchema), displayInformation: z.lazy( () => userMedicationRecommendationDisplayInformationConverter.value @@ -128,13 +133,8 @@ export const userMedicationRecommendationConverter = new Lazy( }) .transform((values) => new UserMedicationRecommendation(values)), encode: (object) => ({ - currentMedication: object.currentMedication.map( - fhirReferenceConverter.value.encode, - ), - recommendedMedication: - object.recommendedMedication ? - fhirReferenceConverter.value.encode(object.recommendedMedication) - : null, + currentMedication: object.currentMedication, + recommendedMedication: object.recommendedMedication ?? null, displayInformation: userMedicationRecommendationDisplayInformationConverter.value.encode( object.displayInformation, diff --git a/functions/models/src/types/userMessage.ts b/functions/models/src/types/userMessage.ts index cbc93e41..1d978e90 100644 --- a/functions/models/src/types/userMessage.ts +++ b/functions/models/src/types/userMessage.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { LocalizedText, localizedTextConverter } from './localizedText.js' import { messagesLocalization } from './userMesage+localization.js' import { diff --git a/functions/models/src/types/userMessagesSettings.ts b/functions/models/src/types/userMessagesSettings.ts index 3e6224c3..6af4aab4 100644 --- a/functions/models/src/types/userMessagesSettings.ts +++ b/functions/models/src/types/userMessagesSettings.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/userRegistration.ts b/functions/models/src/types/userRegistration.ts index 9f4e3865..e26ed7ff 100644 --- a/functions/models/src/types/userRegistration.ts +++ b/functions/models/src/types/userRegistration.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { UserType } from './userType.js' import { dateConverter } from '../helpers/dateConverter.js' import { Lazy } from '../helpers/lazy.js' diff --git a/functions/models/src/types/userShareCode.ts b/functions/models/src/types/userShareCode.ts index 4c33db8b..ecc9fbe0 100644 --- a/functions/models/src/types/userShareCode.ts +++ b/functions/models/src/types/userShareCode.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { dateTimeConverter } from '../helpers/dateConverter.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/video.ts b/functions/models/src/types/video.ts index eeb859b9..ae9c5218 100644 --- a/functions/models/src/types/video.ts +++ b/functions/models/src/types/video.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { localizedTextConverter, type LocalizedText } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/videoSection.ts b/functions/models/src/types/videoSection.ts index b8cdf5ef..bf935470 100644 --- a/functions/models/src/types/videoSection.ts +++ b/functions/models/src/types/videoSection.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { z } from 'zod/v4' import { localizedTextConverter, type LocalizedText } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/package-lock.json b/functions/package-lock.json index 1ad54509..dae1c88e 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -14,8 +14,7 @@ "jsdom": "^24.1.0", "jspdf": "^3.0.1", "jspdf-autotable": "^5.0.2", - "twilio": "^5.4.5", - "zod": "^3.23.8" + "twilio": "^5.4.5" }, "devDependencies": { "@firebase/rules-unit-testing": "^4.0.1", @@ -75,8 +74,7 @@ "models": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir", - "zod": "^3.23.8" + "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" }, "devDependencies": { "@types/fhir": "^0.0.41", @@ -11901,15 +11899,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/functions/package.json b/functions/package.json index 626b082c..d51cb33c 100644 --- a/functions/package.json +++ b/functions/package.json @@ -34,8 +34,7 @@ "jsdom": "^24.1.0", "jspdf": "^3.0.1", "jspdf-autotable": "^5.0.2", - "twilio": "^5.4.5", - "zod": "^3.23.8" + "twilio": "^5.4.5" }, "devDependencies": { "@firebase/rules-unit-testing": "^4.0.1", diff --git a/functions/src/functions/createInvitation.test.ts b/functions/src/functions/createInvitation.test.ts index 26089c43..e655b4c6 100644 --- a/functions/src/functions/createInvitation.test.ts +++ b/functions/src/functions/createInvitation.test.ts @@ -10,7 +10,7 @@ import { type createInvitationInputSchema, UserType, } from '@stanfordbdhg/engagehf-models' -import { type z } from 'zod' +import { type z } from 'zod/v4' import { createInvitation } from './createInvitation.js' import { describeWithEmulators } from '../tests/functions/testEnvironment.js' import { expectError } from '../tests/helpers.js' diff --git a/functions/src/functions/defaultSeed.ts b/functions/src/functions/defaultSeed.ts index 441a2862..f6310d92 100644 --- a/functions/src/functions/defaultSeed.ts +++ b/functions/src/functions/defaultSeed.ts @@ -14,7 +14,7 @@ import { UserType, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' -import { type z } from 'zod' +import { type z } from 'zod/v4' import { validatedOnCall, validatedOnRequest } from './helpers.js' import { _updateStaticData } from './updateStaticData.js' import { Flags } from '../flags.js' diff --git a/functions/src/functions/helpers.ts b/functions/src/functions/helpers.ts index 65c83098..d1d1119d 100644 --- a/functions/src/functions/helpers.ts +++ b/functions/src/functions/helpers.ts @@ -17,7 +17,7 @@ import { onRequest, type Request, } from 'firebase-functions/v2/https' -import { z } from 'zod' +import { z } from 'zod/v4' export const serviceAccount = `cloudfunctionsserviceaccount@${process.env.GCLOUD_PROJECT}.iam.gserviceaccount.com` diff --git a/functions/src/functions/updateStaticData.ts b/functions/src/functions/updateStaticData.ts index 5bfb3db5..57473ec9 100644 --- a/functions/src/functions/updateStaticData.ts +++ b/functions/src/functions/updateStaticData.ts @@ -11,7 +11,7 @@ import { updateStaticDataInputSchema, type UpdateStaticDataOutput, } from '@stanfordbdhg/engagehf-models' -import { type z } from 'zod' +import { type z } from 'zod/v4' import { validatedOnCall, validatedOnRequest } from './helpers.js' import { Flags } from '../flags.js' import { UserRole } from '../services/credential/credential.js' diff --git a/functions/src/healthSummary/keyPointsMessage.ts b/functions/src/healthSummary/keyPointsMessage.ts index 51c5e180..a17083f0 100644 --- a/functions/src/healthSummary/keyPointsMessage.ts +++ b/functions/src/healthSummary/keyPointsMessage.ts @@ -11,7 +11,7 @@ import { type LocalizedText, localizedTextConverter, } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod' +import { z } from 'zod/v4' export enum HealthSummarySymptomScoreCategory { HIGH_STABLE_OR_IMPROVING = 'Change >-10 and KCCQ>=90', diff --git a/functions/src/services/database/databaseConverter.ts b/functions/src/services/database/databaseConverter.ts index 12b06545..2b6381c7 100644 --- a/functions/src/services/database/databaseConverter.ts +++ b/functions/src/services/database/databaseConverter.ts @@ -13,7 +13,7 @@ import { type FirestoreDataConverter, } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { type z } from 'zod' +import { type z } from 'zod/v4' export class DatabaseConverter implements FirestoreDataConverter> diff --git a/functions/src/services/history/historyService.ts b/functions/src/services/history/historyService.ts index d7fd56ba..599dd243 100644 --- a/functions/src/services/history/historyService.ts +++ b/functions/src/services/history/historyService.ts @@ -12,7 +12,7 @@ import { } from '@stanfordbdhg/engagehf-models' import { type DocumentSnapshot } from 'firebase-admin/firestore' import { type Change } from 'firebase-functions' -import { z } from 'zod' +import { z } from 'zod/v4' export const historyChangeItemConverter = new SchemaConverter({ schema: z.object({ diff --git a/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts b/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts index 5a15c0ac..922f678c 100644 --- a/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts +++ b/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts @@ -7,7 +7,7 @@ // import { QuantityUnit, UserSex } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod' +import { z } from 'zod/v4' import { EgfrCalculator } from './egfrCalculator.js' import { readCsv } from '../../../tests/helpers/csv.js' diff --git a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts index fff1c818..b020369c 100644 --- a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts @@ -20,7 +20,7 @@ import { MedicationReference, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions/v2' -import { z } from 'zod' +import { z } from 'zod/v4' import { medicationClassReference } from '../../models/medicationRequestContext.js' import { type Document } from '../database/databaseService.js' import { type PatientService } from '../patient/patientService.js' diff --git a/functions/src/services/seeding/seedingService.ts b/functions/src/services/seeding/seedingService.ts index 100a6956..ae15d35f 100644 --- a/functions/src/services/seeding/seedingService.ts +++ b/functions/src/services/seeding/seedingService.ts @@ -10,7 +10,7 @@ import fs from 'fs' import { CachingStrategy } from '@stanfordbdhg/engagehf-models' import { type CollectionReference } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { z } from 'zod' +import { z } from 'zod/v4' export interface SeedingOptions { useIndicesAsKeys: boolean diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts index 4c9f61b2..6b1640e4 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts @@ -7,7 +7,6 @@ // import { - type FHIRQuestionnaireItem, UserSex, type FHIRMedication, type FHIRQuestionnaire, @@ -44,7 +43,7 @@ export class RegistrationQuestionnaireFactory extends QuestionnaireFactory { const carvedilol6_25 = result.drugs['20352']['200031'] expect(carvedilol6_25).toBeDefined() expect( - carvedilol6_25.code?.coding?.find((coding) => coding.code === '200031'), + carvedilol6_25.data.code?.coding?.find( + (coding) => coding.code === '200031', + ), ).toBeDefined() expect( - carvedilol6_25.ingredient?.find((ingredient) => + carvedilol6_25.data.ingredient?.find((ingredient) => ingredient.itemCodeableConcept?.coding?.some( (coding) => coding.code === '20352', ), @@ -69,10 +71,12 @@ describe('RxNormService', () => { const carvedilol25 = result.drugs['20352']['200033'] expect(carvedilol25).toBeDefined() expect( - carvedilol25.code?.coding?.find((coding) => coding.code === '200033'), + carvedilol25.data.code?.coding?.find( + (coding) => coding.code === '200033', + ), ).toBeDefined() expect( - carvedilol25.ingredient?.find((ingredient) => + carvedilol25.data.ingredient?.find((ingredient) => ingredient.itemCodeableConcept?.coding?.some( (coding) => coding.code === '20352', ), diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts index 0ec1d443..838d4416 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts @@ -8,7 +8,6 @@ import { CodingSystem, - type FHIRExtension, FHIRExtensionUrl, FHIRMedication, FHIRMedicationRequest, @@ -17,7 +16,7 @@ import { QuantityUnit, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' -import { z } from 'zod' +import { z } from 'zod/v4' import { RxNormApi } from './rxNormApi.js' import { type RxNormConceptProperty, @@ -25,6 +24,7 @@ import { rxTermInfo, } from './rxNormModels.js' import { capitalize } from '../../../../extensions/string.js' +import { Extension, FhirResource, Medication } from 'fhir/r4b.js' export const medicationDailyDoseSpecificationSchema = z.object({ drug: z.string(), @@ -43,7 +43,7 @@ export const medicationSpecificationSchema = z.object({ targetDailyDose: optionalish(medicationDailyDoseSpecificationSchema), ingredients: optionalish(z.string().array()), drugs: optionalish(z.string().array()), - fallbackTerms: optionalish(z.record(rxTermInfo)), + fallbackTerms: optionalish(z.record(z.string(), rxTermInfo)), }) export type MedicationSpecification = z.output< @@ -134,8 +134,8 @@ export class RxNormService { ingredients, medication.fallbackTerms?.[drug.rxcui] ?? {}, ) - if (fhirDrug.id) { - drugs[medication.code][fhirDrug.id] = fhirDrug + if (fhirDrug.data.id) { + drugs[medication.code][fhirDrug.data.id] = fhirDrug } } catch (error) { logger.error( @@ -183,37 +183,11 @@ export class RxNormService { targetDailyDose: MedicationDailyDoseSpecification | undefined, drugs: Record, ): FHIRMedication { - const result = { - resourceType: 'Medication', - id: rxcui, - code: { - coding: [ - { - system: CodingSystem.rxNorm, - code: rxcui, - display: capitalize(name), - }, - ], - }, - ingredient: - ingredients.length > 1 ? - ingredients.map((ingredient) => ({ - itemCodeableConcept: { - coding: [ - { - system: CodingSystem.rxNorm, - code: ingredient.rxcui, - display: capitalize(ingredient.name), - }, - ], - }, - })) - : undefined, - extension: [] as FHIRExtension[], - } + const containedResources: FhirResource[] = [] + const extensions: Extension[] = [] if (medicationClassId) { const localizedName = medicationClasses.get(medicationClassId)?.name - result.extension.push({ + extensions.push({ url: FHIRExtensionUrl.medicationClass, valueReference: { reference: `medicationClasses/${medicationClassId}`, @@ -222,69 +196,116 @@ export class RxNormService { }) } if (minimumDailyDose) { - result.extension.push({ - url: FHIRExtensionUrl.minimumDailyDose, - valueMedicationRequest: FHIRMedicationRequest.create({ + const containedId = `#minimumDailyDose` + const containedDisplay = + drugs[minimumDailyDose.drug].data.code?.coding?.at(0)?.display + containedResources.push( + FHIRMedicationRequest.create({ + id: containedId, medicationReference: `medications/${rxcui}/drugs/${minimumDailyDose.drug}`, - medicationReferenceDisplay: - drugs[minimumDailyDose.drug].code?.coding?.at(0)?.display, + medicationReferenceDisplay: containedDisplay, extension: [ - { - url: FHIRExtensionUrl.totalDailyDose, - valueQuantities: drugs[minimumDailyDose.drug].ingredient?.map( - (ingredient) => { - const value = - QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0 - return QuantityUnit.mg.fhirQuantity( - value * - minimumDailyDose.quantity * - minimumDailyDose.frequency, - ) - }, - ), - }, + ...(drugs[minimumDailyDose.drug].data.ingredient ?? []).map( + (ingredient) => { + const value = + QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0 + const quantity = QuantityUnit.mg.fhirQuantity( + value * + minimumDailyDose.quantity * + minimumDailyDose.frequency, + ) + return { + url: FHIRExtensionUrl.totalDailyDose, + valueQuantity: quantity, + } + }, + ), ], frequencyPerDay: minimumDailyDose.frequency, quantity: minimumDailyDose.quantity, - }), + }).data, + ) + extensions.push({ + url: FHIRExtensionUrl.minimumDailyDose, + valueReference: { + reference: containedId, + display: containedDisplay, + }, }) } if (targetDailyDose) { - result.extension.push({ + const containedId = `#targetDailyDose` + const containedDisplay = + drugs[targetDailyDose.drug].data.code?.coding?.at(0)?.display + extensions.push({ url: FHIRExtensionUrl.targetDailyDose, - valueMedicationRequest: FHIRMedicationRequest.create({ + valueReference: { + reference: containedId, + display: containedDisplay, + }, + }) + containedResources.push( + FHIRMedicationRequest.create({ + id: containedId, medicationReference: `medications/${rxcui}/drugs/${targetDailyDose.drug}`, - medicationReferenceDisplay: - drugs[targetDailyDose.drug].code?.coding?.at(0)?.display, + medicationReferenceDisplay: containedDisplay, extension: [ - { - url: FHIRExtensionUrl.totalDailyDose, - valueQuantities: drugs[targetDailyDose.drug].ingredient?.map( - (ingredient) => { - const value = - QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0 - return QuantityUnit.mg.fhirQuantity( - value * - targetDailyDose.quantity * - targetDailyDose.frequency, - ) - }, - ), - }, + ...(drugs[targetDailyDose.drug].data.ingredient ?? []).map( + (ingredient) => { + const value = + QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0 + const quantity = QuantityUnit.mg.fhirQuantity( + value * targetDailyDose.quantity * targetDailyDose.frequency, + ) + return { + url: FHIRExtensionUrl.totalDailyDose, + valueQuantity: quantity, + } + }, + ), ], frequencyPerDay: targetDailyDose.frequency, quantity: targetDailyDose.quantity, - }), - }) + }).data, + ) } for (const brandName of brandNames) { - result.extension.push({ + extensions.push({ url: FHIRExtensionUrl.brandName, valueString: brandName, }) } - return new FHIRMedication(result) + + return new FHIRMedication({ + resourceType: 'Medication', + id: rxcui, + contained: containedResources, + extension: extensions, + code: { + coding: [ + { + system: CodingSystem.rxNorm, + code: rxcui, + display: capitalize(name), + }, + ], + }, + ingredient: + ingredients.length > 1 ? + ingredients.map((ingredient) => ({ + itemCodeableConcept: { + coding: [ + { + system: CodingSystem.rxNorm, + code: ingredient.rxcui, + display: capitalize(ingredient.name), + }, + ], + }, + })) + : undefined, + }) } private async buildFHIRDrug( @@ -313,6 +334,7 @@ export class RxNormService { throw new Error(`Missing display name for RXCUI ${rxcui}.`) } return new FHIRMedication({ + resourceType: 'Medication', id: rxcui, code: { coding: [ diff --git a/functions/src/services/seeding/staticData/staticDataService.ts b/functions/src/services/seeding/staticData/staticDataService.ts index f83ec92a..a7724d54 100644 --- a/functions/src/services/seeding/staticData/staticDataService.ts +++ b/functions/src/services/seeding/staticData/staticDataService.ts @@ -9,18 +9,17 @@ import { CachingStrategy, type FHIRMedication, - fhirMedicationConverter, type FHIRQuestionnaire, - fhirQuestionnaireConverter, localizedTextConverter, type MedicationClass, medicationClassConverter, organizationConverter, QuestionnaireReference, + questionnaireSchema, Video, VideoSection, } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod' +import { z } from 'zod/v4' import { medicationClassSpecificationSchema, type RxNormService, @@ -167,20 +166,13 @@ export class StaticDataService extends SeedingService { return this.cache( strategy, - () => - this.readJSONRecord( - questionnairesFile, - fhirQuestionnaireConverter.value.schema, - ), + () => this.readJSONRecord(questionnairesFile, fhirQuestionnaireConverter.schema), async () => this.generateQuestionnaires(), (result) => this.writeJSON( 'questionnaires.json', Object.fromEntries( - Object.entries(result).map(([key, value]) => [ - key, - fhirQuestionnaireConverter.value.encode(value), - ]), + Object.entries(result).map(([key, value]) => [key, value.data]), ), ), ) @@ -234,11 +226,11 @@ export class StaticDataService extends SeedingService { () => ({ medications: this.readJSONRecord( medicationsFile, - fhirMedicationConverter.value.schema, + medicationSchema.value.schema, ), drugs: this.readJSONRecord( drugsFile, - z.record(fhirMedicationConverter.value.schema), + z.record(z.string(), fhirMedicationConverter.value.schema), ), }), async () => { diff --git a/functions/src/services/trigger/triggerService.test.ts b/functions/src/services/trigger/triggerService.test.ts index a5b10df0..2c509803 100644 --- a/functions/src/services/trigger/triggerService.test.ts +++ b/functions/src/services/trigger/triggerService.test.ts @@ -9,7 +9,6 @@ import { advanceDateByDays, FHIRAppointment, - FHIRAppointmentStatus, UserMessage, UserMessageType, UserType, @@ -39,7 +38,7 @@ describeWithEmulators('TriggerService', (env) => { const appointment = FHIRAppointment.create({ userId: patientId, - status: FHIRAppointmentStatus.proposed, + status: 'proposed', created: advanceDateByDays(new Date(), -3), start: advanceDateByDays(new Date(), 1.01), durationInMinutes: 60, @@ -98,7 +97,7 @@ describeWithEmulators('TriggerService', (env) => { const appointment = FHIRAppointment.create({ userId: patientId, - status: FHIRAppointmentStatus.proposed, + status: 'proposed', created: advanceDateByDays(new Date(), -3), start: advanceDateByDays(new Date(), -1), durationInMinutes: 60, @@ -164,7 +163,7 @@ describeWithEmulators('TriggerService', (env) => { const appointment = FHIRAppointment.create({ userId: patientId, - status: FHIRAppointmentStatus.proposed, + status: 'proposed', created: advanceDateByDays(new Date(), -3), start: advanceDateByDays(new Date(), -1), durationInMinutes: 60, diff --git a/functions/src/services/trigger/triggerService.ts b/functions/src/services/trigger/triggerService.ts index f8442f1a..2c111f96 100644 --- a/functions/src/services/trigger/triggerService.ts +++ b/functions/src/services/trigger/triggerService.ts @@ -195,10 +195,14 @@ export class TriggerService { const reminderRangeStart = advanceDateByHours(now, -24) const reminderRangeEnd = advanceDateByHours(now, 24) + const newStartDate = newData?.startDate + const newEndDate = newData?.endDate if ( newData === null || - newData.start < reminderRangeStart || - newData.end > reminderRangeEnd + newStartDate === undefined || + newEndDate === undefined || + newStartDate < reminderRangeStart || + newEndDate > reminderRangeEnd ) { await messageService.completeMessages( userId, @@ -207,7 +211,7 @@ export class TriggerService { message.reference === `users/${userId}/appointments/${appointmentId}`, ) - } else if (newData.start > now && newData.start < reminderRangeEnd) { + } else if (newStartDate > now && newStartDate < reminderRangeEnd) { const userService = this.factory.user() const message = UserMessage.createPreAppointment({ creationDate: now, @@ -401,8 +405,8 @@ export class TriggerService { // Drug const drugReference = - after?.medicationReference ?? before?.medicationReference - if (drugReference === undefined) { + after?.data.medicationReference ?? before?.data.medicationReference + if (!drugReference?.reference) { logger.error( `TriggerService.userMedicationRequestWritten(${userId}, ${medicationRequestId}): Neither before nor after data contains a medication reference`, ) @@ -837,7 +841,7 @@ export class TriggerService { await messageService.addMessage( userId, UserMessage.createPostAppointmentQuestionnaire({ - creationDate: appointment.content.end, + creationDate: appointment.content.endDate, questionnaireReference: QuestionnaireReference.postAppointment_en_US, }), diff --git a/functions/src/tests/mocks/questionnaire.ts b/functions/src/tests/mocks/questionnaire.ts index a88abbf7..7906bea8 100644 --- a/functions/src/tests/mocks/questionnaire.ts +++ b/functions/src/tests/mocks/questionnaire.ts @@ -8,8 +8,6 @@ import { FHIRQuestionnaire, - FHIRQuestionnaireItemType, - FHIRQuestionnairePublicationStatus, } from '@stanfordbdhg/engagehf-models' import { QuestionnaireId, @@ -18,25 +16,26 @@ import { export function mockQuestionnaire(): FHIRQuestionnaire { return new FHIRQuestionnaire({ + resourceType: 'Questionnaire', title: 'KCCQ-12', language: 'en-US', - status: FHIRQuestionnairePublicationStatus.draft, + status: 'draft', publisher: 'Stanford Biodesign Digital Health', url: QuestionnaireLinkId.url(QuestionnaireId.kccq), item: [ { linkId: '73490535-203f-44b2-d1b7-7c0a786c16f9', - type: FHIRQuestionnaireItemType.display, + type: 'display', text: 'The following questions refer to your heart failure and how it may affect your life. Please read and complete the following questions. There are no right or wrong answers. Please mark the answer that best applies to you.\n\nThese results will be send to your care team.', required: false, }, { linkId: 'c0b3bef6-1e2d-4621-d82e-b73069574dc4', - type: FHIRQuestionnaireItemType.group, + type: 'group', item: [ { linkId: 'a459b804-35bf-4792-f1eb-0b52c4e176e1', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Showering/bathing', required: true, answerOption: [ @@ -93,7 +92,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: 'cf9c5031-1ed5-438a-fc7d-dc69234015a0', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Walking 1 block on level ground', required: true, answerOption: [ @@ -150,7 +149,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '1fad0f81-b2a9-4c8f-9a78-4b2a5d7aef07', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Hurrying or jogging (as if to catch a bus)', required: true, answerOption: [ @@ -211,7 +210,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '692bda7d-a616-43d1-8dc6-8291f6460ab2', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Over the past 2 weeks, how many times did you have swelling in your feet, ankles or legs when you woke up in the morning?', required: true, answerOption: [ @@ -259,7 +258,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: 'b1734b9e-1d16-4238-8556-5ae3fa0ba913', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Over the past 2 weeks, on average, how many times has fatigue limited your ability to do what you wanted', required: true, answerOption: [ @@ -323,7 +322,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '57f37fb3-a0ad-4b1f-844e-3f67d9b76946', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Over the past 2 weeks, on average, how many times has shortness of breath limited your ability to do what you wanted', required: true, answerOption: [ @@ -387,7 +386,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '396164df-d045-4c56-d710-513297bdc6f2', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Over the past 2 weeks, on average, how many times have you been forced to sleep sitting up in a chair or with at least 3 pillows to prop you up because of shortness of breath?', required: true, answerOption: [ @@ -435,7 +434,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '75e3f62e-e37d-48a2-f4d9-af2db8922da0', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Over the past 2 weeks, how much has your heart failure limited your enjoyment of life?', required: true, answerOption: [ @@ -483,7 +482,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: 'fce3a16e-c6d8-4bac-8ab5-8f4aee4adc08', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'If you had to spend the rest of your life with your heart failure the way it is right now, how would you feel about this?', required: true, answerOption: [ @@ -531,11 +530,11 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '8649bc8c-f908-487d-87a4-a97106b1a4c3', - type: FHIRQuestionnaireItemType.group, + type: 'group', item: [ { linkId: '8b022e69-127d-4447-8190-39ac645e60e1', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Hobbies, recreational activities', required: true, answerOption: [ @@ -591,7 +590,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '1eee7259-da1c-4cba-80a9-e67e684573a1', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Working or doing household chores', required: true, answerOption: [ @@ -647,7 +646,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '883a22a8-2f6e-4b41-84b7-0028ed543192', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'Visiting family or friends out of your home', required: true, answerOption: [ @@ -707,7 +706,7 @@ export function mockQuestionnaire(): FHIRQuestionnaire { }, { linkId: '24108967-2ff3-40d0-c54f-a7b97bb84d05', - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: 'In the last two weeks, how much has your dizziness affected you?', required: true, answerOption: [ diff --git a/functions/src/tests/mocks/recommendationVitals.ts b/functions/src/tests/mocks/recommendationVitals.ts index 7ea7b730..9eecdeca 100644 --- a/functions/src/tests/mocks/recommendationVitals.ts +++ b/functions/src/tests/mocks/recommendationVitals.ts @@ -6,7 +6,10 @@ // SPDX-License-Identifier: MIT // -import { type Observation, QuantityUnit } from '@stanfordbdhg/engagehf-models' +import { + type ObservationQuantity, + QuantityUnit, +} from '@stanfordbdhg/engagehf-models' import { type RecommendationVitals } from '../../services/recommendation/recommendationService.js' export function mockRecommendationVitals(options: { @@ -25,7 +28,7 @@ export function mockRecommendationVitals(options: { systolicBloodPressure: [ ...Array.from( { length: options.countBloodPressureBelow85 }, - (_): Observation => ({ + (_): ObservationQuantity => ({ date: new Date(), value: 84, unit: QuantityUnit.mmHg, From f594eea86057fae5378d940840a612e7a80f5e30 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Wed, 23 Jul 2025 21:18:05 +0200 Subject: [PATCH 03/18] update --- functions/models/package-lock.json | 2498 ++++++++++++++--- functions/models/package.json | 5 +- functions/models/src/codes/references.ts | 10 + .../models/src/fhir/fhirAllergyIntolerance.ts | 22 +- functions/models/src/fhir/fhirAppointment.ts | 14 +- functions/models/src/fhir/fhirConverters.ts | 81 + functions/models/src/fhir/fhirMedication.ts | 2 +- .../models/src/fhir/fhirMedicationRequest.ts | 2 +- functions/models/src/fhir/fhirObservation.ts | 14 +- .../models/src/fhir/fhirQuestionnaire.ts | 2 +- .../src/fhir/fhirQuestionnaireResponse.ts | 2 +- .../models/src/helpers/fhirSchemaConverter.ts | 14 +- functions/models/src/index.ts | 4 +- functions/package-lock.json | 1802 ++++++------ functions/package.json | 3 + .../src/functions/deleteInvitation.test.ts | 2 - functions/src/functions/deleteUser.test.ts | 16 +- functions/src/functions/enrollUser.test.ts | 21 +- functions/src/functions/helpers.ts | 9 +- .../onUserAppointmentWritten.test.ts | 5 - functions/src/healthSummary/generate.ts | 6 +- functions/src/healthSummary/generateChart.ts | 6 +- functions/src/models/healthSummaryData.ts | 12 +- .../src/models/medicationRequestContext.ts | 10 +- .../defaultContraindicationService.test.ts | 25 +- .../defaultContraindicationService.ts | 23 +- .../src/services/database/collections.ts | 7 - .../services/database/databaseConverter.ts | 4 +- .../databaseHealthSummaryService.test.ts | 5 +- .../healthSummaryService.mock.ts | 16 +- .../medication/databaseMedicationService.ts | 22 +- .../services/medication/medicationService.ts | 6 +- .../patient/databasePatientService.ts | 4 +- .../createKccqQuestionnaireResponse.ts | 4 +- .../questionnaireResponseService.ts | 19 +- .../recommendationService.test.ts | 40 +- .../recommendation/recommendationService.ts | 16 +- .../recommenders/diureticRecommender.test.ts | 2 + .../recommenders/recommender.ts | 10 +- .../seeding/debugData/debugDataService.ts | 3 - .../src/services/seeding/seedingService.ts | 2 +- .../kccqQuestionnaireFactory.ts | 24 +- .../questionnaireFactory.ts | 86 +- 43 files changed, 3426 insertions(+), 1454 deletions(-) create mode 100644 functions/models/src/fhir/fhirConverters.ts diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index 4a115c58..dad4b194 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -5,9 +5,6 @@ "packages": { "": { "name": "@stanfordbdhg/engagehf-models", - "dependencies": { - "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" - }, "devDependencies": { "@types/fhir": "^0.0.41", "@types/node": "^20", @@ -25,11 +22,16 @@ }, "engines": { "node": "22" + }, + "peerDependencies": { + "@stanfordspezi/spezi-firebase-fhir": "^0.1.1", + "zod": "^3.23.8" } }, "../../../spezi-firebase/packages/spezi-firebase-fhir": { "name": "@stanfordspezi/spezi-firebase-fhir", "version": "0.1.0", + "extraneous": true, "license": "MIT", "dependencies": { "@stanfordspezi/spezi-firebase-utils": "file:../spezi-firebase-utils", @@ -57,7 +59,7 @@ "firebase-admin": "^12.0" } }, - "../../spezi-firebase/packages/spezi-firebase-fhir": { + "@stanfordspezi/spezi-firebase-fhir@^0.1.1": { "extraneous": true }, "node_modules/@ampproject/remapping": { @@ -90,9 +92,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, "license": "MIT", "engines": { @@ -100,22 +102,22 @@ } }, "node_modules/@babel/core": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", - "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helpers": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -130,30 +132,17 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -177,6 +166,16 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -192,15 +191,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -250,27 +249,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.28.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -534,38 +533,28 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -608,9 +597,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", - "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -650,9 +639,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -665,9 +654,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", - "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -675,9 +664,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -712,13 +701,16 @@ } }, "node_modules/@eslint/js": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", - "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { @@ -732,19 +724,249 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.12.0", + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@fastify/busboy": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz", + "integrity": "sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==", + "license": "MIT", + "peer": true + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/app-types": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/component": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.9.tgz", + "integrity": "sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.8.tgz", + "integrity": "sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.8.tgz", + "integrity": "sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/database": "1.0.8", + "@firebase/database-types": "1.0.5", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.5.tgz", + "integrity": "sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.10.0" + } + }, + "node_modules/@firebase/logger": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/util": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.10.0.tgz", + "integrity": "sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@google-cloud/firestore": { + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.3.tgz", + "integrity": "sha512-qsM3/WHpawF07SRVvEJJVRwhYzM7o9qtuksyuqnrMig6fxIrwWnsezECWsG/D5TyYru51Fv5c/RTqNDQ2yU+4w==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@opentelemetry/api": "^1.3.0", + "fast-deep-equal": "^3.1.1", + "functional-red-black-tree": "^1.0.1", + "google-gax": "^4.3.3", + "protobufjs": "^7.2.6" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/paginator": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/projectify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", + "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/promisify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", + "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.16.0.tgz", + "integrity": "sha512-7/5LRgykyOfQENcm6hDKP8SX/u9XxE5YOiWOkgkwcoO+cG8xT/cyOvp9wwN3IxfdYgpHs8CE7Nq2PKX2lNaEXw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@google-cloud/paginator": "^5.0.0", + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "<4.1.0", + "abort-controller": "^3.0.0", + "async-retry": "^1.3.3", + "duplexify": "^4.1.3", + "fast-xml-parser": "^4.4.1", + "gaxios": "^6.0.2", + "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", + "mime": "^3.0.0", + "p-limit": "^3.0.1", + "retry-request": "^7.0.0", + "teeny-request": "^9.0.0", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", + "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -798,9 +1020,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1221,18 +1443,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -1245,27 +1463,17 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1273,6 +1481,18 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "optional": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1311,19 +1531,114 @@ "node": ">= 8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/@pkgr/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz", - "integrity": "sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" } }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -1358,6 +1673,35 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@stanfordspezi/spezi-firebase-fhir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.1.tgz", + "integrity": "sha512-80uBEnPaUDuZExw2SYOzjVbhfa/JizgPbj6JEXuz72M8b/gkdvr7XEGGuiGq847DBPVRCRCgyeb1mATuz+fxGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@stanfordspezi/spezi-firebase-utils": "file:../spezi-firebase-utils", + "firebase-admin": "^12.0", + "zod": "^3.25" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "firebase-admin": "^12.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -1431,13 +1775,68 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, + "node_modules/@types/express": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "node_modules/@types/fhir": { "version": "0.0.41", "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.41.tgz", @@ -1455,6 +1854,13 @@ "@types/node": "*" } }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT", + "peer": true + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -1496,14 +1902,97 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT", + "peer": true + }, "node_modules/@types/node": { - "version": "20.17.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.27.tgz", - "integrity": "sha512-U58sbKhDrthHlxHRJw7ZLiLDZGmAUOZUbpw0S6nL27sYUdhvgBLCRu/keSd6qcTsfArd1sRFCCBxzWATGr/0UA==", - "dev": true, + "version": "20.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.9.tgz", + "integrity": "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/request": { + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "license": "MIT", + "peer": true, "dependencies": { - "undici-types": "~6.19.2" + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/stack-utils": { @@ -1513,6 +2002,14 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -1531,21 +2028,21 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", - "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/type-utils": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1555,22 +2052,32 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "@typescript-eslint/parser": "^8.38.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", - "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4" }, "engines": { @@ -1585,35 +2092,75 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", - "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1628,9 +2175,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", "dev": true, "license": "MIT", "engines": { @@ -1642,20 +2189,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1669,9 +2218,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1695,9 +2244,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -1708,16 +2257,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1732,14 +2281,14 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1749,10 +2298,24 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -1785,6 +2348,17 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1822,7 +2396,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -1832,7 +2406,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1890,18 +2464,20 @@ } }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -1992,6 +2568,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -2009,6 +2596,25 @@ "node": ">= 0.4" } }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -2148,10 +2754,43 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2173,9 +2812,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "dev": true, "funding": [ { @@ -2193,8 +2832,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -2228,6 +2867,13 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2258,7 +2904,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2306,9 +2952,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001717", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", - "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "dev": true, "funding": [ { @@ -2380,7 +3026,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, + "devOptional": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -2413,7 +3059,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -2426,9 +3072,23 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "devOptional": true, "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2542,10 +3202,9 @@ } }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2627,6 +3286,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2674,7 +3344,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -2685,6 +3355,30 @@ "node": ">= 0.4" } }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", @@ -2702,9 +3396,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.151", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz", - "integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==", + "version": "1.5.189", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.189.tgz", + "integrity": "sha512-y9D1ntS1ruO/pZ/V2FtLE+JXLQe28XoRpZ7QCCo0T8LdQladzdcOVQZH/IWLVJvCw12OGMb6hYOeOAjntCmJRQ==", "dev": true, "license": "ISC" }, @@ -2725,9 +3419,20 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, + "devOptional": true, "license": "MIT" }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2739,9 +3444,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, "license": "MIT", "dependencies": { @@ -2749,18 +3454,18 @@ "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -2772,21 +3477,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -2795,7 +3503,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -2808,7 +3516,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2818,7 +3526,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2828,7 +3536,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -2841,7 +3549,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2888,7 +3596,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -2908,20 +3616,20 @@ } }, "node_modules/eslint": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", - "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.2.0", - "@eslint/core": "^0.12.0", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.23.0", - "@eslint/plugin-kit": "^0.2.7", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -2932,9 +3640,9 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2982,14 +3690,17 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } @@ -3017,9 +3728,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -3045,30 +3756,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -3089,14 +3800,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.5.tgz", - "integrity": "sha512-IKKP8R87pJyMl7WWamLgPkloB16dagPIdd2FjBDbyRYPKo93wS/NbCOPh6gH+ieNLC+XZrhJt/kWj0PS/DFdmg==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", + "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.10.2" + "synckit": "^0.11.7" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -3120,9 +3831,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3137,9 +3848,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3150,15 +3861,15 @@ } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3227,6 +3938,17 @@ "node": ">=0.10.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -3277,11 +3999,29 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/farmhash-modern": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", + "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/fast-diff": { @@ -3335,6 +4075,26 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-xml-parser": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "strnum": "^1.1.1" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -3345,6 +4105,19 @@ "reusify": "^1.0.4" } }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -3379,9 +4152,9 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3431,6 +4204,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/firebase-admin": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.7.0.tgz", + "integrity": "sha512-raFIrOyTqREbyXsNkSHyciQLfv8AUZazehPaQS1lZBSCDYW74FYXU0nQZa3qHI4K+hawohlDbywZ4+qce9YNxA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@fastify/busboy": "^3.0.0", + "@firebase/database-compat": "1.0.8", + "@firebase/database-types": "1.0.5", + "@types/node": "^22.0.1", + "farmhash-modern": "^1.1.0", + "jsonwebtoken": "^9.0.0", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@google-cloud/firestore": "^7.7.0", + "@google-cloud/storage": "^7.7.0" + } + }, + "node_modules/firebase-admin/node_modules/@types/node": { + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", @@ -3468,6 +4276,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/form-data": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3494,7 +4321,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, + "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3521,14 +4348,71 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" } }, "node_modules/gensync": { @@ -3545,7 +4429,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, + "devOptional": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -3555,7 +4439,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -3590,7 +4474,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -3696,11 +4580,81 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/google-auth-library": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz", + "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "google-auth-library": "^9.3.0", + "node-fetch": "^2.7.0", + "object-hash": "^3.0.0", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", + "retry-request": "^7.0.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/google-logging-utils": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=14" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3723,6 +4677,21 @@ "dev": true, "license": "MIT" }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -3779,7 +4748,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3792,7 +4761,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -3808,7 +4777,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -3817,6 +4786,24 @@ "node": ">= 0.4" } }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -3824,6 +4811,58 @@ "dev": true, "license": "MIT" }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT", + "peer": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -3907,7 +4946,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/internal-slot": { @@ -4097,7 +5136,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -4158,6 +5197,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4237,7 +5289,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -4385,9 +5437,9 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4910,16 +5962,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-snapshot": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", @@ -4953,9 +5995,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -5066,6 +6108,16 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jose": { + "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5099,6 +6151,17 @@ "node": ">=6" } }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -5128,16 +6191,118 @@ "license": "MIT" }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "peer": true, "dependencies": { - "minimist": "^1.2.0" + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "peer": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "peer": true, "bin": { - "json5": "lib/cli.js" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jwks-rsa": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.2.0.tgz", + "integrity": "sha512-PwchfHcQK/5PSydeKCs1ylNym0w/SSv8a62DgHJ//7x2ZclCoinlsjAfDxAAbpoTPybOum/Jgy+vkvMmKz89Ww==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/express": "^4.17.20", + "@types/jsonwebtoken": "^9.0.4", + "debug": "^4.3.4", + "jose": "^4.15.4", + "limiter": "^1.1.5", + "lru-memoizer": "^2.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" } }, "node_modules/keyv": { @@ -5184,6 +6349,12 @@ "node": ">= 0.8.0" } }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "peer": true + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -5207,6 +6378,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT", + "peer": true + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -5221,6 +6449,21 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT", + "peer": true + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0", + "optional": true, + "peer": true + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -5231,6 +6474,37 @@ "yallist": "^3.0.2" } }, + "node_modules/lru-memoizer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", + "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", + "license": "MIT", + "peer": true, + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "6.0.0" + } + }, + "node_modules/lru-memoizer/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-memoizer/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", + "peer": true + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -5248,9 +6522,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -5281,7 +6555,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5301,21 +6575,60 @@ "dev": true, "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "mime-db": "1.52.0" }, "engines": { - "node": ">=8.6" + "node": ">= 0.6" } }, "node_modules/mimic-fn": { @@ -5355,7 +6668,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/natural-compare": { @@ -5365,6 +6677,38 @@ "dev": true, "license": "MIT" }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "peer": true, + "engines": { + "node": ">= 6.13.0" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5402,6 +6746,17 @@ "node": ">=8" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -5503,7 +6858,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, + "devOptional": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -5565,7 +6920,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -5792,9 +7147,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -5862,6 +7217,46 @@ "node": ">= 6" } }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5917,6 +7312,22 @@ "dev": true, "license": "MIT" }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -5965,7 +7376,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6035,6 +7446,33 @@ "node": ">=10" } }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/retry-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", + "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/request": "^2.48.8", + "extend": "^3.0.2", + "teeny-request": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -6090,6 +7528,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true + }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -6328,10 +7787,6 @@ "source-map": "^0.6.0" } }, - "node_modules/spezi-firebase-fhir": { - "resolved": "../../../spezi-firebase/packages/spezi-firebase-fhir", - "link": true - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6362,6 +7817,50 @@ "node": ">=8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -6380,7 +7879,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -6454,7 +7953,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -6464,13 +7963,13 @@ } }, "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-final-newline": { @@ -6496,6 +7995,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6523,20 +8044,81 @@ } }, "node_modules/synckit": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.10.3.tgz", - "integrity": "sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.0", - "tslib": "^2.8.1" + "@pkgr/core": "^0.2.9" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/teeny-request": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", + "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.9", + "stream-events": "^1.0.5", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/teeny-request/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/teeny-request/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/test-exclude": { @@ -6574,6 +8156,14 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", @@ -6588,21 +8178,20 @@ } }, "node_modules/ts-jest": { - "version": "29.3.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.2.tgz", - "integrity": "sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz", + "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.7.1", - "type-fest": "^4.39.1", + "semver": "^7.7.2", + "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, "bin": { @@ -6613,10 +8202,11 @@ }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { @@ -6634,26 +8224,16 @@ }, "esbuild": { "optional": true + }, + "jest-util": { + "optional": true } } }, - "node_modules/ts-jest/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -6733,12 +8313,35 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/type-check": { "version": "0.4.0", @@ -6855,9 +8458,9 @@ } }, "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6869,15 +8472,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz", - "integrity": "sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.28.0", - "@typescript-eslint/parser": "8.28.0", - "@typescript-eslint/utils": "8.28.0" + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6911,10 +8515,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/update-browserslist-db": { @@ -6958,6 +8561,28 @@ "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -6990,6 +8615,51 @@ "makeerror": "1.0.12" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "optional": true, + "peer": true + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7109,7 +8779,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -7127,7 +8797,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -7148,7 +8818,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, + "devOptional": true, "license": "ISC", "engines": { "node": ">=10" @@ -7165,7 +8835,7 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -7184,7 +8854,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, + "devOptional": true, "license": "ISC", "engines": { "node": ">=12" @@ -7204,7 +8874,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -7212,6 +8882,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/functions/models/package.json b/functions/models/package.json index c76c41e2..729ee1e0 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -21,8 +21,9 @@ "README.md" ], "main": "lib/index.js", - "dependencies": { - "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" + "peerDependencies": { + "@stanfordspezi/spezi-firebase-fhir": "^0.1.1", + "zod": "^3.23.8" }, "devDependencies": { "@types/fhir": "^0.0.41", diff --git a/functions/models/src/codes/references.ts b/functions/models/src/codes/references.ts index cb20ed02..1a41b679 100644 --- a/functions/models/src/codes/references.ts +++ b/functions/models/src/codes/references.ts @@ -6,6 +6,16 @@ // SPDX-License-Identifier: MIT // +export enum UserObservationCollection { + bodyWeight = 'bodyWeightObservations', + bloodPressure = 'bloodPressureObservations', + creatinine = 'creatinineObservations', + dryWeight = 'dryWeightObservations', + eGfr = 'eGfrObservations', + heartRate = 'heartRateObservations', + potassium = 'potassiumObservations', +} + export enum MedicationClassReference { betaBlockers = 'medicationClasses/0', sglt2inhibitors = 'medicationClasses/1', diff --git a/functions/models/src/fhir/fhirAllergyIntolerance.ts b/functions/models/src/fhir/fhirAllergyIntolerance.ts index d57a5cae..16872445 100644 --- a/functions/models/src/fhir/fhirAllergyIntolerance.ts +++ b/functions/models/src/fhir/fhirAllergyIntolerance.ts @@ -12,25 +12,22 @@ import { AllergyIntolerance } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' import { AllergyIntoleranceCriticality, - allergyIntoleranceSchema, AllergyIntoleranceType, -} from 'spezi-firebase-fhir' -import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -import { ZodType } from 'zod/v4' +} from '@stanfordspezi/spezi-firebase-fhir' export class FHIRAllergyIntolerance extends FHIRResource { // Static Functions static create(input: { - type: AllergyIntoleranceType + type?: AllergyIntoleranceType criticality?: AllergyIntoleranceCriticality reference: MedicationReference - userId: string + userId?: string }): FHIRAllergyIntolerance { return new FHIRAllergyIntolerance({ resourceType: 'AllergyIntolerance', patient: { - reference: `users/${input.userId}`, + reference: input.userId ? `users/${input.userId}` : undefined, }, type: input.type, criticality: input.criticality, @@ -51,14 +48,3 @@ export class FHIRAllergyIntolerance extends FHIRResource { return this.codes(this.data.code, { system: CodingSystem.rxNorm }) } } - -const schema: ZodType = allergyIntoleranceSchema -/* -export const allergyIntoleranceConverter = - new FHIRSchemaConverter({ - schema: allergyIntoleranceSchema.transform( - (data) => new FHIRAllergyIntolerance(data), - ), - nullProperties: [], - }) - */ diff --git a/functions/models/src/fhir/fhirAppointment.ts b/functions/models/src/fhir/fhirAppointment.ts index 62f641aa..e7678282 100644 --- a/functions/models/src/fhir/fhirAppointment.ts +++ b/functions/models/src/fhir/fhirAppointment.ts @@ -8,7 +8,7 @@ import { Appointment } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { AppointmentStatus } from 'spezi-firebase-fhir' +import { AppointmentStatus } from '@stanfordspezi/spezi-firebase-fhir' import { compactMap } from '../helpers/array.js' import { FHIRExtensionUrl } from '../codes/codes.js' @@ -18,13 +18,13 @@ export class FHIRAppointment extends FHIRResource { static create(input: { userId: string created: Date - status: AppointmentStatus + status?: AppointmentStatus start: Date durationInMinutes: number }): FHIRAppointment { return new FHIRAppointment({ resourceType: 'Appointment', - status: input.status, + status: input.status ?? 'booked', created: input.created.toISOString(), start: input.start.toISOString(), end: new Date( @@ -66,11 +66,3 @@ export class FHIRAppointment extends FHIRResource { ) } } - -/* -export const fhirAppointmentConverter = - new FHIRSchemaConverter({ - schema: appointmentSchema.transform((data) => new FHIRAppointment(data)), - nullProperties: [], - }) -*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirConverters.ts b/functions/models/src/fhir/fhirConverters.ts new file mode 100644 index 00000000..dc41efb3 --- /dev/null +++ b/functions/models/src/fhir/fhirConverters.ts @@ -0,0 +1,81 @@ +// +// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project +// +// SPDX-FileCopyrightText: 2023 Stanford University +// +// SPDX-License-Identifier: MIT +// + +import { + allergyIntoleranceSchema, + appointmentSchema, + medicationSchema, + medicationRequestSchema, + observationSchema, + questionnaireSchema, + questionnaireResponseSchema, +} from '@stanfordspezi/spezi-firebase-fhir' +import { ZodType } from 'zod/v4' +import { FHIRAllergyIntolerance } from './fhirAllergyIntolerance.js' +import { FHIRAppointment } from './fhirAppointment.js' +import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' + +/* +const aiSchema: ZodType = + allergyIntoleranceSchema.transform((data) => new FHIRAllergyIntolerance(data)) + +export const fhirAllergyIntoleranceConverter = + new FHIRSchemaConverter(aiSchema, { + nullProperties: [], + }) +export const fhirAppointmentConverter = + new FHIRSchemaConverter( + appointmentSchema.transform((data) => new FHIRAppointment(data)), + { + nullProperties: [], + }, + ) + +export const fhirMedicationConverter = new FHIRSchemaConverter( + medicationSchema.transform((data) => new FHIRMedication(data)), + { + nullProperties: [], + }, +) + +export const fhirMedicationRequestConverter = + new FHIRSchemaConverter( + medicationRequestSchema.transform( + (data) => new FHIRMedicationRequest(data), + ), + { + nullProperties: [], + }, + ) + +export const fhirObservationConverter = + new FHIRSchemaConverter( + observationSchema.transform((data) => new FHIRObservation(data)), + { + nullProperties: [], + }, + ) + +export const fhirQuestionnaireConverter = + new FHIRSchemaConverter( + questionnaireSchema.transform((data) => new FHIRQuestionnaire(data)), + { + nullProperties: [], + }, + ) + +export const fhirQuestionnaireResponseConverter = + new FHIRSchemaConverter( + questionnaireResponseSchema.transform( + (data) => new FHIRQuestionnaireResponse(data), + ), + { + nullProperties: [], + }, + ) +*/ diff --git a/functions/models/src/fhir/fhirMedication.ts b/functions/models/src/fhir/fhirMedication.ts index b7cda513..413bfe14 100644 --- a/functions/models/src/fhir/fhirMedication.ts +++ b/functions/models/src/fhir/fhirMedication.ts @@ -12,7 +12,7 @@ import { CodingSystem, FHIRExtensionUrl } from '../codes/codes' import { QuantityUnit } from '../codes/quantityUnit' import { FHIRMedicationRequest } from './fhirMedicationRequest' import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -import { medicationRequestSchema } from 'spezi-firebase-fhir' +import { medicationRequestSchema } from '@stanfordspezi/spezi-firebase-fhir' export class FHIRMedication extends FHIRResource { // Computed Properties diff --git a/functions/models/src/fhir/fhirMedicationRequest.ts b/functions/models/src/fhir/fhirMedicationRequest.ts index 078d1981..6141d422 100644 --- a/functions/models/src/fhir/fhirMedicationRequest.ts +++ b/functions/models/src/fhir/fhirMedicationRequest.ts @@ -8,7 +8,7 @@ import { Extension, MedicationRequest } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { medicationRequestSchema } from 'spezi-firebase-fhir' +import { medicationRequestSchema } from '@stanfordspezi/spezi-firebase-fhir' import { QuantityUnit } from '../codes/quantityUnit.js' export class FHIRMedicationRequest extends FHIRResource { diff --git a/functions/models/src/fhir/fhirObservation.ts b/functions/models/src/fhir/fhirObservation.ts index 1d89c838..7ed7511b 100644 --- a/functions/models/src/fhir/fhirObservation.ts +++ b/functions/models/src/fhir/fhirObservation.ts @@ -11,19 +11,9 @@ import { QuantityUnit } from '../codes/quantityUnit.js' import { Coding, Observation, Reference } from 'fhir/r4b.js' import { ObservationQuantity } from '../types/observationQuantity.js' import { FHIRResource } from './fhirResource.js' -import { observationSchema } from 'spezi-firebase-fhir' +import { observationSchema } from '@stanfordspezi/spezi-firebase-fhir' import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -export enum UserObservationCollection { - bodyWeight = 'bodyWeightObservations', - bloodPressure = 'bloodPressureObservations', - creatinine = 'creatinineObservations', - dryWeight = 'dryWeightObservations', - eGfr = 'eGfrObservations', - heartRate = 'heartRateObservations', - potassium = 'potassiumObservations', -} - export class FHIRObservation extends FHIRResource { // Static Functions @@ -259,4 +249,4 @@ export const fhirObservationConverter = schema: observationSchema.transform((data) => new FHIRObservation(data)), nullProperties: ['effectiveDateTime', 'effectiveInstant'], }) -*/ \ No newline at end of file +*/ diff --git a/functions/models/src/fhir/fhirQuestionnaire.ts b/functions/models/src/fhir/fhirQuestionnaire.ts index 2d1b99c8..cf75035c 100644 --- a/functions/models/src/fhir/fhirQuestionnaire.ts +++ b/functions/models/src/fhir/fhirQuestionnaire.ts @@ -8,7 +8,7 @@ import { Questionnaire } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { questionnaireSchema } from 'spezi-firebase-fhir' +import { questionnaireSchema } from '@stanfordspezi/spezi-firebase-fhir' import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' export class FHIRQuestionnaire extends FHIRResource {} diff --git a/functions/models/src/fhir/fhirQuestionnaireResponse.ts b/functions/models/src/fhir/fhirQuestionnaireResponse.ts index d5edcc91..75a9cc86 100644 --- a/functions/models/src/fhir/fhirQuestionnaireResponse.ts +++ b/functions/models/src/fhir/fhirQuestionnaireResponse.ts @@ -9,7 +9,7 @@ import { QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -import { questionnaireResponseSchema } from 'spezi-firebase-fhir' +import { questionnaireResponseSchema } from '@stanfordspezi/spezi-firebase-fhir' export class FHIRQuestionnaireResponse extends FHIRResource { // Methods - Response items from path diff --git a/functions/models/src/helpers/fhirSchemaConverter.ts b/functions/models/src/helpers/fhirSchemaConverter.ts index 3d491742..25224d61 100644 --- a/functions/models/src/helpers/fhirSchemaConverter.ts +++ b/functions/models/src/helpers/fhirSchemaConverter.ts @@ -17,12 +17,14 @@ export class FHIRSchemaConverter { // Constructor - constructor(input: { - schema: ZodType - nullProperties: string[] - }) { - this.schema = input.schema - this.nullProperties = input.nullProperties + constructor( + schema: ZodType, + options: { + nullProperties: string[] + }, + ) { + this.schema = schema + this.nullProperties = options.nullProperties } // Methods diff --git a/functions/models/src/index.ts b/functions/models/src/index.ts index d2ca9eea..eb8d1c67 100644 --- a/functions/models/src/index.ts +++ b/functions/models/src/index.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -export * from 'spezi-firebase-fhir' +export * from '@stanfordspezi/spezi-firebase-fhir' export * from './codes/codes.js' export * from './codes/quantityUnit.js' export * from './codes/references.js' @@ -17,6 +17,7 @@ export * from './fhir/fhirMedicationRequest.js' export * from './fhir/fhirObservation.js' export * from './fhir/fhirQuestionnaire.js' export * from './fhir/fhirQuestionnaireResponse.js' +export * from './fhir/fhirResource.js' export * from './functions/createInvitation.js' export * from './functions/customSeed.js' export * from './functions/defaultSeed.js' @@ -38,6 +39,7 @@ export * from './functions/updateUserInformation.js' export * from './helpers/array.js' export * from './helpers/date+extras.js' export * from './helpers/dateConverter.js' +export * from './helpers/fhirSchemaConverter.js' export * from './helpers/lazy.js' export * from './helpers/optionalish.js' export * from './helpers/schemaConverter.js' diff --git a/functions/package-lock.json b/functions/package-lock.json index dae1c88e..645f66fa 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -39,11 +39,15 @@ }, "engines": { "node": "22" + }, + "peerDependencies": { + "zod": "^3.23.8" } }, "../../spezi-firebase/packages/spezi-firebase-fhir": { "name": "@stanfordspezi/spezi-firebase-fhir", "version": "0.1.0", + "extraneous": true, "license": "MIT", "dependencies": { "@stanfordspezi/spezi-firebase-utils": "file:../spezi-firebase-utils", @@ -73,9 +77,6 @@ }, "models": { "name": "@stanfordbdhg/engagehf-models", - "dependencies": { - "spezi-firebase-fhir": "file:../../../spezi-firebase/packages/spezi-firebase-fhir" - }, "devDependencies": { "@types/fhir": "^0.0.41", "@types/node": "^20", @@ -93,11 +94,14 @@ }, "engines": { "node": "22" + }, + "peerDependencies": { + "@stanfordspezi/spezi-firebase-fhir": "^0.1.1", + "zod": "^3.23.8" } }, - "models/node_modules/spezi-firebase-fhir": { - "resolved": "../../spezi-firebase/packages/spezi-firebase-fhir", - "link": true + "models/@stanfordspezi/spezi-firebase-fhir@^0.1.1": { + "extraneous": true }, "node_modules/@ampproject/remapping": { "version": "2.3.0", @@ -114,13 +118,13 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.1.tgz", - "integrity": "sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" @@ -133,24 +137,24 @@ "license": "ISC" }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, "license": "MIT", "engines": { @@ -158,22 +162,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -189,16 +193,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", - "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -206,14 +210,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", - "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -222,30 +226,40 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -255,9 +269,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -265,9 +279,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -275,9 +289,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, "license": "MIT", "engines": { @@ -285,9 +299,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -295,27 +309,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.0" + "@babel/types": "^7.28.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -380,13 +394,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -422,13 +436,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -548,13 +562,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -564,75 +578,69 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", - "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.27.0", - "@babel/parser": "^7.27.0", - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -677,9 +685,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", - "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", "funding": [ { "type": "github", @@ -695,14 +703,14 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", - "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", + "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", "funding": [ { "type": "github", @@ -716,20 +724,20 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^5.0.2", - "@csstools/css-calc": "^2.1.2" + "@csstools/css-calc": "^2.1.4" }, "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "funding": [ { "type": "github", @@ -745,13 +753,13 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "funding": [ { "type": "github", @@ -768,9 +776,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", - "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -810,9 +818,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -825,9 +833,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", - "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -835,9 +843,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -872,13 +880,16 @@ } }, "node_modules/@eslint/js": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", - "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { @@ -892,13 +903,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.12.0", + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { @@ -911,18 +922,40 @@ "integrity": "sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==", "license": "MIT" }, + "node_modules/@firebase/ai": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-1.4.1.tgz", + "integrity": "sha512-bcusQfA/tHjUjBTnMx6jdoPMpDl3r8K15Z+snHz9wq0Foox0F/V+kNLXucEOHoTL2hTc9l+onZCyBJs2QoIC3g==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" + } + }, "node_modules/@firebase/analytics": { - "version": "0.10.12", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.12.tgz", - "integrity": "sha512-iDCGnw6qdFqwI5ywkgece99WADJNoymu+nLIQI4fZM/vCZ3bEo4wlpEetW71s1HqGpI0hQStiPhqVjFxDb2yyw==", + "version": "0.10.17", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.17.tgz", + "integrity": "sha512-n5vfBbvzduMou/2cqsnKrIes4auaBjdhg8QNA2ZQZ59QgtO2QiwBaXQZQE4O4sgB0Ds1tvLgUUkY+pwzu6/xEg==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -930,17 +963,17 @@ } }, "node_modules/@firebase/analytics-compat": { - "version": "0.2.18", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.18.tgz", - "integrity": "sha512-Hw9mzsSMZaQu6wrTbi3kYYwGw9nBqOHr47pVLxfr5v8CalsdrG5gfs9XUlPOZjHRVISp3oQrh1j7d3E+ulHPjQ==", + "version": "0.2.23", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.23.tgz", + "integrity": "sha512-3AdO10RN18G5AzREPoFgYhW6vWXr3u+OYQv6pl3CX6Fky8QRk0AHurZlY3Q1xkXO0TDxIsdhO3y65HF7PBOJDw==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/analytics": "0.10.12", + "@firebase/analytics": "0.10.17", "@firebase/analytics-types": "0.8.3", - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -956,16 +989,16 @@ "peer": true }, "node_modules/@firebase/app": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.11.3.tgz", - "integrity": "sha512-QlTZl/RcqPSonYxB87n8KgAUW2L6ZZz0W4D91PVmQ1tJPsKsKPrWAFHL0ii2cQW6FxTxfNjbZ7kucuIcKXk3tw==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.13.2.tgz", + "integrity": "sha512-jwtMmJa1BXXDCiDx1vC6SFN/+HfYG53UkfJa6qeN5ogvOunzbFDO3wISZy5n9xgYFUrEP6M7e8EG++riHNTv9w==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "idb": "7.1.1", "tslib": "^2.1.0" }, @@ -974,16 +1007,16 @@ } }, "node_modules/@firebase/app-check": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.13.tgz", - "integrity": "sha512-ONsgml8/dplUOAP42JQO6hhiWDEwR9+RUTLenxAN9S8N6gel/sDQ9Ci721Py1oASMGdDU8v9R7xAZxzvOX5lPg==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.10.1.tgz", + "integrity": "sha512-MgNdlms9Qb0oSny87pwpjKush9qUwCJhfmTJHDfrcKo4neLGiSeVE4qJkzP7EQTIUFKp84pbTxobSAXkiuQVYQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -994,18 +1027,18 @@ } }, "node_modules/@firebase/app-check-compat": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.20.tgz", - "integrity": "sha512-/twgmlnNAaZ/wbz3kcQrL/26b+X+zUX+lBmu5LwwEcWcpnb+mrVEAKhD7/ttm52dxYiSWtLDeuXy3FXBhqBC5A==", + "version": "0.3.26", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.26.tgz", + "integrity": "sha512-PkX+XJMLDea6nmnopzFKlr+s2LMQGqdyT2DHdbx1v1dPSqOol2YzgpgymmhC67vitXVpNvS3m/AiWQWWhhRRPQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/app-check": "0.8.13", + "@firebase/app-check": "0.10.1", "@firebase/app-check-types": "0.5.3", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1030,17 +1063,17 @@ "peer": true }, "node_modules/@firebase/app-compat": { - "version": "0.2.52", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.52.tgz", - "integrity": "sha512-0p/l1KiwhwwYTcPWoleFQHftOnYzeXvyVf3WNZyKFBAoQMpCVW6bVm/uO1bXF91AwU1JN0og888Y6Sc8avqZ+A==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.4.2.tgz", + "integrity": "sha512-LssbyKHlwLeiV8GBATyOyjmHcMpX/tFjzRUCS1jnwGAew1VsBB4fJowyS5Ud5LdFbYpJeS+IQoC+RQxpK7eH3Q==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/app": "0.11.3", - "@firebase/component": "0.6.13", + "@firebase/app": "0.13.2", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1054,16 +1087,16 @@ "license": "Apache-2.0" }, "node_modules/@firebase/auth": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.9.1.tgz", - "integrity": "sha512-9KKo5SNVkyJzftsW+daS+PGDbeJ+MFJWXQFHDqqPPH3acWHtiNnGHH5HGpIJErEELrsm9xMPie5zfZ0XpGU8+w==", + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.10.8.tgz", + "integrity": "sha512-GpuTz5ap8zumr/ocnPY57ZanX02COsXloY6Y/2LYPAuXYiaJRf6BAGDEdRq1BMjP93kqQnKNuKZUTMZbQ8MNYA==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1080,17 +1113,17 @@ } }, "node_modules/@firebase/auth-compat": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.19.tgz", - "integrity": "sha512-v898POphOIBJliKF76SiGOXh4EdhO5fM6S9a2ZKf/8wHdBea/qwxwZoVVya4DW6Mi7vWyp1lIzHbFgwRz8G9TA==", + "version": "0.5.28", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.28.tgz", + "integrity": "sha512-HpMSo/cc6Y8IX7bkRIaPPqT//Jt83iWy5rmDWeThXQCAImstkdNo3giFLORJwrZw2ptiGkOij64EH1ztNJzc7Q==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/auth": "1.9.1", + "@firebase/auth": "1.10.8", "@firebase/auth-types": "0.13.0", - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1119,12 +1152,12 @@ } }, "node_modules/@firebase/component": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.13.tgz", - "integrity": "sha512-I/Eg1NpAtZ8AAfq8mpdfXnuUpcLxIDdCDtTzWSh+FXnp/9eCKJ3SNbOCKrUCyhLzNa2SiPJYruei0sxVjaOTeg==", + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.18.tgz", + "integrity": "sha512-n28kPCkE2dL2U28fSxZJjzPPVpKsQminJ6NrzcKXAI0E/lYC8YhfwpyllScqVEvAI3J2QgJZWYgrX+1qGI+SQQ==", "license": "Apache-2.0", "dependencies": { - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1132,17 +1165,17 @@ } }, "node_modules/@firebase/data-connect": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.2.tgz", - "integrity": "sha512-PYG55JRTmvYrUuXXmYBsZexwKVP9aR3mIRRHxB9V2bQeRDZky6JtRZnH3GLhf4ZsxZy5Ewd8ul/jTOYR4gpD9w==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.10.tgz", + "integrity": "sha512-VMVk7zxIkgwlVQIWHOKFahmleIjiVFwFOjmakXPd/LDgaB/5vzwsB5DWIYo+3KhGxWpidQlR8geCIn39YflJIQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1150,16 +1183,16 @@ } }, "node_modules/@firebase/database": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.14.tgz", - "integrity": "sha512-9nxYtkHAG02/Nh2Ssms1T4BbWPPjiwohCvkHDUl4hNxnki1kPgsLo5xe9kXNzbacOStmVys+RUXvwzynQSKmUQ==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.20.tgz", + "integrity": "sha512-H9Rpj1pQ1yc9+4HQOotFGLxqAXwOzCHsRSRjcQFNOr8lhUt6LeYjf0NSRL04sc4X0dWe8DsCvYKxMYvFG/iOJw==", "license": "Apache-2.0", "dependencies": { "@firebase/app-check-interop-types": "0.3.3", "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "faye-websocket": "0.11.4", "tslib": "^2.1.0" }, @@ -1168,16 +1201,16 @@ } }, "node_modules/@firebase/database-compat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.5.tgz", - "integrity": "sha512-CNf1UbvWh6qIaSf4sn6sx2DTDz/em/D7QxULH1LTxxDQHr9+CeYGvlAqrKnk4ZH0P0eIHyQFQU7RwkUJI0B9gQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.11.tgz", + "integrity": "sha512-itEsHARSsYS95+udF/TtIzNeQ0Uhx4uIna0sk4E0wQJBUnLc/G1X6D7oRljoOuwwCezRLGvWBRyNrugv/esOEw==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/database": "1.0.14", - "@firebase/database-types": "1.0.10", + "@firebase/component": "0.6.18", + "@firebase/database": "1.0.20", + "@firebase/database-types": "1.0.15", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1185,26 +1218,26 @@ } }, "node_modules/@firebase/database-types": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.10.tgz", - "integrity": "sha512-mH6RC1E9/Pv8jf1/p+M8YFTX+iu+iHDN89hecvyO7wHrI4R1V0TXjxOHvX3nLJN1sfh0CWG6CHZ0VlrSmK/cwg==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.15.tgz", + "integrity": "sha512-XWHJ0VUJ0k2E9HDMlKxlgy/ZuTa9EvHCGLjaKSUvrQnwhgZuRU5N3yX6SZ+ftf2hTzZmfRkv+b3QRvGg40bKNw==", "license": "Apache-2.0", "dependencies": { "@firebase/app-types": "0.9.3", - "@firebase/util": "1.11.0" + "@firebase/util": "1.12.1" } }, "node_modules/@firebase/firestore": { - "version": "4.7.10", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.10.tgz", - "integrity": "sha512-6nKsyo2U+jYSCcSE5sjMdDNA23DMUvYPUvsYGg09CNvcTO8GGKsPs7SpOhspsB91mbacq+u627CDAx3FUhPSSQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.8.0.tgz", + "integrity": "sha512-QSRk+Q1/CaabKyqn3C32KSFiOdZpSqI9rpLK5BHPcooElumOBooPFa6YkDdiT+/KhJtel36LdAacha9BptMj2A==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "@firebase/webchannel-wrapper": "1.0.3", "@grpc/grpc-js": "~1.9.0", "@grpc/proto-loader": "^0.7.8", @@ -1218,17 +1251,17 @@ } }, "node_modules/@firebase/firestore-compat": { - "version": "0.3.45", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.45.tgz", - "integrity": "sha512-uRvi7AYPmsDl7UZwPyV7jgDGYusEZ2+U2g7MndbQHKIA8fNHpYC6QrzMs58+/IjX+kF/lkUn67Vrr0AkVjlY+Q==", + "version": "0.3.53", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.53.tgz", + "integrity": "sha512-qI3yZL8ljwAYWrTousWYbemay2YZa+udLWugjdjju2KODWtLG94DfO4NALJgPLv8CVGcDHNFXoyQexdRA0Cz8Q==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/firestore": "4.7.10", + "@firebase/component": "0.6.18", + "@firebase/firestore": "4.8.0", "@firebase/firestore-types": "3.0.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1251,18 +1284,18 @@ } }, "node_modules/@firebase/functions": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.3.tgz", - "integrity": "sha512-Wv7JZMUkKLb1goOWRtsu3t7m97uK6XQvjQLPvn8rncY91+VgdU72crqnaYCDI/ophNuBEmuK8mn0/pAnjUeA6A==", + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.9.tgz", + "integrity": "sha512-FG95w6vjbUXN84Ehezc2SDjGmGq225UYbHrb/ptkRT7OTuCiQRErOQuyt1jI1tvcDekdNog+anIObihNFz79Lg==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { "@firebase/app-check-interop-types": "0.3.3", "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/messaging-interop-types": "0.2.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1273,17 +1306,17 @@ } }, "node_modules/@firebase/functions-compat": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.20.tgz", - "integrity": "sha512-iIudmYDAML6n3c7uXO2YTlzra2/J6lnMzmJTXNthvrKVMgNMaseNoQP1wKfchK84hMuSF8EkM4AvufwbJ+Juew==", + "version": "0.3.26", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.26.tgz", + "integrity": "sha512-A798/6ff5LcG2LTWqaGazbFYnjBW8zc65YfID/en83ALmkhu2b0G8ykvQnLtakbV9ajrMYPn7Yc/XcYsZIUsjA==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/functions": "0.12.3", + "@firebase/component": "0.6.18", + "@firebase/functions": "0.12.9", "@firebase/functions-types": "0.6.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1302,15 +1335,15 @@ "peer": true }, "node_modules/@firebase/installations": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.13.tgz", - "integrity": "sha512-6ZpkUiaygPFwgVneYxuuOuHnSPnTA4KefLEaw/sKk/rNYgC7X6twaGfYb0sYLpbi9xV4i5jXsqZ3WO+yaguNgg==", + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.18.tgz", + "integrity": "sha512-NQ86uGAcvO8nBRwVltRL9QQ4Reidc/3whdAasgeWCPIcrhOKDuNpAALa6eCVryLnK14ua2DqekCOX5uC9XbU/A==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", "idb": "7.1.1", "tslib": "^2.1.0" }, @@ -1319,17 +1352,17 @@ } }, "node_modules/@firebase/installations-compat": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.13.tgz", - "integrity": "sha512-f/o6MqCI7LD/ulY9gvgkv6w5k6diaReD8BFHd/y/fEdpsXmFWYS/g28GXCB72bRVBOgPpkOUNl+VsMvDwlRKmw==", + "version": "0.2.18", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.18.tgz", + "integrity": "sha512-aLFohRpJO5kKBL/XYL4tN+GdwEB/Q6Vo9eZOM/6Kic7asSUgmSfGPpGUZO1OAaSRGwF4Lqnvi1f/f9VZnKzChw==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", "@firebase/installations-types": "0.5.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1360,17 +1393,17 @@ } }, "node_modules/@firebase/messaging": { - "version": "0.12.17", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.17.tgz", - "integrity": "sha512-W3CnGhTm6Nx8XGb6E5/+jZTuxX/EK8Vur4QXvO1DwZta/t0xqWMRgO9vNsZFMYBqFV4o3j4F9qK/iddGYwWS6g==", + "version": "0.12.22", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.22.tgz", + "integrity": "sha512-GJcrPLc+Hu7nk+XQ70Okt3M1u1eRr2ZvpMbzbc54oTPJZySHcX9ccZGVFcsZbSZ6o1uqumm8Oc7OFkD3Rn1/og==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", "@firebase/messaging-interop-types": "0.2.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "idb": "7.1.1", "tslib": "^2.1.0" }, @@ -1379,16 +1412,16 @@ } }, "node_modules/@firebase/messaging-compat": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.17.tgz", - "integrity": "sha512-5Q+9IG7FuedusdWHVQRjpA3OVD9KUWp/IPegcv0s5qSqRLBjib7FlAeWxN+VL0Ew43tuPJBY2HKhEecuizmO1Q==", + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.22.tgz", + "integrity": "sha512-5ZHtRnj6YO6f/QPa/KU6gryjmX4Kg33Kn4gRpNU6M1K47Gm8kcQwPkX7erRUYEH1mIWptfvjvXMHWoZaWjkU7A==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/messaging": "0.12.17", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.18", + "@firebase/messaging": "0.12.22", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1404,17 +1437,17 @@ "peer": true }, "node_modules/@firebase/performance": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.2.tgz", - "integrity": "sha512-DXLLp0R0jdxH/yTmv+WTkOzsLl8YYecXh4lGZE0dzqC0IV8k+AxpLSSWvOTCkAETze8yEU/iF+PtgYVlGjfMMQ==", + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.7.tgz", + "integrity": "sha512-JTlTQNZKAd4+Q5sodpw6CN+6NmwbY72av3Lb6wUKTsL7rb3cuBIhQSrslWbVz0SwK3x0ZNcqX24qtRbwKiv+6w==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0", "web-vitals": "^4.2.4" }, @@ -1423,18 +1456,18 @@ } }, "node_modules/@firebase/performance-compat": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.15.tgz", - "integrity": "sha512-wUxsw7hGBEMN6XfvYQqwPIQp5LcJXawWM5tmYp6L7ClCoTQuEiCKHWWVurJgN8Q1YHzoHVgjNfPQAOVu29iMVg==", + "version": "0.2.20", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.20.tgz", + "integrity": "sha512-XkFK5NmOKCBuqOKWeRgBUFZZGz9SzdTZp4OqeUg+5nyjapTiZ4XoiiUL8z7mB2q+63rPmBl7msv682J3rcDXIQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/performance": "0.7.2", + "@firebase/performance": "0.7.7", "@firebase/performance-types": "0.2.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1450,17 +1483,17 @@ "peer": true }, "node_modules/@firebase/remote-config": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.0.tgz", - "integrity": "sha512-Yrk4l5+6FJLPHC6irNHMzgTtJ3NfHXlAXVChCBdNFtgmzyGmufNs/sr8oA0auEfIJ5VpXCaThRh3P4OdQxiAlQ==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.5.tgz", + "integrity": "sha512-fU0c8HY0vrVHwC+zQ/fpXSqHyDMuuuglV94VF6Yonhz8Fg2J+KOowPGANM0SZkLvVOYpTeWp3ZmM+F6NjwWLnw==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1468,18 +1501,18 @@ } }, "node_modules/@firebase/remote-config-compat": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.13.tgz", - "integrity": "sha512-UmHoO7TxAEJPIZf8e1Hy6CeFGMeyjqSCpgoBkQZYXFI2JHhzxIyDpr8jVKJJN1dmAePKZ5EX7dC13CmcdTOl7Q==", + "version": "0.2.18", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.18.tgz", + "integrity": "sha512-YiETpldhDy7zUrnS8e+3l7cNs0sL7+tVAxvVYU0lu7O+qLHbmdtAxmgY+wJqWdW2c9nDvBFec7QiF58pEUu0qQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", - "@firebase/remote-config": "0.6.0", + "@firebase/remote-config": "0.6.5", "@firebase/remote-config-types": "0.4.0", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1508,15 +1541,15 @@ } }, "node_modules/@firebase/storage": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.7.tgz", - "integrity": "sha512-FkRyc24rK+Y6EaQ1tYFm3TevBnnfSNA0VyTfew2hrYyL/aYfatBg7HOgktUdB4kWMHNA9VoTotzZTGoLuK92wg==", + "version": "0.13.14", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.14.tgz", + "integrity": "sha512-xTq5ixxORzx+bfqCpsh+o3fxOsGoDjC1nO0Mq2+KsOcny3l7beyBhP/y1u5T6mgsFQwI1j6oAkbT5cWdDBx87g==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1527,17 +1560,17 @@ } }, "node_modules/@firebase/storage-compat": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.17.tgz", - "integrity": "sha512-CBlODWEZ5b6MJWVh21VZioxwxNwVfPA9CAdsk+ZgVocJQQbE2oDW1XJoRcgthRY1HOitgbn4cVrM+NlQtuUYhw==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.24.tgz", + "integrity": "sha512-XHn2tLniiP7BFKJaPZ0P8YQXKiVJX+bMyE2j2YWjYfaddqiJnROJYqSomwW6L3Y+gZAga35ONXUJQju6MB6SOQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/storage": "0.13.7", + "@firebase/component": "0.6.18", + "@firebase/storage": "0.13.14", "@firebase/storage-types": "0.8.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.1", "tslib": "^2.1.0" }, "engines": { @@ -1560,9 +1593,9 @@ } }, "node_modules/@firebase/util": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.11.0.tgz", - "integrity": "sha512-PzSrhIr++KI6y4P6C/IdgBNMkEx0Ex6554/cYd0Hm+ovyFSJtJXqb/3OSIdnBoa2cpwZT1/GW56EmRc5qEc5fQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.12.1.tgz", + "integrity": "sha512-zGlBn/9Dnya5ta9bX/fgEoNC3Cp8s6h+uYPYaDieZsFOAdHP/ExzQ/eaDgxD3GOROdPkLKpvKY0iIzr9adle0w==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -1572,28 +1605,6 @@ "node": ">=18.0.0" } }, - "node_modules/@firebase/vertexai": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@firebase/vertexai/-/vertexai-1.2.0.tgz", - "integrity": "sha512-WUYIzFpOipjFXT2i0hT26wivJoIximizQptVs3KAxFAqbVlO8sjKPsMkgz0bh+tdKlqP4SUDda71fMUZXUKHgA==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@firebase/app-check-interop-types": "0.3.3", - "@firebase/component": "0.6.13", - "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, "node_modules/@firebase/webchannel-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.3.tgz", @@ -1603,9 +1614,9 @@ "peer": true }, "node_modules/@google-cloud/firestore": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.0.tgz", - "integrity": "sha512-88uZ+jLsp1aVMj7gh3EKYH1aulTAMFAp8sH/v5a9w8q8iqSG27RiWLoxSAFr/XocZ9hGiWH1kEnBw+zl3xAgNA==", + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.3.tgz", + "integrity": "sha512-qsM3/WHpawF07SRVvEJJVRwhYzM7o9qtuksyuqnrMig6fxIrwWnsezECWsG/D5TyYru51Fv5c/RTqNDQ2yU+4w==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -1644,25 +1655,25 @@ } }, "node_modules/@google-cloud/promisify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.1.0.tgz", - "integrity": "sha512-G/FQx5cE/+DqBbOpA5jKsegGwdPniU6PuIEMt+qxWgFxvxuFOzVmp6zYchtYuwAWV5/8Dgs0yAmjvNZv3uXLQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", + "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", "license": "Apache-2.0", "optional": true, "engines": { - "node": ">=18" + "node": ">=14" } }, "node_modules/@google-cloud/storage": { - "version": "7.15.2", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.15.2.tgz", - "integrity": "sha512-+2k+mcQBb9zkaXMllf2wwR/rI07guAx+eZLWsGTDihW2lJRGfiqB7xu1r7/s4uvSP/T+nAumvzT5TTscwHKJ9A==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.16.0.tgz", + "integrity": "sha512-7/5LRgykyOfQENcm6hDKP8SX/u9XxE5YOiWOkgkwcoO+cG8xT/cyOvp9wwN3IxfdYgpHs8CE7Nq2PKX2lNaEXw==", "license": "Apache-2.0", "optional": true, "dependencies": { "@google-cloud/paginator": "^5.0.0", "@google-cloud/projectify": "^4.0.0", - "@google-cloud/promisify": "^4.0.0", + "@google-cloud/promisify": "<4.1.0", "abort-controller": "^3.0.0", "async-retry": "^1.3.3", "duplexify": "^4.1.3", @@ -1706,9 +1717,9 @@ } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -1777,9 +1788,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2094,13 +2105,6 @@ } } }, - "node_modules/@jest/reporters/node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -2207,18 +2211,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -2231,27 +2231,17 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2319,16 +2309,16 @@ } }, "node_modules/@pkgr/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz", - "integrity": "sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/pkgr" } }, "node_modules/@protobufjs/aspromise": { @@ -2677,6 +2667,167 @@ "resolved": "models", "link": true }, + "node_modules/@stanfordspezi/spezi-firebase-fhir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.1.tgz", + "integrity": "sha512-80uBEnPaUDuZExw2SYOzjVbhfa/JizgPbj6JEXuz72M8b/gkdvr7XEGGuiGq847DBPVRCRCgyeb1mATuz+fxGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@stanfordspezi/spezi-firebase-utils": "file:../spezi-firebase-utils", + "firebase-admin": "^12.0", + "zod": "^3.25" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "firebase-admin": "^12.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/app-check-interop-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/app-types": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/auth-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/component": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.9.tgz", + "integrity": "sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/database": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.8.tgz", + "integrity": "sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/database-compat": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.8.tgz", + "integrity": "sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/database": "1.0.8", + "@firebase/database-types": "1.0.5", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/database-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.5.tgz", + "integrity": "sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.10.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/logger": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/util": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.10.0.tgz", + "integrity": "sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@types/node": { + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/firebase-admin": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.7.0.tgz", + "integrity": "sha512-raFIrOyTqREbyXsNkSHyciQLfv8AUZazehPaQS1lZBSCDYW74FYXU0nQZa3qHI4K+hawohlDbywZ4+qce9YNxA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@fastify/busboy": "^3.0.0", + "@firebase/database-compat": "1.0.8", + "@firebase/database-types": "1.0.5", + "@types/node": "^22.0.1", + "farmhash-modern": "^1.1.0", + "jsonwebtoken": "^9.0.0", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@google-cloud/firestore": "^7.7.0", + "@google-cloud/storage": "^7.7.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -2730,9 +2881,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -2751,9 +2902,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "dev": true, "license": "MIT", "dependencies": { @@ -2761,9 +2912,9 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -2787,9 +2938,9 @@ } }, "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -3080,16 +3231,16 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -3135,9 +3286,9 @@ } }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { @@ -3205,9 +3356,9 @@ "license": "MIT" }, "node_modules/@types/jsonwebtoken": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz", - "integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", "license": "MIT", "dependencies": { "@types/ms": "*", @@ -3215,9 +3366,9 @@ } }, "node_modules/@types/lodash": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", - "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", "dev": true, "license": "MIT" }, @@ -3241,18 +3392,18 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.27.tgz", - "integrity": "sha512-U58sbKhDrthHlxHRJw7ZLiLDZGmAUOZUbpw0S6nL27sYUdhvgBLCRu/keSd6qcTsfArd1sRFCCBxzWATGr/0UA==", + "version": "20.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.9.tgz", + "integrity": "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.21.0" } }, "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "license": "MIT" }, "node_modules/@types/raf": { @@ -3282,15 +3433,16 @@ } }, "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz", - "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", "license": "MIT", "optional": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.35", "safe-buffer": "^5.2.1" }, @@ -3299,9 +3451,9 @@ } }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", "license": "MIT", "dependencies": { "@types/mime": "^1", @@ -3309,9 +3461,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -3375,21 +3527,21 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", - "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/type-utils": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3399,22 +3551,32 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "@typescript-eslint/parser": "^8.38.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", - "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4" }, "engines": { @@ -3429,35 +3591,75 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", - "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3472,9 +3674,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", "dev": true, "license": "MIT", "engines": { @@ -3486,20 +3688,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3513,9 +3717,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3539,9 +3743,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -3552,16 +3756,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3576,14 +3780,14 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3620,9 +3824,9 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -3656,9 +3860,9 @@ } }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "license": "MIT", "engines": { "node": ">= 14" @@ -3775,18 +3979,20 @@ "license": "MIT" }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3949,9 +4155,9 @@ } }, "node_modules/axios": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", - "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", + "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -4015,21 +4221,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-istanbul/node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", @@ -4128,9 +4319,9 @@ "license": "MIT" }, "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", "engines": { "node": "*" @@ -4188,9 +4379,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -4212,9 +4403,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "dev": true, "funding": [ { @@ -4232,10 +4423,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -4370,9 +4561,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001707", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", - "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "dev": true, "funding": [ { @@ -4410,13 +4601,6 @@ "node": ">=10.0.0" } }, - "node_modules/canvg/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT", - "optional": true - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4592,9 +4776,9 @@ "license": "MIT" }, "node_modules/core-js": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.41.0.tgz", - "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", + "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "hasInstallScript": true, "license": "MIT", "optional": true, @@ -4671,12 +4855,12 @@ } }, "node_modules/cssstyle": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz", - "integrity": "sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^3.1.1", + "@asamuzakjp/css-color": "^3.2.0", "rrweb-cssom": "^0.8.0" }, "engines": { @@ -5164,9 +5348,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -5181,15 +5365,15 @@ } }, "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "license": "MIT" }, "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -5335,9 +5519,9 @@ } }, "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", "license": "(MPL-2.0 OR Apache-2.0)", "optional": true, "optionalDependencies": { @@ -5403,9 +5587,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.123", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz", - "integrity": "sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==", + "version": "1.5.189", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.189.tgz", + "integrity": "sha512-y9D1ntS1ruO/pZ/V2FtLE+JXLQe28XoRpZ7QCCo0T8LdQladzdcOVQZH/IWLVJvCw12OGMb6hYOeOAjntCmJRQ==", "dev": true, "license": "ISC" }, @@ -5439,9 +5623,9 @@ } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", "optional": true, "dependencies": { @@ -5449,9 +5633,9 @@ } }, "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -5471,9 +5655,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, "license": "MIT", "dependencies": { @@ -5481,18 +5665,18 @@ "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -5504,21 +5688,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -5527,7 +5714,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -5642,20 +5829,20 @@ } }, "node_modules/eslint": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", - "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.2.0", - "@eslint/core": "^0.12.0", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.23.0", - "@eslint/plugin-kit": "^0.2.7", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -5666,9 +5853,9 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -5716,14 +5903,17 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } @@ -5751,9 +5941,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -5779,30 +5969,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -5823,14 +6013,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.5.tgz", - "integrity": "sha512-IKKP8R87pJyMl7WWamLgPkloB16dagPIdd2FjBDbyRYPKo93wS/NbCOPh6gH+ieNLC+XZrhJt/kWj0PS/DFdmg==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", + "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.10.2" + "synckit": "^0.11.7" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -5854,9 +6044,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5871,9 +6061,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5884,15 +6074,15 @@ } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6004,13 +6194,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -6252,9 +6435,9 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6338,47 +6521,47 @@ } }, "node_modules/firebase": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.5.0.tgz", - "integrity": "sha512-ZTpO/zD5nYqY02bGpXCg1dRNLggTXPQZdLQeSeur3jYH270p1QkAZZJsm/lrKZ2W4ZjBlafTxxs4OwN38Vyocw==", + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.10.0.tgz", + "integrity": "sha512-nKBXoDzF0DrXTBQJlZa+sbC5By99ysYU1D6PkMRYknm0nCW7rJly47q492Ht7Ndz5MeYSBuboKuhS1e6mFC03w==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@firebase/analytics": "0.10.12", - "@firebase/analytics-compat": "0.2.18", - "@firebase/app": "0.11.3", - "@firebase/app-check": "0.8.13", - "@firebase/app-check-compat": "0.3.20", - "@firebase/app-compat": "0.2.52", + "@firebase/ai": "1.4.1", + "@firebase/analytics": "0.10.17", + "@firebase/analytics-compat": "0.2.23", + "@firebase/app": "0.13.2", + "@firebase/app-check": "0.10.1", + "@firebase/app-check-compat": "0.3.26", + "@firebase/app-compat": "0.4.2", "@firebase/app-types": "0.9.3", - "@firebase/auth": "1.9.1", - "@firebase/auth-compat": "0.5.19", - "@firebase/data-connect": "0.3.2", - "@firebase/database": "1.0.14", - "@firebase/database-compat": "2.0.5", - "@firebase/firestore": "4.7.10", - "@firebase/firestore-compat": "0.3.45", - "@firebase/functions": "0.12.3", - "@firebase/functions-compat": "0.3.20", - "@firebase/installations": "0.6.13", - "@firebase/installations-compat": "0.2.13", - "@firebase/messaging": "0.12.17", - "@firebase/messaging-compat": "0.2.17", - "@firebase/performance": "0.7.2", - "@firebase/performance-compat": "0.2.15", - "@firebase/remote-config": "0.6.0", - "@firebase/remote-config-compat": "0.2.13", - "@firebase/storage": "0.13.7", - "@firebase/storage-compat": "0.3.17", - "@firebase/util": "1.11.0", - "@firebase/vertexai": "1.2.0" + "@firebase/auth": "1.10.8", + "@firebase/auth-compat": "0.5.28", + "@firebase/data-connect": "0.3.10", + "@firebase/database": "1.0.20", + "@firebase/database-compat": "2.0.11", + "@firebase/firestore": "4.8.0", + "@firebase/firestore-compat": "0.3.53", + "@firebase/functions": "0.12.9", + "@firebase/functions-compat": "0.3.26", + "@firebase/installations": "0.6.18", + "@firebase/installations-compat": "0.2.18", + "@firebase/messaging": "0.12.22", + "@firebase/messaging-compat": "0.2.22", + "@firebase/performance": "0.7.7", + "@firebase/performance-compat": "0.2.20", + "@firebase/remote-config": "0.6.5", + "@firebase/remote-config-compat": "0.2.18", + "@firebase/storage": "0.13.14", + "@firebase/storage-compat": "0.3.24", + "@firebase/util": "1.12.1" } }, "node_modules/firebase-admin": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.2.0.tgz", - "integrity": "sha512-qQBTKo0QWCDaWwISry989pr8YfZSSk00rNCKaucjOgltEm3cCYzEe4rODqBd1uUwma+Iu5jtAzg89Nfsjr3fGg==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.4.0.tgz", + "integrity": "sha512-Y8DcyKK+4pl4B93ooiy1G8qvdyRMkcNFfBSh+8rbVcw4cW8dgG0VXCCTp5NUwub8sn9vSPsOwpb9tE2OuFmcfQ==", "license": "Apache-2.0", "dependencies": { "@fastify/busboy": "^3.0.0", @@ -6401,24 +6584,18 @@ } }, "node_modules/firebase-admin/node_modules/@types/node": { - "version": "22.13.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz", - "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==", + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, - "node_modules/firebase-admin/node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, "node_modules/firebase-functions": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-6.3.2.tgz", - "integrity": "sha512-FC3A1/nhqt1ZzxRnj5HZLScQaozAcFSD/vSR8khqSoFNOfxuXgwJS6ZABTB7+v+iMD5z6Mmxw6OfqITUBuI7OQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-6.4.0.tgz", + "integrity": "sha512-Q/LGhJrmJEhT0dbV60J4hCkVSeOM6/r7xJS/ccmkXzTWMjo+UPAYX9zlQmGlEjotstZ0U9GtQSJSgbB2Z+TJDg==", "license": "MIT", "dependencies": { "@types/cors": "^2.8.5", @@ -6515,14 +6692,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -6840,9 +7018,9 @@ } }, "node_modules/google-gax": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.4.1.tgz", - "integrity": "sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz", + "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -6864,9 +7042,9 @@ } }, "node_modules/google-gax/node_modules/@grpc/grpc-js": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.1.tgz", - "integrity": "sha512-z5nNuIs75S73ZULjPDe5QCNTiCv7FyBZXEVWOyAHtcebnuJf0g1SuueI3U1/z/KK39XyAQRUC+C9ZQJOtgHynA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", + "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -7043,9 +7221,9 @@ } }, "node_modules/html-entities": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.3.tgz", - "integrity": "sha512-D3AfvN7SjhTgBSA8L1BN4FpPzuEd06uy4lHwSoRWr0lndi9BKaNzPLKGOWZ2ocSGguozr08TTb2jhCLHaemruw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", "funding": [ { "type": "github", @@ -7097,9 +7275,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "license": "MIT" }, "node_modules/http-proxy-agent": { @@ -7499,6 +7677,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7731,9 +7922,9 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -8289,9 +8480,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -8557,12 +8748,12 @@ } }, "node_modules/jsonwebtoken/node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", "license": "MIT", "dependencies": { - "buffer-equal-constant-time": "1.0.1", + "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } @@ -8578,9 +8769,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -8624,12 +8815,12 @@ "license": "MIT" }, "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", "license": "MIT", "dependencies": { - "buffer-equal-constant-time": "1.0.1", + "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } @@ -8818,9 +9009,9 @@ "license": "MIT" }, "node_modules/long": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", - "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", "license": "Apache-2.0" }, "node_modules/lru-cache": { @@ -8878,9 +9069,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -9186,9 +9377,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.19", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.19.tgz", - "integrity": "sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==", + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", + "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", "license": "MIT" }, "node_modules/object-assign": { @@ -9455,12 +9646,12 @@ } }, "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "license": "MIT", "dependencies": { - "entities": "^4.5.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -9546,9 +9737,9 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", "engines": { @@ -9645,9 +9836,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -9729,9 +9920,9 @@ } }, "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -9943,10 +10134,11 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", + "optional": true }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", @@ -10471,6 +10663,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/sinon": { "version": "18.0.1", "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.1.tgz", @@ -10587,6 +10786,20 @@ "node": ">= 0.8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -10811,20 +11024,19 @@ "license": "MIT" }, "node_modules/synckit": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.10.3.tgz", - "integrity": "sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.0", - "tslib": "^2.8.1" + "@pkgr/core": "^0.2.9" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/synckit" } }, "node_modules/teeny-request": { @@ -10900,6 +11112,21 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/text-segmentation": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", @@ -10955,9 +11182,9 @@ } }, "node_modules/tr46": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.0.tgz", - "integrity": "sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "license": "MIT", "dependencies": { "punycode": "^2.3.1" @@ -10987,21 +11214,20 @@ "license": "ISC" }, "node_modules/ts-jest": { - "version": "29.3.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.2.tgz", - "integrity": "sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz", + "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.7.1", - "type-fest": "^4.39.1", + "semver": "^7.7.2", + "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, "bin": { @@ -11012,10 +11238,11 @@ }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { @@ -11033,13 +11260,16 @@ }, "esbuild": { "optional": true + }, + "jest-util": { + "optional": true } } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -11159,12 +11389,12 @@ "license": "0BSD" }, "node_modules/twilio": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.5.1.tgz", - "integrity": "sha512-b1gLd2eMsCSCHRerp3GQUedVlz0nCTt5FbyPxDPmMvk5cm6eIPk4ZTp5JNpgucARZgpCB2uUACJbdcidEHAUBA==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.7.3.tgz", + "integrity": "sha512-RuCjbQRLorFZrqd52KZ4JzeUbCbs/3KJVdawcAQ2yR53S2D0VwBQ+1Pkcnc20Y8QLKCP41TkQ98MHbF7upRhtA==", "license": "MIT", "dependencies": { - "axios": "^1.7.8", + "axios": "^1.8.3", "dayjs": "^1.11.9", "https-proxy-agent": "^5.0.0", "jsonwebtoken": "^9.0.2", @@ -11329,9 +11559,9 @@ } }, "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -11343,15 +11573,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz", - "integrity": "sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.28.0", - "@typescript-eslint/parser": "8.28.0", - "@typescript-eslint/utils": "8.28.0" + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11385,9 +11616,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/universalify": { @@ -11779,17 +12010,10 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -11899,6 +12123,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/functions/package.json b/functions/package.json index d51cb33c..e1beddfa 100644 --- a/functions/package.json +++ b/functions/package.json @@ -57,5 +57,8 @@ "typescript": "^5", "typescript-eslint": "^8.26" }, + "peerDependencies": { + "zod": "^3.23.8" + }, "private": true } diff --git a/functions/src/functions/deleteInvitation.test.ts b/functions/src/functions/deleteInvitation.test.ts index e0b7a41c..093d8127 100644 --- a/functions/src/functions/deleteInvitation.test.ts +++ b/functions/src/functions/deleteInvitation.test.ts @@ -8,7 +8,6 @@ import { FHIRAppointment, - FHIRAppointmentStatus, Invitation, UserAuth, UserRegistration, @@ -45,7 +44,6 @@ describeWithEmulators('function: deleteInvitation', (env) => { const appointment = FHIRAppointment.create({ userId: invitationRef.id, - status: FHIRAppointmentStatus.booked, created: new Date(), start: new Date(), durationInMinutes: 90, diff --git a/functions/src/functions/deleteUser.test.ts b/functions/src/functions/deleteUser.test.ts index 221edf68..585d2b32 100644 --- a/functions/src/functions/deleteUser.test.ts +++ b/functions/src/functions/deleteUser.test.ts @@ -6,11 +6,7 @@ // SPDX-License-Identifier: MIT // -import { - FHIRAppointment, - FHIRAppointmentStatus, - UserType, -} from '@stanfordbdhg/engagehf-models' +import { FHIRAppointment, UserType } from '@stanfordbdhg/engagehf-models' import { deleteUser } from './deleteUser.js' import { describeWithEmulators } from '../tests/functions/testEnvironment.js' import { expectError } from '../tests/helpers.js' @@ -69,10 +65,12 @@ describeWithEmulators('function: deleteUser', (env) => { }) const appointment = new FHIRAppointment({ - status: FHIRAppointmentStatus.booked, - created: new Date('2020-01-01'), - start: new Date('2020-01-01'), - end: new Date('2020-01-01'), + resourceType: 'Appointment', + status: 'booked', + created: new Date('2020-01-01').toISOString(), + start: new Date('2020-01-01').toISOString(), + end: new Date('2020-01-01').toISOString(), + participant: [], }) const appointmentRef = env.collections.userAppointments(userId).doc() await appointmentRef.set(appointment) diff --git a/functions/src/functions/enrollUser.test.ts b/functions/src/functions/enrollUser.test.ts index 1a813638..fc4a85d1 100644 --- a/functions/src/functions/enrollUser.test.ts +++ b/functions/src/functions/enrollUser.test.ts @@ -8,10 +8,7 @@ import { FHIRAppointment, - fhirAppointmentConverter, - FHIRAppointmentStatus, FHIRObservation, - fhirObservationConverter, Invitation, LoincCode, QuantityUnit, @@ -65,10 +62,11 @@ describeWithEmulators('function: enrollUser', (env) => { await invitationRef.set(invitation) const expectedAppointment = new FHIRAppointment({ - status: FHIRAppointmentStatus.booked, - created: new Date('2023-12-24'), - start: new Date('2023-12-31'), - end: new Date('2024-01-01'), + resourceType: 'Appointment', + status: 'booked', + created: new Date('2023-12-24').toISOString(), + start: new Date('2023-12-31').toISOString(), + end: new Date('2024-01-01').toISOString(), participant: [], }) @@ -184,10 +182,11 @@ describeWithEmulators('function: enrollUser', (env) => { await invitationRef.set(invitation) const expectedAppointment = new FHIRAppointment({ - status: FHIRAppointmentStatus.booked, - created: new Date('2023-12-24'), - start: new Date('2023-12-31'), - end: new Date('2024-01-01'), + resourceType: 'Appointment', + status: 'booked', + created: new Date('2023-12-24').toISOString(), + start: new Date('2023-12-31').toISOString(), + end: new Date('2024-01-01').toISOString(), participant: [], }) diff --git a/functions/src/functions/helpers.ts b/functions/src/functions/helpers.ts index d1d1119d..407ccc74 100644 --- a/functions/src/functions/helpers.ts +++ b/functions/src/functions/helpers.ts @@ -38,8 +38,9 @@ export function validatedOnCall( logger.debug( `onCall(${name}) from user '${request.auth?.uid}' with '${JSON.stringify(request.data)}'`, ) - request.data = schema.parse(request.data) as z.output - return await handler(request as CallableRequest>) + const validatedRequest = request as CallableRequest> + validatedRequest.data = schema.parse(request.data) + return await handler(validatedRequest) } catch (error) { logger.debug( `onCall(${name}) from user '${request.auth?.uid}' failed with '${String(error)}'.`, @@ -48,7 +49,7 @@ export function validatedOnCall( throw new https.HttpsError( 'invalid-argument', 'Invalid request data', - error.errors, + error.issues, ) } throw error @@ -85,7 +86,7 @@ export function validatedOnRequest( response.status(400).send({ code: 'invalid-argument', message: 'Invalid request data', - details: error.errors, + details: error.issues, }) return } diff --git a/functions/src/functions/onUserAppointmentWritten.test.ts b/functions/src/functions/onUserAppointmentWritten.test.ts index e4b13785..8c57d2a6 100644 --- a/functions/src/functions/onUserAppointmentWritten.test.ts +++ b/functions/src/functions/onUserAppointmentWritten.test.ts @@ -10,7 +10,6 @@ import { UserMessageType, UserType, FHIRAppointment, - FHIRAppointmentStatus, advanceDateByHours, } from '@stanfordbdhg/engagehf-models' import { type DocumentReference } from 'firebase-admin/firestore' @@ -99,7 +98,6 @@ describeWithEmulators('onUserAppointmentWritten', (env) => { const appointment = FHIRAppointment.create({ userId: patientId, created: now, - status: FHIRAppointmentStatus.booked, start: advanceDateByHours(now, 23), durationInMinutes: 60, }) @@ -123,7 +121,6 @@ describeWithEmulators('onUserAppointmentWritten', (env) => { const lateAppointment = FHIRAppointment.create({ userId: patientId, created: now, - status: FHIRAppointmentStatus.booked, start: advanceDateByHours(now, 25), durationInMinutes: 60, }) @@ -173,7 +170,6 @@ describeWithEmulators('onUserAppointmentWritten', (env) => { const appointment = FHIRAppointment.create({ userId: patientId, created: now, - status: FHIRAppointmentStatus.booked, start: advanceDateByHours(now, 23), durationInMinutes: 60, }) @@ -193,7 +189,6 @@ describeWithEmulators('onUserAppointmentWritten', (env) => { const laterAppointment = FHIRAppointment.create({ userId: patientId, created: now, - status: FHIRAppointmentStatus.booked, start: advanceDateByHours(now, 25), durationInMinutes: 60, }) diff --git a/functions/src/healthSummary/generate.ts b/functions/src/healthSummary/generate.ts index 007e4e6e..347afa3f 100644 --- a/functions/src/healthSummary/generate.ts +++ b/functions/src/healthSummary/generate.ts @@ -10,7 +10,7 @@ import { percentage, presortedMedian, presortedPercentile, - type Observation, + type ObservationQuantity, UserMedicationRecommendationType, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' @@ -102,7 +102,7 @@ class HealthSummaryPdfGenerator extends PdfGenerator { this.localizer.text('headerProvider', this.data.providerName ?? '---'), ) const appointment = this.data.nextAppointment - const date = appointment?.start + const date = appointment?.startDate const providerNames = appointment?.providerNames ?? [] const providerText = providerNames.length === 0 ? '' : providerNames.join(', ') + ' ' @@ -495,7 +495,7 @@ class HealthSummaryPdfGenerator extends PdfGenerator { // Helpers - PDF Generation - private addChart(data: Observation[], maxWidth?: number, baseline?: number) { + private addChart(data: ObservationQuantity[], maxWidth?: number, baseline?: number) { const width = maxWidth ?? this.pageWidth - this.cursor.x - this.margins.right const height = width * (9 / 16) diff --git a/functions/src/healthSummary/generateChart.ts b/functions/src/healthSummary/generateChart.ts index 6616ce2c..e94abd1e 100644 --- a/functions/src/healthSummary/generateChart.ts +++ b/functions/src/healthSummary/generateChart.ts @@ -6,12 +6,12 @@ // SPDX-License-Identifier: MIT // -import { type Observation } from '@stanfordbdhg/engagehf-models' +import { type ObservationQuantity } from '@stanfordbdhg/engagehf-models' import * as d3 from 'd3' import { JSDOM } from 'jsdom' export function generateChartSvg( - data: Observation[], + data: ObservationQuantity[], size: { width: number; height: number }, margins: { top: number; right: number; bottom: number; left: number }, baseline?: number, @@ -81,7 +81,7 @@ export function generateChartSvg( .call(yAxis) const line = d3 - .line() + .line() .x((d) => xAxisScale(d.date)) .y((d) => yAxisScale(d.value)) svg diff --git a/functions/src/models/healthSummaryData.ts b/functions/src/models/healthSummaryData.ts index 36e9d7c4..1a18bb3c 100644 --- a/functions/src/models/healthSummaryData.ts +++ b/functions/src/models/healthSummaryData.ts @@ -11,7 +11,7 @@ import { median, UserMedicationRecommendationType, type FHIRAppointment, - type Observation, + type ObservationQuantity, type SymptomScore, type UserMedicationRecommendation, } from '@stanfordbdhg/engagehf-models' @@ -23,12 +23,12 @@ import { } from '../healthSummary/keyPointsMessage.js' export interface HealthSummaryVitals { - systolicBloodPressure: Observation[] - diastolicBloodPressure: Observation[] - heartRate: Observation[] - bodyWeight: Observation[] + systolicBloodPressure: ObservationQuantity[] + diastolicBloodPressure: ObservationQuantity[] + heartRate: ObservationQuantity[] + bodyWeight: ObservationQuantity[] - dryWeight?: Observation + dryWeight?: ObservationQuantity } export class HealthSummaryData { diff --git a/functions/src/models/medicationRequestContext.ts b/functions/src/models/medicationRequestContext.ts index 8df02977..cf600e71 100644 --- a/functions/src/models/medicationRequestContext.ts +++ b/functions/src/models/medicationRequestContext.ts @@ -11,20 +11,20 @@ import { MedicationReference, type FHIRMedication, type FHIRMedicationRequest, - type FHIRReference, type MedicationClass, } from '@stanfordbdhg/engagehf-models' +import { Reference } from 'fhir/r4b.js' export interface MedicationRequestContext { lastUpdate: Date request: FHIRMedicationRequest - requestReference: FHIRReference + requestReference: Reference drug: FHIRMedication - drugReference: FHIRReference + drugReference: Reference medication: FHIRMedication - medicationReference: FHIRReference + medicationReference: Reference medicationClass: MedicationClass - medicationClassReference: FHIRReference + medicationClassReference: Reference } export function medicationClassReference( diff --git a/functions/src/services/contraindication/defaultContraindicationService.test.ts b/functions/src/services/contraindication/defaultContraindicationService.test.ts index a1c14bce..67edd746 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.test.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.test.ts @@ -8,9 +8,9 @@ import fs from 'fs' import { + AllergyIntoleranceCriticality, + AllergyIntoleranceType, FHIRAllergyIntolerance, - FHIRAllergyIntoleranceCriticality, - FHIRAllergyIntoleranceType, MedicationClassReference, MedicationReference, } from '@stanfordbdhg/engagehf-models' @@ -29,13 +29,14 @@ describe('DefaultContraindicationService', () => { field: string, options: { reference: MedicationReference - type: FHIRAllergyIntoleranceType - criticality: FHIRAllergyIntoleranceCriticality + type?: AllergyIntoleranceType + criticality: AllergyIntoleranceCriticality category: ContraindicationCategory }, ) { const contraindications = [ FHIRAllergyIntolerance.create({ + userId: 'testUser', type: options.type, criticality: options.criticality, reference: options.reference, @@ -83,29 +84,29 @@ describe('DefaultContraindicationService', () => { check(fields[10], { reference: medicationReference, - type: FHIRAllergyIntoleranceType.allergy, - criticality: FHIRAllergyIntoleranceCriticality.low, + type: 'allergy', + criticality: 'low', category: ContraindicationCategory.allergyIntolerance, }) check(fields[11], { reference: medicationReference, - type: FHIRAllergyIntoleranceType.allergy, - criticality: FHIRAllergyIntoleranceCriticality.high, + type: 'allergy', + criticality: 'high', category: ContraindicationCategory.severeAllergyIntolerance, }) check(fields[12], { reference: medicationReference, - type: FHIRAllergyIntoleranceType.intolerance, - criticality: FHIRAllergyIntoleranceCriticality.low, + type: 'intolerance', + criticality: 'low', category: ContraindicationCategory.clinicianListed, }) check(fields[14], { reference: medicationReference, - type: FHIRAllergyIntoleranceType.financial, - criticality: FHIRAllergyIntoleranceCriticality.low, + type: undefined, // TODO: 'financial', + criticality: 'low', category: ContraindicationCategory.clinicianListed, }) } diff --git a/functions/src/services/contraindication/defaultContraindicationService.ts b/functions/src/services/contraindication/defaultContraindicationService.ts index 1069a498..acd788ef 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.ts @@ -7,9 +7,9 @@ // import { + AllergyIntoleranceCriticality, + AllergyIntoleranceType, type FHIRAllergyIntolerance, - FHIRAllergyIntoleranceCriticality, - FHIRAllergyIntoleranceType, MedicationClassReference, MedicationReference, } from '@stanfordbdhg/engagehf-models' @@ -109,8 +109,8 @@ export class DefaultContraindicationService implements ContraindicationService { for (const medicationReference of medicationReferences) { const record = this.record({ medicationReference: medicationReference, - type: contraindication.type, - criticality: contraindication.criticality, + type: contraindication.data.type, + criticality: contraindication.data.criticality, }) if (isRelevant(record)) category = Math.max(category, record.category) } @@ -120,16 +120,16 @@ export class DefaultContraindicationService implements ContraindicationService { private record(input: { medicationReference: MedicationReference - type: FHIRAllergyIntoleranceType - criticality?: FHIRAllergyIntoleranceCriticality + type?: AllergyIntoleranceType + criticality?: AllergyIntoleranceCriticality }): ContraindicationRecord { const medicationClass = medicationClassReference(input.medicationReference) const medicationReferences = this.medicationReferenceIncludingDerivatives( input.medicationReference, ) switch (input.type) { - case FHIRAllergyIntoleranceType.allergy: - if (input.criticality === FHIRAllergyIntoleranceCriticality.high) { + case 'allergy': + if (input.criticality === 'high') { return { category: ContraindicationCategory.severeAllergyIntolerance, medications: medicationReferences, @@ -150,7 +150,7 @@ export class DefaultContraindicationService implements ContraindicationService { ), } } - case FHIRAllergyIntoleranceType.intolerance: + case 'intolerance': switch (medicationClass) { case MedicationClassReference.angiotensinConvertingEnzymeInhibitors: case MedicationClassReference.angiotensinReceptorNeprilysinInhibitors: @@ -172,8 +172,9 @@ export class DefaultContraindicationService implements ContraindicationService { medicationClasses: new Set(), } } - case FHIRAllergyIntoleranceType.financial: - case FHIRAllergyIntoleranceType.preference: + // TODO: case 'financial': + // TODO: case 'preference': + case undefined: return { category: ContraindicationCategory.clinicianListed, medications: medicationReferences, diff --git a/functions/src/services/database/collections.ts b/functions/src/services/database/collections.ts index 0adec885..4f300598 100644 --- a/functions/src/services/database/collections.ts +++ b/functions/src/services/database/collections.ts @@ -7,13 +7,6 @@ // import { - fhirAllergyIntoleranceConverter, - fhirAppointmentConverter, - fhirMedicationConverter, - fhirMedicationRequestConverter, - fhirObservationConverter, - fhirQuestionnaireConverter, - fhirQuestionnaireResponseConverter, invitationConverter, medicationClassConverter, organizationConverter, diff --git a/functions/src/services/database/databaseConverter.ts b/functions/src/services/database/databaseConverter.ts index 2b6381c7..f4e95ca3 100644 --- a/functions/src/services/database/databaseConverter.ts +++ b/functions/src/services/database/databaseConverter.ts @@ -13,9 +13,9 @@ import { type FirestoreDataConverter, } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { type z } from 'zod/v4' +import { ZodType, type z } from 'zod/v4' -export class DatabaseConverter +export class DatabaseConverter implements FirestoreDataConverter> { // Properties diff --git a/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts b/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts index 2e506815..67f47791 100644 --- a/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts +++ b/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts @@ -26,7 +26,10 @@ describe('HealthSummaryService', () => { new Date(2024, 2, 2, 12, 30), QuantityUnit.lbs, ) - console.log('actualData:', actualData.nextAppointment?.start.toString()) + console.log( + 'actualData:', + actualData.nextAppointment?.startDate?.toISOString(), + ) const expectedData = await mockHealthSummaryData('mockUser') // TODO: Remove the next line to check whether medication optimizations also match the expected value. expectedData.recommendations = [] diff --git a/functions/src/services/healthSummary/healthSummaryService.mock.ts b/functions/src/services/healthSummary/healthSummaryService.mock.ts index 68975cdf..0b297d98 100644 --- a/functions/src/services/healthSummary/healthSummaryService.mock.ts +++ b/functions/src/services/healthSummary/healthSummaryService.mock.ts @@ -9,9 +9,8 @@ import { advanceDateByDays, FHIRAppointment, - FHIRAppointmentStatus, LocalizedText, - type Observation, + type ObservationQuantity, QuantityUnit, SymptomScore, UserMedicationRecommendationType, @@ -38,7 +37,6 @@ export class MockHealthSummaryService implements HealthSummaryService { providerName: 'Dr. XXX', nextAppointment: FHIRAppointment.create({ userId, - status: FHIRAppointmentStatus.booked, created: advanceDateByDays(date, -10), start: advanceDateByDays(date, 1), durationInMinutes: 60, @@ -160,7 +158,7 @@ export class MockHealthSummaryService implements HealthSummaryService { private async getBloodPressureObservations( date: Date, - ): Promise<[Observation[], Observation[]]> { + ): Promise<[ObservationQuantity[], ObservationQuantity[]]> { return [ [ { @@ -259,7 +257,9 @@ export class MockHealthSummaryService implements HealthSummaryService { ] } - private async getHeartRateObservations(date: Date): Promise { + private async getHeartRateObservations( + date: Date, + ): Promise { return [ { date: advanceDateByDays(date, -1), @@ -309,7 +309,9 @@ export class MockHealthSummaryService implements HealthSummaryService { ] } - private async getBodyWeightObservations(date: Date): Promise { + private async getBodyWeightObservations( + date: Date, + ): Promise { return [ { date: advanceDateByDays(date, -1), @@ -361,7 +363,7 @@ export class MockHealthSummaryService implements HealthSummaryService { private async getMostRecentDryWeightObservation( date: Date, - ): Promise { + ): Promise { return { date: advanceDateByDays(date, -4), value: 267.5, diff --git a/functions/src/services/medication/databaseMedicationService.ts b/functions/src/services/medication/databaseMedicationService.ts index 9ba65d5c..dc94ea8a 100644 --- a/functions/src/services/medication/databaseMedicationService.ts +++ b/functions/src/services/medication/databaseMedicationService.ts @@ -9,9 +9,9 @@ import { type FHIRMedication, type FHIRMedicationRequest, - type FHIRReference, type MedicationClass, } from '@stanfordbdhg/engagehf-models' +import { Reference } from 'fhir/r4b.js' import { type MedicationService } from './medicationService.js' import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' import { @@ -35,13 +35,13 @@ export class DatabaseMedicationService implements MedicationService { async getContext( request: Document, ): Promise { - const drugReference = request.content.medicationReference + const drugReference = request.content.data.medicationReference if (drugReference === undefined) throw new Error('Drug reference not found') const drug = (await this.getReference(drugReference))?.content if (drug === undefined) throw new Error(`Drug not found at ${drugReference.reference}`) - const medicationReference: FHIRReference = { - reference: drugReference.reference.split('/').slice(0, 2).join('/'), + const medicationReference: Reference = { + reference: drugReference.reference?.split('/').slice(0, 2).join('/'), } const medication = (await this.getReference(medicationReference))?.content medicationReference.display = medication?.displayName @@ -126,20 +126,22 @@ export class DatabaseMedicationService implements MedicationService { // References async getClassReference( - reference: FHIRReference | undefined, + reference: Reference | undefined, ): Promise | undefined> { - if (!reference?.reference) return undefined + const doc = reference?.reference + if (!doc) return undefined return this.databaseService.getDocument((collections) => - collections.medicationClassReference(reference.reference), + collections.medicationClassReference(doc), ) } async getReference( - reference: FHIRReference | undefined, + reference: Reference | undefined, ): Promise | undefined> { - if (!reference?.reference) return undefined + const doc = reference?.reference + if (!doc) return undefined return this.databaseService.getDocument((collections) => - collections.medicationReference(reference.reference), + collections.medicationReference(doc), ) } } diff --git a/functions/src/services/medication/medicationService.ts b/functions/src/services/medication/medicationService.ts index 787f9e12..9face5a3 100644 --- a/functions/src/services/medication/medicationService.ts +++ b/functions/src/services/medication/medicationService.ts @@ -9,9 +9,9 @@ import { type FHIRMedication, type FHIRMedicationRequest, - type FHIRReference, type MedicationClass, } from '@stanfordbdhg/engagehf-models' +import { Reference } from 'fhir/r4b.js' import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' import { type Document } from '../database/databaseService.js' @@ -49,10 +49,10 @@ export interface MedicationService { // References getClassReference( - reference: FHIRReference | undefined, + reference: Reference | undefined, ): Promise | undefined> getReference( - reference: FHIRReference | undefined, + reference: Reference | undefined, ): Promise | undefined> } diff --git a/functions/src/services/patient/databasePatientService.ts b/functions/src/services/patient/databasePatientService.ts index e593c144..049a7d07 100644 --- a/functions/src/services/patient/databasePatientService.ts +++ b/functions/src/services/patient/databasePatientService.ts @@ -16,9 +16,8 @@ import { type FHIRMedicationRequest, FHIRObservation, type FHIRQuestionnaireResponse, - type FHIRReference, type LoincCode, - type Observation, + type ObservationQuantity, QuantityUnit, type SymptomScore, type UserMedicationRecommendation, @@ -26,6 +25,7 @@ import { UserObservationCollection, type UserShareCode, } from '@stanfordbdhg/engagehf-models' +import { Reference } from 'fhir/r4b.js' import { FieldValue, type QueryDocumentSnapshot, diff --git a/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts b/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts index 7966baa9..ed3d7043 100644 --- a/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts +++ b/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts @@ -34,9 +34,11 @@ export function createKccqQuestionnaireResponse( } return new FHIRQuestionnaireResponse({ + resourceType: 'QuestionnaireResponse', id: input.questionnaireResponse, + status: 'completed', questionnaire: input.questionnaire, - authored: input.date, + authored: input.date.toISOString(), item: Object.entries(items).map((entry) => ({ linkId: entry[0], answer: [ diff --git a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts index b020369c..7336adde 100644 --- a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts @@ -10,12 +10,11 @@ import assert from 'assert' import { FHIRMedicationRequest, LoincCode, - type Observation, + type ObservationQuantity, type FHIRQuestionnaireResponse, UserSex, QuantityUnit, FHIRAppointment, - FHIRAppointmentStatus, UserObservationCollection, MedicationReference, } from '@stanfordbdhg/engagehf-models' @@ -67,8 +66,7 @@ export abstract class QuestionnaireResponseService { return FHIRAppointment.create({ userId: '', created: new Date(), - status: FHIRAppointmentStatus.booked, - start: dateAnswer, + start: new Date(dateAnswer), durationInMinutes: 30, }) } @@ -87,7 +85,7 @@ export abstract class QuestionnaireResponseService { ?.valueCoding?.code const sex = z.nativeEnum(UserSex).parse(sexCode) return { - dateOfBirth, + dateOfBirth: new Date(dateOfBirth), sex, } } catch {} @@ -100,7 +98,7 @@ export abstract class QuestionnaireResponseService { code: LoincCode unit: QuantityUnit }, - ): Observation | null { + ): ObservationQuantity | null { const linkIds = QuestionnaireLinkId.labValue(options.code) const dateAnswer = response .leafResponseItem(linkIds.dateTime) @@ -116,7 +114,7 @@ export abstract class QuestionnaireResponseService { return { value: decimalAnswer, unit: options.unit, - date: dateAnswer, + date: new Date(dateAnswer), } } @@ -213,7 +211,7 @@ export abstract class QuestionnaireResponseService { response: Document }): Promise { const observationValues: Array<{ - observation: Observation + observation: ObservationQuantity loincCode: LoincCode collection: UserObservationCollection }> = [] @@ -280,7 +278,7 @@ export abstract class QuestionnaireResponseService { input.userId, observationValues, { - type: input.response.content.resourceType, + type: input.response.content.data.resourceType, reference: input.response.path, }, ) @@ -303,7 +301,8 @@ export abstract class QuestionnaireResponseService { medicationExtraction.requests, medicationClasses.length > 0 ? (doc) => { - const referenceString = doc.content.medicationReference?.reference + const referenceString = + doc.content.data.medicationReference?.reference if (referenceString === undefined) { logger.error( `Encountered medication request without reference at ${doc.path}: ${JSON.stringify(doc.content)}`, diff --git a/functions/src/services/recommendation/recommendationService.test.ts b/functions/src/services/recommendation/recommendationService.test.ts index 583fa5b5..793dda5c 100644 --- a/functions/src/services/recommendation/recommendationService.test.ts +++ b/functions/src/services/recommendation/recommendationService.test.ts @@ -7,11 +7,10 @@ // import { + AllergyIntoleranceType, CachingStrategy, DrugReference, FHIRAllergyIntolerance, - FHIRAllergyIntoleranceCriticality, - FHIRAllergyIntoleranceType, FHIRMedicationRequest, MedicationReference, UserMedicationRecommendationType, @@ -63,10 +62,9 @@ describe('RecommendationService', () => { value.split(',').flatMap((field) => getContraindications( field, - [0, 1, 2, 3].includes(index) ? FHIRAllergyIntoleranceType.allergy - : [4, 5, 6, 7].includes(index) ? - FHIRAllergyIntoleranceType.intolerance - : FHIRAllergyIntoleranceType.financial, + [0, 1, 2, 3].includes(index) ? 'allergy' + : [4, 5, 6, 7].includes(index) ? 'intolerance' + : undefined, ), ), ) @@ -120,7 +118,7 @@ describe('RecommendationService', () => { expect(expected.recommendedMedication).toBeDefined() expect(result[i].currentMedication.length).toBeGreaterThan(0) result[i].currentMedication.every((medication) => - medication.reference.startsWith( + (medication.reference ?? '').startsWith( (expected.recommendedMedication ?? '') + '/drugs/', ), ) @@ -288,7 +286,7 @@ function getMedicationRequest( function getContraindications( field: string, - type: FHIRAllergyIntoleranceType, + type: AllergyIntoleranceType | undefined, ): FHIRAllergyIntolerance[] { switch (field.trim().toLowerCase().split(' ').join('')) { case 'none': @@ -298,7 +296,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.bisoprolol, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'carvedilol': @@ -306,7 +304,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.carvedilol, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'dapagliflozin': @@ -314,7 +312,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.dapagliflozin, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'empagliflozin': @@ -322,7 +320,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.empagliflozin, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'eplerenone': @@ -330,7 +328,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.eplerenone, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'lisinopril': @@ -338,7 +336,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.lisinopril, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'lisinopril-anaphylaxis': @@ -346,7 +344,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.lisinopril, type, - criticality: FHIRAllergyIntoleranceCriticality.high, + criticality: 'high', }), ] case 'losartan': @@ -354,7 +352,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.losartan, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'metoprolol': @@ -362,7 +360,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.metoprololSuccinate, type, - criticality: FHIRAllergyIntoleranceCriticality.high, + criticality: 'high', }), ] case 'sacubitril-valsartan': @@ -370,7 +368,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.sacubitrilValsartan, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'sotagliflozin': @@ -378,7 +376,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.sotagliflozin, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'spironolactone': @@ -386,7 +384,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.spironolactone, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] case 'valsartan': @@ -394,7 +392,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.valsartan, type, - criticality: FHIRAllergyIntoleranceCriticality.low, + criticality: 'low', }), ] default: diff --git a/functions/src/services/recommendation/recommendationService.ts b/functions/src/services/recommendation/recommendationService.ts index c1e92c85..c35c77d7 100644 --- a/functions/src/services/recommendation/recommendationService.ts +++ b/functions/src/services/recommendation/recommendationService.ts @@ -12,7 +12,7 @@ import { type FHIRMedicationRequest, LocalizedText, type MedicationReference, - type Observation, + type ObservationQuantity, UserMedicationRecommendation, type UserMedicationRecommendationDoseSchedule, UserMedicationRecommendationType, @@ -36,11 +36,11 @@ export interface RecommendationInput { } export interface RecommendationVitals { - systolicBloodPressure: Observation[] - heartRate: Observation[] - creatinine?: Observation - estimatedGlomerularFiltrationRate?: Observation - potassium?: Observation + systolicBloodPressure: ObservationQuantity[] + heartRate: ObservationQuantity[] + creatinine?: ObservationQuantity + estimatedGlomerularFiltrationRate?: ObservationQuantity + potassium?: ObservationQuantity } export interface RecommendationOutput { @@ -201,8 +201,8 @@ export class RecommendationService { } private doseSchedule( - request: FHIRMedicationRequest, - drug: FHIRMedication, + request: MedicationRequest, + drug: Medication, ): UserMedicationRecommendationDoseSchedule[] { const ingredients = (drug.ingredient ?? []).map( (ingredient) => ingredient.strength?.numerator?.value ?? 0, diff --git a/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts b/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts index 34f8755c..ce2d4c33 100644 --- a/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts @@ -65,6 +65,7 @@ describe('DiureticRecommender', () => { reference: DrugReference.furosemide20, }, drug: new FHIRMedication({ + resourceType: 'Medication', code: { coding: [ { @@ -79,6 +80,7 @@ describe('DiureticRecommender', () => { reference: MedicationReference.furosemide, }, medication: new FHIRMedication({ + resourceType: 'Medication', code: { coding: [ { diff --git a/functions/src/services/recommendation/recommenders/recommender.ts b/functions/src/services/recommendation/recommenders/recommender.ts index 4ed0e183..bc6fb27e 100644 --- a/functions/src/services/recommendation/recommenders/recommender.ts +++ b/functions/src/services/recommendation/recommenders/recommender.ts @@ -10,7 +10,7 @@ import { median, type MedicationClassReference, type MedicationReference, - type Observation, + type ObservationQuantity, QuantityUnit, type UserMedicationRecommendationType, } from '@stanfordbdhg/engagehf-models' @@ -96,7 +96,9 @@ export abstract class Recommender { ) } - protected medianValue(observations: Observation[]): number | undefined { + protected medianValue( + observations: ObservationQuantity[], + ): number | undefined { if (observations.length < 3) return undefined return median(observations.map((observation) => observation.value)) ?? 0 } @@ -105,7 +107,7 @@ export abstract class Recommender { const dailyDoses: number[] = [] for (const context of contexts) { let numberOfTabletsPerDay = 0 - for (const instruction of context.request.dosageInstruction ?? []) { + for (const instruction of context.request.data.dosageInstruction ?? []) { const intakesPerDay = instruction.timing?.repeat?.frequency ?? 0 for (const dose of instruction.doseAndRate ?? []) { const numberOfPills = dose.doseQuantity?.value @@ -115,7 +117,7 @@ export abstract class Recommender { } } - const ingredients = context.drug.ingredient ?? [] + const ingredients = context.drug.data.ingredient ?? [] while (dailyDoses.length < ingredients.length) { dailyDoses.push(0) diff --git a/functions/src/services/seeding/debugData/debugDataService.ts b/functions/src/services/seeding/debugData/debugDataService.ts index fb737904..b52cd091 100644 --- a/functions/src/services/seeding/debugData/debugDataService.ts +++ b/functions/src/services/seeding/debugData/debugDataService.ts @@ -12,10 +12,8 @@ import { type CustomSeedingOptions, DrugReference, FHIRAppointment, - FHIRAppointmentStatus, FHIRMedicationRequest, FHIRObservation, - fhirQuestionnaireConverter, invitationConverter, LoincCode, MedicationReference, @@ -106,7 +104,6 @@ export class DebugDataService extends SeedingService { FHIRAppointment.create({ userId, created: advanceDateByDays(date, -2), - status: FHIRAppointmentStatus.booked, start: advanceDateByDays(date, 2), durationInMinutes: 30, }), diff --git a/functions/src/services/seeding/seedingService.ts b/functions/src/services/seeding/seedingService.ts index ae15d35f..ea39318e 100644 --- a/functions/src/services/seeding/seedingService.ts +++ b/functions/src/services/seeding/seedingService.ts @@ -107,7 +107,7 @@ export class SeedingService { schema: Schema, ): Record> { return z - .record(schema) + .record(z.string(), schema) .parse( JSON.parse(fs.readFileSync(this.path + filename, 'utf8')), ) as Record> diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts index 85d08f55..4abd5213 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts @@ -6,12 +6,10 @@ // SPDX-License-Identifier: MIT // -import { - type FHIRQuestionnaire, - type FHIRQuestionnaireItem, -} from '@stanfordbdhg/engagehf-models' +import { type FHIRQuestionnaire } from '@stanfordbdhg/engagehf-models' import { QuestionnaireFactory } from './questionnaireFactory.js' import { QuestionnaireId, QuestionnaireLinkId } from './questionnaireLinkIds.js' +import { QuestionnaireItem } from 'fhir/r4b.js' export class KccqQuestionnaireFactory extends QuestionnaireFactory { create(): FHIRQuestionnaire { @@ -55,7 +53,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { // Helper methods - private question1(): FHIRQuestionnaireItem { + private question1(): QuestionnaireItem { return this.pageItem({ linkId: QuestionnaireLinkId.kccq.question1, text: 'Heart failure affects different people in different ways. Some feel shortness of breath while others feel fatigue. Please indicate how much you are limited by heart failure (shortness of breath or fatigue) in your ability to do the following activities over the past 2 weeks.', @@ -181,7 +179,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question2(): FHIRQuestionnaireItem { + private question2(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question2, text: 'Over the past 2 weeks, how many times did you have swelling in your feet, ankles or legs when you woke up in the morning?', @@ -218,7 +216,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question3(): FHIRQuestionnaireItem { + private question3(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question3, text: 'Over the past 2 weeks, on average, how many times has fatigue limited your ability to do what you wanted', @@ -265,7 +263,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question4(): FHIRQuestionnaireItem { + private question4(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question4, text: 'Over the past 2 weeks, on average, how many times has shortness of breath limited your ability to do what you wanted', @@ -312,7 +310,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question5(): FHIRQuestionnaireItem { + private question5(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question5, text: 'Over the past 2 weeks, on average, how many times have you been forced to sleep sitting up in a chair or with at least 3 pillows to prop you up because of shortness of breath?', @@ -349,7 +347,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question6(): FHIRQuestionnaireItem { + private question6(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question6, text: 'Over the past 2 weeks, how much has your heart failure limited your enjoyment of life?', @@ -386,7 +384,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question7(): FHIRQuestionnaireItem { + private question7(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question7, text: 'If you had to spend the rest of your life with your heart failure the way it is right now, how would you feel about this?', @@ -423,7 +421,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question8(): FHIRQuestionnaireItem { + private question8(): QuestionnaireItem { return this.pageItem({ linkId: QuestionnaireLinkId.kccq.question8, text: 'How much does your heart failure affect your lifestyle? Please indicate how your heart failure may have limited your participation in the following activities over the past 2 weeks.', @@ -549,7 +547,7 @@ export class KccqQuestionnaireFactory extends QuestionnaireFactory { }) } - private question9(): FHIRQuestionnaireItem { + private question9(): QuestionnaireItem { return this.radioButtonItem({ linkId: QuestionnaireLinkId.kccq.question9, text: 'In the last two weeks, how much has your dizziness affected you?', diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts index 09cbccf7..c662001d 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts @@ -9,27 +9,26 @@ import { CodingSystem, compactMap, - type FHIRExtension, FHIRExtensionUrl, type FHIRMedication, FHIRQuestionnaire, - type FHIRQuestionnaireItem, - type FHIRQuestionnaireItemAnswerOption, - type FHIRQuestionnaireItemEnableBehavior, - type FHIRQuestionnaireItemEnableWhen, - FHIRQuestionnaireItemEnableWhenOperator, - FHIRQuestionnaireItemType, - FHIRQuestionnairePublicationStatus, LoincCode, QuantityUnit, + QuestionnaireStatus, } from '@stanfordbdhg/engagehf-models' -import { type FHIRUsageContext } from '@stanfordbdhg/engagehf-models/lib/fhir/baseTypes/fhirUsageContext' import { medicationClassesForGroup, MedicationGroup, type QuestionnaireId, QuestionnaireLinkId, } from './questionnaireLinkIds.js' +import { + QuestionnaireItem, + QuestionnaireItemEnableWhen, + QuestionnaireItemAnswerOption, + UsageContext, + Extension, +} from 'fhir/r4b.js' // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters export abstract class QuestionnaireFactory { @@ -39,7 +38,7 @@ export abstract class QuestionnaireFactory { // Helper functions - ENGAGE-HF specific - protected appointmentInputPages(): FHIRQuestionnaireItem[] { + protected appointmentInputPages(): QuestionnaireItem[] { const linkIds = QuestionnaireLinkId.appointment return [ this.pageItem({ @@ -62,7 +61,7 @@ export abstract class QuestionnaireFactory { enableWhen: [ { question: linkIds.exists, - operator: FHIRQuestionnaireItemEnableWhenOperator.equals, + operator: '=', answerBoolean: true, }, ], @@ -80,7 +79,7 @@ export abstract class QuestionnaireFactory { ] } - protected labInputPages(): FHIRQuestionnaireItem[] { + protected labInputPages(): QuestionnaireItem[] { return [ ...this.labInputPagesForValue({ loincCode: LoincCode.creatinine, @@ -123,7 +122,7 @@ export abstract class QuestionnaireFactory { unit: QuantityUnit minValue?: number maxValue?: number - }): FHIRQuestionnaireItem[] { + }): QuestionnaireItem[] { const linkIds = QuestionnaireLinkId.labValue(input.loincCode) return [ this.pageItem({ @@ -146,7 +145,7 @@ export abstract class QuestionnaireFactory { enableWhen: [ { question: linkIds.exists, - operator: FHIRQuestionnaireItemEnableWhenOperator.equals, + operator: '=', answerBoolean: true, }, ], @@ -175,7 +174,7 @@ export abstract class QuestionnaireFactory { medications: Record drugs: Record> isRegistration: boolean - }): FHIRQuestionnaireItem[] { + }): QuestionnaireItem[] { return [ ...this.medicationInputPagesForMedicationGroup({ ...input, @@ -211,7 +210,7 @@ export abstract class QuestionnaireFactory { group: MedicationGroup text: string isRegistration: boolean - }): FHIRQuestionnaireItem[] { + }): QuestionnaireItem[] { const linkIds = QuestionnaireLinkId.medication(input.group) const medicationClasses = medicationClassesForGroup(input.group).map( (medicationClass) => medicationClass.toString(), @@ -242,7 +241,7 @@ export abstract class QuestionnaireFactory { if (medication.brandNames.length > 0) text += ` (${medication.brandNames.join(', ')})` - text += `\n${drug.ingredient?.map((i) => i.strength?.numerator?.value ?? 0).join('/') ?? ''} mg ${drug.form?.text ?? ''}` + text += `\n${drug.data.ingredient?.map((i) => i.strength?.numerator?.value ?? 0).join('/') ?? ''} mg ${drug.data.form?.text ?? ''}` answers.push({ id: `medications/${medicationId}/drugs/${drugId}`, medication, @@ -315,7 +314,7 @@ export abstract class QuestionnaireFactory { enableWhen: [ { question: linkIds.exists, - operator: FHIRQuestionnaireItemEnableWhenOperator.equals, + operator: '=', answerCoding: input.isRegistration ? answerOptions.find( @@ -368,11 +367,11 @@ export abstract class QuestionnaireFactory { linkId: string text: string required?: boolean - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: FHIRQuestionnaireItemType.boolean, + type: 'boolean', required: input.required ?? true, } } @@ -381,11 +380,11 @@ export abstract class QuestionnaireFactory { linkId: string text: string required?: boolean - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: FHIRQuestionnaireItemType.date, + type: 'date', required: input.required ?? true, } } @@ -394,11 +393,11 @@ export abstract class QuestionnaireFactory { linkId: string text: string required?: boolean - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: FHIRQuestionnaireItemType.dateTime, + type: 'dateTime', required: input.required ?? true, } } @@ -410,12 +409,12 @@ export abstract class QuestionnaireFactory { unit?: string minValue?: number maxValue?: number - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: FHIRQuestionnaireItemType.decimal, - unit: input.unit, + type: 'decimal', + // unit: input.unit, required: input.required ?? true, } } @@ -424,10 +423,10 @@ export abstract class QuestionnaireFactory { linkId: string text: string required?: boolean - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { linkId: input.linkId, - type: FHIRQuestionnaireItemType.display, + type: 'display', text: input.text, required: input.required ?? false, } @@ -436,15 +435,15 @@ export abstract class QuestionnaireFactory { protected pageItem(input: { linkId: string text: string - item: FHIRQuestionnaireItem[] - enableWhen?: FHIRQuestionnaireItemEnableWhen[] - enableBehavior?: FHIRQuestionnaireItemEnableBehavior - extension?: FHIRExtension[] + item: QuestionnaireItem[] + enableWhen?: QuestionnaireItemEnableWhen[] + enableBehavior?: 'all' | 'any' + extension?: Extension[] required?: boolean - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { linkId: input.linkId, - type: FHIRQuestionnaireItemType.group, + type: 'group', extension: [ ...(input.extension ?? []), { @@ -472,15 +471,16 @@ export abstract class QuestionnaireFactory { protected questionnaire(input: { id: QuestionnaireId title: string - status?: FHIRQuestionnairePublicationStatus - item: FHIRQuestionnaireItem[] - useContext?: FHIRUsageContext[] + status?: QuestionnaireStatus + item: QuestionnaireItem[] + useContext?: UsageContext[] }): FHIRQuestionnaire { return new FHIRQuestionnaire({ + resourceType: 'Questionnaire', id: input.id, title: input.title, language: 'en-US', - status: input.status ?? FHIRQuestionnairePublicationStatus.active, + status: input.status ?? 'active', publisher: 'Stanford Biodesign Digital Health', meta: { profile: [ @@ -509,9 +509,9 @@ export abstract class QuestionnaireFactory { protected radioButtonItem(input: { linkId: string text: string - answerOption: FHIRQuestionnaireItemAnswerOption[] + answerOption: QuestionnaireItemAnswerOption[] required?: boolean - }): FHIRQuestionnaireItem { + }): QuestionnaireItem { return { extension: [ { @@ -528,7 +528,7 @@ export abstract class QuestionnaireFactory { }, ], linkId: input.linkId, - type: FHIRQuestionnaireItemType.choice, + type: 'choice', text: input.text, required: input.required ?? true, answerOption: input.answerOption, @@ -542,7 +542,7 @@ export abstract class QuestionnaireFactory { code: string display: string }> - }): FHIRQuestionnaireItemAnswerOption[] { + }): QuestionnaireItemAnswerOption[] { return input.values.map((option) => ({ valueCoding: { id: option.id ?? option.code, From 81f3ea897e8726e01492633318d0aaa1181a3a90 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Wed, 23 Jul 2025 23:39:40 +0200 Subject: [PATCH 04/18] Add lock.json --- functions/models/package-lock.json | 6255 +++++++++++ functions/package-lock.json | 16192 +++++++++++++++++++++++++++ 2 files changed, 22447 insertions(+) create mode 100644 functions/models/package-lock.json create mode 100644 functions/package-lock.json diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json new file mode 100644 index 00000000..ea543ee6 --- /dev/null +++ b/functions/models/package-lock.json @@ -0,0 +1,6255 @@ +{ + "name": "@stanfordbdhg/engagehf-models", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@stanfordbdhg/engagehf-models", + "dependencies": { + "@stanfordspezi/spezi-firebase-fhir": "^0.1.2" + }, + "devDependencies": { + "@types/node": "^20", + "eslint": "^9.22", + "eslint-config-google": "^0.14", + "eslint-config-prettier": "^10.1", + "eslint-plugin-import": "^2.31", + "eslint-plugin-prettier": "^5.2", + "jest": "^29", + "prettier": "^3.5", + "ts-jest": "^29", + "ts-node": "^10.9", + "typescript": "^5", + "typescript-eslint": "^8.26" + }, + "engines": { + "node": "22" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir": { + "name": "@stanfordspezi/spezi-firebase", + "version": "0.1.2", + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "peerDependencies": { + "@types/fhir": "^0.0.41", + "zod": "^4.0.5" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fhir": { + "version": "0.0.41", + "license": "MIT", + "peer": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async": { + "version": "3.2.6", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.189", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-int64": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.11.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-jest": { + "version": "29.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.2", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.0.5", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/functions/package-lock.json b/functions/package-lock.json new file mode 100644 index 00000000..70da12f3 --- /dev/null +++ b/functions/package-lock.json @@ -0,0 +1,16192 @@ +{ + "name": "functions", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "functions", + "dependencies": { + "@resvg/resvg-js": "^2.6.2", + "@stanfordbdhg/engagehf-models": "file:models", + "d3": "^7.9.0", + "firebase-admin": "^13.2", + "firebase-functions": "^6.3.2", + "jsdom": "^24.1.0", + "jspdf": "^3.0.1", + "jspdf-autotable": "^5.0.2", + "twilio": "^5.4.5" + }, + "devDependencies": { + "@firebase/rules-unit-testing": "^4.0.1", + "@types/d3": "^7.4.3", + "@types/jest": "^29.5.3", + "@types/jsdom": "^21.1.7", + "@types/node": "^20", + "@types/sinon": "^17.0.3", + "eslint": "^9.22", + "eslint-config-google": "^0.14", + "eslint-config-prettier": "^10.1", + "eslint-plugin-import": "^2.31", + "eslint-plugin-prettier": "^5.2", + "firebase-functions-test": "^3.4", + "jest": "^29.1", + "prettier": "^3.5", + "sinon": "^18.0.0", + "ts-jest": "^29.1", + "ts-node": "^10.9", + "typescript": "^5", + "typescript-eslint": "^8.26" + }, + "engines": { + "node": "22" + } + }, + "models": { + "name": "@stanfordbdhg/engagehf-models", + "dependencies": { + "@stanfordspezi/spezi-firebase-fhir": "^0.1.2" + }, + "devDependencies": { + "@types/node": "^20", + "eslint": "^9.22", + "eslint-config-google": "^0.14", + "eslint-config-prettier": "^10.1", + "eslint-plugin-import": "^2.31", + "eslint-plugin-prettier": "^5.2", + "jest": "^29", + "prettier": "^3.5", + "ts-jest": "^29", + "ts-node": "^10.9", + "typescript": "^5", + "typescript-eslint": "^8.26" + }, + "engines": { + "node": "22" + } + }, + "models/node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "models/node_modules/@babel/code-frame": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/compat-data": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/core": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "models/node_modules/@babel/generator": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-globals": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "models/node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/helpers": { + "version": "7.27.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/parser": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "models/node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "models/node_modules/@babel/template": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/traverse": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@babel/types": { + "version": "7.28.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "models/node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "models/node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "models/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "models/node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "models/node_modules/@eslint/config-array": { + "version": "0.21.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "models/node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "models/node_modules/@eslint/core": { + "version": "0.15.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "models/node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "models/node_modules/@eslint/js": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "models/node_modules/@eslint/object-schema": { + "version": "2.1.6", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "models/node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "models/node_modules/@humanfs/core": { + "version": "0.19.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "models/node_modules/@humanfs/node": { + "version": "0.16.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "models/node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "models/node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "models/node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/@jest/console": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/core": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "models/node_modules/@jest/environment": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/expect-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/fake-timers": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/globals": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/reporters": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "models/node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/source-map": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/test-result": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/transform": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jest/types": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "models/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "models/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "models/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/@pkgr/core": { + "version": "0.2.9", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "models/node_modules/@rtsao/scc": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "models/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "models/node_modules/@stanfordspezi/spezi-firebase-fhir": { + "name": "@stanfordspezi/spezi-firebase", + "version": "0.1.2", + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "peerDependencies": { + "@types/fhir": "^0.0.41", + "zod": "^4.0.5" + } + }, + "models/node_modules/@tsconfig/node10": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@types/babel__core": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "models/node_modules/@types/babel__generator": { + "version": "7.27.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "models/node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "models/node_modules/@types/babel__traverse": { + "version": "7.20.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "models/node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@types/fhir": { + "version": "0.0.41", + "license": "MIT", + "peer": true + }, + "models/node_modules/@types/graceful-fs": { + "version": "4.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "models/node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "models/node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "models/node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@types/node": { + "version": "20.19.9", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "models/node_modules/@types/stack-utils": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@types/yargs": { + "version": "17.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "models/node_modules/@types/yargs-parser": { + "version": "21.0.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "models/node_modules/@typescript-eslint/parser": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "models/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/type-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "models/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "models/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "models/node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "models/node_modules/acorn": { + "version": "8.15.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "models/node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "models/node_modules/acorn-walk": { + "version": "8.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "models/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "models/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "models/node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "models/node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/array-includes": { + "version": "3.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/array.prototype.flat": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/async": { + "version": "3.2.6", + "dev": true, + "license": "MIT" + }, + "models/node_modules/async-function": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/available-typed-arrays": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/babel-jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "models/node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "models/node_modules/babel-preset-jest": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "models/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "models/node_modules/brace-expansion": { + "version": "1.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "models/node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/browserslist": { + "version": "4.25.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "models/node_modules/bs-logger": { + "version": "0.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "models/node_modules/bser": { + "version": "2.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "models/node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "models/node_modules/call-bind": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/call-bound": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/caniuse-lite": { + "version": "1.0.30001727", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "models/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "models/node_modules/char-regex": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "models/node_modules/ci-info": { + "version": "3.9.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/cjs-module-lexer": { + "version": "1.4.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "models/node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "models/node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "models/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "models/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "models/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/create-jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/data-view-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/data-view-byte-length": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "models/node_modules/data-view-byte-offset": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/debug": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "models/node_modules/dedent": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "models/node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "models/node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/define-data-property": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "models/node_modules/diff-sequences": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/dunder-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/ejs": { + "version": "3.1.10", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/electron-to-chromium": { + "version": "1.5.189", + "dev": true, + "license": "ISC" + }, + "models/node_modules/emittery": { + "version": "0.13.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "models/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "models/node_modules/es-abstract": { + "version": "1.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/es-define-property": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/es-object-atoms": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/es-set-tostringtag": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/es-shim-unscopables": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/es-to-primitive": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/escalade": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/eslint": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "models/node_modules/eslint-config-google": { + "version": "0.14.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "models/node_modules/eslint-config-prettier": { + "version": "10.1.8", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "models/node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "models/node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "models/node_modules/eslint-module-utils": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "models/node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "models/node_modules/eslint-plugin-import": { + "version": "2.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "models/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "models/node_modules/eslint-plugin-prettier": { + "version": "5.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "models/node_modules/eslint-scope": { + "version": "8.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "models/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "models/node_modules/espree": { + "version": "10.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "models/node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "models/node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "models/node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "models/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "models/node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "models/node_modules/exit": { + "version": "0.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "models/node_modules/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "models/node_modules/fast-glob": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "models/node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "models/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "models/node_modules/fastq": { + "version": "1.19.1", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "models/node_modules/fb-watchman": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "models/node_modules/file-entry-cache": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "models/node_modules/filelist": { + "version": "1.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "models/node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "models/node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/flat-cache": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "models/node_modules/flatted": { + "version": "3.3.3", + "dev": true, + "license": "ISC" + }, + "models/node_modules/for-each": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "models/node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "models/node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/function.prototype.name": { + "version": "1.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "models/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "models/node_modules/get-intrinsic": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/get-package-type": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "models/node_modules/get-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/get-symbol-description": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "models/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "models/node_modules/globals": { + "version": "14.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/globalthis": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/gopd": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "models/node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/has-bigints": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/has-property-descriptors": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/has-proto": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/has-symbols": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/hasown": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "models/node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "models/node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "models/node_modules/import-fresh": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/import-local": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "models/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "models/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "models/node_modules/internal-slot": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/is-array-buffer": { + "version": "3.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/is-async-function": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-bigint": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-boolean-object": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-data-view": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-date-object": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/is-finalizationregistry": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/is-generator-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/is-generator-function": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/is-map": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-negative-zero": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "models/node_modules/is-number-object": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-regex": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-set": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/is-string": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-symbol": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-typed-array": { + "version": "1.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-weakmap": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-weakref": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/is-weakset": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "models/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "models/node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/istanbul-lib-report": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/istanbul-reports": { + "version": "3.1.7", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/jake": { + "version": "10.9.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "models/node_modules/jest-changed-files": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-circus": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-cli": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "models/node_modules/jest-config": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "models/node_modules/jest-diff": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-docblock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-each": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-environment-node": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-get-type": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-haste-map": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "models/node_modules/jest-leak-detector": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-message-util": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-mock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "models/node_modules/jest-regex-util": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-resolve": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-runner": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-runtime": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-snapshot": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/jest-util": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-validate": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/jest-watcher": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-worker": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "models/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "models/node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "models/node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "models/node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "models/node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/leven": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "models/node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "models/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/lodash.memoize": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "models/node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "models/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "models/node_modules/make-dir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "models/node_modules/makeerror": { + "version": "1.0.12", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "models/node_modules/math-intrinsics": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "models/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "models/node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "models/node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/node-int64": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/node-releases": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "models/node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/object-inspect": { + "version": "1.13.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/object.assign": { + "version": "4.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/object.fromentries": { + "version": "2.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/object.groupby": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/object.values": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "models/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "models/node_modules/own-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "models/node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "models/node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "models/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "models/node_modules/pirates": { + "version": "4.0.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "models/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/possible-typed-array-names": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "models/node_modules/prettier": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "models/node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "models/node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "models/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "models/node_modules/prompts": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "models/node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/pure-rand": { + "version": "6.1.0", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "models/node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "models/node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/resolve": { + "version": "1.22.10", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "models/node_modules/resolve.exports": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "models/node_modules/reusify": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "models/node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "models/node_modules/safe-array-concat": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/safe-push-apply": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/safe-regex-test": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "models/node_modules/set-function-length": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/set-function-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/set-proto": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/side-channel": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/side-channel-list": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/side-channel-map": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/side-channel-weakmap": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "models/node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "models/node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/source-map-support": { + "version": "0.5.13", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "models/node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "models/node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/string-length": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/string.prototype.trim": { + "version": "1.2.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/string.prototype.trimend": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "models/node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/synckit": { + "version": "0.11.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "models/node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "models/node_modules/tmpl": { + "version": "1.0.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "models/node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "models/node_modules/ts-api-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "models/node_modules/ts-jest": { + "version": "29.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.2", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "models/node_modules/ts-jest/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "models/node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/ts-node": { + "version": "10.9.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "models/node_modules/tsconfig-paths": { + "version": "3.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "models/node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "models/node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "models/node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "models/node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "models/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/typed-array-buffer": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "models/node_modules/typed-array-byte-length": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/typed-array-length": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/typescript": { + "version": "5.8.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "models/node_modules/typescript-eslint": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "models/node_modules/unbox-primitive": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/undici-types": { + "version": "6.21.0", + "dev": true, + "license": "MIT" + }, + "models/node_modules/update-browserslist-db": { + "version": "1.1.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "models/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "models/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "models/node_modules/v8-to-istanbul": { + "version": "9.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "models/node_modules/walker": { + "version": "1.0.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "models/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "models/node_modules/which-boxed-primitive": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/which-builtin-type": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/which-collection": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/which-typed-array": { + "version": "1.1.19", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "models/node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "models/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "models/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "models/node_modules/write-file-atomic": { + "version": "4.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "models/node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "models/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "models/node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "models/node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "models/node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "models/node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "models/node_modules/zod": { + "version": "4.0.5", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "license": "ISC" + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.2", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.10", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "3.1.1", + "license": "MIT" + }, + "node_modules/@firebase/ai": { + "version": "1.4.1", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/analytics": { + "version": "0.10.17", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/analytics-compat": { + "version": "0.2.23", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/analytics": "0.10.17", + "@firebase/analytics-types": "0.8.3", + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/analytics-types": { + "version": "0.8.3", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/app": { + "version": "0.13.2", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/app-check": { + "version": "0.10.1", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/app-check-compat": { + "version": "0.3.26", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-check": "0.10.1", + "@firebase/app-check-types": "0.5.3", + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.3", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-check-types": { + "version": "0.5.3", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/app-compat": { + "version": "0.4.2", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app": "0.13.2", + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/app-types": { + "version": "0.9.3", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth": { + "version": "1.10.8", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@firebase/auth-compat": { + "version": "0.5.28", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/auth": "1.10.8", + "@firebase/auth-types": "0.13.0", + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.4", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-types": { + "version": "0.13.0", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/component": { + "version": "0.6.18", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/data-connect": { + "version": "0.3.10", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/database": { + "version": "1.0.20", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/database": "1.0.20", + "@firebase/database-types": "1.0.15", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.15", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.3", + "@firebase/util": "1.12.1" + } + }, + "node_modules/@firebase/firestore": { + "version": "4.8.0", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "@firebase/webchannel-wrapper": "1.0.3", + "@grpc/grpc-js": "~1.9.0", + "@grpc/proto-loader": "^0.7.8", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/firestore-compat": { + "version": "0.3.53", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/firestore": "4.8.0", + "@firebase/firestore-types": "3.0.3", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/firestore-types": { + "version": "3.0.3", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/functions": { + "version": "0.12.9", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.6.18", + "@firebase/messaging-interop-types": "0.2.3", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/functions-compat": { + "version": "0.3.26", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/functions": "0.12.9", + "@firebase/functions-types": "0.6.3", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/functions-types": { + "version": "0.6.3", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/installations": { + "version": "0.6.18", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/installations-compat": { + "version": "0.2.18", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", + "@firebase/installations-types": "0.5.3", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/installations-types": { + "version": "0.5.3", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "peerDependencies": { + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/logger": { + "version": "0.4.4", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/messaging": { + "version": "0.12.22", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", + "@firebase/messaging-interop-types": "0.2.3", + "@firebase/util": "1.12.1", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/messaging-compat": { + "version": "0.2.22", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/messaging": "0.12.22", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/messaging-interop-types": { + "version": "0.2.3", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/performance": { + "version": "0.7.7", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0", + "web-vitals": "^4.2.4" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/performance-compat": { + "version": "0.2.20", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/performance": "0.7.7", + "@firebase/performance-types": "0.2.3", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/performance-types": { + "version": "0.2.3", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/remote-config": { + "version": "0.6.5", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/installations": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/remote-config-compat": { + "version": "0.2.18", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/logger": "0.4.4", + "@firebase/remote-config": "0.6.5", + "@firebase/remote-config-types": "0.4.0", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/remote-config-types": { + "version": "0.4.0", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@firebase/rules-unit-testing": { + "version": "4.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "firebase": "^11.0.0" + } + }, + "node_modules/@firebase/storage": { + "version": "0.13.14", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/storage-compat": { + "version": "0.3.24", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/component": "0.6.18", + "@firebase/storage": "0.13.14", + "@firebase/storage-types": "0.8.3", + "@firebase/util": "1.12.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/storage-types": { + "version": "0.8.3", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/util": { + "version": "1.12.1", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/webchannel-wrapper": { + "version": "1.0.3", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@google-cloud/firestore": { + "version": "7.11.3", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@opentelemetry/api": "^1.3.0", + "fast-deep-equal": "^3.1.1", + "functional-red-black-tree": "^1.0.1", + "google-gax": "^4.3.3", + "protobufjs": "^7.2.6" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/paginator": { + "version": "5.0.2", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/projectify": { + "version": "4.0.0", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/promisify": { + "version": "4.0.0", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage": { + "version": "7.16.0", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@google-cloud/paginator": "^5.0.0", + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "<4.1.0", + "abort-controller": "^3.0.0", + "async-retry": "^1.3.3", + "duplexify": "^4.1.3", + "fast-xml-parser": "^4.4.1", + "gaxios": "^6.0.2", + "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", + "mime": "^3.0.0", + "p-limit": "^3.0.1", + "retry-request": "^7.0.0", + "teeny-request": "^9.0.0", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.9.15", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@grpc/proto-loader": "^0.7.8", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.15", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@resvg/resvg-js": { + "version": "2.6.2", + "license": "MPL-2.0", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@resvg/resvg-js-android-arm-eabi": "2.6.2", + "@resvg/resvg-js-android-arm64": "2.6.2", + "@resvg/resvg-js-darwin-arm64": "2.6.2", + "@resvg/resvg-js-darwin-x64": "2.6.2", + "@resvg/resvg-js-linux-arm-gnueabihf": "2.6.2", + "@resvg/resvg-js-linux-arm64-gnu": "2.6.2", + "@resvg/resvg-js-linux-arm64-musl": "2.6.2", + "@resvg/resvg-js-linux-x64-gnu": "2.6.2", + "@resvg/resvg-js-linux-x64-musl": "2.6.2", + "@resvg/resvg-js-win32-arm64-msvc": "2.6.2", + "@resvg/resvg-js-win32-ia32-msvc": "2.6.2", + "@resvg/resvg-js-win32-x64-msvc": "2.6.2" + } + }, + "node_modules/@resvg/resvg-js-darwin-arm64": { + "version": "2.6.2", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "8.0.2", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "lodash.get": "^4.4.2", + "type-detect": "^4.1.0" + } + }, + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.3", + "dev": true, + "license": "(Unlicense OR Apache-2.0)" + }, + "node_modules/@stanfordbdhg/engagehf-models": { + "resolved": "models", + "link": true + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "license": "MIT", + "optional": true + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.19", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.23", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "21.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.10", + "license": "MIT", + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.20", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "license": "MIT", + "optional": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.9", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "license": "MIT" + }, + "node_modules/@types/raf": { + "version": "3.4.3", + "license": "MIT", + "optional": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "license": "MIT" + }, + "node_modules/@types/request": { + "version": "2.48.12", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.5", + "license": "MIT", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@types/send": { + "version": "0.17.5", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sinon": { + "version": "17.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "license": "MIT", + "optional": true + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "license": "MIT", + "optional": true, + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.10.0", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/canvg": { + "version": "3.0.11", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "devOptional": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.44.0", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delaunator": { + "version": "5.0.1", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dompurify": { + "version": "3.2.6", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "4.1.3", + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.189", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.21.2", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/farmhash-modern": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-xml-parser": { + "version": "4.5.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "strnum": "^1.1.1" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/firebase": { + "version": "11.10.0", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@firebase/ai": "1.4.1", + "@firebase/analytics": "0.10.17", + "@firebase/analytics-compat": "0.2.23", + "@firebase/app": "0.13.2", + "@firebase/app-check": "0.10.1", + "@firebase/app-check-compat": "0.3.26", + "@firebase/app-compat": "0.4.2", + "@firebase/app-types": "0.9.3", + "@firebase/auth": "1.10.8", + "@firebase/auth-compat": "0.5.28", + "@firebase/data-connect": "0.3.10", + "@firebase/database": "1.0.20", + "@firebase/database-compat": "2.0.11", + "@firebase/firestore": "4.8.0", + "@firebase/firestore-compat": "0.3.53", + "@firebase/functions": "0.12.9", + "@firebase/functions-compat": "0.3.26", + "@firebase/installations": "0.6.18", + "@firebase/installations-compat": "0.2.18", + "@firebase/messaging": "0.12.22", + "@firebase/messaging-compat": "0.2.22", + "@firebase/performance": "0.7.7", + "@firebase/performance-compat": "0.2.20", + "@firebase/remote-config": "0.6.5", + "@firebase/remote-config-compat": "0.2.18", + "@firebase/storage": "0.13.14", + "@firebase/storage-compat": "0.3.24", + "@firebase/util": "1.12.1" + } + }, + "node_modules/firebase-admin": { + "version": "13.4.0", + "license": "Apache-2.0", + "dependencies": { + "@fastify/busboy": "^3.0.0", + "@firebase/database-compat": "^2.0.0", + "@firebase/database-types": "^1.0.6", + "@types/node": "^22.8.7", + "farmhash-modern": "^1.1.0", + "google-auth-library": "^9.14.2", + "jsonwebtoken": "^9.0.0", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "uuid": "^11.0.2" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@google-cloud/firestore": "^7.11.0", + "@google-cloud/storage": "^7.14.0" + } + }, + "node_modules/firebase-admin/node_modules/@types/node": { + "version": "22.16.5", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/firebase-functions": { + "version": "6.4.0", + "license": "MIT", + "dependencies": { + "@types/cors": "^2.8.5", + "@types/express": "^4.17.21", + "cors": "^2.8.5", + "express": "^4.21.0", + "protobufjs": "^7.2.2" + }, + "bin": { + "firebase-functions": "lib/bin/firebase-functions.js" + }, + "engines": { + "node": ">=14.10.0" + }, + "peerDependencies": { + "firebase-admin": "^11.10.0 || ^12.0.0 || ^13.0.0" + } + }, + "node_modules/firebase-functions-test": { + "version": "3.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "^4.14.104", + "lodash": "^4.17.5", + "ts-deepmerge": "^2.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "firebase-admin": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0", + "firebase-functions": ">=4.9.0", + "jest": ">=28.0.0" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "license": "MIT", + "optional": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "6.7.1", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.1", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "devOptional": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/google-auth-library": { + "version": "9.15.1", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax": { + "version": "4.6.1", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "google-auth-library": "^9.3.0", + "node-fetch": "^2.7.0", + "object-hash": "^3.0.0", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", + "retry-request": "^7.0.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax/node_modules/@grpc/grpc-js": { + "version": "1.13.4", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/google-gax/node_modules/uuid": { + "version": "9.0.1", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/google-logging-utils": { + "version": "0.0.2", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/gtoken": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "license": "MIT", + "optional": true, + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jose": { + "version": "4.15.9", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "24.1.3", + "license": "MIT", + "dependencies": { + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.12", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.4", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jspdf": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.7", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.8.1" + }, + "optionalDependencies": { + "canvg": "^3.0.11", + "core-js": "^3.6.0", + "dompurify": "^3.2.4", + "html2canvas": "^1.0.0-rc.5" + } + }, + "node_modules/jspdf-autotable": { + "version": "5.0.2", + "license": "MIT", + "peerDependencies": { + "jspdf": "^2 || ^3" + } + }, + "node_modules/just-extend": { + "version": "6.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jwa": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jwks-rsa": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@types/express": "^4.17.20", + "@types/jsonwebtoken": "^9.0.4", + "debug": "^4.3.4", + "jose": "^4.15.4", + "limiter": "^1.1.5", + "lru-memoizer": "^2.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/limiter": { + "version": "1.1.5" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "license": "Apache-2.0" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lru-memoizer": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "6.0.0" + } + }, + "node_modules/lru-memoizer/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-memoizer/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/make-dir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nise": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.1", + "@sinonjs/text-encoding": "^0.7.3", + "just-extend": "^6.2.0", + "path-to-regexp": "^8.1.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/nise/node_modules/path-to-regexp": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.20", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "devOptional": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "license": "MIT", + "optional": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.5.3", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.13.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "license": "MIT", + "optional": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "license": "MIT", + "optional": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/retry-request": { + "version": "7.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/request": "^2.48.8", + "extend": "^3.0.2", + "teeny-request": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "license": "Unlicense" + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "license": "BSD-3-Clause" + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scmp": { + "version": "2.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sinon": { + "version": "18.0.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.2.0", + "nise": "^6.0.0", + "supports-color": "^7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackblur-canvas": { + "version": "2.7.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.14" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "license": "MIT", + "optional": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "license": "MIT", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.1.2", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/stubs": { + "version": "3.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "license": "MIT" + }, + "node_modules/synckit": { + "version": "0.11.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/teeny-request": { + "version": "9.0.0", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.9", + "stream-events": "^1.0.5", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/teeny-request/node_modules/agent-base": { + "version": "6.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/teeny-request/node_modules/http-proxy-agent": { + "version": "5.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/teeny-request/node_modules/uuid": { + "version": "9.0.1", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-deepmerge": { + "version": "2.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/ts-jest": { + "version": "29.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.2", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "license": "0BSD" + }, + "node_modules/twilio": { + "version": "5.7.3", + "license": "MIT", + "dependencies": { + "axios": "^1.8.3", + "dayjs": "^1.11.9", + "https-proxy-agent": "^5.0.0", + "jsonwebtoken": "^9.0.2", + "qs": "^6.9.4", + "scmp": "^2.1.0", + "xmlbuilder": "^13.0.2" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/twilio/node_modules/agent-base": { + "version": "6.0.2", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/twilio/node_modules/https-proxy-agent": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT", + "optional": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/utrie": { + "version": "1.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/uuid": { + "version": "11.1.0", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/web-vitals": { + "version": "4.2.4", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "devOptional": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlbuilder": { + "version": "13.0.2", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} From 28e3f69c1c94fb518795c2a702d827383c44ff02 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Thu, 24 Jul 2025 00:22:08 +0200 Subject: [PATCH 05/18] update --- functions/models/package-lock.json | 4 ++ functions/models/package.json | 4 ++ functions/models/src/codes/quantityUnit.ts | 4 +- .../models/src/fhir/fhirAllergyIntolerance.ts | 12 ++--- functions/models/src/fhir/fhirAppointment.ts | 15 +++--- functions/models/src/fhir/fhirConverters.ts | 46 +++++++---------- functions/models/src/fhir/fhirMedication.ts | 26 ++++------ .../models/src/fhir/fhirMedicationRequest.ts | 15 +----- functions/models/src/fhir/fhirObservation.ts | 16 ++---- .../models/src/fhir/fhirQuestionnaire.ts | 14 +----- .../src/fhir/fhirQuestionnaireResponse.ts | 27 +++++----- functions/models/src/fhir/fhirResource.ts | 18 ++++--- .../models/src/functions/createInvitation.ts | 2 +- functions/models/src/functions/customSeed.ts | 2 +- functions/models/src/functions/defaultSeed.ts | 8 +-- .../models/src/functions/deleteInvitation.ts | 2 +- functions/models/src/functions/deleteUser.ts | 2 +- functions/models/src/functions/disableUser.ts | 2 +- .../models/src/functions/dismissMessage.ts | 2 +- .../models/src/functions/dismissMessages.ts | 2 +- functions/models/src/functions/enableUser.ts | 2 +- functions/models/src/functions/enrollUser.ts | 2 +- .../src/functions/exportHealthSummary.ts | 4 +- .../src/functions/getUsersInformation.ts | 2 +- functions/models/src/functions/phoneNumber.ts | 2 +- .../models/src/functions/registerDevice.ts | 2 +- .../src/functions/shareHealthSummary.ts | 2 +- .../models/src/functions/unregisterDevice.ts | 4 +- .../models/src/functions/updateStaticData.ts | 6 +-- .../src/functions/updateUserInformation.ts | 2 +- functions/models/src/helpers/dateConverter.ts | 10 ++-- .../models/src/helpers/fhirSchemaConverter.ts | 39 ++++++++------- functions/models/src/helpers/optionalish.ts | 18 +++---- .../models/src/helpers/schemaConverter.ts | 4 +- functions/models/src/index.ts | 2 +- functions/models/src/types/invitation.ts | 2 +- functions/models/src/types/localizedText.ts | 2 +- functions/models/src/types/medicationClass.ts | 2 +- functions/models/src/types/organization.ts | 2 +- functions/models/src/types/symptomScore.ts | 2 +- functions/models/src/types/user.ts | 2 +- functions/models/src/types/userAuth.ts | 2 +- functions/models/src/types/userDevice.ts | 4 +- .../src/types/userMedicationRecommendation.ts | 6 +-- functions/models/src/types/userMessage.ts | 4 +- .../models/src/types/userMessagesSettings.ts | 2 +- .../models/src/types/userRegistration.ts | 8 +-- functions/models/src/types/userShareCode.ts | 2 +- functions/models/src/types/video.ts | 2 +- functions/models/src/types/videoSection.ts | 2 +- functions/package-lock.json | 38 +++++++++----- functions/package.json | 4 ++ .../src/functions/createInvitation.test.ts | 2 +- functions/src/functions/defaultSeed.ts | 2 +- functions/src/functions/enrollUser.test.ts | 20 ++++---- functions/src/functions/helpers.ts | 6 +-- .../onUserAppointmentWritten.test.ts | 4 +- .../src/functions/onUserAppointmentWritten.ts | 4 +- .../onUserMedicationRequestWritten.ts | 9 ++-- .../onUserQuestionnaireResponseWritten.ts | 9 ++-- functions/src/functions/updateStaticData.ts | 2 +- .../src/healthSummary/keyPointsMessage.ts | 10 ++-- .../defaultContraindicationService.test.ts | 9 ++-- .../defaultContraindicationService.ts | 7 ++- .../src/services/database/collections.ts | 50 ++++++++++--------- .../services/database/databaseConverter.ts | 45 ++++++++++++++++- .../src/services/history/historyService.ts | 2 +- .../patient/databasePatientService.ts | 30 +++++------ .../services/patient/patientService.mock.ts | 31 ++++++------ .../src/services/patient/patientService.ts | 22 ++++---- ...UpdateQuestionnaireResponseService.test.ts | 28 +++++------ .../dataUpdateQuestionnaireResponseService.ts | 6 +-- .../egfr/egfrCalculator.test.ts | 4 +- .../kccqQuestionnaireResponseService.ts | 4 +- .../questionnaireResponseService.ts | 4 +- ...rationQuestionnaireResponseService.test.ts | 24 ++++----- ...egistrationQuestionnaireResponseService.ts | 4 +- .../recommendationService.test.ts | 4 +- .../recommendation/recommendationService.ts | 10 ++-- .../seeding/debugData/debugDataService.ts | 5 +- .../src/services/seeding/seedingService.ts | 6 +-- .../questionnaireFactory.ts | 4 +- .../seeding/staticData/rxNorm/rxNormApi.ts | 4 +- .../seeding/staticData/rxNorm/rxNormModels.ts | 2 +- .../staticData/rxNorm/rxNormService.ts | 2 +- .../seeding/staticData/staticDataService.ts | 15 ++++-- 86 files changed, 412 insertions(+), 388 deletions(-) diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index ea543ee6..fc083d55 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -24,6 +24,10 @@ }, "engines": { "node": "22" + }, + "peerDependencies": { + "@types/fhir": "^0.0.41", + "zod": "^4.0.5" } }, "node_modules/@ampproject/remapping": { diff --git a/functions/models/package.json b/functions/models/package.json index beff6cdd..64c9d99c 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -37,5 +37,9 @@ "ts-node": "^10.9", "typescript": "^5", "typescript-eslint": "^8.26" + }, + "peerDependencies": { + "zod": "^4.0.5", + "@types/fhir": "^0.0.41" } } diff --git a/functions/models/src/codes/quantityUnit.ts b/functions/models/src/codes/quantityUnit.ts index 087258eb..26d9ae5e 100644 --- a/functions/models/src/codes/quantityUnit.ts +++ b/functions/models/src/codes/quantityUnit.ts @@ -6,8 +6,8 @@ // SPDX-License-Identifier: MIT // -import { Quantity } from 'fhir/r4b.js' -import { ObservationQuantity } from '../types/observationQuantity.js' +import { type Quantity } from 'fhir/r4b.js' +import { type ObservationQuantity } from '../types/observationQuantity.js' export class QuantityUnit { // Static Properties diff --git a/functions/models/src/fhir/fhirAllergyIntolerance.ts b/functions/models/src/fhir/fhirAllergyIntolerance.ts index 16872445..f3bbe93a 100644 --- a/functions/models/src/fhir/fhirAllergyIntolerance.ts +++ b/functions/models/src/fhir/fhirAllergyIntolerance.ts @@ -6,21 +6,17 @@ // SPDX-License-Identifier: MIT // +import { type AllergyIntolerance } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource.js' import { CodingSystem } from '../codes/codes.js' import { type MedicationReference } from '../codes/references.js' -import { AllergyIntolerance } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' -import { - AllergyIntoleranceCriticality, - AllergyIntoleranceType, -} from '@stanfordspezi/spezi-firebase-fhir' export class FHIRAllergyIntolerance extends FHIRResource { // Static Functions static create(input: { - type?: AllergyIntoleranceType - criticality?: AllergyIntoleranceCriticality + type?: AllergyIntolerance['type'] + criticality?: AllergyIntolerance['criticality'] reference: MedicationReference userId?: string }): FHIRAllergyIntolerance { diff --git a/functions/models/src/fhir/fhirAppointment.ts b/functions/models/src/fhir/fhirAppointment.ts index e7678282..8408ca3f 100644 --- a/functions/models/src/fhir/fhirAppointment.ts +++ b/functions/models/src/fhir/fhirAppointment.ts @@ -6,11 +6,10 @@ // SPDX-License-Identifier: MIT // -import { Appointment } from 'fhir/r4b.js' +import { type Appointment } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { AppointmentStatus } from '@stanfordspezi/spezi-firebase-fhir' -import { compactMap } from '../helpers/array.js' import { FHIRExtensionUrl } from '../codes/codes.js' +import { compactMap } from '../helpers/array.js' export class FHIRAppointment extends FHIRResource { // Static Functions @@ -18,7 +17,7 @@ export class FHIRAppointment extends FHIRResource { static create(input: { userId: string created: Date - status?: AppointmentStatus + status?: Appointment['status'] start: Date durationInMinutes: number }): FHIRAppointment { @@ -47,16 +46,16 @@ export class FHIRAppointment extends FHIRResource { return this.data.start ? new Date(this.data.start) : undefined } - set startDate(date: Date) { - this.data.start = date.toISOString() + set startDate(date: Date | undefined) { + this.data.start = date?.toISOString() } get endDate(): Date | undefined { return this.data.end ? new Date(this.data.end) : undefined } - set endDate(date: Date) { - this.data.end = date.toISOString() + set endDate(date: Date | undefined) { + this.data.end = date?.toISOString() } get providerNames(): string[] { diff --git a/functions/models/src/fhir/fhirConverters.ts b/functions/models/src/fhir/fhirConverters.ts index dc41efb3..e8eb2d63 100644 --- a/functions/models/src/fhir/fhirConverters.ts +++ b/functions/models/src/fhir/fhirConverters.ts @@ -6,38 +6,33 @@ // SPDX-License-Identifier: MIT // -import { - allergyIntoleranceSchema, - appointmentSchema, - medicationSchema, - medicationRequestSchema, - observationSchema, - questionnaireSchema, - questionnaireResponseSchema, -} from '@stanfordspezi/spezi-firebase-fhir' -import { ZodType } from 'zod/v4' +import { z } from 'zod' import { FHIRAllergyIntolerance } from './fhirAllergyIntolerance.js' import { FHIRAppointment } from './fhirAppointment.js' +import { FHIRMedication } from './fhirMedication.js' +import { FHIRMedicationRequest } from './fhirMedicationRequest.js' +import { FHIRObservation } from './fhirObservation.js' +import { FHIRQuestionnaire } from './fhirQuestionnaire.js' +import { FHIRQuestionnaireResponse } from './fhirQuestionnaireResponse.js' import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -/* -const aiSchema: ZodType = - allergyIntoleranceSchema.transform((data) => new FHIRAllergyIntolerance(data)) - export const fhirAllergyIntoleranceConverter = - new FHIRSchemaConverter(aiSchema, { - nullProperties: [], - }) + new FHIRSchemaConverter( + z.object({}).transform((data: any) => new FHIRAllergyIntolerance(data)), + { + nullProperties: [], + }, + ) export const fhirAppointmentConverter = new FHIRSchemaConverter( - appointmentSchema.transform((data) => new FHIRAppointment(data)), + z.object({}).transform((data: any) => new FHIRAppointment(data)), { nullProperties: [], }, ) export const fhirMedicationConverter = new FHIRSchemaConverter( - medicationSchema.transform((data) => new FHIRMedication(data)), + z.object({}).transform((data: any) => new FHIRMedication(data)), { nullProperties: [], }, @@ -45,9 +40,7 @@ export const fhirMedicationConverter = new FHIRSchemaConverter( export const fhirMedicationRequestConverter = new FHIRSchemaConverter( - medicationRequestSchema.transform( - (data) => new FHIRMedicationRequest(data), - ), + z.object({}).transform((data: any) => new FHIRMedicationRequest(data)), { nullProperties: [], }, @@ -55,7 +48,7 @@ export const fhirMedicationRequestConverter = export const fhirObservationConverter = new FHIRSchemaConverter( - observationSchema.transform((data) => new FHIRObservation(data)), + z.object({}).transform((data: any) => new FHIRObservation(data)), { nullProperties: [], }, @@ -63,7 +56,7 @@ export const fhirObservationConverter = export const fhirQuestionnaireConverter = new FHIRSchemaConverter( - questionnaireSchema.transform((data) => new FHIRQuestionnaire(data)), + z.object({}).transform((data: any) => new FHIRQuestionnaire(data)), { nullProperties: [], }, @@ -71,11 +64,8 @@ export const fhirQuestionnaireConverter = export const fhirQuestionnaireResponseConverter = new FHIRSchemaConverter( - questionnaireResponseSchema.transform( - (data) => new FHIRQuestionnaireResponse(data), - ), + z.object({}).transform((data: any) => new FHIRQuestionnaireResponse(data)), { nullProperties: [], }, ) -*/ diff --git a/functions/models/src/fhir/fhirMedication.ts b/functions/models/src/fhir/fhirMedication.ts index 413bfe14..4a8ebed8 100644 --- a/functions/models/src/fhir/fhirMedication.ts +++ b/functions/models/src/fhir/fhirMedication.ts @@ -6,13 +6,15 @@ // SPDX-License-Identifier: MIT // -import { Medication, MedicationRequest, Reference } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource' -import { CodingSystem, FHIRExtensionUrl } from '../codes/codes' -import { QuantityUnit } from '../codes/quantityUnit' -import { FHIRMedicationRequest } from './fhirMedicationRequest' -import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -import { medicationRequestSchema } from '@stanfordspezi/spezi-firebase-fhir' +import { + type Medication, + type MedicationRequest, + type Reference, +} from 'fhir/r4b.js' +import { FHIRMedicationRequest } from './fhirMedicationRequest.js' +import { FHIRResource } from './fhirResource.js' +import { CodingSystem, FHIRExtensionUrl } from '../codes/codes.js' +import { QuantityUnit } from '../codes/quantityUnit.js' export class FHIRMedication extends FHIRResource { // Computed Properties @@ -86,13 +88,3 @@ export class FHIRMedication extends FHIRResource { )?.code } } - -/* -export const fhirMedicationConverter = - new FHIRSchemaConverter({ - schema: medicationRequestSchema.transform( - (data) => new FHIRMedicationRequest(data), - ), - nullProperties: [], - }) -*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirMedicationRequest.ts b/functions/models/src/fhir/fhirMedicationRequest.ts index 6141d422..8b82aa0c 100644 --- a/functions/models/src/fhir/fhirMedicationRequest.ts +++ b/functions/models/src/fhir/fhirMedicationRequest.ts @@ -6,9 +6,8 @@ // SPDX-License-Identifier: MIT // -import { Extension, MedicationRequest } from 'fhir/r4b.js' +import { type Extension, type MedicationRequest } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { medicationRequestSchema } from '@stanfordspezi/spezi-firebase-fhir' import { QuantityUnit } from '../codes/quantityUnit.js' export class FHIRMedicationRequest extends FHIRResource { @@ -51,16 +50,4 @@ export class FHIRMedicationRequest extends FHIRResource { ], }) } - - // Computed Properties } - -/* -export const medicationRequestSchema = - new FHIRSchemaConverter({ - schema: medicationRequestSchema.transform( - (data) => new FHIRMedicationRequest(data), - ), - nullProperties: [], - }) -*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirObservation.ts b/functions/models/src/fhir/fhirObservation.ts index 7ed7511b..59c66f3b 100644 --- a/functions/models/src/fhir/fhirObservation.ts +++ b/functions/models/src/fhir/fhirObservation.ts @@ -6,13 +6,11 @@ // SPDX-License-Identifier: MIT // +import { type Coding, type Observation, type Reference } from 'fhir/r4b.js' +import { FHIRResource } from './fhirResource.js' import { CodingSystem, LoincCode } from '../codes/codes.js' import { QuantityUnit } from '../codes/quantityUnit.js' -import { Coding, Observation, Reference } from 'fhir/r4b.js' -import { ObservationQuantity } from '../types/observationQuantity.js' -import { FHIRResource } from './fhirResource.js' -import { observationSchema } from '@stanfordspezi/spezi-firebase-fhir' -import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' +import { type ObservationQuantity } from '../types/observationQuantity.js' export class FHIRObservation extends FHIRResource { // Static Functions @@ -242,11 +240,3 @@ export class FHIRObservation extends FHIRResource { return result } } - -/* -export const fhirObservationConverter = - new FHIRSchemaConverter({ - schema: observationSchema.transform((data) => new FHIRObservation(data)), - nullProperties: ['effectiveDateTime', 'effectiveInstant'], - }) -*/ diff --git a/functions/models/src/fhir/fhirQuestionnaire.ts b/functions/models/src/fhir/fhirQuestionnaire.ts index cf75035c..0d52fee4 100644 --- a/functions/models/src/fhir/fhirQuestionnaire.ts +++ b/functions/models/src/fhir/fhirQuestionnaire.ts @@ -6,19 +6,7 @@ // SPDX-License-Identifier: MIT // -import { Questionnaire } from 'fhir/r4b.js' +import { type Questionnaire } from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { questionnaireSchema } from '@stanfordspezi/spezi-firebase-fhir' -import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' export class FHIRQuestionnaire extends FHIRResource {} - -/* -export const fhirQuestionnaireConverter = - new FHIRSchemaConverter({ - schema: questionnaireSchema.transform( - (data) => new FHIRQuestionnaire(data), - ), - nullProperties: ['date'], - }) -*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirQuestionnaireResponse.ts b/functions/models/src/fhir/fhirQuestionnaireResponse.ts index 75a9cc86..53e9e10b 100644 --- a/functions/models/src/fhir/fhirQuestionnaireResponse.ts +++ b/functions/models/src/fhir/fhirQuestionnaireResponse.ts @@ -6,12 +6,23 @@ // SPDX-License-Identifier: MIT // -import { QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4b.js' +import { + type QuestionnaireResponse, + type QuestionnaireResponseItem, +} from 'fhir/r4b.js' import { FHIRResource } from './fhirResource.js' -import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' -import { questionnaireResponseSchema } from '@stanfordspezi/spezi-firebase-fhir' export class FHIRQuestionnaireResponse extends FHIRResource { + // Computed Properties + + get authoredDate(): Date | undefined { + return this.data.authored ? new Date(this.data.authored) : undefined + } + + set authoredDate(date: Date | undefined) { + this.data.authored = date?.toISOString() + } + // Methods - Response items from path responseItem(linkIdPath: string[]): QuestionnaireResponseItem | null { @@ -99,13 +110,3 @@ export class FHIRQuestionnaireResponse extends FHIRResource({ - schema: questionnaireResponseSchema.transform( - (data) => new FHIRQuestionnaireResponse(data), - ), - nullProperties: ['authored'], - }) -*/ \ No newline at end of file diff --git a/functions/models/src/fhir/fhirResource.ts b/functions/models/src/fhir/fhirResource.ts index e3323da1..eba80f3b 100644 --- a/functions/models/src/fhir/fhirResource.ts +++ b/functions/models/src/fhir/fhirResource.ts @@ -6,12 +6,15 @@ // SPDX-License-Identifier: MIT // -import { CodeableConcept, Coding, DomainResource, Extension } from 'fhir/r4b.js' -import { FHIRExtensionUrl } from '../codes/codes.js' +import { + type CodeableConcept, + type Coding, + type DomainResource, + type Extension, +} from 'fhir/r4b.js' +import { type FHIRExtensionUrl } from '../codes/codes.js' -export abstract class FHIRResource< - ResourceType extends DomainResource = DomainResource, -> { +export abstract class FHIRResource { // Properties data: ResourceType @@ -52,10 +55,9 @@ export abstract class FHIRResource< ) } + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters containedResource(id: string): T | undefined { - return this.data.contained?.find((resource) => resource.id === id) as - | T - | undefined + return this.data.contained?.find((resource) => resource.id === id) as T } extensionsWithUrl(url: FHIRExtensionUrl): Extension[] { diff --git a/functions/models/src/functions/createInvitation.ts b/functions/models/src/functions/createInvitation.ts index 95153f27..3ff8b152 100644 --- a/functions/models/src/functions/createInvitation.ts +++ b/functions/models/src/functions/createInvitation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { userAuthConverter } from '../types/userAuth.js' import { userRegistrationConverter } from '../types/userRegistration.js' diff --git a/functions/models/src/functions/customSeed.ts b/functions/models/src/functions/customSeed.ts index 22913fe8..8a42e678 100644 --- a/functions/models/src/functions/customSeed.ts +++ b/functions/models/src/functions/customSeed.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { optionalish } from '../helpers/optionalish.js' import { userConverter } from '../types/user.js' diff --git a/functions/models/src/functions/defaultSeed.ts b/functions/models/src/functions/defaultSeed.ts index bc1869df..d092fc3a 100644 --- a/functions/models/src/functions/defaultSeed.ts +++ b/functions/models/src/functions/defaultSeed.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { updateStaticDataInputSchema } from './updateStaticData.js' import { dateTimeConverter } from '../helpers/dateConverter.js' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' @@ -36,11 +36,11 @@ export enum UserDebugDataComponent { export const defaultSeedInputSchema = z.object({ date: dateTimeConverter.schema.default(new Date()), only: optionalishDefault( - z.nativeEnum(DebugDataComponent).array(), + z.enum(DebugDataComponent).array(), Object.values(DebugDataComponent), ), onlyUserCollections: optionalishDefault( - z.nativeEnum(UserDebugDataComponent).array(), + z.enum(UserDebugDataComponent).array(), Object.values(UserDebugDataComponent), ), staticData: optionalish(updateStaticDataInputSchema), @@ -49,7 +49,7 @@ export const defaultSeedInputSchema = z.object({ .object({ userId: z.string(), only: optionalishDefault( - z.nativeEnum(UserDebugDataComponent).array(), + z.enum(UserDebugDataComponent).array(), Object.values(UserDebugDataComponent), ), }) diff --git a/functions/models/src/functions/deleteInvitation.ts b/functions/models/src/functions/deleteInvitation.ts index ef3752d7..e0cfb929 100644 --- a/functions/models/src/functions/deleteInvitation.ts +++ b/functions/models/src/functions/deleteInvitation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' export const deleteInvitationInputSchema = z.object({ invitationCode: z.string(), diff --git a/functions/models/src/functions/deleteUser.ts b/functions/models/src/functions/deleteUser.ts index b3b6b2b6..c3f65265 100644 --- a/functions/models/src/functions/deleteUser.ts +++ b/functions/models/src/functions/deleteUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' export const deleteUserInputSchema = z.object({ userId: z.string(), diff --git a/functions/models/src/functions/disableUser.ts b/functions/models/src/functions/disableUser.ts index ec646f2b..50269220 100644 --- a/functions/models/src/functions/disableUser.ts +++ b/functions/models/src/functions/disableUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' export const disableUserInputSchema = z.object({ userId: z.string(), diff --git a/functions/models/src/functions/dismissMessage.ts b/functions/models/src/functions/dismissMessage.ts index 342fd54f..f1f97b1d 100644 --- a/functions/models/src/functions/dismissMessage.ts +++ b/functions/models/src/functions/dismissMessage.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' export const dismissMessageInputSchema = z.object({ diff --git a/functions/models/src/functions/dismissMessages.ts b/functions/models/src/functions/dismissMessages.ts index ac9a5191..f413883e 100644 --- a/functions/models/src/functions/dismissMessages.ts +++ b/functions/models/src/functions/dismissMessages.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' export const dismissMessagesInputSchema = z.object({ diff --git a/functions/models/src/functions/enableUser.ts b/functions/models/src/functions/enableUser.ts index ea2cceaf..4c36acef 100644 --- a/functions/models/src/functions/enableUser.ts +++ b/functions/models/src/functions/enableUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' export const enableUserInputSchema = z.object({ userId: z.string(), diff --git a/functions/models/src/functions/enrollUser.ts b/functions/models/src/functions/enrollUser.ts index cbe5e1ca..b65635e2 100644 --- a/functions/models/src/functions/enrollUser.ts +++ b/functions/models/src/functions/enrollUser.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' export const enrollUserInputSchema = z.object({ invitationCode: z.string().regex(/^[A-Z0-9]{8,16}$/), diff --git a/functions/models/src/functions/exportHealthSummary.ts b/functions/models/src/functions/exportHealthSummary.ts index 7abcba67..b6ea65f3 100644 --- a/functions/models/src/functions/exportHealthSummary.ts +++ b/functions/models/src/functions/exportHealthSummary.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { QuantityUnit } from '../codes/quantityUnit.js' import { optionalish, optionalishDefault } from '../helpers/optionalish.js' @@ -22,7 +22,7 @@ export const exportHealthSummaryInputSchema = z.object({ .map((u) => `'${u.code}'`) .join(', ') context.addIssue({ - code: z.ZodIssueCode.custom, + code: 'custom', message: `Invalid weight unit. Must be one of the following: ${availableUnitsString}.`, }) return z.NEVER diff --git a/functions/models/src/functions/getUsersInformation.ts b/functions/models/src/functions/getUsersInformation.ts index 1132e0ac..6ecbfffc 100644 --- a/functions/models/src/functions/getUsersInformation.ts +++ b/functions/models/src/functions/getUsersInformation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { optionalishDefault } from '../helpers/optionalish.js' import { type InferEncoded } from '../helpers/schemaConverter.js' import { type userConverter } from '../types/user.js' diff --git a/functions/models/src/functions/phoneNumber.ts b/functions/models/src/functions/phoneNumber.ts index 3ea231c5..cc247d16 100644 --- a/functions/models/src/functions/phoneNumber.ts +++ b/functions/models/src/functions/phoneNumber.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' const phoneNumberRegex = /^\+?[1-9]\d{1,14}$/ const codeRegex = /^\d{4,10}$/ diff --git a/functions/models/src/functions/registerDevice.ts b/functions/models/src/functions/registerDevice.ts index 8a64801c..bf0265a1 100644 --- a/functions/models/src/functions/registerDevice.ts +++ b/functions/models/src/functions/registerDevice.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { type z } from 'zod/v4' +import { type z } from 'zod' import { userDeviceConverter } from '../types/userDevice.js' export const registerDeviceInputSchema = userDeviceConverter.value.schema diff --git a/functions/models/src/functions/shareHealthSummary.ts b/functions/models/src/functions/shareHealthSummary.ts index b019ab29..7e5a9c84 100644 --- a/functions/models/src/functions/shareHealthSummary.ts +++ b/functions/models/src/functions/shareHealthSummary.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { optionalish } from '../helpers/optionalish.js' export const shareHealthSummaryInputSchema = z.object({ diff --git a/functions/models/src/functions/unregisterDevice.ts b/functions/models/src/functions/unregisterDevice.ts index 9265ec0e..34d48b70 100644 --- a/functions/models/src/functions/unregisterDevice.ts +++ b/functions/models/src/functions/unregisterDevice.ts @@ -6,12 +6,12 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { UserDevicePlatform } from '../types/userDevice.js' export const unregisterDeviceInputSchema = z.object({ notificationToken: z.string(), - platform: z.nativeEnum(UserDevicePlatform), + platform: z.enum(UserDevicePlatform), }) export type UnregisterDeviceInput = z.input diff --git a/functions/models/src/functions/updateStaticData.ts b/functions/models/src/functions/updateStaticData.ts index 1039d6fc..394eccc1 100644 --- a/functions/models/src/functions/updateStaticData.ts +++ b/functions/models/src/functions/updateStaticData.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { optionalishDefault } from '../helpers/optionalish.js' export enum CachingStrategy { @@ -26,11 +26,11 @@ export enum StaticDataComponent { export const updateStaticDataInputSchema = z.object({ only: optionalishDefault( - z.array(z.nativeEnum(StaticDataComponent)), + z.array(z.enum(StaticDataComponent)), Object.values(StaticDataComponent), ), cachingStrategy: optionalishDefault( - z.nativeEnum(CachingStrategy), + z.enum(CachingStrategy), CachingStrategy.updateCacheIfNeeded, ), }) diff --git a/functions/models/src/functions/updateUserInformation.ts b/functions/models/src/functions/updateUserInformation.ts index 13e384ee..4338e3ba 100644 --- a/functions/models/src/functions/updateUserInformation.ts +++ b/functions/models/src/functions/updateUserInformation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { userAuthConverter } from '../types/userAuth.js' export const updateUserInformationInputSchema = z.object({ diff --git a/functions/models/src/helpers/dateConverter.ts b/functions/models/src/helpers/dateConverter.ts index 9fe8665b..20db00ad 100644 --- a/functions/models/src/helpers/dateConverter.ts +++ b/functions/models/src/helpers/dateConverter.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { SchemaConverter } from './schemaConverter.js' export const dateConverter = new SchemaConverter({ @@ -15,7 +15,7 @@ export const dateConverter = new SchemaConverter({ const date = new Date(string) if (isNaN(date.getTime())) { context.addIssue({ - code: z.ZodIssueCode.custom, + code: 'custom', message: 'Invalid date', }) return z.NEVER @@ -23,7 +23,7 @@ export const dateConverter = new SchemaConverter({ return date } catch (error) { context.addIssue({ - code: z.ZodIssueCode.custom, + code: 'custom', message: String(error), }) return z.NEVER @@ -38,7 +38,7 @@ export const dateTimeConverter = new SchemaConverter({ const date = new Date(string) if (isNaN(date.getTime())) { context.addIssue({ - code: z.ZodIssueCode.custom, + code: 'custom', message: 'Invalid date', }) return z.NEVER @@ -46,7 +46,7 @@ export const dateTimeConverter = new SchemaConverter({ return date } catch (error) { context.addIssue({ - code: z.ZodIssueCode.custom, + code: 'custom', message: String(error), }) return z.NEVER diff --git a/functions/models/src/helpers/fhirSchemaConverter.ts b/functions/models/src/helpers/fhirSchemaConverter.ts index 25224d61..e35745fe 100644 --- a/functions/models/src/helpers/fhirSchemaConverter.ts +++ b/functions/models/src/helpers/fhirSchemaConverter.ts @@ -6,10 +6,13 @@ // SPDX-License-Identifier: MIT // -import { ZodType } from 'zod/v4' -import { FHIRResource } from '../fhir/fhirResource.js' +import { type DomainResource } from 'fhir/r4b.js' +import { type ZodType } from 'zod' +import { type FHIRResource } from '../fhir/fhirResource.js' -export class FHIRSchemaConverter { +export class FHIRSchemaConverter< + FHIRResourceType extends FHIRResource, +> { // Properties readonly schema: ZodType @@ -30,32 +33,32 @@ export class FHIRSchemaConverter { // Methods decode(input: unknown) { - return this.schema.parse(this.removeNulls(input)) + return this.schema.parse(removeNulls(input)) } encode(input: FHIRResourceType): unknown { + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ const returnValue = input.data as any for (const key of this.nullProperties) { + /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ returnValue[key] = returnValue[key] ?? null } return returnValue } +} - // Helpers - - private removeNulls(value: unknown): unknown { - if (Array.isArray(value)) { - return value.map(this.removeNulls).filter((v) => v !== null) - } else if (value !== null && typeof value === 'object') { - return Object.fromEntries( - Object.entries(value) - .filter(([, v]) => v !== null) - .map(([k, v]) => [k, this.removeNulls(v)]), - ) - } else { - return value - } +function removeNulls(value: unknown): unknown { + if (Array.isArray(value)) { + return value.map(removeNulls).filter((v) => v !== null) + } else if (value !== null && typeof value === 'object') { + return Object.fromEntries( + Object.entries(value) + .filter(([, v]) => v !== null) + .map(([k, v]) => [k, removeNulls(v)]), + ) + } else { + return value } } diff --git a/functions/models/src/helpers/optionalish.ts b/functions/models/src/helpers/optionalish.ts index bc841f5c..7c65f2d5 100644 --- a/functions/models/src/helpers/optionalish.ts +++ b/functions/models/src/helpers/optionalish.ts @@ -6,21 +6,19 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z, type ZodType } from 'zod' -export function optionalish(type: T) { +export function optionalish(type: T) { return type.or(z.null().transform(() => undefined)).optional() } -export function optionalishDefault( +export function optionalishDefault( type: T, defaultValue: z.output, ) { - return ( - type - .or(z.null().transform(() => undefined)) - .optional() - /* eslint-disable-next-line @typescript-eslint/no-unsafe-return */ - .transform((value) => value ?? defaultValue) - ) + return type + .or(z.null().transform(() => undefined)) + .optional() + + .transform((value) => value ?? defaultValue) } diff --git a/functions/models/src/helpers/schemaConverter.ts b/functions/models/src/helpers/schemaConverter.ts index 4d019d8d..592e4674 100644 --- a/functions/models/src/helpers/schemaConverter.ts +++ b/functions/models/src/helpers/schemaConverter.ts @@ -6,10 +6,10 @@ // SPDX-License-Identifier: MIT // -import { type z } from 'zod/v4' +import { type z, type ZodType } from 'zod' import { type Lazy } from './lazy.js' -export class SchemaConverter { +export class SchemaConverter { // Properties readonly schema: Schema diff --git a/functions/models/src/index.ts b/functions/models/src/index.ts index eb8d1c67..11e91ae2 100644 --- a/functions/models/src/index.ts +++ b/functions/models/src/index.ts @@ -6,12 +6,12 @@ // SPDX-License-Identifier: MIT // -export * from '@stanfordspezi/spezi-firebase-fhir' export * from './codes/codes.js' export * from './codes/quantityUnit.js' export * from './codes/references.js' export * from './fhir/fhirAllergyIntolerance.js' export * from './fhir/fhirAppointment.js' +export * from './fhir/fhirConverters.js' export * from './fhir/fhirMedication.js' export * from './fhir/fhirMedicationRequest.js' export * from './fhir/fhirObservation.js' diff --git a/functions/models/src/types/invitation.ts b/functions/models/src/types/invitation.ts index 9b6cef1b..c62c7f32 100644 --- a/functions/models/src/types/invitation.ts +++ b/functions/models/src/types/invitation.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { userAuthConverter, type UserAuth } from './userAuth.js' import { userRegistrationConverter, diff --git a/functions/models/src/types/localizedText.ts b/functions/models/src/types/localizedText.ts index 96a86869..ebd6b30c 100644 --- a/functions/models/src/types/localizedText.ts +++ b/functions/models/src/types/localizedText.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { SchemaConverter } from '../helpers/schemaConverter.js' export const localizedTextConverter = new SchemaConverter({ diff --git a/functions/models/src/types/medicationClass.ts b/functions/models/src/types/medicationClass.ts index 33d22d2f..50be1cfa 100644 --- a/functions/models/src/types/medicationClass.ts +++ b/functions/models/src/types/medicationClass.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { localizedTextConverter, type LocalizedText } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/organization.ts b/functions/models/src/types/organization.ts index 93971e98..11546be3 100644 --- a/functions/models/src/types/organization.ts +++ b/functions/models/src/types/organization.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/symptomScore.ts b/functions/models/src/types/symptomScore.ts index 7423de05..11bdfe23 100644 --- a/functions/models/src/types/symptomScore.ts +++ b/functions/models/src/types/symptomScore.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { dateTimeConverter } from '../helpers/dateConverter.js' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' diff --git a/functions/models/src/types/user.ts b/functions/models/src/types/user.ts index 19457958..9de5d332 100644 --- a/functions/models/src/types/user.ts +++ b/functions/models/src/types/user.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { userRegistrationConverter, userRegistrationInputConverter, diff --git a/functions/models/src/types/userAuth.ts b/functions/models/src/types/userAuth.ts index 7d94700c..eb4bb034 100644 --- a/functions/models/src/types/userAuth.ts +++ b/functions/models/src/types/userAuth.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/userDevice.ts b/functions/models/src/types/userDevice.ts index 36ca6f71..1ff79929 100644 --- a/functions/models/src/types/userDevice.ts +++ b/functions/models/src/types/userDevice.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' @@ -22,7 +22,7 @@ export const userDeviceConverter = new Lazy( schema: z .object({ notificationToken: z.string(), - platform: z.nativeEnum(UserDevicePlatform), + platform: z.enum(UserDevicePlatform), osVersion: optionalish(z.string()), appVersion: optionalish(z.string()), appBuild: optionalish(z.string()), diff --git a/functions/models/src/types/userMedicationRecommendation.ts b/functions/models/src/types/userMedicationRecommendation.ts index e306f7ee..84ca5e95 100644 --- a/functions/models/src/types/userMedicationRecommendation.ts +++ b/functions/models/src/types/userMedicationRecommendation.ts @@ -6,12 +6,12 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { type Reference } from 'fhir/r4b.js' +import { z } from 'zod' import { localizedTextConverter } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' -import { Reference } from 'fhir/r4b.js' export enum UserMedicationRecommendationType { improvementAvailable = 'improvementAvailable', @@ -87,7 +87,7 @@ export const userMedicationRecommendationDisplayInformationConverter = new Lazy( title: localizedTextConverter.schema, subtitle: localizedTextConverter.schema, description: localizedTextConverter.schema, - type: z.nativeEnum(UserMedicationRecommendationType), + type: z.enum(UserMedicationRecommendationType), videoPath: optionalish(z.string()), dosageInformation: z.lazy( () => diff --git a/functions/models/src/types/userMessage.ts b/functions/models/src/types/userMessage.ts index 1d978e90..472f9725 100644 --- a/functions/models/src/types/userMessage.ts +++ b/functions/models/src/types/userMessage.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { LocalizedText, localizedTextConverter } from './localizedText.js' import { messagesLocalization } from './userMesage+localization.js' import { @@ -41,7 +41,7 @@ export const userMessageConverter = new Lazy( creationDate: dateTimeConverter.schema, dueDate: optionalish(dateTimeConverter.schema), completionDate: optionalish(dateTimeConverter.schema), - type: z.nativeEnum(UserMessageType), + type: z.enum(UserMessageType), title: z.lazy(() => localizedTextConverter.schema), description: optionalish(z.lazy(() => localizedTextConverter.schema)), action: optionalish(z.string()), diff --git a/functions/models/src/types/userMessagesSettings.ts b/functions/models/src/types/userMessagesSettings.ts index 6af4aab4..3e6224c3 100644 --- a/functions/models/src/types/userMessagesSettings.ts +++ b/functions/models/src/types/userMessagesSettings.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { Lazy } from '../helpers/lazy.js' import { optionalish } from '../helpers/optionalish.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/userRegistration.ts b/functions/models/src/types/userRegistration.ts index e26ed7ff..f8fd7d08 100644 --- a/functions/models/src/types/userRegistration.ts +++ b/functions/models/src/types/userRegistration.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { UserType } from './userType.js' import { dateConverter } from '../helpers/dateConverter.js' import { Lazy } from '../helpers/lazy.js' @@ -22,11 +22,11 @@ export const userRegistrationInputConverter = new Lazy( () => new SchemaConverter({ schema: z.object({ - type: z.nativeEnum(UserType), + type: z.enum(UserType), disabled: optionalishDefault(z.boolean(), false), organization: optionalish(z.string()), dateOfBirth: optionalish(dateConverter.schema), - sex: optionalish(z.nativeEnum(UserSex)), + sex: optionalish(z.enum(UserSex)), clinician: optionalish(z.string()), providerName: optionalish(z.string()), receivesAppointmentReminders: optionalishDefault(z.boolean(), true), @@ -74,7 +74,7 @@ export const userRegistrationConverter = new Lazy( ) export const userClaimsSchema = z.object({ - type: z.nativeEnum(UserType), + type: z.enum(UserType), organization: optionalish(z.string()), disabled: optionalishDefault(z.boolean(), false), }) diff --git a/functions/models/src/types/userShareCode.ts b/functions/models/src/types/userShareCode.ts index ecc9fbe0..4c33db8b 100644 --- a/functions/models/src/types/userShareCode.ts +++ b/functions/models/src/types/userShareCode.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { dateTimeConverter } from '../helpers/dateConverter.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/video.ts b/functions/models/src/types/video.ts index ae9c5218..eeb859b9 100644 --- a/functions/models/src/types/video.ts +++ b/functions/models/src/types/video.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { localizedTextConverter, type LocalizedText } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/models/src/types/videoSection.ts b/functions/models/src/types/videoSection.ts index bf935470..b8cdf5ef 100644 --- a/functions/models/src/types/videoSection.ts +++ b/functions/models/src/types/videoSection.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod/v4' +import { z } from 'zod' import { localizedTextConverter, type LocalizedText } from './localizedText.js' import { Lazy } from '../helpers/lazy.js' import { SchemaConverter } from '../helpers/schemaConverter.js' diff --git a/functions/package-lock.json b/functions/package-lock.json index 70da12f3..ccaa9fc3 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -39,6 +39,10 @@ }, "engines": { "node": "22" + }, + "peerDependencies": { + "@types/fhir": "^0.0.41", + "zod": "^4.0.5" } }, "models": { @@ -62,6 +66,10 @@ }, "engines": { "node": "22" + }, + "peerDependencies": { + "@types/fhir": "^0.0.41", + "zod": "^4.0.5" } }, "models/node_modules/@ampproject/remapping": { @@ -1236,11 +1244,6 @@ "dev": true, "license": "MIT" }, - "models/node_modules/@types/fhir": { - "version": "0.0.41", - "license": "MIT", - "peer": true - }, "models/node_modules/@types/graceful-fs": { "version": "4.1.9", "dev": true, @@ -6281,14 +6284,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "models/node_modules/zod": { - "version": "4.0.5", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "dev": true, @@ -8682,6 +8677,13 @@ "@types/send": "*" } }, + "node_modules/@types/fhir": { + "version": "0.0.41", + "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.41.tgz", + "integrity": "sha512-MAQAFufNZBZ6V0F94Nhknmmh/E3iMXFK4n/L8RkSNjKtOJnvaAJERivNOj35VVx9VCQBJbE0BHSzikfBahoRhA==", + "license": "MIT", + "peer": true + }, "node_modules/@types/geojson": { "version": "7946.0.16", "dev": true, @@ -16187,6 +16189,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.5.tgz", + "integrity": "sha512-/5UuuRPStvHXu7RS+gmvRf4NXrNxpSllGwDnCBcJZtQsKrviYXm54yDGV2KYNLT5kq0lHGcl7lqWJLgSaG+tgA==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/functions/package.json b/functions/package.json index d51cb33c..253d4b90 100644 --- a/functions/package.json +++ b/functions/package.json @@ -57,5 +57,9 @@ "typescript": "^5", "typescript-eslint": "^8.26" }, + "peerDependencies": { + "zod": "^4.0.5", + "@types/fhir": "^0.0.41" + }, "private": true } diff --git a/functions/src/functions/createInvitation.test.ts b/functions/src/functions/createInvitation.test.ts index e655b4c6..26089c43 100644 --- a/functions/src/functions/createInvitation.test.ts +++ b/functions/src/functions/createInvitation.test.ts @@ -10,7 +10,7 @@ import { type createInvitationInputSchema, UserType, } from '@stanfordbdhg/engagehf-models' -import { type z } from 'zod/v4' +import { type z } from 'zod' import { createInvitation } from './createInvitation.js' import { describeWithEmulators } from '../tests/functions/testEnvironment.js' import { expectError } from '../tests/helpers.js' diff --git a/functions/src/functions/defaultSeed.ts b/functions/src/functions/defaultSeed.ts index f6310d92..441a2862 100644 --- a/functions/src/functions/defaultSeed.ts +++ b/functions/src/functions/defaultSeed.ts @@ -14,7 +14,7 @@ import { UserType, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' -import { type z } from 'zod/v4' +import { type z } from 'zod' import { validatedOnCall, validatedOnRequest } from './helpers.js' import { _updateStaticData } from './updateStaticData.js' import { Flags } from '../flags.js' diff --git a/functions/src/functions/enrollUser.test.ts b/functions/src/functions/enrollUser.test.ts index fc4a85d1..3d29c288 100644 --- a/functions/src/functions/enrollUser.test.ts +++ b/functions/src/functions/enrollUser.test.ts @@ -18,6 +18,8 @@ import { UserType, UserObservationCollection, QuestionnaireReference, + fhirAppointmentConverter, + fhirObservationConverter, } from '@stanfordbdhg/engagehf-models' import { enrollUser } from './enrollUser.js' import { QuestionnaireId } from '../services/seeding/staticData/questionnaireFactory/questionnaireLinkIds.js' @@ -121,10 +123,8 @@ describeWithEmulators('function: enrollUser', (env) => { if (actualAppointment === undefined) { fail('actualAppointment is undefined') } else { - expect( - fhirAppointmentConverter.value.encode(actualAppointment), - ).toStrictEqual( - fhirAppointmentConverter.value.encode(expectedAppointment), + expect(fhirAppointmentConverter.encode(actualAppointment)).toStrictEqual( + fhirAppointmentConverter.encode(expectedAppointment), ) } @@ -137,9 +137,9 @@ describeWithEmulators('function: enrollUser', (env) => { fail('actualObservation is undefined') } else { expect( - fhirObservationConverter.value.encode(actualObservation), + fhirObservationConverter.encode(actualObservation), ).toStrictEqual( - fhirObservationConverter.value.encode(expectedObservation), + fhirObservationConverter.encode(expectedObservation), ) } @@ -242,9 +242,9 @@ describeWithEmulators('function: enrollUser', (env) => { fail('actualAppointment is undefined') } else { expect( - fhirAppointmentConverter.value.encode(actualAppointment), + fhirAppointmentConverter.encode(actualAppointment), ).toStrictEqual( - fhirAppointmentConverter.value.encode(expectedAppointment), + fhirAppointmentConverter.encode(expectedAppointment), ) } @@ -257,9 +257,9 @@ describeWithEmulators('function: enrollUser', (env) => { fail('actualObservation is undefined') } else { expect( - fhirObservationConverter.value.encode(actualObservation), + fhirObservationConverter.encode(actualObservation), ).toStrictEqual( - fhirObservationConverter.value.encode(expectedObservation), + fhirObservationConverter.encode(expectedObservation), ) } diff --git a/functions/src/functions/helpers.ts b/functions/src/functions/helpers.ts index 407ccc74..0a994232 100644 --- a/functions/src/functions/helpers.ts +++ b/functions/src/functions/helpers.ts @@ -17,11 +17,11 @@ import { onRequest, type Request, } from 'firebase-functions/v2/https' -import { z } from 'zod/v4' +import { z, ZodType } from 'zod' export const serviceAccount = `cloudfunctionsserviceaccount@${process.env.GCLOUD_PROJECT}.iam.gserviceaccount.com` -export function validatedOnCall( +export function validatedOnCall( name: string, schema: Schema, handler: (request: CallableRequest>) => Promise, @@ -58,7 +58,7 @@ export function validatedOnCall( ) } -export function validatedOnRequest( +export function validatedOnRequest( name: string, schema: Schema, handler: ( diff --git a/functions/src/functions/onUserAppointmentWritten.test.ts b/functions/src/functions/onUserAppointmentWritten.test.ts index 8c57d2a6..a87c830e 100644 --- a/functions/src/functions/onUserAppointmentWritten.test.ts +++ b/functions/src/functions/onUserAppointmentWritten.test.ts @@ -149,7 +149,7 @@ describeWithEmulators('onUserAppointmentWritten', (env) => { const earlierAppointment = FHIRAppointment.create({ userId: patientId, created: now, - status: FHIRAppointmentStatus.booked, + status: 'booked', start: advanceDateByHours(now, 23), durationInMinutes: 60, }) @@ -208,7 +208,7 @@ describeWithEmulators('onUserAppointmentWritten', (env) => { const appointment = FHIRAppointment.create({ userId: patientId, created: now, - status: FHIRAppointmentStatus.booked, + status: 'booked', start: advanceDateByHours(now, 23), durationInMinutes: 60, }) diff --git a/functions/src/functions/onUserAppointmentWritten.ts b/functions/src/functions/onUserAppointmentWritten.ts index 7ee0bcfb..14342b8b 100644 --- a/functions/src/functions/onUserAppointmentWritten.ts +++ b/functions/src/functions/onUserAppointmentWritten.ts @@ -9,7 +9,7 @@ import { fhirAppointmentConverter } from '@stanfordbdhg/engagehf-models' import { onDocumentWritten } from 'firebase-functions/firestore' import { Env } from '../env.js' -import { DatabaseConverter } from '../services/database/databaseConverter.js' +import { FHIRDatabaseConverter } from '../services/database/databaseConverter.js' import { getServiceFactory } from '../services/factory/getServiceFactory.js' export const onUserAppointmentWritten = onDocumentWritten( @@ -19,7 +19,7 @@ export const onUserAppointmentWritten = onDocumentWritten( }, async (event) => { const data = event.data?.after - const converter = new DatabaseConverter(fhirAppointmentConverter.value) + const converter = new FHIRDatabaseConverter(fhirAppointmentConverter) const factory = getServiceFactory() const triggerService = factory.trigger() await triggerService.userAppointmentWritten( diff --git a/functions/src/functions/onUserMedicationRequestWritten.ts b/functions/src/functions/onUserMedicationRequestWritten.ts index e2c0922f..8954d48e 100644 --- a/functions/src/functions/onUserMedicationRequestWritten.ts +++ b/functions/src/functions/onUserMedicationRequestWritten.ts @@ -9,7 +9,10 @@ import { fhirMedicationRequestConverter } from '@stanfordbdhg/engagehf-models' import { onDocumentWritten } from 'firebase-functions/firestore' import { Env } from '../env.js' -import { DatabaseConverter } from '../services/database/databaseConverter.js' +import { + DatabaseConverter, + FHIRDatabaseConverter, +} from '../services/database/databaseConverter.js' import { getServiceFactory } from '../services/factory/getServiceFactory.js' export const onUserMedicationRequestWritten = onDocumentWritten( @@ -20,9 +23,7 @@ export const onUserMedicationRequestWritten = onDocumentWritten( async (event) => { const beforeData = event.data?.before const afterData = event.data?.after - const converter = new DatabaseConverter( - fhirMedicationRequestConverter.value, - ) + const converter = new FHIRDatabaseConverter(fhirMedicationRequestConverter) const factory = getServiceFactory() const triggerService = factory.trigger() await triggerService.userMedicationRequestWritten( diff --git a/functions/src/functions/onUserQuestionnaireResponseWritten.ts b/functions/src/functions/onUserQuestionnaireResponseWritten.ts index d356f866..89978964 100644 --- a/functions/src/functions/onUserQuestionnaireResponseWritten.ts +++ b/functions/src/functions/onUserQuestionnaireResponseWritten.ts @@ -9,7 +9,10 @@ import { fhirQuestionnaireResponseConverter } from '@stanfordbdhg/engagehf-models' import { onDocumentWritten } from 'firebase-functions/firestore' import { Env } from '../env.js' -import { DatabaseConverter } from '../services/database/databaseConverter.js' +import { + DatabaseConverter, + FHIRDatabaseConverter, +} from '../services/database/databaseConverter.js' import { getServiceFactory } from '../services/factory/getServiceFactory.js' export const onUserQuestionnaireResponseWritten = onDocumentWritten( @@ -20,8 +23,8 @@ export const onUserQuestionnaireResponseWritten = onDocumentWritten( async (event) => { const beforeData = event.data?.before const afterData = event.data?.after - const converter = new DatabaseConverter( - fhirQuestionnaireResponseConverter.value, + const converter = new FHIRDatabaseConverter( + fhirQuestionnaireResponseConverter, ) const factory = getServiceFactory() const triggerService = factory.trigger() diff --git a/functions/src/functions/updateStaticData.ts b/functions/src/functions/updateStaticData.ts index 57473ec9..5bfb3db5 100644 --- a/functions/src/functions/updateStaticData.ts +++ b/functions/src/functions/updateStaticData.ts @@ -11,7 +11,7 @@ import { updateStaticDataInputSchema, type UpdateStaticDataOutput, } from '@stanfordbdhg/engagehf-models' -import { type z } from 'zod/v4' +import { type z } from 'zod' import { validatedOnCall, validatedOnRequest } from './helpers.js' import { Flags } from '../flags.js' import { UserRole } from '../services/credential/credential.js' diff --git a/functions/src/healthSummary/keyPointsMessage.ts b/functions/src/healthSummary/keyPointsMessage.ts index a17083f0..5d0efbab 100644 --- a/functions/src/healthSummary/keyPointsMessage.ts +++ b/functions/src/healthSummary/keyPointsMessage.ts @@ -11,7 +11,7 @@ import { type LocalizedText, localizedTextConverter, } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod/v4' +import { z } from 'zod' export enum HealthSummarySymptomScoreCategory { HIGH_STABLE_OR_IMPROVING = 'Change >-10 and KCCQ>=90', @@ -70,12 +70,12 @@ export const healthSummaryKeyPointMessages = new Lazy< >(() => z .object({ - recommendationsCategory: z.nativeEnum( + recommendationsCategory: z.enum( HealthSummaryMedicationRecommendationsCategory, ), - symptomScoreCategory: z.nativeEnum(HealthSummarySymptomScoreCategory), - dizzinessCategory: z.nativeEnum(HealthSummaryDizzinessCategory), - weightCategory: z.nativeEnum(HealthSummaryWeightCategory), + symptomScoreCategory: z.enum(HealthSummarySymptomScoreCategory), + dizzinessCategory: z.enum(HealthSummaryDizzinessCategory), + weightCategory: z.enum(HealthSummaryWeightCategory), texts: z.array(localizedTextConverter.schema), }) .array() diff --git a/functions/src/services/contraindication/defaultContraindicationService.test.ts b/functions/src/services/contraindication/defaultContraindicationService.test.ts index 67edd746..da669946 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.test.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.test.ts @@ -8,8 +8,6 @@ import fs from 'fs' import { - AllergyIntoleranceCriticality, - AllergyIntoleranceType, FHIRAllergyIntolerance, MedicationClassReference, MedicationReference, @@ -20,6 +18,7 @@ import { type ContraindicationService, } from './contraindicationService.js' import { DefaultContraindicationService } from './defaultContraindicationService.js' +import { AllergyIntolerance } from 'fhir/r4b.js' describe('DefaultContraindicationService', () => { const contraindicationService: ContraindicationService = @@ -29,8 +28,8 @@ describe('DefaultContraindicationService', () => { field: string, options: { reference: MedicationReference - type?: AllergyIntoleranceType - criticality: AllergyIntoleranceCriticality + type?: AllergyIntolerance['type'] + criticality: AllergyIntolerance['criticality'] category: ContraindicationCategory }, ) { @@ -105,7 +104,7 @@ describe('DefaultContraindicationService', () => { check(fields[14], { reference: medicationReference, - type: undefined, // TODO: 'financial', + type: undefined, // TODO: 'financial', criticality: 'low', category: ContraindicationCategory.clinicianListed, }) diff --git a/functions/src/services/contraindication/defaultContraindicationService.ts b/functions/src/services/contraindication/defaultContraindicationService.ts index acd788ef..157c9155 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.ts @@ -7,8 +7,6 @@ // import { - AllergyIntoleranceCriticality, - AllergyIntoleranceType, type FHIRAllergyIntolerance, MedicationClassReference, MedicationReference, @@ -19,6 +17,7 @@ import { type ContraindicationService, } from './contraindicationService.js' import { medicationClassReference } from '../../models/medicationRequestContext.js' +import { AllergyIntolerance } from 'fhir/r4b.js' interface ContraindicationRecord { category: ContraindicationCategory @@ -120,8 +119,8 @@ export class DefaultContraindicationService implements ContraindicationService { private record(input: { medicationReference: MedicationReference - type?: AllergyIntoleranceType - criticality?: AllergyIntoleranceCriticality + type?: AllergyIntolerance['type'] + criticality?: AllergyIntolerance['criticality'] }): ContraindicationRecord { const medicationClass = medicationClassReference(input.medicationReference) const medicationReferences = this.medicationReferenceIncludingDerivatives( diff --git a/functions/src/services/database/collections.ts b/functions/src/services/database/collections.ts index 4f300598..971b08b3 100644 --- a/functions/src/services/database/collections.ts +++ b/functions/src/services/database/collections.ts @@ -7,6 +7,13 @@ // import { + fhirAllergyIntoleranceConverter, + fhirAppointmentConverter, + fhirMedicationConverter, + fhirMedicationRequestConverter, + fhirObservationConverter, + fhirQuestionnaireConverter, + fhirQuestionnaireResponseConverter, invitationConverter, medicationClassConverter, organizationConverter, @@ -21,7 +28,10 @@ import { type UserObservationCollection, } from '@stanfordbdhg/engagehf-models' import { type Firestore } from 'firebase-admin/firestore' -import { DatabaseConverter } from './databaseConverter.js' +import { + DatabaseConverter, + FHIRDatabaseConverter, +} from './databaseConverter.js' import { historyChangeItemConverter } from '../history/historyService.js' export class CollectionsService { @@ -40,7 +50,7 @@ export class CollectionsService { get appointments() { return this.firestore .collectionGroup('appointments') - .withConverter(new DatabaseConverter(fhirAppointmentConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)) } get devices() { @@ -66,9 +76,7 @@ export class CollectionsService { .collection('invitations') .doc(invitationId) .collection('allergyIntolerances') - .withConverter( - new DatabaseConverter(fhirAllergyIntoleranceConverter.value), - ) + .withConverter(new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter)) } invitationAppointments(invitationId: string) { @@ -76,7 +84,7 @@ export class CollectionsService { .collection('invitations') .doc(invitationId) .collection('appointments') - .withConverter(new DatabaseConverter(fhirAppointmentConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)) } invitationDevices(invitationId: string) { @@ -102,9 +110,7 @@ export class CollectionsService { .collection('invitations') .doc(invitationId) .collection('medicationRequests') - .withConverter( - new DatabaseConverter(fhirMedicationRequestConverter.value), - ) + .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)) } invitationMessages(invitationId: string) { @@ -123,7 +129,7 @@ export class CollectionsService { .collection('invitations') .doc(invitationId) .collection(collection) - .withConverter(new DatabaseConverter(fhirObservationConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)) } invitationQuestionnaireResponses(invitationId: string) { @@ -132,7 +138,7 @@ export class CollectionsService { .doc(invitationId) .collection('questionnaireResponses') .withConverter( - new DatabaseConverter(fhirQuestionnaireResponseConverter.value), + new FHIRDatabaseConverter(fhirQuestionnaireResponseConverter), ) } @@ -159,13 +165,13 @@ export class CollectionsService { get medications() { return this.firestore .collection('medications') - .withConverter(new DatabaseConverter(fhirMedicationConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)) } medicationReference(reference: string) { return this.firestore .doc(reference) - .withConverter(new DatabaseConverter(fhirMedicationConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)) } drugs(medicationId: string) { @@ -173,7 +179,7 @@ export class CollectionsService { .collection('medications') .doc(medicationId) .collection('drugs') - .withConverter(new DatabaseConverter(fhirMedicationConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)) } get organizations() { @@ -185,7 +191,7 @@ export class CollectionsService { get questionnaires() { return this.firestore .collection('questionnaires') - .withConverter(new DatabaseConverter(fhirQuestionnaireConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirQuestionnaireConverter)) } get users() { @@ -199,9 +205,7 @@ export class CollectionsService { .collection('users') .doc(userId) .collection('allergyIntolerances') - .withConverter( - new DatabaseConverter(fhirAllergyIntoleranceConverter.value), - ) + .withConverter(new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter)) } userAppointments(userId: string) { @@ -209,7 +213,7 @@ export class CollectionsService { .collection('users') .doc(userId) .collection('appointments') - .withConverter(new DatabaseConverter(fhirAppointmentConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)) } userDevices(userId: string) { @@ -235,9 +239,7 @@ export class CollectionsService { .collection('users') .doc(userId) .collection('medicationRequests') - .withConverter( - new DatabaseConverter(fhirMedicationRequestConverter.value), - ) + .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)) } userMessages(userId: string) { @@ -253,7 +255,7 @@ export class CollectionsService { .collection('users') .doc(userId) .collection(collection) - .withConverter(new DatabaseConverter(fhirObservationConverter.value)) + .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)) } userQuestionnaireResponses(userId: string) { @@ -262,7 +264,7 @@ export class CollectionsService { .doc(userId) .collection('questionnaireResponses') .withConverter( - new DatabaseConverter(fhirQuestionnaireResponseConverter.value), + new FHIRDatabaseConverter(fhirQuestionnaireResponseConverter), ) } diff --git a/functions/src/services/database/databaseConverter.ts b/functions/src/services/database/databaseConverter.ts index f4e95ca3..97ef4d61 100644 --- a/functions/src/services/database/databaseConverter.ts +++ b/functions/src/services/database/databaseConverter.ts @@ -6,14 +6,15 @@ // SPDX-License-Identifier: MIT // -import { type SchemaConverter } from '@stanfordbdhg/engagehf-models' +import { FHIRResource, FHIRSchemaConverter, type SchemaConverter } from '@stanfordbdhg/engagehf-models' +import { DomainResource } from 'fhir/r4b' import { type DocumentData, type DocumentSnapshot, type FirestoreDataConverter, } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { ZodType, type z } from 'zod/v4' +import { ZodType, type z } from 'zod' export class DatabaseConverter implements FirestoreDataConverter> @@ -54,3 +55,43 @@ export class DatabaseConverter } } } + +export class FHIRDatabaseConverter>> + implements FirestoreDataConverter> +{ + // Properties + + private readonly converter: C + + // Constructor + + constructor(converter: C) { + this.converter = converter + } + + // Methods + + fromFirestore(snapshot: DocumentSnapshot): z.output { + const data = snapshot.data() + try { + /* eslint-disable-next-line @typescript-eslint/no-unsafe-return */ + return this.converter.schema.parse(data) as z.output + } catch (error) { + logger.error( + `DatabaseDecoder(${this.converter.schema._output}): Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, + ) + throw error + } + } + + toFirestore(modelObject: z.output): DocumentData { + try { + return this.converter.encode(modelObject) as DocumentData + } catch (error) { + logger.error( + `DatabaseDecoder(${typeof modelObject}): Failed to encode object ${modelObject} due to ${String(error)}.`, + ) + throw error + } + } +} diff --git a/functions/src/services/history/historyService.ts b/functions/src/services/history/historyService.ts index 599dd243..d7fd56ba 100644 --- a/functions/src/services/history/historyService.ts +++ b/functions/src/services/history/historyService.ts @@ -12,7 +12,7 @@ import { } from '@stanfordbdhg/engagehf-models' import { type DocumentSnapshot } from 'firebase-admin/firestore' import { type Change } from 'firebase-functions' -import { z } from 'zod/v4' +import { z } from 'zod' export const historyChangeItemConverter = new SchemaConverter({ schema: z.object({ diff --git a/functions/src/services/patient/databasePatientService.ts b/functions/src/services/patient/databasePatientService.ts index 049a7d07..3c00bfb5 100644 --- a/functions/src/services/patient/databasePatientService.ts +++ b/functions/src/services/patient/databasePatientService.ts @@ -64,8 +64,8 @@ export class DatabasePatientService implements PatientService { ) return result.filter((appointment) => { - const start = new Date(appointment.content.start) - return start >= fromDate && start < toDate + const start = appointment.content.startDate + return start && start >= fromDate && start < toDate }) } @@ -135,15 +135,15 @@ export class DatabasePatientService implements PatientService { // We are assuming here that there will only ever be a single medication request per medicationReference! const equivalentDoc = documents.find( (doc) => - doc.content.medicationReference?.reference === - value.medicationReference?.reference, + doc.content.data.medicationReference?.reference === + value.data.medicationReference?.reference, ) if (equivalentDoc === undefined) { diffs.push({ successor: value }) } else if ( !isDeepStrictEqual( - equivalentDoc.content.dosageInstruction, - value.dosageInstruction, + equivalentDoc.content.data.dosageInstruction, + value.data.dosageInstruction, ) ) { diffs.push({ predecessor: equivalentDoc, successor: value }) @@ -226,7 +226,7 @@ export class DatabasePatientService implements PatientService { async getBloodPressureObservations( userId: string, cutoffDate: Date, - ): Promise<[Observation[], Observation[]]> { + ): Promise<[ObservationQuantity[], ObservationQuantity[]]> { const observations = await this.databaseService.getQuery( (collections) => collections @@ -250,7 +250,7 @@ export class DatabasePatientService implements PatientService { userId: string, unit: QuantityUnit, cutoffDate: Date, - ): Promise { + ): Promise { const observations = await this.databaseService.getQuery( (collections) => collections @@ -266,7 +266,7 @@ export class DatabasePatientService implements PatientService { async getHeartRateObservations( userId: string, cutoffDate: Date, - ): Promise { + ): Promise { const observations = await this.databaseService.getQuery( (collections) => collections @@ -282,7 +282,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentCreatinineObservation( userId: string, - ): Promise { + ): Promise { const result = await this.databaseService.getQuery( (collections) => collections @@ -295,7 +295,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentDryWeightObservation( userId: string, - ): Promise { + ): Promise { const result = await this.databaseService.getQuery( (collections) => collections @@ -308,7 +308,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentEstimatedGlomerularFiltrationRateObservation( userId: string, - ): Promise { + ): Promise { const result = await this.databaseService.getQuery( (collections) => collections @@ -321,7 +321,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentPotassiumObservation( userId: string, - ): Promise { + ): Promise { const result = await this.databaseService.getQuery( (collections) => collections @@ -335,11 +335,11 @@ export class DatabasePatientService implements PatientService { async createObservations( userId: string, values: Array<{ - observation: Observation + observation: ObservationQuantity loincCode: LoincCode collection: UserObservationCollection }>, - reference: FHIRReference | null, + reference: Reference | null, ): Promise { await this.databaseService.runTransaction((collections, transaction) => { for (const value of values) { diff --git a/functions/src/services/patient/patientService.mock.ts b/functions/src/services/patient/patientService.mock.ts index 46f509c7..7f50d141 100644 --- a/functions/src/services/patient/patientService.mock.ts +++ b/functions/src/services/patient/patientService.mock.ts @@ -11,12 +11,10 @@ import { DrugReference, type FHIRAllergyIntolerance, FHIRAppointment, - FHIRAppointmentStatus, FHIRMedicationRequest, type FHIRQuestionnaireResponse, - type FHIRReference, type LoincCode, - type Observation, + ObservationQuantity, QuantityUnit, SymptomScore, type UserMedicationRecommendation, @@ -26,6 +24,7 @@ import { import { type PatientService } from './patientService.js' import { mockQuestionnaireResponse } from '../../tests/mocks/questionnaireResponse.js' import { type Document } from '../database/databaseService.js' +import { Reference } from 'fhir/r4b.js' /* eslint-disable @typescript-eslint/require-await */ /* eslint-disable @typescript-eslint/no-unused-vars */ @@ -63,7 +62,7 @@ export class MockPatientService implements PatientService { path: `users/${userId}/appointments/123`, content: FHIRAppointment.create({ userId, - status: FHIRAppointmentStatus.booked, + status: 'booked', created: advanceDateByDays(this.startDate, -10), start: advanceDateByDays(this.startDate, 1), durationInMinutes: 60, @@ -137,7 +136,7 @@ export class MockPatientService implements PatientService { async getBloodPressureObservations( userId: string, - ): Promise<[Observation[], Observation[]]> { + ): Promise<[ObservationQuantity[], ObservationQuantity[]]> { const values = [ this.bloodPressureObservations(110, 70, new Date(2024, 1, 30, 12, 30)), this.bloodPressureObservations(114, 82, new Date(2024, 1, 29, 12, 30)), @@ -156,7 +155,7 @@ export class MockPatientService implements PatientService { systolicBloodPressure: number, diastolicBloodPressure: number, date: Date, - ): [Observation, Observation] { + ): [ObservationQuantity, ObservationQuantity] { return [ { value: systolicBloodPressure, @@ -171,7 +170,7 @@ export class MockPatientService implements PatientService { ] } - async getBodyWeightObservations(userId: string): Promise { + async getBodyWeightObservations(userId: string): Promise { return [ this.bodyWeightObservation( 269, @@ -225,7 +224,7 @@ export class MockPatientService implements PatientService { value: number, unit: QuantityUnit, date: Date, - ): Observation { + ): ObservationQuantity { return { date: date, value: value, @@ -233,7 +232,7 @@ export class MockPatientService implements PatientService { } } - async getHeartRateObservations(userId: string): Promise { + async getHeartRateObservations(userId: string): Promise { return [ this.heartRateObservation(79, new Date(2024, 1, 30, 12, 30)), this.heartRateObservation(62, new Date(2024, 1, 29, 12, 30)), @@ -247,7 +246,7 @@ export class MockPatientService implements PatientService { ] } - private heartRateObservation(value: number, date: Date): Observation { + private heartRateObservation(value: number, date: Date): ObservationQuantity { return { date: date, value: value, @@ -257,7 +256,7 @@ export class MockPatientService implements PatientService { async getMostRecentCreatinineObservation( userId: string, - ): Promise { + ): Promise { return { date: new Date('2024-01-29'), value: 1.1, @@ -268,7 +267,7 @@ export class MockPatientService implements PatientService { async getMostRecentDryWeightObservation( userId: string, unit: QuantityUnit, - ): Promise { + ): Promise { return { date: new Date(2024, 1, 27, 12, 30), value: 267.5, @@ -277,7 +276,7 @@ export class MockPatientService implements PatientService { } async getMostRecentEstimatedGlomerularFiltrationRateObservation(): Promise< - Observation | undefined + ObservationQuantity | undefined > { return { date: new Date('2024-01-29'), @@ -286,7 +285,7 @@ export class MockPatientService implements PatientService { } } - async getMostRecentPotassiumObservation(): Promise { + async getMostRecentPotassiumObservation(): Promise { return { date: new Date('2024-01-29'), unit: QuantityUnit.mEq_L, @@ -297,11 +296,11 @@ export class MockPatientService implements PatientService { async createObservations( userId: string, values: Array<{ - observation: Observation + observation: ObservationQuantity loincCode: LoincCode collection: UserObservationCollection }>, - reference: FHIRReference | null, + reference: Reference | null, ): Promise { return } diff --git a/functions/src/services/patient/patientService.ts b/functions/src/services/patient/patientService.ts index 00508bf4..4fc1d8e1 100644 --- a/functions/src/services/patient/patientService.ts +++ b/functions/src/services/patient/patientService.ts @@ -7,7 +7,7 @@ // import { - type Observation, + type ObservationQuantity, type QuantityUnit, type FHIRAllergyIntolerance, type FHIRAppointment, @@ -18,9 +18,9 @@ import { type UserShareCode, type UserObservationCollection, type LoincCode, - type FHIRReference, } from '@stanfordbdhg/engagehf-models' import { type Document } from '../database/databaseService.js' +import { Reference } from 'fhir/r4b.js' export interface PatientService { // Appointments @@ -67,39 +67,39 @@ export interface PatientService { getBloodPressureObservations( userId: string, cutoffDate: Date, - ): Promise<[Observation[], Observation[]]> + ): Promise<[ObservationQuantity[], ObservationQuantity[]]> getBodyWeightObservations( userId: string, unit: QuantityUnit, cutoffDate: Date, - ): Promise + ): Promise getHeartRateObservations( userId: string, cutoffDate: Date, - ): Promise + ): Promise getMostRecentCreatinineObservation( userId: string, - ): Promise + ): Promise getMostRecentDryWeightObservation( userId: string, unit: QuantityUnit, - ): Promise + ): Promise getMostRecentEstimatedGlomerularFiltrationRateObservation( userId: string, - ): Promise + ): Promise getMostRecentPotassiumObservation( userId: string, - ): Promise + ): Promise createObservations( userId: string, values: Array<{ - observation: Observation + observation: ObservationQuantity loincCode: LoincCode collection: UserObservationCollection }>, - reference: FHIRReference | null, + reference: Reference | null, ): Promise // Questionnaire Responses diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts index ab9270eb..a824f87e 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts @@ -62,7 +62,7 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc() await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.value.schema.parse( + data: fhirQuestionnaireResponseConverter.schema.parse( dataUpdateResponseApple, ), params: { @@ -82,8 +82,8 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const valsartan = medicationRequestsData.find( (req) => - req.medicationReference?.reference === 'medications/69749/drugs/349201', - ) + req.data.medicationReference?.reference === 'medications/69749/drugs/349201', + )?.data expect(valsartan).toBeDefined() expect(valsartan?.dosageInstruction?.length).toBe(1) const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0) @@ -94,9 +94,9 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const bexagliflozin = medicationRequestsData.find( (req) => - req.medicationReference?.reference === + req.data.medicationReference?.reference === 'medications/2627044/drugs/2637859', - ) + )?.data expect(bexagliflozin).toBeDefined() expect(bexagliflozin?.dosageInstruction?.length).toBe(1) const bexagliflozinDosageInstruction = @@ -109,8 +109,8 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const furosemide = medicationRequestsData.find( (req) => - req.medicationReference?.reference === DrugReference.furosemide20, - ) + req.data.medicationReference?.reference === DrugReference.furosemide20, + )?.data expect(furosemide).toBeDefined() expect(furosemide?.dosageInstruction?.length).toBe(1) const furosemideDosageInstruction = furosemide?.dosageInstruction?.at(0) @@ -147,7 +147,7 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const appointments = await env.collections.userAppointments(userId).get() expect(appointments.size).toBe(1) - expect(appointments.docs[0].data().start.toISOString()).toBe( + expect(appointments.docs[0].data().startDate?.toISOString()).toBe( '2025-05-14T12:00:00.000Z', ) }) @@ -191,7 +191,7 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc() await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.value.schema.parse( + data: fhirQuestionnaireResponseConverter.schema.parse( postAppointmentResponseAndroid, ), params: { @@ -210,9 +210,9 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const sacubitrilValsartan = medicationRequestsData.find( (req) => - req.medicationReference?.reference === + req.data.medicationReference?.reference === 'medications/1656339/drugs/1656349', - ) + )?.data expect(sacubitrilValsartan).toBeDefined() expect(sacubitrilValsartan?.dosageInstruction?.length).toBe(1) const sacubitrilValsartanDosageInstruction = @@ -227,9 +227,9 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const empagliflozin = medicationRequestsData.find( (req) => - req.medicationReference?.reference === + req.data.medicationReference?.reference === 'medications/1545653/drugs/1545658', - ) + )?.data expect(empagliflozin).toBeDefined() expect(empagliflozin?.dosageInstruction?.length).toBe(1) const empagliflozinDosageInstruction = @@ -269,7 +269,7 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const appointments = await env.collections.userAppointments(userId).get() expect(appointments.size).toBe(1) - expect(appointments.docs[0].data().start.toDateString()).toBe( + expect(appointments.docs[0].data().startDate?.toDateString()).toBe( new Date('2025-07-12').toDateString(), ) }) diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts index 5ecb7c11..f2e733b3 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts @@ -60,9 +60,9 @@ export class DataUpdateQuestionnaireResponseService extends QuestionnaireRespons QuestionnaireLinkId.url(QuestionnaireId.dataUpdate), postAppointmentUrl, ] - if (!urls.includes(response.content.questionnaire)) { + if (!urls.includes(response.content.data.questionnaire ?? '')) { logger.info( - `${this.constructor.name}.handle(${userId}): Url ${response.content.questionnaire} is not a data update / post appointment questionnaire, skipping.`, + `${this.constructor.name}.handle(${userId}): Url ${response.content.data.questionnaire} is not a data update / post appointment questionnaire, skipping.`, ) return false } @@ -103,7 +103,7 @@ export class DataUpdateQuestionnaireResponseService extends QuestionnaireRespons if ( options.isNew && - response.content.questionnaire === postAppointmentUrl + response.content.data.questionnaire === postAppointmentUrl ) { logger.info( `${this.constructor.name}.handle(${userId}): About to complete post appointment questionnaire messages.`, diff --git a/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts b/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts index 922f678c..33c16fb4 100644 --- a/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts +++ b/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts @@ -7,7 +7,7 @@ // import { QuantityUnit, UserSex } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod/v4' +import { z } from 'zod' import { EgfrCalculator } from './egfrCalculator.js' import { readCsv } from '../../../tests/helpers/csv.js' @@ -18,7 +18,7 @@ describe('EgfrCalculator', () => { readCsv('src/tests/resources/egfr.csv', 547, (line, index) => { if (index === 0) return // Skip header line - const sexAssignedAtBirth = z.nativeEnum(UserSex).parse(line[0]) + const sexAssignedAtBirth = z.enum(UserSex).parse(line[0]) const age = z.number().parse(parseFloat(line[1])) const creatinine = z.number().parse(parseFloat(line[2])) const expectedValue = z.number().parse(parseFloat(line[3])) diff --git a/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts index 626389de..2bce75c4 100644 --- a/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts @@ -54,7 +54,7 @@ export class KccqQuestionnaireResponseService extends QuestionnaireResponseServi options: { isNew: boolean }, ): Promise { const urls = [QuestionnaireLinkId.url(QuestionnaireId.kccq)] - if (!urls.includes(response.content.questionnaire)) return false + if (!urls.includes(response.content.data.questionnaire ?? '')) return false const symptomScore = this.symptomScore(response.content) if (symptomScore === null) return false @@ -126,7 +126,7 @@ export class KccqQuestionnaireResponseService extends QuestionnaireResponseServi } return new SymptomScore({ - date: response.authored ?? new Date(), + date: response.authoredDate ?? new Date(), ...this.symptomScoreCalculator.calculate(input), }) } diff --git a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts index 4fad5717..70b8bdc1 100644 --- a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts @@ -19,7 +19,7 @@ import { MedicationReference, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions/v2' -import { z } from 'zod/v4' +import { z } from 'zod' import { medicationClassReference } from '../../models/medicationRequestContext.js' import { type Document } from '../database/databaseService.js' import { type PatientService } from '../patient/patientService.js' @@ -84,7 +84,7 @@ export abstract class QuestionnaireResponseService { const sexCode = response.leafResponseItem(linkIds.sex)?.answer?.at(0) ?.valueCoding?.code - const sex = z.nativeEnum(UserSex).parse(sexCode) + const sex = z.enum(UserSex).parse(sexCode) return { dateOfBirth: new Date(dateOfBirth), sex, diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts index 86289e40..dc71d2ff 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts @@ -35,7 +35,7 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc() await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.value.schema.parse( + data: fhirQuestionnaireResponseConverter.schema.parse( registrationResponseApple, ), params: { @@ -61,8 +61,8 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const valsartan = medicationRequestsData.find( (req) => - req.medicationReference?.reference === 'medications/69749/drugs/349201', - ) + req.data.medicationReference?.reference === 'medications/69749/drugs/349201', + )?.data expect(valsartan).toBeDefined() expect(valsartan?.dosageInstruction?.length).toBe(1) const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0) @@ -73,9 +73,9 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const bexagliflozin = medicationRequestsData.find( (req) => - req.medicationReference?.reference === + req.data.medicationReference?.reference === 'medications/2627044/drugs/2637859', - ) + )?.data expect(bexagliflozin).toBeDefined() expect(bexagliflozin?.dosageInstruction?.length).toBe(1) const bexagliflozinDosageInstruction = @@ -113,7 +113,7 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const appointments = await env.collections.userAppointments(userId).get() expect(appointments.size).toBe(1) - expect(appointments.docs[0].data().start.toISOString()).toBe( + expect(appointments.docs[0].data().startDate?.toISOString()).toBe( '2025-05-14T12:00:00.000Z', ) }) @@ -132,7 +132,7 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc() await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.value.schema.parse( + data: fhirQuestionnaireResponseConverter.schema.parse( registrationResponseAndroid, ), params: { @@ -157,8 +157,8 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const benazepril = medicationRequestsData.find( (req) => - req.medicationReference?.reference === 'medications/18867/drugs/898719', - ) + req.data.medicationReference?.reference === 'medications/18867/drugs/898719', + )?.data expect(benazepril).toBeDefined() expect(benazepril?.dosageInstruction?.length).toBe(1) const benazeprilDosageInstruction = benazepril?.dosageInstruction?.at(0) @@ -170,9 +170,9 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const empagliflozin = medicationRequestsData.find( (req) => - req.medicationReference?.reference === + req.data.medicationReference?.reference === 'medications/1545653/drugs/1545658', - ) + )?.data expect(empagliflozin).toBeDefined() expect(empagliflozin?.dosageInstruction?.length).toBe(1) const empagliflozinDosageInstruction = @@ -212,7 +212,7 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const appointments = await env.collections.userAppointments(userId).get() expect(appointments.size).toBe(1) - expect(appointments.docs[0].data().start.toDateString()).toBe( + expect(appointments.docs[0].data().startDate?.toDateString()).toBe( new Date('2025-07-12').toDateString(), ) }) diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts index 670c3327..9a96ece6 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts @@ -53,9 +53,9 @@ export class RegistrationQuestionnaireResponseService extends QuestionnaireRespo options: { isNew: boolean }, ): Promise { const urls = [QuestionnaireLinkId.url(QuestionnaireId.registration)] - if (!urls.includes(response.content.questionnaire)) { + if (!urls.includes(response.content.data.questionnaire ?? '')) { logger.info( - `${this.constructor.name}.handle(${userId}): Url ${response.content.questionnaire} is not a registration questionnaire, skipping.`, + `${this.constructor.name}.handle(${userId}): Url ${response.content.data.questionnaire} is not a registration questionnaire, skipping.`, ) return false } diff --git a/functions/src/services/recommendation/recommendationService.test.ts b/functions/src/services/recommendation/recommendationService.test.ts index 793dda5c..cb6ccccc 100644 --- a/functions/src/services/recommendation/recommendationService.test.ts +++ b/functions/src/services/recommendation/recommendationService.test.ts @@ -7,7 +7,6 @@ // import { - AllergyIntoleranceType, CachingStrategy, DrugReference, FHIRAllergyIntolerance, @@ -21,6 +20,7 @@ import { mockRecommendationVitals } from '../../tests/mocks/recommendationVitals import { setupMockFirebase } from '../../tests/setup.js' import { getServiceFactory } from '../factory/getServiceFactory.js' import { type MedicationService } from '../medication/medicationService.js' +import { AllergyIntolerance } from 'fhir/r4b.js' describe('RecommendationService', () => { let medicationService: MedicationService @@ -286,7 +286,7 @@ function getMedicationRequest( function getContraindications( field: string, - type: AllergyIntoleranceType | undefined, + type: AllergyIntolerance['type'] | undefined, ): FHIRAllergyIntolerance[] { switch (field.trim().toLowerCase().split(' ').join('')) { case 'none': diff --git a/functions/src/services/recommendation/recommendationService.ts b/functions/src/services/recommendation/recommendationService.ts index c35c77d7..4fcc4a1c 100644 --- a/functions/src/services/recommendation/recommendationService.ts +++ b/functions/src/services/recommendation/recommendationService.ts @@ -27,6 +27,7 @@ import { Sglt2iRecommender } from './recommenders/sglt2iRecommender.js' import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' import { type ContraindicationService } from '../contraindication/contraindicationService.js' import { type MedicationService } from '../medication/medicationService.js' +import { Medication, MedicationRequest } from 'fhir/r4b.js' export interface RecommendationInput { requests: MedicationRequestContext[] @@ -143,12 +144,12 @@ export class RecommendationService { minimumDailyDoseRequest && minimumDailyDoseDrugReference ? this.doseSchedule( minimumDailyDoseRequest, - minimumDailyDoseDrugReference, + minimumDailyDoseDrugReference.data, ) : [] const currentDailyDoseSchedule = output.currentMedication.flatMap( - (context) => this.doseSchedule(context.request, context.drug), + (context) => this.doseSchedule(context.request.data, context.drug.data), ) const targetDailyDoseRequest = medication?.targetDailyDoseRequest @@ -162,7 +163,10 @@ export class RecommendationService { : undefined const targetDailyDoseSchedule = targetDailyDoseRequest && targetDailyDoseDrugReference ? - this.doseSchedule(targetDailyDoseRequest, targetDailyDoseDrugReference) + this.doseSchedule( + targetDailyDoseRequest, + targetDailyDoseDrugReference.data, + ) : [] return new UserMedicationRecommendation({ diff --git a/functions/src/services/seeding/debugData/debugDataService.ts b/functions/src/services/seeding/debugData/debugDataService.ts index b52cd091..68814771 100644 --- a/functions/src/services/seeding/debugData/debugDataService.ts +++ b/functions/src/services/seeding/debugData/debugDataService.ts @@ -24,6 +24,7 @@ import { userSeedingOptionsSchema, VideoReference, UserObservationCollection, + fhirQuestionnaireConverter, } from '@stanfordbdhg/engagehf-models' import { type Auth } from 'firebase-admin/auth' import { type CollectionReference } from 'firebase-admin/firestore' @@ -405,7 +406,7 @@ export class DebugDataService extends SeedingService { async seedUserQuestionnaireResponses(userId: string, date: Date) { const questionnaire = this.readJSONRecord( '../questionnaires.json', - fhirQuestionnaireConverter.value.schema, + fhirQuestionnaireConverter.schema, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion )[QuestionnaireReference.kccq_en_US.split('/').at(-1)!] @@ -459,7 +460,7 @@ export class DebugDataService extends SeedingService { const values = chunks(randomNumbers, 13).map((chunk, index) => createKccqQuestionnaireResponse({ - questionnaire: questionnaire.url ?? '', + questionnaire: questionnaire.data.url ?? '', questionnaireResponse: index.toString(), date: advanceDateByDays(date, -(index * 14) - 2), answer1a: Math.floor(1 + chunk[0] * 6), diff --git a/functions/src/services/seeding/seedingService.ts b/functions/src/services/seeding/seedingService.ts index ea39318e..8cc94947 100644 --- a/functions/src/services/seeding/seedingService.ts +++ b/functions/src/services/seeding/seedingService.ts @@ -10,7 +10,7 @@ import fs from 'fs' import { CachingStrategy } from '@stanfordbdhg/engagehf-models' import { type CollectionReference } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { z } from 'zod/v4' +import { z, ZodType } from 'zod' export interface SeedingOptions { useIndicesAsKeys: boolean @@ -91,7 +91,7 @@ export class SeedingService { ) } - protected readJSONArray( + protected readJSONArray( filename: string, schema: Schema, ): Array> { @@ -102,7 +102,7 @@ export class SeedingService { ) as Array> } - protected readJSONRecord( + protected readJSONRecord( filename: string, schema: Schema, ): Record> { diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts index c662001d..e5c07165 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts @@ -14,7 +14,6 @@ import { FHIRQuestionnaire, LoincCode, QuantityUnit, - QuestionnaireStatus, } from '@stanfordbdhg/engagehf-models' import { medicationClassesForGroup, @@ -28,6 +27,7 @@ import { QuestionnaireItemAnswerOption, UsageContext, Extension, + Questionnaire, } from 'fhir/r4b.js' // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters @@ -471,7 +471,7 @@ export abstract class QuestionnaireFactory { protected questionnaire(input: { id: QuestionnaireId title: string - status?: QuestionnaireStatus + status?: Questionnaire['status'] item: QuestionnaireItem[] useContext?: UsageContext[] }): FHIRQuestionnaire { diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts index b4114912..059b2960 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts @@ -9,7 +9,7 @@ import * as https from 'https' import { optionalish } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' -import { z } from 'zod/v4' +import { z, ZodType } from 'zod' import { rxNormRelatedDrugGroupResponse, type RxNormRelatedDrugGroupResponse, @@ -53,7 +53,7 @@ export class RxNormApi { // Helpers - private async get( + private async get( path: string, schema: Schema, ): Promise> { diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormModels.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormModels.ts index 2f052e81..2d92bf8d 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormModels.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormModels.ts @@ -7,7 +7,7 @@ // import { optionalish } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod/v4' +import { z } from 'zod' export const rxTermInfo = z.object({ displayName: optionalish(z.string()), diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts index 838d4416..d7780a03 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts @@ -16,7 +16,7 @@ import { QuantityUnit, } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' -import { z } from 'zod/v4' +import { z } from 'zod' import { RxNormApi } from './rxNormApi.js' import { type RxNormConceptProperty, diff --git a/functions/src/services/seeding/staticData/staticDataService.ts b/functions/src/services/seeding/staticData/staticDataService.ts index a7724d54..18832a4f 100644 --- a/functions/src/services/seeding/staticData/staticDataService.ts +++ b/functions/src/services/seeding/staticData/staticDataService.ts @@ -9,17 +9,18 @@ import { CachingStrategy, type FHIRMedication, + fhirMedicationConverter, type FHIRQuestionnaire, + fhirQuestionnaireConverter, localizedTextConverter, type MedicationClass, medicationClassConverter, organizationConverter, QuestionnaireReference, - questionnaireSchema, Video, VideoSection, } from '@stanfordbdhg/engagehf-models' -import { z } from 'zod/v4' +import { z } from 'zod' import { medicationClassSpecificationSchema, type RxNormService, @@ -166,7 +167,11 @@ export class StaticDataService extends SeedingService { return this.cache( strategy, - () => this.readJSONRecord(questionnairesFile, fhirQuestionnaireConverter.schema), + () => + this.readJSONRecord( + questionnairesFile, + fhirQuestionnaireConverter.schema, + ), async () => this.generateQuestionnaires(), (result) => this.writeJSON( @@ -226,11 +231,11 @@ export class StaticDataService extends SeedingService { () => ({ medications: this.readJSONRecord( medicationsFile, - medicationSchema.value.schema, + fhirMedicationConverter.schema, ), drugs: this.readJSONRecord( drugsFile, - z.record(z.string(), fhirMedicationConverter.value.schema), + z.record(z.string(), fhirMedicationConverter.schema), ), }), async () => { From 0c14ab8a05b8801a1db934d108e199daa4de760d Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Sun, 27 Jul 2025 11:12:44 +0200 Subject: [PATCH 06/18] update dependencies --- functions/models/package-lock.json | 2609 ++++- functions/models/package.json | 2 +- functions/models/src/helpers/dateConverter.ts | 6 +- functions/package-lock.json | 8367 +++++------------ package-lock.json | 1742 ---- package-lock.json.license | 5 - package.json | 3 - 7 files changed, 4678 insertions(+), 8056 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package-lock.json.license diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index fc083d55..468da577 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.2" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.3" }, "devDependencies": { "@types/node": "^20", @@ -32,6 +32,8 @@ }, "node_modules/@ampproject/remapping": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -44,6 +46,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { @@ -57,6 +61,8 @@ }, "node_modules/@babel/compat-data": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, "license": "MIT", "engines": { @@ -65,6 +71,8 @@ }, "node_modules/@babel/core": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -94,6 +102,8 @@ }, "node_modules/@babel/generator": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dev": true, "license": "MIT", "dependencies": { @@ -109,6 +119,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { @@ -124,6 +136,8 @@ }, "node_modules/@babel/helper-globals": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", "engines": { @@ -132,6 +146,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { @@ -144,6 +160,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "dev": true, "license": "MIT", "dependencies": { @@ -160,6 +178,8 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -168,6 +188,8 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -176,6 +198,8 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, "license": "MIT", "engines": { @@ -184,6 +208,8 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -191,12 +217,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.6", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" @@ -204,6 +232,8 @@ }, "node_modules/@babel/parser": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "dev": true, "license": "MIT", "dependencies": { @@ -218,6 +248,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "license": "MIT", "dependencies": { @@ -229,6 +261,8 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "license": "MIT", "dependencies": { @@ -240,6 +274,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "license": "MIT", "dependencies": { @@ -251,6 +287,8 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "license": "MIT", "dependencies": { @@ -265,6 +303,8 @@ }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { @@ -279,6 +319,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "license": "MIT", "dependencies": { @@ -290,6 +332,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "license": "MIT", "dependencies": { @@ -301,6 +345,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { @@ -315,6 +361,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "license": "MIT", "dependencies": { @@ -326,6 +374,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -337,6 +387,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", "dependencies": { @@ -348,6 +400,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", "dependencies": { @@ -359,6 +413,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -370,6 +426,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", "dependencies": { @@ -381,6 +439,8 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "license": "MIT", "dependencies": { @@ -395,6 +455,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", "dependencies": { @@ -409,6 +471,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -423,6 +487,8 @@ }, "node_modules/@babel/template": { "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { @@ -436,6 +502,8 @@ }, "node_modules/@babel/traverse": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dev": true, "license": "MIT", "dependencies": { @@ -452,7 +520,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.1", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -465,11 +535,15 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", "dependencies": { @@ -481,6 +555,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -490,6 +566,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -507,6 +585,8 @@ }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -518,6 +598,8 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -526,6 +608,8 @@ }, "node_modules/@eslint/config-array": { "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -539,6 +623,8 @@ }, "node_modules/@eslint/config-helpers": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -547,6 +633,8 @@ }, "node_modules/@eslint/core": { "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -558,6 +646,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "license": "MIT", "dependencies": { @@ -579,7 +669,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.31.0", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", + "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", "dev": true, "license": "MIT", "engines": { @@ -591,6 +683,8 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -599,6 +693,8 @@ }, "node_modules/@eslint/plugin-kit": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -609,8 +705,222 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@fastify/busboy": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz", + "integrity": "sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==", + "license": "MIT" + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-types": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/component": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.9.tgz", + "integrity": "sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.8.tgz", + "integrity": "sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.8.tgz", + "integrity": "sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/database": "1.0.8", + "@firebase/database-types": "1.0.5", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.5.tgz", + "integrity": "sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.10.0" + } + }, + "node_modules/@firebase/logger": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/util": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.10.0.tgz", + "integrity": "sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@google-cloud/firestore": { + "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.3.tgz", + "integrity": "sha512-qsM3/WHpawF07SRVvEJJVRwhYzM7o9qtuksyuqnrMig6fxIrwWnsezECWsG/D5TyYru51Fv5c/RTqNDQ2yU+4w==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@opentelemetry/api": "^1.3.0", + "fast-deep-equal": "^3.1.1", + "functional-red-black-tree": "^1.0.1", + "google-gax": "^4.3.3", + "protobufjs": "^7.2.6" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/paginator": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/projectify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", + "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/promisify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", + "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.16.0.tgz", + "integrity": "sha512-7/5LRgykyOfQENcm6hDKP8SX/u9XxE5YOiWOkgkwcoO+cG8xT/cyOvp9wwN3IxfdYgpHs8CE7Nq2PKX2lNaEXw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@google-cloud/paginator": "^5.0.0", + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "<4.1.0", + "abort-controller": "^3.0.0", + "async-retry": "^1.3.3", + "duplexify": "^4.1.3", + "fast-xml-parser": "^4.4.1", + "gaxios": "^6.0.2", + "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", + "mime": "^3.0.0", + "p-limit": "^3.0.1", + "retry-request": "^7.0.0", + "teeny-request": "^9.0.0", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", + "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -619,6 +929,8 @@ }, "node_modules/@humanfs/node": { "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -631,6 +943,8 @@ }, "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -643,6 +957,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -655,6 +971,8 @@ }, "node_modules/@humanwhocodes/retry": { "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -667,6 +985,8 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", "dependencies": { @@ -682,6 +1002,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -690,6 +1012,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -702,6 +1026,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", "dependencies": { @@ -714,6 +1040,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -725,6 +1053,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -739,6 +1069,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -750,6 +1082,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -758,6 +1092,8 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", "engines": { @@ -766,6 +1102,8 @@ }, "node_modules/@jest/console": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", "dependencies": { @@ -782,6 +1120,8 @@ }, "node_modules/@jest/core": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", "dependencies": { @@ -828,6 +1168,8 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", "dependencies": { @@ -842,6 +1184,8 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "license": "MIT", "dependencies": { @@ -854,6 +1198,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "license": "MIT", "dependencies": { @@ -865,6 +1211,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -881,6 +1229,8 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -895,6 +1245,8 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "license": "MIT", "dependencies": { @@ -937,6 +1289,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "license": "MIT", "dependencies": { @@ -948,6 +1302,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "license": "MIT", "dependencies": { @@ -961,6 +1317,8 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "license": "MIT", "dependencies": { @@ -975,6 +1333,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "license": "MIT", "dependencies": { @@ -989,6 +1349,8 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "license": "MIT", "dependencies": { @@ -1014,6 +1376,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "license": "MIT", "dependencies": { @@ -1030,6 +1394,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dev": true, "license": "MIT", "dependencies": { @@ -1039,6 +1405,8 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1047,11 +1415,15 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1059,8 +1431,21 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -1073,6 +1458,8 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -1081,6 +1468,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -1091,8 +1480,20 @@ "node": ">= 8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/@pkgr/core": { "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { @@ -1102,18 +1503,98 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause", + "optional": true + }, "node_modules/@rtsao/scc": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "dev": true, "license": "MIT" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1122,6 +1603,8 @@ }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1129,39 +1612,73 @@ } }, "node_modules/@stanfordspezi/spezi-firebase-fhir": { - "name": "@stanfordspezi/spezi-firebase", - "version": "0.1.2", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.3.tgz", + "integrity": "sha512-gqmUCrD4FRwWap/mRYTkDvKQiWQf1DmneRrgorA3wCOcn1Sn8kg/bl5nKpHJ5Ua5Fx1zIA2ZFbzKqkkb4/PvMQ==", "license": "MIT", - "workspaces": [ - "packages/*" - ], + "dependencies": { + "@stanfordspezi/spezi-firebase-utils": "^0.1.0", + "firebase-admin": "^12.0", + "zod": "^4.0.5" + }, + "engines": { + "node": ">=18.0.0" + }, "peerDependencies": { - "@types/fhir": "^0.0.41", + "firebase-admin": "^12.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-utils": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-utils/-/spezi-firebase-utils-0.1.3.tgz", + "integrity": "sha512-A4h+s4L2UEZSvINb2BRLKIYX8kVZbW3ELQoDt/9elWUxbh8zBvLJDtnYj3tqca1pFUvWyUIMVdOdggQnXB+mqQ==", + "license": "MIT", + "dependencies": { "zod": "^4.0.5" } }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", "dependencies": { @@ -1174,6 +1691,8 @@ }, "node_modules/@types/babel__generator": { "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -1182,6 +1701,8 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", "dependencies": { @@ -1191,37 +1712,105 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, + "node_modules/@types/express": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "node_modules/@types/fhir": { "version": "0.0.41", + "resolved": "https://registry.npmjs.org/@types/fhir/-/fhir-0.0.41.tgz", + "integrity": "sha512-MAQAFufNZBZ6V0F94Nhknmmh/E3iMXFK4n/L8RkSNjKtOJnvaAJERivNOj35VVx9VCQBJbE0BHSzikfBahoRhA==", "license": "MIT", "peer": true }, "node_modules/@types/graceful-fs": { "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "license": "MIT", "dependencies": { @@ -1230,6 +1819,8 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1238,29 +1829,120 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, "license": "MIT" }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", + "license": "MIT", + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, "node_modules/@types/node": { "version": "20.19.9", - "dev": true, + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.9.tgz", + "integrity": "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" } }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/request": { + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, "license": "MIT" }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT", + "optional": true + }, "node_modules/@types/yargs": { "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", "dependencies": { @@ -1269,11 +1951,15 @@ }, "node_modules/@types/yargs-parser": { "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", "dev": true, "license": "MIT", "dependencies": { @@ -1302,6 +1988,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -1310,6 +1998,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1333,6 +2023,8 @@ }, "node_modules/@typescript-eslint/project-service": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", "dev": true, "license": "MIT", "dependencies": { @@ -1353,6 +2045,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1369,6 +2063,8 @@ }, "node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", "dev": true, "license": "MIT", "engines": { @@ -1384,6 +2080,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", "dev": true, "license": "MIT", "dependencies": { @@ -1407,6 +2105,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", "dev": true, "license": "MIT", "engines": { @@ -1419,6 +2119,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1446,6 +2148,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1454,6 +2158,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -1468,6 +2174,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -1479,6 +2187,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", "dependencies": { @@ -1501,6 +2211,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", "dev": true, "license": "MIT", "dependencies": { @@ -1515,8 +2227,23 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "optional": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -1528,6 +2255,8 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1536,6 +2265,8 @@ }, "node_modules/acorn-walk": { "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", "dependencies": { @@ -1545,8 +2276,20 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -1562,6 +2305,8 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1576,7 +2321,9 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -1584,7 +2331,9 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "devOptional": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1598,6 +2347,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", "dependencies": { @@ -1610,16 +2361,22 @@ }, "node_modules/arg": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", "dependencies": { @@ -1635,6 +2392,8 @@ }, "node_modules/array-includes": { "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1656,6 +2415,8 @@ }, "node_modules/array.prototype.findlastindex": { "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1676,6 +2437,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { @@ -1693,6 +2456,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", "dependencies": { @@ -1710,6 +2475,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1728,21 +2495,54 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, "license": "MIT" }, "node_modules/async-function": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" } }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", + "optional": true, + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT", + "optional": true + }, "node_modules/available-typed-arrays": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1757,6 +2557,8 @@ }, "node_modules/babel-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "license": "MIT", "dependencies": { @@ -1777,6 +2579,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1792,6 +2596,8 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1807,6 +2613,8 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "license": "MIT", "dependencies": { @@ -1821,6 +2629,8 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "dependencies": { @@ -1846,6 +2656,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "license": "MIT", "dependencies": { @@ -1861,11 +2673,46 @@ }, "node_modules/balanced-match": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": "*" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -1875,6 +2722,8 @@ }, "node_modules/braces": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -1886,6 +2735,8 @@ }, "node_modules/browserslist": { "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "dev": true, "funding": [ { @@ -1917,6 +2768,8 @@ }, "node_modules/bs-logger": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "license": "MIT", "dependencies": { @@ -1928,19 +2781,31 @@ }, "node_modules/bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, "node_modules/buffer-from": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, "license": "MIT" }, "node_modules/call-bind": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "license": "MIT", "dependencies": { @@ -1958,7 +2823,9 @@ }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "dev": true, + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -1970,6 +2837,8 @@ }, "node_modules/call-bound": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "license": "MIT", "dependencies": { @@ -1985,6 +2854,8 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", "engines": { @@ -1993,6 +2864,8 @@ }, "node_modules/camelcase": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "license": "MIT", "engines": { @@ -2001,6 +2874,8 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "dev": true, "funding": [ { @@ -2020,6 +2895,8 @@ }, "node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -2035,6 +2912,8 @@ }, "node_modules/char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", "engines": { @@ -2043,6 +2922,8 @@ }, "node_modules/ci-info": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -2057,12 +2938,16 @@ }, "node_modules/cjs-module-lexer": { "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", "dev": true, "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "devOptional": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -2075,6 +2960,8 @@ }, "node_modules/co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", "engines": { @@ -2084,37 +2971,62 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "license": "MIT", + "optional": true, "dependencies": { - "color-name": "~1.1.4" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8" } }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/create-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2135,11 +3047,15 @@ }, "node_modules/create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -2153,6 +3069,8 @@ }, "node_modules/data-view-buffer": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2169,6 +3087,8 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2185,6 +3105,8 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2201,7 +3123,8 @@ }, "node_modules/debug": { "version": "4.4.1", - "dev": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2217,6 +3140,8 @@ }, "node_modules/dedent": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2230,11 +3155,15 @@ }, "node_modules/deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", "engines": { @@ -2243,6 +3172,8 @@ }, "node_modules/define-data-property": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", "dependencies": { @@ -2259,6 +3190,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -2273,8 +3206,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/detect-newline": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", "engines": { @@ -2283,6 +3228,8 @@ }, "node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -2291,6 +3238,8 @@ }, "node_modules/diff-sequences": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "license": "MIT", "engines": { @@ -2299,6 +3248,8 @@ }, "node_modules/doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2310,7 +3261,9 @@ }, "node_modules/dunder-proto": { "version": "1.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -2321,8 +3274,32 @@ "node": ">= 0.4" } }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ejs": { "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2336,12 +3313,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.189", + "version": "1.5.191", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.191.tgz", + "integrity": "sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==", "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", "engines": { @@ -2353,11 +3334,25 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "devOptional": true, "license": "MIT" }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "license": "MIT", "dependencies": { @@ -2366,6 +3361,8 @@ }, "node_modules/es-abstract": { "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, "license": "MIT", "dependencies": { @@ -2433,7 +3430,9 @@ }, "node_modules/es-define-property": { "version": "1.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2441,7 +3440,9 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "dev": true, + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2449,7 +3450,9 @@ }, "node_modules/es-object-atoms": { "version": "1.1.1", - "dev": true, + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -2460,7 +3463,9 @@ }, "node_modules/es-set-tostringtag": { "version": "2.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2474,6 +3479,8 @@ }, "node_modules/es-shim-unscopables": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, "license": "MIT", "dependencies": { @@ -2485,6 +3492,8 @@ }, "node_modules/es-to-primitive": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "license": "MIT", "dependencies": { @@ -2501,7 +3510,9 @@ }, "node_modules/escalade": { "version": "3.2.0", - "dev": true, + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -2509,6 +3520,8 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -2519,7 +3532,9 @@ } }, "node_modules/eslint": { - "version": "9.31.0", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", + "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", "dev": true, "license": "MIT", "dependencies": { @@ -2529,8 +3544,8 @@ "@eslint/config-helpers": "^0.3.0", "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.31.0", - "@eslint/plugin-kit": "^0.3.1", + "@eslint/js": "9.32.0", + "@eslint/plugin-kit": "^0.3.4", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -2579,6 +3594,8 @@ }, "node_modules/eslint-config-google": { "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2590,6 +3607,8 @@ }, "node_modules/eslint-config-prettier": { "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { @@ -2604,6 +3623,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "license": "MIT", "dependencies": { @@ -2614,6 +3635,8 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2622,6 +3645,8 @@ }, "node_modules/eslint-module-utils": { "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -2638,6 +3663,8 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2646,6 +3673,8 @@ }, "node_modules/eslint-plugin-import": { "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { @@ -2678,6 +3707,8 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2686,6 +3717,8 @@ }, "node_modules/eslint-plugin-prettier": { "version": "5.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", + "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", "dev": true, "license": "MIT", "dependencies": { @@ -2715,6 +3748,8 @@ }, "node_modules/eslint-scope": { "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2730,6 +3765,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2741,6 +3778,8 @@ }, "node_modules/espree": { "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2757,6 +3796,8 @@ }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "license": "BSD-2-Clause", "bin": { @@ -2769,6 +3810,8 @@ }, "node_modules/esquery": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2780,6 +3823,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2791,6 +3836,8 @@ }, "node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2799,14 +3846,28 @@ }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, "node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", "dependencies": { @@ -2829,6 +3890,8 @@ }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -2836,6 +3899,8 @@ }, "node_modules/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "license": "MIT", "dependencies": { @@ -2849,18 +3914,40 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT", + "optional": true + }, + "node_modules/farmhash-modern": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", + "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "devOptional": true, "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2876,6 +3963,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -2887,24 +3976,63 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, + "node_modules/fast-xml-parser": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "strnum": "^1.1.1" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2913,6 +4041,8 @@ }, "node_modules/file-entry-cache": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2924,6 +4054,8 @@ }, "node_modules/filelist": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2932,6 +4064,8 @@ }, "node_modules/filelist/node_modules/brace-expansion": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2940,6 +4074,8 @@ }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -2951,6 +4087,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -2962,6 +4100,8 @@ }, "node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -2975,8 +4115,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/firebase-admin": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.7.0.tgz", + "integrity": "sha512-raFIrOyTqREbyXsNkSHyciQLfv8AUZazehPaQS1lZBSCDYW74FYXU0nQZa3qHI4K+hawohlDbywZ4+qce9YNxA==", + "license": "Apache-2.0", + "dependencies": { + "@fastify/busboy": "^3.0.0", + "@firebase/database-compat": "1.0.8", + "@firebase/database-types": "1.0.5", + "@types/node": "^22.0.1", + "farmhash-modern": "^1.1.0", + "jsonwebtoken": "^9.0.0", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@google-cloud/firestore": "^7.7.0", + "@google-cloud/storage": "^7.7.0" + } + }, + "node_modules/firebase-admin/node_modules/@types/node": { + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, "node_modules/flat-cache": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { @@ -2989,11 +4164,15 @@ }, "node_modules/flatted": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "node_modules/for-each": { "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "license": "MIT", "dependencies": { @@ -3006,14 +4185,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/form-data": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -3025,7 +4227,9 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "dev": true, + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3033,6 +4237,8 @@ }, "node_modules/function.prototype.name": { "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3050,16 +4256,73 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "license": "MIT", + "optional": true + }, "node_modules/functions-have-names": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -3068,7 +4331,9 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "dev": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "devOptional": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -3076,7 +4341,9 @@ }, "node_modules/get-intrinsic": { "version": "1.3.0", - "dev": true, + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -3099,6 +4366,8 @@ }, "node_modules/get-package-type": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", "engines": { @@ -3107,7 +4376,9 @@ }, "node_modules/get-proto": { "version": "1.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "devOptional": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -3119,6 +4390,8 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", "engines": { @@ -3130,6 +4403,8 @@ }, "node_modules/get-symbol-description": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "license": "MIT", "dependencies": { @@ -3146,6 +4421,9 @@ }, "node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -3165,6 +4443,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { @@ -3176,6 +4456,8 @@ }, "node_modules/globals": { "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { @@ -3187,6 +4469,8 @@ }, "node_modules/globalthis": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3200,9 +4484,77 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/google-auth-library": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz", + "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "google-auth-library": "^9.3.0", + "node-fetch": "^2.7.0", + "object-hash": "^3.0.0", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", + "retry-request": "^7.0.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/google-logging-utils": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/gopd": { "version": "1.2.0", - "dev": true, + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3213,16 +4565,36 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", + "optional": true, + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/has-bigints": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, "license": "MIT", "engines": { @@ -3234,6 +4606,8 @@ }, "node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -3242,6 +4616,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "license": "MIT", "dependencies": { @@ -3253,6 +4629,8 @@ }, "node_modules/has-proto": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3267,7 +4645,9 @@ }, "node_modules/has-symbols": { "version": "1.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3278,7 +4658,9 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "dev": true, + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "devOptional": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -3292,7 +4674,9 @@ }, "node_modules/hasown": { "version": "2.0.2", - "dev": true, + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "devOptional": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -3301,13 +4685,82 @@ "node": ">= 0.4" } }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT", + "optional": true + }, "node_modules/html-escaper": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, "license": "MIT" }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3316,6 +4769,8 @@ }, "node_modules/ignore": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -3324,6 +4779,8 @@ }, "node_modules/import-fresh": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3339,6 +4796,8 @@ }, "node_modules/import-local": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "license": "MIT", "dependencies": { @@ -3357,6 +4816,8 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -3365,6 +4826,9 @@ }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "license": "ISC", "dependencies": { @@ -3374,11 +4838,15 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "devOptional": true, "license": "ISC" }, "node_modules/internal-slot": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "license": "MIT", "dependencies": { @@ -3392,6 +4860,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", "dependencies": { @@ -3408,11 +4878,15 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, "license": "MIT" }, "node_modules/is-async-function": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3431,6 +4905,8 @@ }, "node_modules/is-bigint": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3445,6 +4921,8 @@ }, "node_modules/is-boolean-object": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "license": "MIT", "dependencies": { @@ -3460,6 +4938,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "license": "MIT", "engines": { @@ -3471,6 +4951,8 @@ }, "node_modules/is-core-module": { "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", "dependencies": { @@ -3485,6 +4967,8 @@ }, "node_modules/is-data-view": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "license": "MIT", "dependencies": { @@ -3501,6 +4985,8 @@ }, "node_modules/is-date-object": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "license": "MIT", "dependencies": { @@ -3516,6 +5002,8 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -3524,6 +5012,8 @@ }, "node_modules/is-finalizationregistry": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "license": "MIT", "dependencies": { @@ -3538,7 +5028,9 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -3546,6 +5038,8 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", "engines": { @@ -3554,6 +5048,8 @@ }, "node_modules/is-generator-function": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3571,6 +5067,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -3582,6 +5080,8 @@ }, "node_modules/is-map": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "license": "MIT", "engines": { @@ -3593,6 +5093,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "license": "MIT", "engines": { @@ -3604,6 +5106,8 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -3612,6 +5116,8 @@ }, "node_modules/is-number-object": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", "dependencies": { @@ -3627,6 +5133,8 @@ }, "node_modules/is-regex": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { @@ -3644,6 +5152,8 @@ }, "node_modules/is-set": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "license": "MIT", "engines": { @@ -3655,6 +5165,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "license": "MIT", "dependencies": { @@ -3669,7 +5181,9 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -3680,6 +5194,8 @@ }, "node_modules/is-string": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "license": "MIT", "dependencies": { @@ -3695,6 +5211,8 @@ }, "node_modules/is-symbol": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "license": "MIT", "dependencies": { @@ -3711,6 +5229,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3725,6 +5245,8 @@ }, "node_modules/is-weakmap": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "license": "MIT", "engines": { @@ -3736,6 +5258,8 @@ }, "node_modules/is-weakref": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, "license": "MIT", "dependencies": { @@ -3750,6 +5274,8 @@ }, "node_modules/is-weakset": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3765,16 +5291,22 @@ }, "node_modules/isarray": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -3783,6 +5315,8 @@ }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3798,6 +5332,8 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -3809,6 +5345,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3822,6 +5360,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3835,6 +5375,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3847,6 +5389,8 @@ }, "node_modules/jake": { "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3864,6 +5408,8 @@ }, "node_modules/jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", "dependencies": { @@ -3889,6 +5435,8 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "license": "MIT", "dependencies": { @@ -3902,6 +5450,8 @@ }, "node_modules/jest-circus": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "license": "MIT", "dependencies": { @@ -3932,6 +5482,8 @@ }, "node_modules/jest-cli": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "license": "MIT", "dependencies": { @@ -3964,6 +5516,8 @@ }, "node_modules/jest-config": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4008,6 +5562,8 @@ }, "node_modules/jest-diff": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "license": "MIT", "dependencies": { @@ -4022,6 +5578,8 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "license": "MIT", "dependencies": { @@ -4033,6 +5591,8 @@ }, "node_modules/jest-each": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4048,6 +5608,8 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "license": "MIT", "dependencies": { @@ -4064,6 +5626,8 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "license": "MIT", "engines": { @@ -4072,6 +5636,8 @@ }, "node_modules/jest-haste-map": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "license": "MIT", "dependencies": { @@ -4096,6 +5662,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "license": "MIT", "dependencies": { @@ -4108,6 +5676,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "license": "MIT", "dependencies": { @@ -4122,6 +5692,8 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "license": "MIT", "dependencies": { @@ -4141,6 +5713,8 @@ }, "node_modules/jest-mock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "license": "MIT", "dependencies": { @@ -4154,6 +5728,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", "engines": { @@ -4170,6 +5746,8 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "license": "MIT", "engines": { @@ -4178,6 +5756,8 @@ }, "node_modules/jest-resolve": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "license": "MIT", "dependencies": { @@ -4197,6 +5777,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "license": "MIT", "dependencies": { @@ -4209,6 +5791,8 @@ }, "node_modules/jest-runner": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4240,6 +5824,8 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4272,6 +5858,8 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "license": "MIT", "dependencies": { @@ -4302,6 +5890,8 @@ }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4313,6 +5903,8 @@ }, "node_modules/jest-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "license": "MIT", "dependencies": { @@ -4329,6 +5921,8 @@ }, "node_modules/jest-validate": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", "dependencies": { @@ -4345,6 +5939,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { @@ -4356,6 +5952,8 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", "dependencies": { @@ -4374,6 +5972,8 @@ }, "node_modules/jest-worker": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "license": "MIT", "dependencies": { @@ -4388,6 +5988,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -4400,13 +6002,26 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jose": { + "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -4418,6 +6033,8 @@ }, "node_modules/jsesc": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -4427,39 +6044,156 @@ "node": ">=6" } }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, "node_modules/json-buffer": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" }, "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jwks-rsa": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.2.0.tgz", + "integrity": "sha512-PwchfHcQK/5PSydeKCs1ylNym0w/SSv8a62DgHJ//7x2ZclCoinlsjAfDxAAbpoTPybOum/Jgy+vkvMmKz89Ww==", + "license": "MIT", + "dependencies": { + "@types/express": "^4.17.20", + "@types/jsonwebtoken": "^9.0.4", + "debug": "^4.3.4", + "jose": "^4.15.4", + "limiter": "^1.1.5", + "lru-memoizer": "^2.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "optional": true, + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" } }, "node_modules/keyv": { "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", "dependencies": { @@ -4468,6 +6202,8 @@ }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "license": "MIT", "engines": { @@ -4476,6 +6212,8 @@ }, "node_modules/leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", "engines": { @@ -4484,6 +6222,8 @@ }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4494,13 +6234,22 @@ "node": ">= 0.8.0" } }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" + }, "node_modules/lines-and-columns": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -4513,26 +6262,124 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT", + "optional": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0", + "optional": true + }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, + "node_modules/lru-memoizer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", + "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", + "license": "MIT", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "6.0.0" + } + }, + "node_modules/lru-memoizer/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-memoizer/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/make-dir": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", "dependencies": { @@ -4547,6 +6394,8 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4558,11 +6407,15 @@ }, "node_modules/make-error": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4571,7 +6424,9 @@ }, "node_modules/math-intrinsics": { "version": "1.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4579,11 +6434,15 @@ }, "node_modules/merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -4592,6 +6451,8 @@ }, "node_modules/micromatch": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -4602,8 +6463,46 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "optional": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "license": "MIT", "engines": { @@ -4612,6 +6511,8 @@ }, "node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -4623,6 +6524,8 @@ }, "node_modules/minimist": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", "funding": { @@ -4631,26 +6534,65 @@ }, "node_modules/ms": { "version": "2.1.3", - "dev": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "optional": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, "node_modules/node-int64": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", "engines": { @@ -4659,6 +6601,8 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "license": "MIT", "dependencies": { @@ -4668,8 +6612,20 @@ "node": ">=8" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, "license": "MIT", "engines": { @@ -4681,6 +6637,8 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", "engines": { @@ -4689,6 +6647,8 @@ }, "node_modules/object.assign": { "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", "dependencies": { @@ -4708,6 +6668,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4725,6 +6687,8 @@ }, "node_modules/object.groupby": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4738,6 +6702,8 @@ }, "node_modules/object.values": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { @@ -4755,7 +6721,9 @@ }, "node_modules/once": { "version": "1.4.0", - "dev": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "devOptional": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -4763,6 +6731,8 @@ }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", "dependencies": { @@ -4777,6 +6747,8 @@ }, "node_modules/optionator": { "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -4793,6 +6765,8 @@ }, "node_modules/own-keys": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, "license": "MIT", "dependencies": { @@ -4809,7 +6783,9 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "devOptional": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -4823,6 +6799,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -4837,6 +6815,8 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "license": "MIT", "engines": { @@ -4845,6 +6825,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { @@ -4856,6 +6838,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "license": "MIT", "dependencies": { @@ -4873,6 +6857,8 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { @@ -4881,6 +6867,8 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "license": "MIT", "engines": { @@ -4889,6 +6877,8 @@ }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -4897,16 +6887,22 @@ }, "node_modules/path-parse": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -4918,6 +6914,8 @@ }, "node_modules/pirates": { "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", "engines": { @@ -4926,6 +6924,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4937,6 +6937,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -4949,6 +6951,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -4960,6 +6964,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -4974,6 +6980,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -4985,6 +6993,8 @@ }, "node_modules/possible-typed-array-names": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "license": "MIT", "engines": { @@ -4993,6 +7003,8 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -5001,6 +7013,8 @@ }, "node_modules/prettier": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -5015,6 +7029,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "license": "MIT", "dependencies": { @@ -5026,6 +7042,8 @@ }, "node_modules/pretty-format": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5039,6 +7057,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -5050,6 +7070,8 @@ }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5060,8 +7082,48 @@ "node": ">= 6" } }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -5070,6 +7132,8 @@ }, "node_modules/pure-rand": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -5085,6 +7149,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -5104,11 +7170,30 @@ }, "node_modules/react-is": { "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "license": "MIT", "dependencies": { @@ -5130,6 +7215,8 @@ }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "license": "MIT", "dependencies": { @@ -5149,7 +7236,9 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "dev": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5157,6 +7246,8 @@ }, "node_modules/resolve": { "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "license": "MIT", "dependencies": { @@ -5176,6 +7267,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "license": "MIT", "dependencies": { @@ -5187,6 +7280,8 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -5195,6 +7290,8 @@ }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { @@ -5203,14 +7300,43 @@ }, "node_modules/resolve.exports": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "license": "MIT", "engines": { "node": ">=10" } }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/retry-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", + "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/request": "^2.48.8", + "extend": "^3.0.2", + "teeny-request": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/reusify": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -5220,6 +7346,8 @@ }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -5242,6 +7370,8 @@ }, "node_modules/safe-array-concat": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5258,8 +7388,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safe-push-apply": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, "license": "MIT", "dependencies": { @@ -5275,6 +7427,8 @@ }, "node_modules/safe-regex-test": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { @@ -5291,6 +7445,8 @@ }, "node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -5299,6 +7455,8 @@ }, "node_modules/set-function-length": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "license": "MIT", "dependencies": { @@ -5315,6 +7473,8 @@ }, "node_modules/set-function-name": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5329,6 +7489,8 @@ }, "node_modules/set-proto": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, "license": "MIT", "dependencies": { @@ -5342,6 +7504,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -5353,6 +7517,8 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -5361,6 +7527,8 @@ }, "node_modules/side-channel": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "license": "MIT", "dependencies": { @@ -5379,6 +7547,8 @@ }, "node_modules/side-channel-list": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, "license": "MIT", "dependencies": { @@ -5394,6 +7564,8 @@ }, "node_modules/side-channel-map": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, "license": "MIT", "dependencies": { @@ -5411,6 +7583,8 @@ }, "node_modules/side-channel-weakmap": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, "license": "MIT", "dependencies": { @@ -5429,16 +7603,22 @@ }, "node_modules/signal-exit": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, "license": "ISC" }, "node_modules/sisteransi": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", "engines": { @@ -5447,6 +7627,8 @@ }, "node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -5455,6 +7637,8 @@ }, "node_modules/source-map-support": { "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", "dependencies": { @@ -5464,11 +7648,15 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/stack-utils": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5480,6 +7668,8 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", "engines": { @@ -5488,6 +7678,8 @@ }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5498,8 +7690,37 @@ "node": ">= 0.4" } }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "license": "MIT", + "optional": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-length": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5512,7 +7733,9 @@ }, "node_modules/string-width": { "version": "4.2.3", - "dev": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -5525,6 +7748,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "license": "MIT", "dependencies": { @@ -5545,6 +7770,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5562,6 +7789,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "license": "MIT", "dependencies": { @@ -5578,7 +7807,9 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5589,6 +7820,8 @@ }, "node_modules/strip-bom": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { @@ -5597,6 +7830,8 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", "engines": { @@ -5605,6 +7840,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -5614,8 +7851,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", + "license": "MIT", + "optional": true + }, "node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -5627,6 +7886,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "license": "MIT", "engines": { @@ -5638,6 +7899,8 @@ }, "node_modules/synckit": { "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { @@ -5650,8 +7913,68 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/teeny-request": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", + "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.9", + "stream-events": "^1.0.5", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/teeny-request/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/teeny-request/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/test-exclude": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", "dependencies": { @@ -5665,11 +7988,15 @@ }, "node_modules/tmpl": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5679,8 +8006,17 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "optional": true + }, "node_modules/ts-api-utils": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, "license": "MIT", "engines": { @@ -5692,6 +8028,8 @@ }, "node_modules/ts-jest": { "version": "29.4.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz", + "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5743,6 +8081,8 @@ }, "node_modules/ts-jest/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -5754,6 +8094,8 @@ }, "node_modules/ts-jest/node_modules/type-fest": { "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -5765,6 +8107,8 @@ }, "node_modules/ts-node": { "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5807,6 +8151,8 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "license": "MIT", "dependencies": { @@ -5818,6 +8164,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", "dependencies": { @@ -5829,14 +8177,24 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -5848,6 +8206,8 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", "engines": { @@ -5856,6 +8216,8 @@ }, "node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -5867,6 +8229,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "license": "MIT", "dependencies": { @@ -5880,6 +8244,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "license": "MIT", "dependencies": { @@ -5898,6 +8264,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5918,6 +8286,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "license": "MIT", "dependencies": { @@ -5937,6 +8307,8 @@ }, "node_modules/typescript": { "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5949,6 +8321,8 @@ }, "node_modules/typescript-eslint": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", "dev": true, "license": "MIT", "dependencies": { @@ -5971,6 +8345,8 @@ }, "node_modules/unbox-primitive": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "license": "MIT", "dependencies": { @@ -5988,11 +8364,14 @@ }, "node_modules/undici-types": { "version": "6.21.0", - "dev": true, + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/update-browserslist-db": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -6022,19 +8401,45 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT", + "optional": true + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { @@ -6048,14 +8453,59 @@ }, "node_modules/walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -6070,6 +8520,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "license": "MIT", "dependencies": { @@ -6088,6 +8540,8 @@ }, "node_modules/which-builtin-type": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6114,6 +8568,8 @@ }, "node_modules/which-collection": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "license": "MIT", "dependencies": { @@ -6131,6 +8587,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, "license": "MIT", "dependencies": { @@ -6151,6 +8609,8 @@ }, "node_modules/word-wrap": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { @@ -6159,7 +8619,9 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", - "dev": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -6175,11 +8637,15 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "devOptional": true, "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "license": "ISC", "dependencies": { @@ -6192,7 +8658,9 @@ }, "node_modules/y18n": { "version": "5.0.8", - "dev": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "devOptional": true, "license": "ISC", "engines": { "node": ">=10" @@ -6200,12 +8668,16 @@ }, "node_modules/yallist": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", - "dev": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "devOptional": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -6222,7 +8694,9 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "dev": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "devOptional": true, "license": "ISC", "engines": { "node": ">=12" @@ -6230,6 +8704,8 @@ }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "license": "MIT", "engines": { @@ -6238,7 +8714,9 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -6248,9 +8726,10 @@ } }, "node_modules/zod": { - "version": "4.0.5", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.10.tgz", + "integrity": "sha512-3vB+UU3/VmLL2lvwcY/4RV2i9z/YU0DTV/tDuYjrwmx5WeJ7hwy+rGEEx8glHp6Yxw7ibRbKSaIFBgReRPe5KA==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/functions/models/package.json b/functions/models/package.json index 64c9d99c..53f552bb 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -22,7 +22,7 @@ ], "main": "lib/index.js", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.2" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.3" }, "devDependencies": { "@types/node": "^20", diff --git a/functions/models/src/helpers/dateConverter.ts b/functions/models/src/helpers/dateConverter.ts index 20db00ad..3ed7fe2a 100644 --- a/functions/models/src/helpers/dateConverter.ts +++ b/functions/models/src/helpers/dateConverter.ts @@ -29,7 +29,11 @@ export const dateConverter = new SchemaConverter({ return z.NEVER } }), - encode: (object) => object.toDateString(), + encode: (object) => { + const offset = object.getTimezoneOffset() + const localDate = new Date(object.getTime() - offset * 60 * 1000) + return localDate.toISOString().split('T')[0] + }, }) export const dateTimeConverter = new SchemaConverter({ diff --git a/functions/package-lock.json b/functions/package-lock.json index ccaa9fc3..29f360f4 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -48,7 +48,7 @@ "models": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.2" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.3" }, "devDependencies": { "@types/node": "^20", @@ -72,6220 +72,10 @@ "zod": "^4.0.5" } }, - "models/node_modules/@ampproject/remapping": { - "version": "2.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "models/node_modules/@babel/code-frame": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/compat-data": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/core": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.6", - "@babel/parser": "^7.28.0", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "models/node_modules/@babel/generator": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-globals": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "models/node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/helpers": { - "version": "7.27.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/parser": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "models/node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "models/node_modules/@babel/template": { - "version": "7.27.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/traverse": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.0", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.0", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@babel/types": { - "version": "7.28.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "models/node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "models/node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "models/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "models/node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "models/node_modules/@eslint/config-array": { - "version": "0.21.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "models/node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "models/node_modules/@eslint/core": { - "version": "0.15.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "models/node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "models/node_modules/@eslint/js": { - "version": "9.31.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "models/node_modules/@eslint/object-schema": { - "version": "2.1.6", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "models/node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.15.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "models/node_modules/@humanfs/core": { - "version": "0.19.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "models/node_modules/@humanfs/node": { - "version": "0.16.6", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "models/node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "models/node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "models/node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/@jest/console": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/core": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "models/node_modules/@jest/environment": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/expect-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/fake-timers": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/globals": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/reporters": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "models/node_modules/@jest/schemas": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/source-map": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/test-result": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/transform": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jest/types": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "models/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "models/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "models/node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/@pkgr/core": { - "version": "0.2.9", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/pkgr" - } - }, - "models/node_modules/@rtsao/scc": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@sinclair/typebox": { - "version": "0.27.8", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "models/node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "models/node_modules/@stanfordspezi/spezi-firebase-fhir": { - "name": "@stanfordspezi/spezi-firebase", - "version": "0.1.2", - "license": "MIT", - "workspaces": [ - "packages/*" - ], - "peerDependencies": { - "@types/fhir": "^0.0.41", - "zod": "^4.0.5" - } - }, - "models/node_modules/@tsconfig/node10": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@tsconfig/node12": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@tsconfig/node16": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "models/node_modules/@types/babel__generator": { - "version": "7.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "models/node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "models/node_modules/@types/babel__traverse": { - "version": "7.20.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "models/node_modules/@types/estree": { - "version": "1.0.8", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@types/graceful-fs": { - "version": "4.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "models/node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "models/node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "models/node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@types/node": { - "version": "20.19.9", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "models/node_modules/@types/stack-utils": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@types/yargs": { - "version": "17.0.33", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "models/node_modules/@types/yargs-parser": { - "version": "21.0.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/type-utils": "8.38.0", - "@typescript-eslint/utils": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.38.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "models/node_modules/@typescript-eslint/parser": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/project-service": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.38.0", - "@typescript-eslint/types": "^8.38.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/scope-manager": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "models/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/type-utils": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/utils": "8.38.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/types": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "models/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.38.0", - "@typescript-eslint/tsconfig-utils": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "models/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "models/node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/@typescript-eslint/utils": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.38.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "models/node_modules/acorn": { - "version": "8.15.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "models/node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "models/node_modules/acorn-walk": { - "version": "8.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "models/node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "models/node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "models/node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/arg": { - "version": "4.1.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "models/node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/array-includes": { - "version": "3.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/array.prototype.flat": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/async": { - "version": "3.2.6", - "dev": true, - "license": "MIT" - }, - "models/node_modules/async-function": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/available-typed-arrays": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/babel-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "models/node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "models/node_modules/babel-preset-jest": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "models/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "models/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "models/node_modules/braces": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/browserslist": { - "version": "4.25.1", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001726", - "electron-to-chromium": "^1.5.173", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "models/node_modules/bs-logger": { - "version": "0.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "models/node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "models/node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "models/node_modules/call-bind": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/call-bound": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/caniuse-lite": { - "version": "1.0.30001727", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "models/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "models/node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "models/node_modules/ci-info": { - "version": "3.9.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/cjs-module-lexer": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/cliui": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "models/node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "models/node_modules/collect-v8-coverage": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "models/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "models/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "models/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/create-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/cross-spawn": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/data-view-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/data-view-byte-length": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "models/node_modules/data-view-byte-offset": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/debug": { - "version": "4.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "models/node_modules/dedent": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "models/node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "models/node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/define-data-property": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/define-properties": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/diff": { - "version": "4.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "models/node_modules/diff-sequences": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/dunder-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/ejs": { - "version": "3.1.10", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/electron-to-chromium": { - "version": "1.5.189", - "dev": true, - "license": "ISC" - }, - "models/node_modules/emittery": { - "version": "0.13.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "models/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "models/node_modules/es-abstract": { - "version": "1.24.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/es-define-property": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/es-errors": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/es-object-atoms": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/es-set-tostringtag": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/es-shim-unscopables": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/es-to-primitive": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/escalade": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/eslint": { - "version": "9.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.31.0", - "@eslint/plugin-kit": "^0.3.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "models/node_modules/eslint-config-google": { - "version": "0.14.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "models/node_modules/eslint-config-prettier": { - "version": "10.1.8", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "funding": { - "url": "https://opencollective.com/eslint-config-prettier" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "models/node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "models/node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "models/node_modules/eslint-module-utils": { - "version": "2.12.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "models/node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "models/node_modules/eslint-plugin-import": { - "version": "2.32.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "models/node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "models/node_modules/eslint-plugin-prettier": { - "version": "5.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.11.7" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "models/node_modules/eslint-scope": { - "version": "8.4.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "models/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "models/node_modules/espree": { - "version": "10.4.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "models/node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "models/node_modules/esquery": { - "version": "1.6.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "models/node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "models/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "models/node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "models/node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "models/node_modules/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/fast-diff": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0" - }, - "models/node_modules/fast-glob": { - "version": "3.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "models/node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "models/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "models/node_modules/fastq": { - "version": "1.19.1", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "models/node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "models/node_modules/file-entry-cache": { - "version": "8.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "models/node_modules/filelist": { - "version": "1.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "models/node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "models/node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/fill-range": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/flat-cache": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "models/node_modules/flatted": { - "version": "3.3.3", - "dev": true, - "license": "ISC" - }, - "models/node_modules/for-each": { - "version": "0.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "models/node_modules/fsevents": { - "version": "2.3.3", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "models/node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/function.prototype.name": { - "version": "1.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "models/node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "models/node_modules/get-intrinsic": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "models/node_modules/get-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/get-symbol-description": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "models/node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "models/node_modules/globals": { - "version": "14.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/globalthis": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/gopd": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "models/node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/has-bigints": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/has-property-descriptors": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/has-proto": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/has-symbols": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/has-tostringtag": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/hasown": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "models/node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "models/node_modules/ignore": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "models/node_modules/import-fresh": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/import-local": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "models/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "models/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "models/node_modules/internal-slot": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/is-array-buffer": { - "version": "3.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/is-async-function": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-bigint": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-boolean-object": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-core-module": { - "version": "2.16.1", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-data-view": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-date-object": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/is-finalizationregistry": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/is-generator-function": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/is-map": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-negative-zero": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "models/node_modules/is-number-object": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-regex": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-set": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/is-string": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-symbol": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-typed-array": { - "version": "1.1.15", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-weakmap": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-weakref": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/is-weakset": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "models/node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "models/node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/istanbul-lib-report": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/istanbul-reports": { - "version": "3.1.7", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/jake": { - "version": "10.9.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "models/node_modules/jest-changed-files": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-circus": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-cli": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "models/node_modules/jest-config": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "models/node_modules/jest-diff": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-docblock": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-each": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-environment-node": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-get-type": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-haste-map": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "models/node_modules/jest-leak-detector": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-matcher-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-message-util": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-mock": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "models/node_modules/jest-regex-util": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-resolve": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-runner": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-runtime": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-snapshot": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/jest-util": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-validate": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/jest-watcher": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-worker": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "models/node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "models/node_modules/jsesc": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "models/node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "models/node_modules/keyv": { - "version": "4.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "models/node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "models/node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "models/node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/lodash.memoize": { - "version": "4.1.2", - "dev": true, - "license": "MIT" - }, - "models/node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "models/node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "models/node_modules/make-dir": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/make-dir/node_modules/semver": { - "version": "7.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC" - }, - "models/node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "models/node_modules/math-intrinsics": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/micromatch": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "models/node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "models/node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "models/node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/node-releases": { - "version": "2.0.19", - "dev": true, - "license": "MIT" - }, - "models/node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/object.assign": { - "version": "4.1.7", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/object.fromentries": { - "version": "2.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/object.groupby": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/object.values": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "models/node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/optionator": { - "version": "0.9.4", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "models/node_modules/own-keys": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "models/node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "models/node_modules/picocolors": { - "version": "1.1.1", - "dev": true, - "license": "ISC" - }, - "models/node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "models/node_modules/pirates": { - "version": "4.0.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "models/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/possible-typed-array-names": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "models/node_modules/prettier": { - "version": "3.6.2", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "models/node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "models/node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "models/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "models/node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "models/node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/pure-rand": { - "version": "6.1.0", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "models/node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "models/node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/resolve": { - "version": "1.22.10", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "models/node_modules/resolve.exports": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "models/node_modules/reusify": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "models/node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "models/node_modules/safe-array-concat": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/safe-push-apply": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/safe-regex-test": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "models/node_modules/set-function-length": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/set-function-name": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/set-proto": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/side-channel": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/side-channel-list": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/side-channel-map": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/side-channel-weakmap": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "models/node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "models/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/source-map-support": { - "version": "0.5.13", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "models/node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "models/node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/string.prototype.trim": { - "version": "1.2.10", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/string.prototype.trimend": { - "version": "1.0.9", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "models/node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/synckit": { - "version": "0.11.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.2.9" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/synckit" - } - }, - "models/node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "models/node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "models/node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "models/node_modules/ts-api-utils": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "models/node_modules/ts-jest": { - "version": "29.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.7.2", - "type-fest": "^4.41.0", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0 || ^30.0.0", - "@jest/types": "^29.0.0 || ^30.0.0", - "babel-jest": "^29.0.0 || ^30.0.0", - "jest": "^29.0.0 || ^30.0.0", - "jest-util": "^29.0.0 || ^30.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jest-util": { - "optional": true - } - } - }, - "models/node_modules/ts-jest/node_modules/semver": { - "version": "7.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "models/node_modules/ts-jest/node_modules/type-fest": { - "version": "4.41.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/ts-node": { - "version": "10.9.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "models/node_modules/tsconfig-paths": { - "version": "3.15.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "models/node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "models/node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "models/node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "models/node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "models/node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "models/node_modules/typed-array-buffer": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "models/node_modules/typed-array-byte-length": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/typed-array-length": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/typescript": { - "version": "5.8.3", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "models/node_modules/typescript-eslint": { - "version": "8.38.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.38.0", - "@typescript-eslint/parser": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/utils": "8.38.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "models/node_modules/unbox-primitive": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/undici-types": { - "version": "6.21.0", - "dev": true, - "license": "MIT" - }, - "models/node_modules/update-browserslist-db": { - "version": "1.1.3", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "models/node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "models/node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "models/node_modules/v8-to-istanbul": { - "version": "9.3.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "models/node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "models/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "models/node_modules/which-boxed-primitive": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/which-builtin-type": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/which-collection": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/which-typed-array": { - "version": "1.1.19", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "models/node_modules/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "models/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "models/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "models/node_modules/write-file-atomic": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "models/node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "models/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "models/node_modules/yargs": { - "version": "17.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "models/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "models/node_modules/yn": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "models/node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6298,6 +88,8 @@ }, "node_modules/@asamuzakjp/css-color": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", "license": "MIT", "dependencies": { "@csstools/css-calc": "^2.1.3", @@ -6309,10 +101,14 @@ }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, "node_modules/@babel/code-frame": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { @@ -6326,6 +122,8 @@ }, "node_modules/@babel/compat-data": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, "license": "MIT", "engines": { @@ -6334,6 +132,8 @@ }, "node_modules/@babel/core": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6363,6 +163,8 @@ }, "node_modules/@babel/generator": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dev": true, "license": "MIT", "dependencies": { @@ -6378,6 +180,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6393,6 +197,8 @@ }, "node_modules/@babel/helper-globals": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", "engines": { @@ -6401,6 +207,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { @@ -6413,6 +221,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "dev": true, "license": "MIT", "dependencies": { @@ -6429,6 +239,8 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -6437,6 +249,8 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -6445,6 +259,8 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, "license": "MIT", "engines": { @@ -6453,6 +269,8 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -6460,12 +278,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.6", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" @@ -6473,6 +293,8 @@ }, "node_modules/@babel/parser": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "dev": true, "license": "MIT", "dependencies": { @@ -6487,6 +309,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "license": "MIT", "dependencies": { @@ -6498,6 +322,8 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "license": "MIT", "dependencies": { @@ -6509,6 +335,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "license": "MIT", "dependencies": { @@ -6520,6 +348,8 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "license": "MIT", "dependencies": { @@ -6534,6 +364,8 @@ }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { @@ -6548,6 +380,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "license": "MIT", "dependencies": { @@ -6559,6 +393,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "license": "MIT", "dependencies": { @@ -6570,6 +406,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { @@ -6584,6 +422,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "license": "MIT", "dependencies": { @@ -6595,6 +435,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6606,6 +448,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", "dependencies": { @@ -6617,6 +461,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", "dependencies": { @@ -6628,6 +474,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6639,6 +487,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", "dependencies": { @@ -6650,6 +500,8 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "license": "MIT", "dependencies": { @@ -6664,6 +516,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", "dependencies": { @@ -6678,6 +532,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6691,7 +547,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.6", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -6699,6 +557,8 @@ }, "node_modules/@babel/template": { "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { @@ -6712,6 +572,8 @@ }, "node_modules/@babel/traverse": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dev": true, "license": "MIT", "dependencies": { @@ -6728,7 +590,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.1", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6741,11 +605,15 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", "dependencies": { @@ -6757,6 +625,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6766,6 +636,8 @@ }, "node_modules/@csstools/color-helpers": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", "funding": [ { "type": "github", @@ -6783,6 +655,8 @@ }, "node_modules/@csstools/css-calc": { "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", "funding": [ { "type": "github", @@ -6804,6 +678,8 @@ }, "node_modules/@csstools/css-color-parser": { "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", + "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", "funding": [ { "type": "github", @@ -6829,6 +705,8 @@ }, "node_modules/@csstools/css-parser-algorithms": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "funding": [ { "type": "github", @@ -6849,6 +727,8 @@ }, "node_modules/@csstools/css-tokenizer": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "funding": [ { "type": "github", @@ -6866,6 +746,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -6883,6 +765,8 @@ }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6894,6 +778,8 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -6902,6 +788,8 @@ }, "node_modules/@eslint/config-array": { "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6915,6 +803,8 @@ }, "node_modules/@eslint/config-helpers": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6923,6 +813,8 @@ }, "node_modules/@eslint/core": { "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6934,6 +826,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6955,7 +849,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.31.0", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", + "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", "dev": true, "license": "MIT", "engines": { @@ -6967,6 +863,8 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6975,6 +873,8 @@ }, "node_modules/@eslint/plugin-kit": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6987,10 +887,14 @@ }, "node_modules/@fastify/busboy": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz", + "integrity": "sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==", "license": "MIT" }, "node_modules/@firebase/ai": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-1.4.1.tgz", + "integrity": "sha512-bcusQfA/tHjUjBTnMx6jdoPMpDl3r8K15Z+snHz9wq0Foox0F/V+kNLXucEOHoTL2hTc9l+onZCyBJs2QoIC3g==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7011,6 +915,8 @@ }, "node_modules/@firebase/analytics": { "version": "0.10.17", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.17.tgz", + "integrity": "sha512-n5vfBbvzduMou/2cqsnKrIes4auaBjdhg8QNA2ZQZ59QgtO2QiwBaXQZQE4O4sgB0Ds1tvLgUUkY+pwzu6/xEg==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7027,6 +933,8 @@ }, "node_modules/@firebase/analytics-compat": { "version": "0.2.23", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.23.tgz", + "integrity": "sha512-3AdO10RN18G5AzREPoFgYhW6vWXr3u+OYQv6pl3CX6Fky8QRk0AHurZlY3Q1xkXO0TDxIsdhO3y65HF7PBOJDw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7043,12 +951,16 @@ }, "node_modules/@firebase/analytics-types": { "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.3.tgz", + "integrity": "sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@firebase/app": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.13.2.tgz", + "integrity": "sha512-jwtMmJa1BXXDCiDx1vC6SFN/+HfYG53UkfJa6qeN5ogvOunzbFDO3wISZy5n9xgYFUrEP6M7e8EG++riHNTv9w==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7065,6 +977,8 @@ }, "node_modules/@firebase/app-check": { "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.10.1.tgz", + "integrity": "sha512-MgNdlms9Qb0oSny87pwpjKush9qUwCJhfmTJHDfrcKo4neLGiSeVE4qJkzP7EQTIUFKp84pbTxobSAXkiuQVYQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7083,6 +997,8 @@ }, "node_modules/@firebase/app-check-compat": { "version": "0.3.26", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.26.tgz", + "integrity": "sha512-PkX+XJMLDea6nmnopzFKlr+s2LMQGqdyT2DHdbx1v1dPSqOol2YzgpgymmhC67vitXVpNvS3m/AiWQWWhhRRPQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7103,16 +1019,22 @@ }, "node_modules/@firebase/app-check-interop-types": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz", + "integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==", "license": "Apache-2.0" }, "node_modules/@firebase/app-check-types": { "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.3.tgz", + "integrity": "sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@firebase/app-compat": { "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.4.2.tgz", + "integrity": "sha512-LssbyKHlwLeiV8GBATyOyjmHcMpX/tFjzRUCS1jnwGAew1VsBB4fJowyS5Ud5LdFbYpJeS+IQoC+RQxpK7eH3Q==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7129,10 +1051,14 @@ }, "node_modules/@firebase/app-types": { "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", + "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", "license": "Apache-2.0" }, "node_modules/@firebase/auth": { "version": "1.10.8", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.10.8.tgz", + "integrity": "sha512-GpuTz5ap8zumr/ocnPY57ZanX02COsXloY6Y/2LYPAuXYiaJRf6BAGDEdRq1BMjP93kqQnKNuKZUTMZbQ8MNYA==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7157,6 +1083,8 @@ }, "node_modules/@firebase/auth-compat": { "version": "0.5.28", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.28.tgz", + "integrity": "sha512-HpMSo/cc6Y8IX7bkRIaPPqT//Jt83iWy5rmDWeThXQCAImstkdNo3giFLORJwrZw2ptiGkOij64EH1ztNJzc7Q==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7176,10 +1104,14 @@ }, "node_modules/@firebase/auth-interop-types": { "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz", + "integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==", "license": "Apache-2.0" }, "node_modules/@firebase/auth-types": { "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.13.0.tgz", + "integrity": "sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7190,6 +1122,8 @@ }, "node_modules/@firebase/component": { "version": "0.6.18", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.18.tgz", + "integrity": "sha512-n28kPCkE2dL2U28fSxZJjzPPVpKsQminJ6NrzcKXAI0E/lYC8YhfwpyllScqVEvAI3J2QgJZWYgrX+1qGI+SQQ==", "license": "Apache-2.0", "dependencies": { "@firebase/util": "1.12.1", @@ -7201,6 +1135,8 @@ }, "node_modules/@firebase/data-connect": { "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.10.tgz", + "integrity": "sha512-VMVk7zxIkgwlVQIWHOKFahmleIjiVFwFOjmakXPd/LDgaB/5vzwsB5DWIYo+3KhGxWpidQlR8geCIn39YflJIQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7217,6 +1153,8 @@ }, "node_modules/@firebase/database": { "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.20.tgz", + "integrity": "sha512-H9Rpj1pQ1yc9+4HQOotFGLxqAXwOzCHsRSRjcQFNOr8lhUt6LeYjf0NSRL04sc4X0dWe8DsCvYKxMYvFG/iOJw==", "license": "Apache-2.0", "dependencies": { "@firebase/app-check-interop-types": "0.3.3", @@ -7233,6 +1171,8 @@ }, "node_modules/@firebase/database-compat": { "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.11.tgz", + "integrity": "sha512-itEsHARSsYS95+udF/TtIzNeQ0Uhx4uIna0sk4E0wQJBUnLc/G1X6D7oRljoOuwwCezRLGvWBRyNrugv/esOEw==", "license": "Apache-2.0", "dependencies": { "@firebase/component": "0.6.18", @@ -7248,6 +1188,8 @@ }, "node_modules/@firebase/database-types": { "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.15.tgz", + "integrity": "sha512-XWHJ0VUJ0k2E9HDMlKxlgy/ZuTa9EvHCGLjaKSUvrQnwhgZuRU5N3yX6SZ+ftf2hTzZmfRkv+b3QRvGg40bKNw==", "license": "Apache-2.0", "dependencies": { "@firebase/app-types": "0.9.3", @@ -7256,6 +1198,8 @@ }, "node_modules/@firebase/firestore": { "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.8.0.tgz", + "integrity": "sha512-QSRk+Q1/CaabKyqn3C32KSFiOdZpSqI9rpLK5BHPcooElumOBooPFa6YkDdiT+/KhJtel36LdAacha9BptMj2A==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7277,6 +1221,8 @@ }, "node_modules/@firebase/firestore-compat": { "version": "0.3.53", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.53.tgz", + "integrity": "sha512-qI3yZL8ljwAYWrTousWYbemay2YZa+udLWugjdjju2KODWtLG94DfO4NALJgPLv8CVGcDHNFXoyQexdRA0Cz8Q==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7296,6 +1242,8 @@ }, "node_modules/@firebase/firestore-types": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.3.tgz", + "integrity": "sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7306,6 +1254,8 @@ }, "node_modules/@firebase/functions": { "version": "0.12.9", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.9.tgz", + "integrity": "sha512-FG95w6vjbUXN84Ehezc2SDjGmGq225UYbHrb/ptkRT7OTuCiQRErOQuyt1jI1tvcDekdNog+anIObihNFz79Lg==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7326,6 +1276,8 @@ }, "node_modules/@firebase/functions-compat": { "version": "0.3.26", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.26.tgz", + "integrity": "sha512-A798/6ff5LcG2LTWqaGazbFYnjBW8zc65YfID/en83ALmkhu2b0G8ykvQnLtakbV9ajrMYPn7Yc/XcYsZIUsjA==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7345,12 +1297,16 @@ }, "node_modules/@firebase/functions-types": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.3.tgz", + "integrity": "sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@firebase/installations": { "version": "0.6.18", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.18.tgz", + "integrity": "sha512-NQ86uGAcvO8nBRwVltRL9QQ4Reidc/3whdAasgeWCPIcrhOKDuNpAALa6eCVryLnK14ua2DqekCOX5uC9XbU/A==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7366,6 +1322,8 @@ }, "node_modules/@firebase/installations-compat": { "version": "0.2.18", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.18.tgz", + "integrity": "sha512-aLFohRpJO5kKBL/XYL4tN+GdwEB/Q6Vo9eZOM/6Kic7asSUgmSfGPpGUZO1OAaSRGwF4Lqnvi1f/f9VZnKzChw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7382,6 +1340,8 @@ }, "node_modules/@firebase/installations-types": { "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.3.tgz", + "integrity": "sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7391,6 +1351,8 @@ }, "node_modules/@firebase/logger": { "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.4.tgz", + "integrity": "sha512-mH0PEh1zoXGnaR8gD1DeGeNZtWFKbnz9hDO91dIml3iou1gpOnLqXQ2dJfB71dj6dpmUjcQ6phY3ZZJbjErr9g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -7401,6 +1363,8 @@ }, "node_modules/@firebase/messaging": { "version": "0.12.22", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.22.tgz", + "integrity": "sha512-GJcrPLc+Hu7nk+XQ70Okt3M1u1eRr2ZvpMbzbc54oTPJZySHcX9ccZGVFcsZbSZ6o1uqumm8Oc7OFkD3Rn1/og==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7418,6 +1382,8 @@ }, "node_modules/@firebase/messaging-compat": { "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.22.tgz", + "integrity": "sha512-5ZHtRnj6YO6f/QPa/KU6gryjmX4Kg33Kn4gRpNU6M1K47Gm8kcQwPkX7erRUYEH1mIWptfvjvXMHWoZaWjkU7A==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7433,12 +1399,16 @@ }, "node_modules/@firebase/messaging-interop-types": { "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.3.tgz", + "integrity": "sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@firebase/performance": { "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.7.tgz", + "integrity": "sha512-JTlTQNZKAd4+Q5sodpw6CN+6NmwbY72av3Lb6wUKTsL7rb3cuBIhQSrslWbVz0SwK3x0ZNcqX24qtRbwKiv+6w==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7456,6 +1426,8 @@ }, "node_modules/@firebase/performance-compat": { "version": "0.2.20", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.20.tgz", + "integrity": "sha512-XkFK5NmOKCBuqOKWeRgBUFZZGz9SzdTZp4OqeUg+5nyjapTiZ4XoiiUL8z7mB2q+63rPmBl7msv682J3rcDXIQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7473,12 +1445,16 @@ }, "node_modules/@firebase/performance-types": { "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.3.tgz", + "integrity": "sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@firebase/remote-config": { "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.5.tgz", + "integrity": "sha512-fU0c8HY0vrVHwC+zQ/fpXSqHyDMuuuglV94VF6Yonhz8Fg2J+KOowPGANM0SZkLvVOYpTeWp3ZmM+F6NjwWLnw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7495,6 +1471,8 @@ }, "node_modules/@firebase/remote-config-compat": { "version": "0.2.18", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.18.tgz", + "integrity": "sha512-YiETpldhDy7zUrnS8e+3l7cNs0sL7+tVAxvVYU0lu7O+qLHbmdtAxmgY+wJqWdW2c9nDvBFec7QiF58pEUu0qQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7512,12 +1490,16 @@ }, "node_modules/@firebase/remote-config-types": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.4.0.tgz", + "integrity": "sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@firebase/rules-unit-testing": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@firebase/rules-unit-testing/-/rules-unit-testing-4.0.1.tgz", + "integrity": "sha512-Vu8iMLP+dO9hCAqUCitWZQdORyM6CxucilRZtleeTZd5bejZmyOiaBPwYm3NOYG6025ac99CEeA+ETmJRxa9zg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7529,6 +1511,8 @@ }, "node_modules/@firebase/storage": { "version": "0.13.14", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.14.tgz", + "integrity": "sha512-xTq5ixxORzx+bfqCpsh+o3fxOsGoDjC1nO0Mq2+KsOcny3l7beyBhP/y1u5T6mgsFQwI1j6oAkbT5cWdDBx87g==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7546,6 +1530,8 @@ }, "node_modules/@firebase/storage-compat": { "version": "0.3.24", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.24.tgz", + "integrity": "sha512-XHn2tLniiP7BFKJaPZ0P8YQXKiVJX+bMyE2j2YWjYfaddqiJnROJYqSomwW6L3Y+gZAga35ONXUJQju6MB6SOQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7565,6 +1551,8 @@ }, "node_modules/@firebase/storage-types": { "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.3.tgz", + "integrity": "sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7575,6 +1563,8 @@ }, "node_modules/@firebase/util": { "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.12.1.tgz", + "integrity": "sha512-zGlBn/9Dnya5ta9bX/fgEoNC3Cp8s6h+uYPYaDieZsFOAdHP/ExzQ/eaDgxD3GOROdPkLKpvKY0iIzr9adle0w==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -7586,12 +1576,16 @@ }, "node_modules/@firebase/webchannel-wrapper": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.3.tgz", + "integrity": "sha512-2xCRM9q9FlzGZCdgDMJwc0gyUkWFtkosy7Xxr6sFgQwn+wMNIWd7xIvYNauU1r64B5L5rsGKy/n9TKJ0aAFeqQ==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/@google-cloud/firestore": { "version": "7.11.3", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.3.tgz", + "integrity": "sha512-qsM3/WHpawF07SRVvEJJVRwhYzM7o9qtuksyuqnrMig6fxIrwWnsezECWsG/D5TyYru51Fv5c/RTqNDQ2yU+4w==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -7607,6 +1601,8 @@ }, "node_modules/@google-cloud/paginator": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -7619,6 +1615,8 @@ }, "node_modules/@google-cloud/projectify": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", + "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", "license": "Apache-2.0", "optional": true, "engines": { @@ -7627,6 +1625,8 @@ }, "node_modules/@google-cloud/promisify": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", + "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", "license": "Apache-2.0", "optional": true, "engines": { @@ -7635,6 +1635,8 @@ }, "node_modules/@google-cloud/storage": { "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.16.0.tgz", + "integrity": "sha512-7/5LRgykyOfQENcm6hDKP8SX/u9XxE5YOiWOkgkwcoO+cG8xT/cyOvp9wwN3IxfdYgpHs8CE7Nq2PKX2lNaEXw==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -7660,6 +1662,8 @@ }, "node_modules/@google-cloud/storage/node_modules/uuid": { "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", "optional": true, "bin": { @@ -7668,6 +1672,8 @@ }, "node_modules/@grpc/grpc-js": { "version": "1.9.15", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz", + "integrity": "sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -7681,6 +1687,8 @@ }, "node_modules/@grpc/proto-loader": { "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -7698,6 +1706,8 @@ }, "node_modules/@humanfs/core": { "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7706,6 +1716,8 @@ }, "node_modules/@humanfs/node": { "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7718,6 +1730,8 @@ }, "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7730,6 +1744,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7742,6 +1758,8 @@ }, "node_modules/@humanwhocodes/retry": { "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7754,6 +1772,8 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", "dependencies": { @@ -7769,6 +1789,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -7777,6 +1799,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -7789,6 +1813,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", "dependencies": { @@ -7801,6 +1827,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -7812,6 +1840,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -7826,6 +1856,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -7837,6 +1869,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -7845,6 +1879,8 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", "engines": { @@ -7853,6 +1889,8 @@ }, "node_modules/@jest/console": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", "dependencies": { @@ -7869,6 +1907,8 @@ }, "node_modules/@jest/core": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", "dependencies": { @@ -7915,6 +1955,8 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", "dependencies": { @@ -7929,6 +1971,8 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7941,6 +1985,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "license": "MIT", "dependencies": { @@ -7952,6 +1998,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7968,6 +2016,8 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7982,6 +2032,8 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "license": "MIT", "dependencies": { @@ -8024,6 +2076,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "license": "MIT", "dependencies": { @@ -8035,6 +2089,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "license": "MIT", "dependencies": { @@ -8048,6 +2104,8 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "license": "MIT", "dependencies": { @@ -8062,6 +2120,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "license": "MIT", "dependencies": { @@ -8076,6 +2136,8 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "license": "MIT", "dependencies": { @@ -8101,6 +2163,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "license": "MIT", "dependencies": { @@ -8117,6 +2181,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dev": true, "license": "MIT", "dependencies": { @@ -8126,6 +2192,8 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -8134,11 +2202,15 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8148,6 +2220,8 @@ }, "node_modules/@js-sdsl/ordered-map": { "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", "license": "MIT", "optional": true, "funding": { @@ -8157,6 +2231,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -8169,6 +2245,8 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -8177,6 +2255,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -8189,6 +2269,8 @@ }, "node_modules/@opentelemetry/api": { "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", "optional": true, "engines": { @@ -8197,6 +2279,8 @@ }, "node_modules/@pkgr/core": { "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { @@ -8208,22 +2292,32 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", @@ -8232,26 +2326,38 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", "license": "BSD-3-Clause" }, "node_modules/@resvg/resvg-js": { "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz", + "integrity": "sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==", "license": "MPL-2.0", "engines": { "node": ">= 10" @@ -8271,8 +2377,42 @@ "@resvg/resvg-js-win32-x64-msvc": "2.6.2" } }, + "node_modules/@resvg/resvg-js-android-arm-eabi": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.6.2.tgz", + "integrity": "sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-android-arm64": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.6.2.tgz", + "integrity": "sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@resvg/resvg-js-darwin-arm64": { "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.6.2.tgz", + "integrity": "sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==", "cpu": [ "arm64" ], @@ -8285,18 +2425,168 @@ "node": ">= 10" } }, + "node_modules/@resvg/resvg-js-darwin-x64": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.6.2.tgz", + "integrity": "sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-arm-gnueabihf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.6.2.tgz", + "integrity": "sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-arm64-gnu": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.6.2.tgz", + "integrity": "sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-arm64-musl": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.6.2.tgz", + "integrity": "sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-x64-gnu": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.2.tgz", + "integrity": "sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-x64-musl": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.6.2.tgz", + "integrity": "sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-win32-arm64-msvc": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.6.2.tgz", + "integrity": "sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-win32-ia32-msvc": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.6.2.tgz", + "integrity": "sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==", + "cpu": [ + "ia32" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-win32-x64-msvc": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.6.2.tgz", + "integrity": "sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "dev": true, "license": "MIT" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -8305,6 +2595,8 @@ }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -8312,17 +2604,20 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "8.0.2", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.3.tgz", + "integrity": "sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.1", - "lodash.get": "^4.4.2", "type-detect": "^4.1.0" } }, "node_modules/@sinonjs/samsam/node_modules/type-detect": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", "engines": { @@ -8331,6 +2626,8 @@ }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", + "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", "dev": true, "license": "(Unlicense OR Apache-2.0)" }, @@ -8338,8 +2635,167 @@ "resolved": "models", "link": true }, + "node_modules/@stanfordspezi/spezi-firebase-fhir": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.3.tgz", + "integrity": "sha512-gqmUCrD4FRwWap/mRYTkDvKQiWQf1DmneRrgorA3wCOcn1Sn8kg/bl5nKpHJ5Ua5Fx1zIA2ZFbzKqkkb4/PvMQ==", + "license": "MIT", + "dependencies": { + "@stanfordspezi/spezi-firebase-utils": "^0.1.0", + "firebase-admin": "^12.0", + "zod": "^4.0.5" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "firebase-admin": "^12.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/app-check-interop-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", + "license": "Apache-2.0" + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/app-types": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", + "license": "Apache-2.0" + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/auth-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", + "license": "Apache-2.0" + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/component": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.9.tgz", + "integrity": "sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/database": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.8.tgz", + "integrity": "sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/database-compat": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.8.tgz", + "integrity": "sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/database": "1.0.8", + "@firebase/database-types": "1.0.5", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/database-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.5.tgz", + "integrity": "sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.10.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/logger": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@firebase/util": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.10.0.tgz", + "integrity": "sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/@types/node": { + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/firebase-admin": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.7.0.tgz", + "integrity": "sha512-raFIrOyTqREbyXsNkSHyciQLfv8AUZazehPaQS1lZBSCDYW74FYXU0nQZa3qHI4K+hawohlDbywZ4+qce9YNxA==", + "license": "Apache-2.0", + "dependencies": { + "@fastify/busboy": "^3.0.0", + "@firebase/database-compat": "1.0.8", + "@firebase/database-types": "1.0.5", + "@types/node": "^22.0.1", + "farmhash-modern": "^1.1.0", + "jsonwebtoken": "^9.0.0", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@google-cloud/firestore": "^7.7.0", + "@google-cloud/storage": "^7.7.0" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-fhir/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@stanfordspezi/spezi-firebase-utils": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-utils/-/spezi-firebase-utils-0.1.3.tgz", + "integrity": "sha512-A4h+s4L2UEZSvINb2BRLKIYX8kVZbW3ELQoDt/9elWUxbh8zBvLJDtnYj3tqca1pFUvWyUIMVdOdggQnXB+mqQ==", + "license": "MIT", + "dependencies": { + "zod": "^4.0.5" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "license": "MIT", "optional": true, "engines": { @@ -8348,26 +2804,36 @@ }, "node_modules/@tsconfig/node10": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", "dependencies": { @@ -8380,6 +2846,8 @@ }, "node_modules/@types/babel__generator": { "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -8388,6 +2856,8 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", "dependencies": { @@ -8397,6 +2867,8 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "dev": true, "license": "MIT", "dependencies": { @@ -8405,6 +2877,8 @@ }, "node_modules/@types/body-parser": { "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -8413,11 +2887,15 @@ }, "node_modules/@types/caseless": { "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", "license": "MIT", "optional": true }, "node_modules/@types/connect": { "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -8425,6 +2903,8 @@ }, "node_modules/@types/cors": { "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -8432,6 +2912,8 @@ }, "node_modules/@types/d3": { "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, "license": "MIT", "dependencies": { @@ -8469,11 +2951,15 @@ }, "node_modules/@types/d3-array": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-axis": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, "license": "MIT", "dependencies": { @@ -8482,6 +2968,8 @@ }, "node_modules/@types/d3-brush": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, "license": "MIT", "dependencies": { @@ -8490,16 +2978,22 @@ }, "node_modules/@types/d3-chord": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-color": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-contour": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, "license": "MIT", "dependencies": { @@ -8509,16 +3003,22 @@ }, "node_modules/@types/d3-delaunay": { "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-dispatch": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", + "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-drag": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8527,16 +3027,22 @@ }, "node_modules/@types/d3-dsv": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-fetch": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, "license": "MIT", "dependencies": { @@ -8545,16 +3051,22 @@ }, "node_modules/@types/d3-force": { "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-format": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-geo": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8563,11 +3075,15 @@ }, "node_modules/@types/d3-hierarchy": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, "license": "MIT", "dependencies": { @@ -8576,26 +3092,36 @@ }, "node_modules/@types/d3-path": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-polygon": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-quadtree": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-random": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-scale": { "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, "license": "MIT", "dependencies": { @@ -8604,16 +3130,22 @@ }, "node_modules/@types/d3-scale-chromatic": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-selection": { "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-shape": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", "dev": true, "license": "MIT", "dependencies": { @@ -8622,21 +3154,29 @@ }, "node_modules/@types/d3-time": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-time-format": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-timer": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-transition": { "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, "license": "MIT", "dependencies": { @@ -8645,6 +3185,8 @@ }, "node_modules/@types/d3-zoom": { "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, "license": "MIT", "dependencies": { @@ -8654,11 +3196,15 @@ }, "node_modules/@types/estree": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -8669,6 +3215,8 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -8686,11 +3234,15 @@ }, "node_modules/@types/geojson": { "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "dev": true, "license": "MIT" }, "node_modules/@types/graceful-fs": { "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8699,15 +3251,21 @@ }, "node_modules/@types/http-errors": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "license": "MIT", "dependencies": { @@ -8716,6 +3274,8 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8724,6 +3284,8 @@ }, "node_modules/@types/jest": { "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8733,6 +3295,8 @@ }, "node_modules/@types/jsdom": { "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", "dev": true, "license": "MIT", "dependencies": { @@ -8743,16 +3307,22 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, "license": "MIT" }, "node_modules/@types/jsonwebtoken": { "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", "license": "MIT", "dependencies": { "@types/ms": "*", @@ -8761,24 +3331,34 @@ }, "node_modules/@types/lodash": { "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", "dev": true, "license": "MIT" }, "node_modules/@types/long": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", "license": "MIT", "optional": true }, "node_modules/@types/mime": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "license": "MIT" }, "node_modules/@types/node": { "version": "20.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.9.tgz", + "integrity": "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -8786,19 +3366,27 @@ }, "node_modules/@types/qs": { "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "license": "MIT" }, "node_modules/@types/raf": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz", + "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==", "license": "MIT", "optional": true }, "node_modules/@types/range-parser": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "license": "MIT" }, "node_modules/@types/request": { "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", "license": "MIT", "optional": true, "dependencies": { @@ -8810,6 +3398,8 @@ }, "node_modules/@types/request/node_modules/form-data": { "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", "license": "MIT", "optional": true, "dependencies": { @@ -8826,6 +3416,8 @@ }, "node_modules/@types/send": { "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", "license": "MIT", "dependencies": { "@types/mime": "^1", @@ -8834,6 +3426,8 @@ }, "node_modules/@types/serve-static": { "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -8843,6 +3437,8 @@ }, "node_modules/@types/sinon": { "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.4.tgz", + "integrity": "sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==", "dev": true, "license": "MIT", "dependencies": { @@ -8851,26 +3447,36 @@ }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", "dev": true, "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, "license": "MIT" }, "node_modules/@types/tough-cookie": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "devOptional": true, "license": "MIT" }, "node_modules/@types/trusted-types": { "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", "optional": true }, "node_modules/@types/yargs": { "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", "dependencies": { @@ -8879,11 +3485,15 @@ }, "node_modules/@types/yargs-parser": { "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", "dev": true, "license": "MIT", "dependencies": { @@ -8912,6 +3522,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -8920,6 +3532,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8943,6 +3557,8 @@ }, "node_modules/@typescript-eslint/project-service": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", "dev": true, "license": "MIT", "dependencies": { @@ -8963,6 +3579,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8979,6 +3597,8 @@ }, "node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", "dev": true, "license": "MIT", "engines": { @@ -8994,6 +3614,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", "dev": true, "license": "MIT", "dependencies": { @@ -9017,6 +3639,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", "dev": true, "license": "MIT", "engines": { @@ -9029,6 +3653,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9056,6 +3682,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9064,6 +3692,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -9078,6 +3708,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -9089,6 +3721,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", "dependencies": { @@ -9111,6 +3745,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", "dev": true, "license": "MIT", "dependencies": { @@ -9127,6 +3763,8 @@ }, "node_modules/abort-controller": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "license": "MIT", "optional": true, "dependencies": { @@ -9138,6 +3776,8 @@ }, "node_modules/accepts": { "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "license": "MIT", "dependencies": { "mime-types": "~2.1.34", @@ -9149,6 +3789,8 @@ }, "node_modules/acorn": { "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -9160,6 +3802,8 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -9168,6 +3812,8 @@ }, "node_modules/acorn-walk": { "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", "dependencies": { @@ -9179,6 +3825,8 @@ }, "node_modules/agent-base": { "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "license": "MIT", "engines": { "node": ">= 14" @@ -9186,6 +3834,8 @@ }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -9201,6 +3851,8 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9215,6 +3867,8 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "devOptional": true, "license": "MIT", "engines": { @@ -9223,6 +3877,8 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "devOptional": true, "license": "MIT", "dependencies": { @@ -9237,6 +3893,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", "dependencies": { @@ -9249,16 +3907,22 @@ }, "node_modules/arg": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", "dependencies": { @@ -9274,10 +3938,14 @@ }, "node_modules/array-flatten": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, "node_modules/array-includes": { "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9299,6 +3967,8 @@ }, "node_modules/array.prototype.findlastindex": { "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9319,6 +3989,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { @@ -9336,6 +4008,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", "dependencies": { @@ -9353,6 +4027,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9373,6 +4049,8 @@ }, "node_modules/arrify": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "license": "MIT", "optional": true, "engines": { @@ -9381,11 +4059,15 @@ }, "node_modules/async": { "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, "license": "MIT" }, "node_modules/async-function": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, "license": "MIT", "engines": { @@ -9394,6 +4076,8 @@ }, "node_modules/async-retry": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "license": "MIT", "optional": true, "dependencies": { @@ -9402,10 +4086,14 @@ }, "node_modules/asynckit": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, "node_modules/atob": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "license": "(MIT OR Apache-2.0)", "bin": { "atob": "bin/atob.js" @@ -9416,6 +4104,8 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9429,16 +4119,20 @@ } }, "node_modules/axios": { - "version": "1.10.0", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "node_modules/babel-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "license": "MIT", "dependencies": { @@ -9459,6 +4153,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9474,6 +4170,8 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9489,6 +4187,8 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "license": "MIT", "dependencies": { @@ -9503,6 +4203,8 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "dependencies": { @@ -9528,6 +4230,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "license": "MIT", "dependencies": { @@ -9543,11 +4247,15 @@ }, "node_modules/balanced-match": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/base64-arraybuffer": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", "license": "MIT", "optional": true, "engines": { @@ -9556,6 +4264,8 @@ }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -9574,6 +4284,8 @@ }, "node_modules/bignumber.js": { "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", "engines": { "node": "*" @@ -9581,6 +4293,8 @@ }, "node_modules/body-parser": { "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -9603,6 +4317,8 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -9610,6 +4326,8 @@ }, "node_modules/body-parser/node_modules/iconv-lite": { "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -9620,10 +4338,14 @@ }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -9633,6 +4355,8 @@ }, "node_modules/braces": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -9644,6 +4368,8 @@ }, "node_modules/browserslist": { "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "dev": true, "funding": [ { @@ -9675,6 +4401,8 @@ }, "node_modules/bs-logger": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "license": "MIT", "dependencies": { @@ -9686,6 +4414,8 @@ }, "node_modules/bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9694,6 +4424,8 @@ }, "node_modules/btoa": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "license": "(MIT OR Apache-2.0)", "bin": { "btoa": "bin/btoa.js" @@ -9704,15 +4436,21 @@ }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", "license": "BSD-3-Clause" }, "node_modules/buffer-from": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, "license": "MIT" }, "node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -9720,6 +4458,8 @@ }, "node_modules/call-bind": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "license": "MIT", "dependencies": { @@ -9737,6 +4477,8 @@ }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -9748,6 +4490,8 @@ }, "node_modules/call-bound": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -9762,6 +4506,8 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", "engines": { @@ -9770,6 +4516,8 @@ }, "node_modules/camelcase": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "license": "MIT", "engines": { @@ -9778,6 +4526,8 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "dev": true, "funding": [ { @@ -9797,6 +4547,8 @@ }, "node_modules/canvg": { "version": "3.0.11", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz", + "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", "license": "MIT", "optional": true, "dependencies": { @@ -9815,6 +4567,8 @@ }, "node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -9830,6 +4584,8 @@ }, "node_modules/char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", "engines": { @@ -9838,6 +4594,8 @@ }, "node_modules/ci-info": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -9852,11 +4610,15 @@ }, "node_modules/cjs-module-lexer": { "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", "dev": true, "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "devOptional": true, "license": "ISC", "dependencies": { @@ -9870,6 +4632,8 @@ }, "node_modules/co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", "engines": { @@ -9879,11 +4643,15 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -9895,11 +4663,15 @@ }, "node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "devOptional": true, "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -9910,6 +4682,8 @@ }, "node_modules/commander": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "license": "MIT", "engines": { "node": ">= 10" @@ -9917,11 +4691,15 @@ }, "node_modules/concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, "node_modules/content-disposition": { "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" @@ -9932,6 +4710,8 @@ }, "node_modules/content-type": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -9939,11 +4719,15 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/cookie": { "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -9951,10 +4735,14 @@ }, "node_modules/cookie-signature": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "license": "MIT" }, "node_modules/core-js": { "version": "3.44.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", + "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "hasInstallScript": true, "license": "MIT", "optional": true, @@ -9965,6 +4753,8 @@ }, "node_modules/cors": { "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "license": "MIT", "dependencies": { "object-assign": "^4", @@ -9976,6 +4766,8 @@ }, "node_modules/create-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -9996,11 +4788,15 @@ }, "node_modules/create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -10014,6 +4810,8 @@ }, "node_modules/css-line-break": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", "license": "MIT", "optional": true, "dependencies": { @@ -10022,6 +4820,8 @@ }, "node_modules/cssstyle": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", "license": "MIT", "dependencies": { "@asamuzakjp/css-color": "^3.2.0", @@ -10033,10 +4833,14 @@ }, "node_modules/cssstyle/node_modules/rrweb-cssom": { "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", "license": "MIT" }, "node_modules/d3": { "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", "license": "ISC", "dependencies": { "d3-array": "3", @@ -10076,6 +4880,8 @@ }, "node_modules/d3-array": { "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "license": "ISC", "dependencies": { "internmap": "1 - 2" @@ -10086,6 +4892,8 @@ }, "node_modules/d3-axis": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", "license": "ISC", "engines": { "node": ">=12" @@ -10093,6 +4901,8 @@ }, "node_modules/d3-brush": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -10107,6 +4917,8 @@ }, "node_modules/d3-chord": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", "license": "ISC", "dependencies": { "d3-path": "1 - 3" @@ -10117,6 +4929,8 @@ }, "node_modules/d3-color": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "license": "ISC", "engines": { "node": ">=12" @@ -10124,6 +4938,8 @@ }, "node_modules/d3-contour": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", "license": "ISC", "dependencies": { "d3-array": "^3.2.0" @@ -10134,6 +4950,8 @@ }, "node_modules/d3-delaunay": { "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", "license": "ISC", "dependencies": { "delaunator": "5" @@ -10144,6 +4962,8 @@ }, "node_modules/d3-dispatch": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "license": "ISC", "engines": { "node": ">=12" @@ -10151,6 +4971,8 @@ }, "node_modules/d3-drag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -10162,6 +4984,8 @@ }, "node_modules/d3-dsv": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "license": "ISC", "dependencies": { "commander": "7", @@ -10185,6 +5009,8 @@ }, "node_modules/d3-ease": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", "license": "BSD-3-Clause", "engines": { "node": ">=12" @@ -10192,6 +5018,8 @@ }, "node_modules/d3-fetch": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" @@ -10202,6 +5030,8 @@ }, "node_modules/d3-force": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -10214,6 +5044,8 @@ }, "node_modules/d3-format": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "license": "ISC", "engines": { "node": ">=12" @@ -10221,6 +5053,8 @@ }, "node_modules/d3-geo": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" @@ -10231,6 +5065,8 @@ }, "node_modules/d3-hierarchy": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "license": "ISC", "engines": { "node": ">=12" @@ -10238,6 +5074,8 @@ }, "node_modules/d3-interpolate": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "license": "ISC", "dependencies": { "d3-color": "1 - 3" @@ -10248,6 +5086,8 @@ }, "node_modules/d3-path": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", "license": "ISC", "engines": { "node": ">=12" @@ -10255,6 +5095,8 @@ }, "node_modules/d3-polygon": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", "license": "ISC", "engines": { "node": ">=12" @@ -10262,6 +5104,8 @@ }, "node_modules/d3-quadtree": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "license": "ISC", "engines": { "node": ">=12" @@ -10269,6 +5113,8 @@ }, "node_modules/d3-random": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", "license": "ISC", "engines": { "node": ">=12" @@ -10276,6 +5122,8 @@ }, "node_modules/d3-scale": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", @@ -10290,6 +5138,8 @@ }, "node_modules/d3-scale-chromatic": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", "license": "ISC", "dependencies": { "d3-color": "1 - 3", @@ -10301,6 +5151,8 @@ }, "node_modules/d3-selection": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", "engines": { "node": ">=12" @@ -10308,6 +5160,8 @@ }, "node_modules/d3-shape": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", "license": "ISC", "dependencies": { "d3-path": "^3.1.0" @@ -10318,6 +5172,8 @@ }, "node_modules/d3-time": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", "license": "ISC", "dependencies": { "d3-array": "2 - 3" @@ -10328,6 +5184,8 @@ }, "node_modules/d3-time-format": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "license": "ISC", "dependencies": { "d3-time": "1 - 3" @@ -10338,6 +5196,8 @@ }, "node_modules/d3-timer": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "license": "ISC", "engines": { "node": ">=12" @@ -10345,6 +5205,8 @@ }, "node_modules/d3-transition": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", "license": "ISC", "dependencies": { "d3-color": "1 - 3", @@ -10362,6 +5224,8 @@ }, "node_modules/d3-zoom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -10376,6 +5240,8 @@ }, "node_modules/data-urls": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "license": "MIT", "dependencies": { "whatwg-mimetype": "^4.0.0", @@ -10387,6 +5253,8 @@ }, "node_modules/data-view-buffer": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10403,6 +5271,8 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10419,6 +5289,8 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10435,10 +5307,14 @@ }, "node_modules/dayjs": { "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", "license": "MIT" }, "node_modules/debug": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -10454,10 +5330,14 @@ }, "node_modules/decimal.js": { "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "license": "MIT" }, "node_modules/dedent": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -10471,11 +5351,15 @@ }, "node_modules/deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", "engines": { @@ -10484,6 +5368,8 @@ }, "node_modules/define-data-property": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", "dependencies": { @@ -10500,6 +5386,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -10516,6 +5404,8 @@ }, "node_modules/delaunator": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", "license": "ISC", "dependencies": { "robust-predicates": "^3.0.2" @@ -10523,6 +5413,8 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "license": "MIT", "engines": { "node": ">=0.4.0" @@ -10530,6 +5422,8 @@ }, "node_modules/depd": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -10537,6 +5431,8 @@ }, "node_modules/destroy": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "license": "MIT", "engines": { "node": ">= 0.8", @@ -10545,6 +5441,8 @@ }, "node_modules/detect-newline": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", "engines": { @@ -10553,6 +5451,8 @@ }, "node_modules/diff": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -10561,6 +5461,8 @@ }, "node_modules/diff-sequences": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "license": "MIT", "engines": { @@ -10569,6 +5471,8 @@ }, "node_modules/doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10580,6 +5484,8 @@ }, "node_modules/dompurify": { "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", "license": "(MPL-2.0 OR Apache-2.0)", "optional": true, "optionalDependencies": { @@ -10588,6 +5494,8 @@ }, "node_modules/dunder-proto": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -10600,6 +5508,8 @@ }, "node_modules/duplexify": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", "license": "MIT", "optional": true, "dependencies": { @@ -10611,6 +5521,8 @@ }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" @@ -10618,10 +5530,14 @@ }, "node_modules/ee-first": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, "node_modules/ejs": { "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10635,12 +5551,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.189", + "version": "1.5.191", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.191.tgz", + "integrity": "sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==", "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", "engines": { @@ -10652,11 +5572,15 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "devOptional": true, "license": "MIT" }, "node_modules/encodeurl": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -10664,6 +5588,8 @@ }, "node_modules/end-of-stream": { "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", "optional": true, "dependencies": { @@ -10672,6 +5598,8 @@ }, "node_modules/entities": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -10682,6 +5610,8 @@ }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "license": "MIT", "dependencies": { @@ -10690,6 +5620,8 @@ }, "node_modules/es-abstract": { "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, "license": "MIT", "dependencies": { @@ -10757,6 +5689,8 @@ }, "node_modules/es-define-property": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -10764,6 +5698,8 @@ }, "node_modules/es-errors": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -10771,6 +5707,8 @@ }, "node_modules/es-object-atoms": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -10781,6 +5719,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -10794,6 +5734,8 @@ }, "node_modules/es-shim-unscopables": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, "license": "MIT", "dependencies": { @@ -10805,6 +5747,8 @@ }, "node_modules/es-to-primitive": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "license": "MIT", "dependencies": { @@ -10821,6 +5765,8 @@ }, "node_modules/escalade": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "devOptional": true, "license": "MIT", "engines": { @@ -10829,10 +5775,14 @@ }, "node_modules/escape-html": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -10843,7 +5793,9 @@ } }, "node_modules/eslint": { - "version": "9.31.0", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", + "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", "dev": true, "license": "MIT", "dependencies": { @@ -10853,8 +5805,8 @@ "@eslint/config-helpers": "^0.3.0", "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.31.0", - "@eslint/plugin-kit": "^0.3.1", + "@eslint/js": "9.32.0", + "@eslint/plugin-kit": "^0.3.4", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -10903,6 +5855,8 @@ }, "node_modules/eslint-config-google": { "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -10914,6 +5868,8 @@ }, "node_modules/eslint-config-prettier": { "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { @@ -10928,6 +5884,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "license": "MIT", "dependencies": { @@ -10938,6 +5896,8 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10946,6 +5906,8 @@ }, "node_modules/eslint-module-utils": { "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -10962,6 +5924,8 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10970,6 +5934,8 @@ }, "node_modules/eslint-plugin-import": { "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { @@ -11002,6 +5968,8 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11010,6 +5978,8 @@ }, "node_modules/eslint-plugin-prettier": { "version": "5.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", + "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", "dev": true, "license": "MIT", "dependencies": { @@ -11039,6 +6009,8 @@ }, "node_modules/eslint-scope": { "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -11054,6 +6026,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -11065,6 +6039,8 @@ }, "node_modules/espree": { "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -11081,6 +6057,8 @@ }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "license": "BSD-2-Clause", "bin": { @@ -11093,6 +6071,8 @@ }, "node_modules/esquery": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -11104,6 +6084,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -11115,6 +6097,8 @@ }, "node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -11123,6 +6107,8 @@ }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -11131,6 +6117,8 @@ }, "node_modules/etag": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -11138,6 +6126,8 @@ }, "node_modules/event-target-shim": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "license": "MIT", "optional": true, "engines": { @@ -11146,6 +6136,8 @@ }, "node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", "dependencies": { @@ -11168,6 +6160,8 @@ }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -11175,6 +6169,8 @@ }, "node_modules/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "license": "MIT", "dependencies": { @@ -11190,6 +6186,8 @@ }, "node_modules/express": { "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -11234,6 +6232,8 @@ }, "node_modules/express/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -11241,14 +6241,20 @@ }, "node_modules/express/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, "node_modules/extend": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, "node_modules/farmhash-modern": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", + "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -11256,16 +6262,22 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "devOptional": true, "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -11281,6 +6293,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -11292,16 +6306,22 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, "node_modules/fast-xml-parser": { "version": "4.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", "funding": [ { "type": "github", @@ -11319,6 +6339,8 @@ }, "node_modules/fastq": { "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, "license": "ISC", "dependencies": { @@ -11327,6 +6349,8 @@ }, "node_modules/faye-websocket": { "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" @@ -11337,6 +6361,8 @@ }, "node_modules/fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11345,10 +6371,14 @@ }, "node_modules/fflate": { "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", "license": "MIT" }, "node_modules/file-entry-cache": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11360,6 +6390,8 @@ }, "node_modules/filelist": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11368,6 +6400,8 @@ }, "node_modules/filelist/node_modules/brace-expansion": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11376,6 +6410,8 @@ }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -11387,6 +6423,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -11398,6 +6436,8 @@ }, "node_modules/finalhandler": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "license": "MIT", "dependencies": { "debug": "2.6.9", @@ -11414,6 +6454,8 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -11421,10 +6463,14 @@ }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, "node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -11440,6 +6486,8 @@ }, "node_modules/firebase": { "version": "11.10.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.10.0.tgz", + "integrity": "sha512-nKBXoDzF0DrXTBQJlZa+sbC5By99ysYU1D6PkMRYknm0nCW7rJly47q492Ht7Ndz5MeYSBuboKuhS1e6mFC03w==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -11476,6 +6524,8 @@ }, "node_modules/firebase-admin": { "version": "13.4.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.4.0.tgz", + "integrity": "sha512-Y8DcyKK+4pl4B93ooiy1G8qvdyRMkcNFfBSh+8rbVcw4cW8dgG0VXCCTp5NUwub8sn9vSPsOwpb9tE2OuFmcfQ==", "license": "Apache-2.0", "dependencies": { "@fastify/busboy": "^3.0.0", @@ -11499,6 +6549,8 @@ }, "node_modules/firebase-admin/node_modules/@types/node": { "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -11506,6 +6558,8 @@ }, "node_modules/firebase-functions": { "version": "6.4.0", + "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-6.4.0.tgz", + "integrity": "sha512-Q/LGhJrmJEhT0dbV60J4hCkVSeOM6/r7xJS/ccmkXzTWMjo+UPAYX9zlQmGlEjotstZ0U9GtQSJSgbB2Z+TJDg==", "license": "MIT", "dependencies": { "@types/cors": "^2.8.5", @@ -11526,6 +6580,8 @@ }, "node_modules/firebase-functions-test": { "version": "3.4.1", + "resolved": "https://registry.npmjs.org/firebase-functions-test/-/firebase-functions-test-3.4.1.tgz", + "integrity": "sha512-qAq0oszrBGdf4bnCF6t4FoSgMsepeIXh0Pi/FhikSE6e+TvKKGpfrfUP/5pFjJZxFcLsweoau88KydCql4xSeg==", "dev": true, "license": "MIT", "dependencies": { @@ -11544,6 +6600,8 @@ }, "node_modules/flat-cache": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { @@ -11556,11 +6614,15 @@ }, "node_modules/flatted": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -11579,6 +6641,8 @@ }, "node_modules/for-each": { "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "license": "MIT", "dependencies": { @@ -11593,6 +6657,8 @@ }, "node_modules/form-data": { "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -11607,6 +6673,8 @@ }, "node_modules/forwarded": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -11614,6 +6682,8 @@ }, "node_modules/fresh": { "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -11621,12 +6691,17 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -11638,6 +6713,8 @@ }, "node_modules/function-bind": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11645,6 +6722,8 @@ }, "node_modules/function.prototype.name": { "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -11664,11 +6743,15 @@ }, "node_modules/functional-red-black-tree": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "license": "MIT", "optional": true }, "node_modules/functions-have-names": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, "license": "MIT", "funding": { @@ -11677,6 +6760,8 @@ }, "node_modules/gaxios": { "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", @@ -11691,6 +6776,8 @@ }, "node_modules/gaxios/node_modules/uuid": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -11702,6 +6789,8 @@ }, "node_modules/gcp-metadata": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", "license": "Apache-2.0", "dependencies": { "gaxios": "^6.1.1", @@ -11714,6 +6803,8 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -11722,6 +6813,8 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "devOptional": true, "license": "ISC", "engines": { @@ -11730,6 +6823,8 @@ }, "node_modules/get-intrinsic": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -11752,6 +6847,8 @@ }, "node_modules/get-package-type": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", "engines": { @@ -11760,6 +6857,8 @@ }, "node_modules/get-proto": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -11771,6 +6870,8 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", "engines": { @@ -11782,6 +6883,8 @@ }, "node_modules/get-symbol-description": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "license": "MIT", "dependencies": { @@ -11798,6 +6901,9 @@ }, "node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -11817,6 +6923,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { @@ -11828,6 +6936,8 @@ }, "node_modules/globals": { "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { @@ -11839,6 +6949,8 @@ }, "node_modules/globalthis": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11854,6 +6966,8 @@ }, "node_modules/google-auth-library": { "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", "license": "Apache-2.0", "dependencies": { "base64-js": "^1.3.0", @@ -11869,6 +6983,8 @@ }, "node_modules/google-gax": { "version": "4.6.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz", + "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -11891,6 +7007,8 @@ }, "node_modules/google-gax/node_modules/@grpc/grpc-js": { "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", + "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -11903,6 +7021,8 @@ }, "node_modules/google-gax/node_modules/uuid": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -11915,6 +7035,8 @@ }, "node_modules/google-logging-utils": { "version": "0.0.2", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -11922,6 +7044,8 @@ }, "node_modules/gopd": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -11932,16 +7056,22 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, "node_modules/gtoken": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", "license": "MIT", "dependencies": { "gaxios": "^6.0.0", @@ -11953,6 +7083,8 @@ }, "node_modules/has-bigints": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, "license": "MIT", "engines": { @@ -11964,6 +7096,8 @@ }, "node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -11972,6 +7106,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "license": "MIT", "dependencies": { @@ -11983,6 +7119,8 @@ }, "node_modules/has-proto": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11997,6 +7135,8 @@ }, "node_modules/has-symbols": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -12007,6 +7147,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -12020,6 +7162,8 @@ }, "node_modules/hasown": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -12030,6 +7174,8 @@ }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "license": "MIT", "dependencies": { "whatwg-encoding": "^3.1.1" @@ -12040,6 +7186,8 @@ }, "node_modules/html-entities": { "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", "funding": [ { "type": "github", @@ -12055,11 +7203,15 @@ }, "node_modules/html-escaper": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, "license": "MIT" }, "node_modules/html2canvas": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "license": "MIT", "optional": true, "dependencies": { @@ -12072,6 +7224,8 @@ }, "node_modules/http-errors": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "license": "MIT", "dependencies": { "depd": "2.0.0", @@ -12086,10 +7240,14 @@ }, "node_modules/http-parser-js": { "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "license": "MIT" }, "node_modules/http-proxy-agent": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "license": "MIT", "dependencies": { "agent-base": "^7.1.0", @@ -12101,6 +7259,8 @@ }, "node_modules/https-proxy-agent": { "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { "agent-base": "^7.1.2", @@ -12112,6 +7272,8 @@ }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -12120,6 +7282,8 @@ }, "node_modules/iconv-lite": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -12130,12 +7294,16 @@ }, "node_modules/idb": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", "dev": true, "license": "ISC", "peer": true }, "node_modules/ignore": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -12144,6 +7312,8 @@ }, "node_modules/import-fresh": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12159,6 +7329,8 @@ }, "node_modules/import-local": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "license": "MIT", "dependencies": { @@ -12177,6 +7349,8 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -12185,6 +7359,9 @@ }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "license": "ISC", "dependencies": { @@ -12194,10 +7371,14 @@ }, "node_modules/inherits": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, "node_modules/internal-slot": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "license": "MIT", "dependencies": { @@ -12211,6 +7392,8 @@ }, "node_modules/internmap": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "license": "ISC", "engines": { "node": ">=12" @@ -12218,6 +7401,8 @@ }, "node_modules/ipaddr.js": { "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "license": "MIT", "engines": { "node": ">= 0.10" @@ -12225,6 +7410,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", "dependencies": { @@ -12241,11 +7428,15 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, "license": "MIT" }, "node_modules/is-async-function": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12264,6 +7455,8 @@ }, "node_modules/is-bigint": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12278,6 +7471,8 @@ }, "node_modules/is-boolean-object": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "license": "MIT", "dependencies": { @@ -12293,6 +7488,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "license": "MIT", "engines": { @@ -12304,6 +7501,8 @@ }, "node_modules/is-core-module": { "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", "dependencies": { @@ -12318,6 +7517,8 @@ }, "node_modules/is-data-view": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "license": "MIT", "dependencies": { @@ -12334,6 +7535,8 @@ }, "node_modules/is-date-object": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "license": "MIT", "dependencies": { @@ -12349,6 +7552,8 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -12357,6 +7562,8 @@ }, "node_modules/is-finalizationregistry": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "license": "MIT", "dependencies": { @@ -12371,6 +7578,8 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "devOptional": true, "license": "MIT", "engines": { @@ -12379,6 +7588,8 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", "engines": { @@ -12387,6 +7598,8 @@ }, "node_modules/is-generator-function": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12404,6 +7617,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -12415,6 +7630,8 @@ }, "node_modules/is-map": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "license": "MIT", "engines": { @@ -12426,6 +7643,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "license": "MIT", "engines": { @@ -12437,6 +7656,8 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -12445,6 +7666,8 @@ }, "node_modules/is-number-object": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", "dependencies": { @@ -12460,10 +7683,14 @@ }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "license": "MIT" }, "node_modules/is-regex": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { @@ -12481,6 +7708,8 @@ }, "node_modules/is-set": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "license": "MIT", "engines": { @@ -12492,6 +7721,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "license": "MIT", "dependencies": { @@ -12506,6 +7737,8 @@ }, "node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", "engines": { "node": ">=8" @@ -12516,6 +7749,8 @@ }, "node_modules/is-string": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "license": "MIT", "dependencies": { @@ -12531,6 +7766,8 @@ }, "node_modules/is-symbol": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "license": "MIT", "dependencies": { @@ -12547,6 +7784,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12561,6 +7800,8 @@ }, "node_modules/is-weakmap": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "license": "MIT", "engines": { @@ -12572,6 +7813,8 @@ }, "node_modules/is-weakref": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, "license": "MIT", "dependencies": { @@ -12586,6 +7829,8 @@ }, "node_modules/is-weakset": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12601,16 +7846,22 @@ }, "node_modules/isarray": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -12619,6 +7870,8 @@ }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12634,6 +7887,8 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -12645,6 +7900,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12658,6 +7915,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12671,6 +7930,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12683,6 +7944,8 @@ }, "node_modules/jake": { "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -12700,6 +7963,8 @@ }, "node_modules/jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", "dependencies": { @@ -12725,6 +7990,8 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "license": "MIT", "dependencies": { @@ -12738,6 +8005,8 @@ }, "node_modules/jest-circus": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "license": "MIT", "dependencies": { @@ -12768,6 +8037,8 @@ }, "node_modules/jest-cli": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "license": "MIT", "dependencies": { @@ -12800,6 +8071,8 @@ }, "node_modules/jest-config": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12844,6 +8117,8 @@ }, "node_modules/jest-diff": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "license": "MIT", "dependencies": { @@ -12858,6 +8133,8 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "license": "MIT", "dependencies": { @@ -12869,6 +8146,8 @@ }, "node_modules/jest-each": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12884,6 +8163,8 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "license": "MIT", "dependencies": { @@ -12900,6 +8181,8 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "license": "MIT", "engines": { @@ -12908,6 +8191,8 @@ }, "node_modules/jest-haste-map": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "license": "MIT", "dependencies": { @@ -12932,6 +8217,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "license": "MIT", "dependencies": { @@ -12944,6 +8231,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "license": "MIT", "dependencies": { @@ -12958,6 +8247,8 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "license": "MIT", "dependencies": { @@ -12977,6 +8268,8 @@ }, "node_modules/jest-mock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "license": "MIT", "dependencies": { @@ -12990,6 +8283,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", "engines": { @@ -13006,6 +8301,8 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "license": "MIT", "engines": { @@ -13014,6 +8311,8 @@ }, "node_modules/jest-resolve": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "license": "MIT", "dependencies": { @@ -13033,6 +8332,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "license": "MIT", "dependencies": { @@ -13045,6 +8346,8 @@ }, "node_modules/jest-runner": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13076,6 +8379,8 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13108,6 +8413,8 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "license": "MIT", "dependencies": { @@ -13138,6 +8445,8 @@ }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -13149,6 +8458,8 @@ }, "node_modules/jest-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "license": "MIT", "dependencies": { @@ -13165,6 +8476,8 @@ }, "node_modules/jest-validate": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", "dependencies": { @@ -13181,6 +8494,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { @@ -13192,6 +8507,8 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", "dependencies": { @@ -13210,6 +8527,8 @@ }, "node_modules/jest-worker": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "license": "MIT", "dependencies": { @@ -13224,6 +8543,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -13238,6 +8559,8 @@ }, "node_modules/jose": { "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" @@ -13245,11 +8568,15 @@ }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -13261,6 +8588,8 @@ }, "node_modules/jsdom": { "version": "24.1.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz", + "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==", "license": "MIT", "dependencies": { "cssstyle": "^4.0.1", @@ -13299,6 +8628,8 @@ }, "node_modules/jsesc": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -13310,6 +8641,8 @@ }, "node_modules/json-bigint": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" @@ -13317,26 +8650,36 @@ }, "node_modules/json-buffer": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { @@ -13348,6 +8691,8 @@ }, "node_modules/jsonwebtoken": { "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "license": "MIT", "dependencies": { "jws": "^3.2.2", @@ -13368,6 +8713,8 @@ }, "node_modules/jsonwebtoken/node_modules/jwa": { "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", "license": "MIT", "dependencies": { "buffer-equal-constant-time": "^1.0.1", @@ -13377,6 +8724,8 @@ }, "node_modules/jsonwebtoken/node_modules/jws": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "license": "MIT", "dependencies": { "jwa": "^1.4.1", @@ -13385,6 +8734,8 @@ }, "node_modules/jsonwebtoken/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -13395,6 +8746,8 @@ }, "node_modules/jspdf": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.1.tgz", + "integrity": "sha512-qaGIxqxetdoNnFQQXxTKUD9/Z7AloLaw94fFsOiJMxbfYdBbrBuhWmbzI8TVjrw7s3jBY1PFHofBKMV/wZPapg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.7", @@ -13411,6 +8764,8 @@ }, "node_modules/jspdf-autotable": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-5.0.2.tgz", + "integrity": "sha512-YNKeB7qmx3pxOLcNeoqAv3qTS7KuvVwkFe5AduCawpop3NOkBUtqDToxNc225MlNecxT4kP2Zy3z/y/yvGdXUQ==", "license": "MIT", "peerDependencies": { "jspdf": "^2 || ^3" @@ -13418,11 +8773,15 @@ }, "node_modules/just-extend": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", "dev": true, "license": "MIT" }, "node_modules/jwa": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", "license": "MIT", "dependencies": { "buffer-equal-constant-time": "^1.0.1", @@ -13432,6 +8791,8 @@ }, "node_modules/jwks-rsa": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.2.0.tgz", + "integrity": "sha512-PwchfHcQK/5PSydeKCs1ylNym0w/SSv8a62DgHJ//7x2ZclCoinlsjAfDxAAbpoTPybOum/Jgy+vkvMmKz89Ww==", "license": "MIT", "dependencies": { "@types/express": "^4.17.20", @@ -13447,6 +8808,8 @@ }, "node_modules/jws": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", "license": "MIT", "dependencies": { "jwa": "^2.0.0", @@ -13455,6 +8818,8 @@ }, "node_modules/keyv": { "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", "dependencies": { @@ -13463,6 +8828,8 @@ }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "license": "MIT", "engines": { @@ -13471,6 +8838,8 @@ }, "node_modules/leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", "engines": { @@ -13479,6 +8848,8 @@ }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13490,15 +8861,21 @@ } }, "node_modules/limiter": { - "version": "1.1.5" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" }, "node_modules/lines-and-columns": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -13513,67 +8890,90 @@ }, "node_modules/lodash": { "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true, "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "devOptional": true, "license": "MIT" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "dev": true, + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "license": "MIT" }, "node_modules/lodash.includes": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", "license": "MIT" }, "node_modules/lodash.isboolean": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", "license": "MIT" }, "node_modules/lodash.isinteger": { "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", "license": "MIT" }, "node_modules/lodash.isnumber": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "license": "MIT" }, "node_modules/lodash.isstring": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, "node_modules/lodash.once": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", "license": "MIT" }, "node_modules/long": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", "license": "Apache-2.0" }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -13582,6 +8982,8 @@ }, "node_modules/lru-memoizer": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", + "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", "license": "MIT", "dependencies": { "lodash.clonedeep": "^4.5.0", @@ -13590,6 +8992,8 @@ }, "node_modules/lru-memoizer/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -13600,10 +9004,14 @@ }, "node_modules/lru-memoizer/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "license": "ISC" }, "node_modules/make-dir": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", "dependencies": { @@ -13618,6 +9026,8 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -13629,11 +9039,15 @@ }, "node_modules/make-error": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -13642,6 +9056,8 @@ }, "node_modules/math-intrinsics": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -13649,6 +9065,8 @@ }, "node_modules/media-typer": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -13656,6 +9074,8 @@ }, "node_modules/merge-descriptors": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13663,11 +9083,15 @@ }, "node_modules/merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -13676,6 +9100,8 @@ }, "node_modules/methods": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -13683,6 +9109,8 @@ }, "node_modules/micromatch": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -13695,6 +9123,8 @@ }, "node_modules/mime": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "license": "MIT", "optional": true, "bin": { @@ -13706,6 +9136,8 @@ }, "node_modules/mime-db": { "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -13713,6 +9145,8 @@ }, "node_modules/mime-types": { "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -13723,6 +9157,8 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "license": "MIT", "engines": { @@ -13731,6 +9167,8 @@ }, "node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -13742,6 +9180,8 @@ }, "node_modules/minimist": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", "funding": { @@ -13750,15 +9190,21 @@ }, "node_modules/ms": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -13766,6 +9212,8 @@ }, "node_modules/nise": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz", + "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -13778,6 +9226,8 @@ }, "node_modules/nise/node_modules/@sinonjs/fake-timers": { "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -13786,6 +9236,8 @@ }, "node_modules/nise/node_modules/path-to-regexp": { "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", "dev": true, "license": "MIT", "engines": { @@ -13794,6 +9246,8 @@ }, "node_modules/node-fetch": { "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -13812,14 +9266,20 @@ }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "license": "MIT", "dependencies": { "tr46": "~0.0.3", @@ -13828,6 +9288,8 @@ }, "node_modules/node-forge": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" @@ -13835,16 +9297,22 @@ }, "node_modules/node-int64": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", "engines": { @@ -13853,6 +9321,8 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "license": "MIT", "dependencies": { @@ -13863,11 +9333,15 @@ } }, "node_modules/nwsapi": { - "version": "2.2.20", + "version": "2.2.21", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13875,6 +9349,8 @@ }, "node_modules/object-hash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "license": "MIT", "optional": true, "engines": { @@ -13883,6 +9359,8 @@ }, "node_modules/object-inspect": { "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -13893,6 +9371,8 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", "engines": { @@ -13901,6 +9381,8 @@ }, "node_modules/object.assign": { "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", "dependencies": { @@ -13920,6 +9402,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13937,6 +9421,8 @@ }, "node_modules/object.groupby": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13950,6 +9436,8 @@ }, "node_modules/object.values": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { @@ -13967,6 +9455,8 @@ }, "node_modules/on-finished": { "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", "dependencies": { "ee-first": "1.1.1" @@ -13977,6 +9467,8 @@ }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "devOptional": true, "license": "ISC", "dependencies": { @@ -13985,6 +9477,8 @@ }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", "dependencies": { @@ -13999,6 +9493,8 @@ }, "node_modules/optionator": { "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -14015,6 +9511,8 @@ }, "node_modules/own-keys": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, "license": "MIT", "dependencies": { @@ -14031,6 +9529,8 @@ }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -14045,6 +9545,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -14059,6 +9561,8 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "license": "MIT", "engines": { @@ -14067,6 +9571,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { @@ -14078,6 +9584,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "license": "MIT", "dependencies": { @@ -14095,6 +9603,8 @@ }, "node_modules/parse5": { "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "license": "MIT", "dependencies": { "entities": "^6.0.0" @@ -14105,6 +9615,8 @@ }, "node_modules/parseurl": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -14112,6 +9624,8 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { @@ -14120,6 +9634,8 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "license": "MIT", "engines": { @@ -14128,6 +9644,8 @@ }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -14136,25 +9654,35 @@ }, "node_modules/path-parse": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, "license": "MIT" }, "node_modules/path-to-regexp": { "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "license": "MIT" }, "node_modules/performance-now": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "license": "MIT", "optional": true }, "node_modules/picocolors": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -14166,6 +9694,8 @@ }, "node_modules/pirates": { "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", "engines": { @@ -14174,6 +9704,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14185,6 +9717,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -14197,6 +9731,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -14208,6 +9744,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -14222,6 +9760,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -14233,6 +9773,8 @@ }, "node_modules/possible-typed-array-names": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "license": "MIT", "engines": { @@ -14241,6 +9783,8 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -14249,6 +9793,8 @@ }, "node_modules/prettier": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -14263,6 +9809,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "license": "MIT", "dependencies": { @@ -14274,6 +9822,8 @@ }, "node_modules/pretty-format": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14287,6 +9837,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -14298,6 +9850,8 @@ }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -14310,6 +9864,8 @@ }, "node_modules/proto3-json-serializer": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -14321,6 +9877,8 @@ }, "node_modules/protobufjs": { "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -14343,6 +9901,8 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "license": "MIT", "dependencies": { "forwarded": "0.2.0", @@ -14354,10 +9914,14 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, "node_modules/psl": { "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "license": "MIT", "dependencies": { "punycode": "^2.3.1" @@ -14368,6 +9932,8 @@ }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "license": "MIT", "engines": { "node": ">=6" @@ -14375,6 +9941,8 @@ }, "node_modules/pure-rand": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -14390,6 +9958,8 @@ }, "node_modules/qs": { "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" @@ -14403,10 +9973,14 @@ }, "node_modules/querystringify": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -14426,6 +10000,8 @@ }, "node_modules/raf": { "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "license": "MIT", "optional": true, "dependencies": { @@ -14434,6 +10010,8 @@ }, "node_modules/range-parser": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -14441,6 +10019,8 @@ }, "node_modules/raw-body": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -14454,6 +10034,8 @@ }, "node_modules/raw-body/node_modules/iconv-lite": { "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -14464,11 +10046,15 @@ }, "node_modules/react-is": { "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, "node_modules/readable-stream": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "license": "MIT", "optional": true, "dependencies": { @@ -14482,6 +10068,8 @@ }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "license": "MIT", "dependencies": { @@ -14503,11 +10091,15 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT", "optional": true }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "license": "MIT", "dependencies": { @@ -14527,6 +10119,8 @@ }, "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "devOptional": true, "license": "MIT", "engines": { @@ -14535,10 +10129,14 @@ }, "node_modules/requires-port": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "license": "MIT" }, "node_modules/resolve": { "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "license": "MIT", "dependencies": { @@ -14558,6 +10156,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "license": "MIT", "dependencies": { @@ -14569,6 +10169,8 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -14577,6 +10179,8 @@ }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { @@ -14585,6 +10189,8 @@ }, "node_modules/resolve.exports": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "license": "MIT", "engines": { @@ -14593,6 +10199,8 @@ }, "node_modules/retry": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "license": "MIT", "optional": true, "engines": { @@ -14601,6 +10209,8 @@ }, "node_modules/retry-request": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", + "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", "license": "MIT", "optional": true, "dependencies": { @@ -14614,6 +10224,8 @@ }, "node_modules/reusify": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -14623,6 +10235,8 @@ }, "node_modules/rgbcolor": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", "optional": true, "engines": { @@ -14631,14 +10245,20 @@ }, "node_modules/robust-predicates": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", "license": "Unlicense" }, "node_modules/rrweb-cssom": { "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -14661,10 +10281,14 @@ }, "node_modules/rw": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", "license": "BSD-3-Clause" }, "node_modules/safe-array-concat": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -14683,6 +10307,8 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -14701,6 +10327,8 @@ }, "node_modules/safe-push-apply": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, "license": "MIT", "dependencies": { @@ -14716,6 +10344,8 @@ }, "node_modules/safe-regex-test": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { @@ -14732,10 +10362,14 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, "node_modules/saxes": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" @@ -14746,10 +10380,14 @@ }, "node_modules/scmp": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", + "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==", "license": "BSD-3-Clause" }, "node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -14758,6 +10396,8 @@ }, "node_modules/send": { "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "license": "MIT", "dependencies": { "debug": "2.6.9", @@ -14780,6 +10420,8 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -14787,10 +10429,14 @@ }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -14798,6 +10444,8 @@ }, "node_modules/send/node_modules/mime": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "license": "MIT", "bin": { "mime": "cli.js" @@ -14808,6 +10456,8 @@ }, "node_modules/serve-static": { "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", @@ -14821,6 +10471,8 @@ }, "node_modules/set-function-length": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "license": "MIT", "dependencies": { @@ -14837,6 +10489,8 @@ }, "node_modules/set-function-name": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14851,6 +10505,8 @@ }, "node_modules/set-proto": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, "license": "MIT", "dependencies": { @@ -14864,10 +10520,14 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -14879,6 +10539,8 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -14887,6 +10549,8 @@ }, "node_modules/side-channel": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -14904,6 +10568,8 @@ }, "node_modules/side-channel-list": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -14918,6 +10584,8 @@ }, "node_modules/side-channel-map": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -14934,6 +10602,8 @@ }, "node_modules/side-channel-weakmap": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -14951,11 +10621,15 @@ }, "node_modules/signal-exit": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, "license": "ISC" }, "node_modules/sinon": { "version": "18.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.1.tgz", + "integrity": "sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -14973,6 +10647,8 @@ }, "node_modules/sinon/node_modules/@sinonjs/fake-timers": { "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -14981,11 +10657,15 @@ }, "node_modules/sisteransi": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", "engines": { @@ -14994,6 +10674,8 @@ }, "node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -15002,6 +10684,8 @@ }, "node_modules/source-map-support": { "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", "dependencies": { @@ -15011,11 +10695,15 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/stack-utils": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15027,6 +10715,8 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", "engines": { @@ -15035,6 +10725,8 @@ }, "node_modules/stackblur-canvas": { "version": "2.7.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", + "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", "license": "MIT", "optional": true, "engines": { @@ -15043,6 +10735,8 @@ }, "node_modules/statuses": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -15050,6 +10744,8 @@ }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15062,6 +10758,8 @@ }, "node_modules/stream-events": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", "license": "MIT", "optional": true, "dependencies": { @@ -15070,11 +10768,15 @@ }, "node_modules/stream-shift": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "license": "MIT", "optional": true }, "node_modules/string_decoder": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "license": "MIT", "optional": true, "dependencies": { @@ -15083,6 +10785,8 @@ }, "node_modules/string-length": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15095,6 +10799,8 @@ }, "node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "devOptional": true, "license": "MIT", "dependencies": { @@ -15108,6 +10814,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "license": "MIT", "dependencies": { @@ -15128,6 +10836,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15145,6 +10855,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "license": "MIT", "dependencies": { @@ -15161,6 +10873,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "devOptional": true, "license": "MIT", "dependencies": { @@ -15172,6 +10886,8 @@ }, "node_modules/strip-bom": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { @@ -15180,6 +10896,8 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", "engines": { @@ -15188,6 +10906,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -15199,6 +10919,8 @@ }, "node_modules/strnum": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", "funding": [ { "type": "github", @@ -15210,11 +10932,15 @@ }, "node_modules/stubs": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", "license": "MIT", "optional": true }, "node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -15226,6 +10952,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "license": "MIT", "engines": { @@ -15237,6 +10965,8 @@ }, "node_modules/svg-pathdata": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", "license": "MIT", "optional": true, "engines": { @@ -15245,10 +10975,14 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "license": "MIT" }, "node_modules/synckit": { "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { @@ -15263,6 +10997,8 @@ }, "node_modules/teeny-request": { "version": "9.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", + "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -15278,6 +11014,8 @@ }, "node_modules/teeny-request/node_modules/agent-base": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "license": "MIT", "optional": true, "dependencies": { @@ -15289,6 +11027,8 @@ }, "node_modules/teeny-request/node_modules/http-proxy-agent": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "license": "MIT", "optional": true, "dependencies": { @@ -15302,6 +11042,8 @@ }, "node_modules/teeny-request/node_modules/https-proxy-agent": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "license": "MIT", "optional": true, "dependencies": { @@ -15314,6 +11056,8 @@ }, "node_modules/teeny-request/node_modules/uuid": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -15326,6 +11070,8 @@ }, "node_modules/test-exclude": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", "dependencies": { @@ -15339,6 +11085,8 @@ }, "node_modules/text-segmentation": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", "license": "MIT", "optional": true, "dependencies": { @@ -15347,11 +11095,15 @@ }, "node_modules/tmpl": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15363,6 +11115,8 @@ }, "node_modules/toidentifier": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "license": "MIT", "engines": { "node": ">=0.6" @@ -15370,6 +11124,8 @@ }, "node_modules/tough-cookie": { "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", @@ -15383,6 +11139,8 @@ }, "node_modules/tr46": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "license": "MIT", "dependencies": { "punycode": "^2.3.1" @@ -15393,6 +11151,8 @@ }, "node_modules/ts-api-utils": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, "license": "MIT", "engines": { @@ -15404,11 +11164,15 @@ }, "node_modules/ts-deepmerge": { "version": "2.0.7", + "resolved": "https://registry.npmjs.org/ts-deepmerge/-/ts-deepmerge-2.0.7.tgz", + "integrity": "sha512-3phiGcxPSSR47RBubQxPoZ+pqXsEsozLo4G4AlSrsMKTFg9TA3l+3he5BqpUi9wiuDbaHWXH/amlzQ49uEdXtg==", "dev": true, "license": "ISC" }, "node_modules/ts-jest": { "version": "29.4.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz", + "integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -15460,6 +11224,8 @@ }, "node_modules/ts-jest/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -15471,6 +11237,8 @@ }, "node_modules/ts-jest/node_modules/type-fest": { "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -15482,6 +11250,8 @@ }, "node_modules/ts-node": { "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15524,6 +11294,8 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -15532,6 +11304,8 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "license": "MIT", "dependencies": { @@ -15543,6 +11317,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", "dependencies": { @@ -15554,6 +11330,8 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", "engines": { @@ -15562,13 +11340,17 @@ }, "node_modules/tslib": { "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/twilio": { - "version": "5.7.3", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.8.0.tgz", + "integrity": "sha512-aJLBvI7ODLmFHI7ZYLBiMZKIdHuF9PrPeRM/GBMDg/AAzGXs4V8gEnNPHyTVThK0/8J48YHSqXMlQ+WJR5nxoQ==", "license": "MIT", "dependencies": { - "axios": "^1.8.3", + "axios": "^1.11.0", "dayjs": "^1.11.9", "https-proxy-agent": "^5.0.0", "jsonwebtoken": "^9.0.2", @@ -15582,6 +11364,8 @@ }, "node_modules/twilio/node_modules/agent-base": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "license": "MIT", "dependencies": { "debug": "4" @@ -15592,6 +11376,8 @@ }, "node_modules/twilio/node_modules/https-proxy-agent": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "license": "MIT", "dependencies": { "agent-base": "6", @@ -15603,6 +11389,8 @@ }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -15614,6 +11402,8 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", "engines": { @@ -15622,6 +11412,8 @@ }, "node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -15633,6 +11425,8 @@ }, "node_modules/type-is": { "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "license": "MIT", "dependencies": { "media-typer": "0.3.0", @@ -15644,6 +11438,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "license": "MIT", "dependencies": { @@ -15657,6 +11453,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "license": "MIT", "dependencies": { @@ -15675,6 +11473,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15695,6 +11495,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "license": "MIT", "dependencies": { @@ -15714,6 +11516,8 @@ }, "node_modules/typescript": { "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -15726,6 +11530,8 @@ }, "node_modules/typescript-eslint": { "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", "dev": true, "license": "MIT", "dependencies": { @@ -15748,6 +11554,8 @@ }, "node_modules/unbox-primitive": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "license": "MIT", "dependencies": { @@ -15765,10 +11573,14 @@ }, "node_modules/undici-types": { "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/universalify": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "license": "MIT", "engines": { "node": ">= 4.0.0" @@ -15776,6 +11588,8 @@ }, "node_modules/unpipe": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -15783,6 +11597,8 @@ }, "node_modules/update-browserslist-db": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -15812,6 +11628,8 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -15820,6 +11638,8 @@ }, "node_modules/url-parse": { "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "license": "MIT", "dependencies": { "querystringify": "^2.1.1", @@ -15828,11 +11648,15 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT", "optional": true }, "node_modules/utils-merge": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "license": "MIT", "engines": { "node": ">= 0.4.0" @@ -15840,6 +11664,8 @@ }, "node_modules/utrie": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", "license": "MIT", "optional": true, "dependencies": { @@ -15848,6 +11674,8 @@ }, "node_modules/uuid": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -15859,11 +11687,15 @@ }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { @@ -15877,6 +11709,8 @@ }, "node_modules/vary": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -15884,6 +11718,8 @@ }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "license": "MIT", "dependencies": { "xml-name-validator": "^5.0.0" @@ -15894,6 +11730,8 @@ }, "node_modules/walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -15902,12 +11740,16 @@ }, "node_modules/web-vitals": { "version": "4.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", + "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==", "dev": true, "license": "Apache-2.0", "peer": true }, "node_modules/webidl-conversions": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -15915,6 +11757,8 @@ }, "node_modules/websocket-driver": { "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", @@ -15927,6 +11771,8 @@ }, "node_modules/websocket-extensions": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "license": "Apache-2.0", "engines": { "node": ">=0.8.0" @@ -15934,6 +11780,8 @@ }, "node_modules/whatwg-encoding": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" @@ -15944,6 +11792,8 @@ }, "node_modules/whatwg-mimetype": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "license": "MIT", "engines": { "node": ">=18" @@ -15951,6 +11801,8 @@ }, "node_modules/whatwg-url": { "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", "license": "MIT", "dependencies": { "tr46": "^5.1.0", @@ -15962,6 +11814,8 @@ }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -15976,6 +11830,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "license": "MIT", "dependencies": { @@ -15994,6 +11850,8 @@ }, "node_modules/which-builtin-type": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -16020,6 +11878,8 @@ }, "node_modules/which-collection": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "license": "MIT", "dependencies": { @@ -16037,6 +11897,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, "license": "MIT", "dependencies": { @@ -16057,6 +11919,8 @@ }, "node_modules/word-wrap": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { @@ -16065,6 +11929,8 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "devOptional": true, "license": "MIT", "dependencies": { @@ -16081,11 +11947,15 @@ }, "node_modules/wrappy": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "devOptional": true, "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "license": "ISC", "dependencies": { @@ -16098,6 +11968,8 @@ }, "node_modules/ws": { "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -16117,6 +11989,8 @@ }, "node_modules/xml-name-validator": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "license": "Apache-2.0", "engines": { "node": ">=18" @@ -16124,6 +11998,8 @@ }, "node_modules/xmlbuilder": { "version": "13.0.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", + "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", "license": "MIT", "engines": { "node": ">=6.0" @@ -16131,10 +12007,14 @@ }, "node_modules/xmlchars": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "devOptional": true, "license": "ISC", "engines": { @@ -16143,11 +12023,15 @@ }, "node_modules/yallist": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "devOptional": true, "license": "MIT", "dependencies": { @@ -16165,6 +12049,8 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "devOptional": true, "license": "ISC", "engines": { @@ -16173,6 +12059,8 @@ }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "license": "MIT", "engines": { @@ -16181,6 +12069,8 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "devOptional": true, "license": "MIT", "engines": { @@ -16191,11 +12081,10 @@ } }, "node_modules/zod": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.5.tgz", - "integrity": "sha512-/5UuuRPStvHXu7RS+gmvRf4NXrNxpSllGwDnCBcJZtQsKrviYXm54yDGV2KYNLT5kq0lHGcl7lqWJLgSaG+tgA==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.10.tgz", + "integrity": "sha512-3vB+UU3/VmLL2lvwcY/4RV2i9z/YU0DTV/tDuYjrwmx5WeJ7hwy+rGEEx8glHp6Yxw7ibRbKSaIFBgReRPe5KA==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 62dd030d..00000000 --- a/package-lock.json +++ /dev/null @@ -1,1742 +0,0 @@ -{ - "name": "ENGAGE-HF-Firebase", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "hasInstallScript": true, - "dependencies": { - "firebase-admin": "^12.1.1" - } - }, - "node_modules/@fastify/busboy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.0.0.tgz", - "integrity": "sha512-83rnH2nCvclWaPQQKvkJ2pdOjG4TZyEVuFDnlOF6KP08lDaaceVyw/W63mDuafQT+MKHCvXIPpE5uYWeM0rT4w==", - "license": "MIT" - }, - "node_modules/@firebase/app-check-interop-types": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", - "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", - "license": "Apache-2.0" - }, - "node_modules/@firebase/app-types": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", - "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", - "license": "Apache-2.0" - }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", - "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", - "license": "Apache-2.0" - }, - "node_modules/@firebase/component": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.8.tgz", - "integrity": "sha512-LcNvxGLLGjBwB0dJUsBGCej2fqAepWyBubs4jt1Tiuns7QLbXHuyObZ4aMeBjZjWx4m8g1LoVI9QFpSaq/k4/g==", - "license": "Apache-2.0", - "dependencies": { - "@firebase/util": "1.9.7", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.7.tgz", - "integrity": "sha512-wjXr5AO8RPxVVg7rRCYffT7FMtBjHRfJ9KMwi19MbOf0vBf0H9YqW3WCgcnLpXI6ehiUcU3z3qgPnnU0nK6SnA==", - "license": "Apache-2.0", - "dependencies": { - "@firebase/app-check-interop-types": "0.3.2", - "@firebase/auth-interop-types": "0.2.3", - "@firebase/component": "0.6.8", - "@firebase/logger": "0.4.2", - "@firebase/util": "1.9.7", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-compat": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.7.tgz", - "integrity": "sha512-R/3B+VVzEFN5YcHmfWns3eitA8fHLTL03io+FIoMcTYkajFnrBdS3A+g/KceN9omP7FYYYGTQWF9lvbEx6eMEg==", - "license": "Apache-2.0", - "dependencies": { - "@firebase/component": "0.6.8", - "@firebase/database": "1.0.7", - "@firebase/database-types": "1.0.4", - "@firebase/logger": "0.4.2", - "@firebase/util": "1.9.7", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.4.tgz", - "integrity": "sha512-mz9ZzbH6euFXbcBo+enuJ36I5dR5w+enJHHjy9Y5ThCdKUseqfDjW3vCp1YxE9zygFCSjJJ/z1cQ+zodvUcwPQ==", - "license": "Apache-2.0", - "dependencies": { - "@firebase/app-types": "0.9.2", - "@firebase/util": "1.9.7" - } - }, - "node_modules/@firebase/logger": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", - "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/util": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.7.tgz", - "integrity": "sha512-fBVNH/8bRbYjqlbIhZ+lBtdAAS4WqZumx03K06/u7fJSpz1TGjEMm1ImvKD47w+xaFKIP2ori6z8BrbakRfjJA==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@google-cloud/firestore": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.9.0.tgz", - "integrity": "sha512-c4ALHT3G08rV7Zwv8Z2KG63gZh66iKdhCBeDfCpIkLrjX6EAjTD/szMdj14M+FnQuClZLFfW5bAgoOjfNmLtJg==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "functional-red-black-tree": "^1.0.1", - "google-gax": "^4.3.3", - "protobufjs": "^7.2.6" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@google-cloud/paginator": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", - "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "arrify": "^2.0.0", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@google-cloud/projectify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", - "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@google-cloud/promisify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", - "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@google-cloud/storage": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.12.1.tgz", - "integrity": "sha512-Z3ZzOnF3YKLuvpkvF+TjQ6lztxcAyTILp+FjKonmVpEwPa9vFvxpZjubLR4sB6bf19i/8HL2AXRjA0YFgHFRmQ==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@google-cloud/paginator": "^5.0.0", - "@google-cloud/projectify": "^4.0.0", - "@google-cloud/promisify": "^4.0.0", - "abort-controller": "^3.0.0", - "async-retry": "^1.3.3", - "duplexify": "^4.1.3", - "fast-xml-parser": "^4.4.1", - "gaxios": "^6.0.2", - "google-auth-library": "^9.6.3", - "html-entities": "^2.5.2", - "mime": "^3.0.0", - "p-limit": "^3.0.1", - "retry-request": "^7.0.0", - "teeny-request": "^9.0.0", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@google-cloud/storage/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.11.1.tgz", - "integrity": "sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@grpc/proto-loader": "^0.7.13", - "@js-sdsl/ordered-map": "^4.4.2" - }, - "engines": { - "node": ">=12.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.5", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", - "license": "MIT", - "optional": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/caseless": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", - "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", - "license": "MIT", - "optional": true - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.5", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", - "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "license": "MIT" - }, - "node_modules/@types/jsonwebtoken": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz", - "integrity": "sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "license": "MIT", - "optional": true - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.0.tgz", - "integrity": "sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/request": { - "version": "2.48.12", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", - "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/caseless": "*", - "@types/node": "*", - "@types/tough-cookie": "*", - "form-data": "^2.5.0" - } - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "license": "MIT", - "optional": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "optional": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "license": "MIT", - "optional": true, - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT", - "optional": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "license": "MIT", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "optional": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "optional": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "optional": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/duplexify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", - "license": "MIT", - "optional": true, - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.2" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT", - "optional": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT", - "optional": true - }, - "node_modules/farmhash-modern": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", - "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT", - "optional": true - }, - "node_modules/fast-xml-parser": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", - "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/firebase-admin": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.4.0.tgz", - "integrity": "sha512-3HOHqJxNmFv0JgK3voyMQgmcibhJN4LQfZfhnZGb6pcONnZxejki4nQ1twsoJlGaIvgQWBtO7rc5mh/cqlOJNA==", - "license": "Apache-2.0", - "dependencies": { - "@fastify/busboy": "^3.0.0", - "@firebase/database-compat": "^1.0.2", - "@firebase/database-types": "^1.0.0", - "@types/node": "^22.0.1", - "farmhash-modern": "^1.1.0", - "jsonwebtoken": "^9.0.0", - "jwks-rsa": "^3.1.0", - "node-forge": "^1.3.1", - "uuid": "^10.0.0" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "@google-cloud/firestore": "^7.7.0", - "@google-cloud/storage": "^7.7.0" - } - }, - "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "license": "MIT", - "optional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "license": "MIT", - "optional": true - }, - "node_modules/gaxios": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/gaxios/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/gcp-metadata": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", - "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "gaxios": "^6.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "optional": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/google-auth-library": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.0.tgz", - "integrity": "sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "gaxios": "^6.1.1", - "gcp-metadata": "^6.1.0", - "gtoken": "^7.0.0", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/google-gax": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.9.tgz", - "integrity": "sha512-tcjQr7sXVGMdlvcG25wSv98ap1dtF4Z6mcV0rztGIddOcezw4YMb/uTXg72JPrLep+kXcVjaJjg6oo3KLf4itQ==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@grpc/grpc-js": "^1.10.9", - "@grpc/proto-loader": "^0.7.13", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "google-auth-library": "^9.3.0", - "node-fetch": "^2.7.0", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^2.0.2", - "protobufjs": "^7.3.2", - "retry-request": "^7.0.0", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/google-gax/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/gtoken": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", - "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", - "license": "MIT", - "optional": true, - "dependencies": { - "gaxios": "^6.0.0", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "license": "MIT" - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "optional": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC", - "optional": true - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jose": { - "version": "4.15.9", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", - "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jwks-rsa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.1.0.tgz", - "integrity": "sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==", - "license": "MIT", - "dependencies": { - "@types/express": "^4.17.17", - "@types/jsonwebtoken": "^9.0.2", - "debug": "^4.3.4", - "jose": "^4.14.6", - "limiter": "^1.1.5", - "lru-memoizer": "^2.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "license": "MIT", - "optional": true, - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "license": "MIT", - "optional": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "license": "MIT" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "license": "MIT" - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "license": "Apache-2.0", - "optional": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-memoizer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", - "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", - "license": "MIT", - "dependencies": { - "lodash.clonedeep": "^4.5.0", - "lru-cache": "6.0.0" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "optional": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/proto3-json-serializer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", - "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "protobufjs": "^7.2.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/retry-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", - "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/request": "^2.48.8", - "extend": "^3.0.2", - "teeny-request": "^9.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "license": "MIT", - "optional": true, - "dependencies": { - "stubs": "^3.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "license": "MIT", - "optional": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "optional": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "license": "MIT", - "optional": true - }, - "node_modules/stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", - "license": "MIT", - "optional": true - }, - "node_modules/teeny-request": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", - "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.9", - "stream-events": "^1.0.5", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/teeny-request/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/teeny-request/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/teeny-request/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT", - "optional": true - }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT", - "optional": true - }, - "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause", - "optional": true - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "optional": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "optional": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "optional": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package-lock.json.license b/package-lock.json.license deleted file mode 100644 index ed095e3c..00000000 --- a/package-lock.json.license +++ /dev/null @@ -1,5 +0,0 @@ -This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project - -SPDX-FileCopyrightText: 2023 Stanford University - -SPDX-License-Identifier: MIT diff --git a/package.json b/package.json index 6c59a599..d53a5c3b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,4 @@ { - "dependencies": { - "firebase-admin": "^12.1.1" - }, "scripts": { "install": "npm --prefix functions/models install --save-dev && npm --prefix functions install --save-dev", "lint": "npm --prefix functions/models run lint && npm --prefix functions run lint", From 4e9d5b49283e4952f59651fea2e8836d07c02e7a Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Sun, 27 Jul 2025 13:05:13 +0200 Subject: [PATCH 07/18] update --- functions/models/package.json | 4 +-- functions/models/src/fhir/fhirConverters.ts | 30 +++++++++++++++------ package.json | 2 +- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/functions/models/package.json b/functions/models/package.json index 53f552bb..99f2ee1b 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -39,7 +39,7 @@ "typescript-eslint": "^8.26" }, "peerDependencies": { - "zod": "^4.0.5", - "@types/fhir": "^0.0.41" + "@types/fhir": "^0.0.41", + "zod": "^4.0.5" } } diff --git a/functions/models/src/fhir/fhirConverters.ts b/functions/models/src/fhir/fhirConverters.ts index e8eb2d63..00aadb0c 100644 --- a/functions/models/src/fhir/fhirConverters.ts +++ b/functions/models/src/fhir/fhirConverters.ts @@ -6,7 +6,15 @@ // SPDX-License-Identifier: MIT // -import { z } from 'zod' +import { + allergyIntoleranceSchema, + appointmentSchema, + medicationSchema, + medicationRequestSchema, + observationSchema, + questionnaireSchema, + questionnaireResponseSchema, +} from '@stanfordspezi/spezi-firebase-fhir' import { FHIRAllergyIntolerance } from './fhirAllergyIntolerance.js' import { FHIRAppointment } from './fhirAppointment.js' import { FHIRMedication } from './fhirMedication.js' @@ -18,21 +26,23 @@ import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' export const fhirAllergyIntoleranceConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRAllergyIntolerance(data)), + allergyIntoleranceSchema.transform( + (data) => new FHIRAllergyIntolerance(data), + ), { nullProperties: [], }, ) export const fhirAppointmentConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRAppointment(data)), + appointmentSchema.transform((data) => new FHIRAppointment(data)), { nullProperties: [], }, ) export const fhirMedicationConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRMedication(data)), + medicationSchema.transform((data) => new FHIRMedication(data)), { nullProperties: [], }, @@ -40,7 +50,9 @@ export const fhirMedicationConverter = new FHIRSchemaConverter( export const fhirMedicationRequestConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRMedicationRequest(data)), + medicationRequestSchema.transform( + (data) => new FHIRMedicationRequest(data), + ), { nullProperties: [], }, @@ -48,7 +60,7 @@ export const fhirMedicationRequestConverter = export const fhirObservationConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRObservation(data)), + observationSchema.transform((data) => new FHIRObservation(data)), { nullProperties: [], }, @@ -56,7 +68,7 @@ export const fhirObservationConverter = export const fhirQuestionnaireConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRQuestionnaire(data)), + questionnaireSchema.transform((data) => new FHIRQuestionnaire(data)), { nullProperties: [], }, @@ -64,7 +76,9 @@ export const fhirQuestionnaireConverter = export const fhirQuestionnaireResponseConverter = new FHIRSchemaConverter( - z.object({}).transform((data: any) => new FHIRQuestionnaireResponse(data)), + questionnaireResponseSchema.transform( + (data) => new FHIRQuestionnaireResponse(data), + ), { nullProperties: [], }, diff --git a/package.json b/package.json index d53a5c3b..24a5b50f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "scripts": { - "install": "npm --prefix functions/models install --save-dev && npm --prefix functions install --save-dev", + "install": "npm --prefix functions/models install && npm --prefix functions install", "lint": "npm --prefix functions/models run lint && npm --prefix functions run lint", "lint:fix": "npm --prefix functions/models run lint:fix && npm --prefix functions run lint:fix", "lint:strict": "npm --prefix functions/models run lint:strict && npm --prefix functions run lint:strict", From 95af812e314b5042fea76f5a8cc757e9409e47b4 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 18:24:57 +0200 Subject: [PATCH 08/18] Integrate spezi-firebase-fhir --- functions/data/drugs.json | 10100 +++++++-------- functions/data/medications.json | 4300 ++++--- functions/data/questionnaires.json | 8237 ++++-------- functions/models/package-lock.json | 8 +- functions/models/package.json | 2 +- functions/package-lock.json | 8 +- .../seeding/users_0_appointments.json | 14 +- .../users_0_bloodPressureObservations.json | 10400 +++++----------- .../users_0_bodyWeightObservations.json | 5226 +++----- .../users_0_creatinineObservations.json | 26 +- .../users_0_dryWeightObservations.json | 26 +- .../seeding/users_0_eGfrObservations.json | 26 +- .../users_0_heartRateObservations.json | 5200 +++----- .../seeding/users_0_medicationRequests.json | 26 +- .../users_0_potassiumObservations.json | 26 +- 15 files changed, 16515 insertions(+), 27110 deletions(-) diff --git a/functions/data/drugs.json b/functions/data/drugs.json index c6607d51..f88a4c7e 100644 --- a/functions/data/drugs.json +++ b/functions/data/drugs.json @@ -1,5727 +1,5963 @@ { "1808": { "197417": { - "id": "197417", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197417", - "display": "Bumetanide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 0.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "197417", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197417", + "display": "Bumetanide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 0.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "197418": { - "id": "197418", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197418", - "display": "Bumetanide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "197418", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197418", + "display": "Bumetanide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "197419": { - "id": "197419", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197419", - "display": "Bumetanide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "197419", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197419", + "display": "Bumetanide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "1998": { "308962": { - "id": "308962", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "308962", - "display": "Captopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "308962", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "308962", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "308963": { - "id": "308963", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "308963", - "display": "Captopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "308963", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "308963", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "308964": { - "id": "308964", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "308964", - "display": "Captopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "308964", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "308964", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "317173": { - "id": "317173", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "317173", - "display": "Captopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "317173", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "317173", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "3827": { "858804": { - "id": "858804", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858804", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "858804", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858804", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "858810": { - "id": "858810", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858810", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "858810", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858810", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "858813": { - "id": "858813", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858813", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "858813", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858813", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "858817": { - "id": "858817", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858817", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "858817", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858817", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "4109": { "1251903": { - "id": "1251903", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1251903", - "display": "Ethacrynate (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4109", - "display": "Ethacrynic Acid" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1251903", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1251903", + "display": "Ethacrynate (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4109", + "display": "Ethacrynic Acid" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1251907": { - "id": "1251907", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1251907", - "display": "Ethacrynate (Oral Tablet)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4109", - "display": "Ethacrynic Acid" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1251907", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1251907", + "display": "Ethacrynate (Oral Tablet)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4109", + "display": "Ethacrynic Acid" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "4603": { "197732": { - "id": "197732", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197732", - "display": "Furosemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "197732", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197732", + "display": "Furosemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "310429": { - "id": "310429", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "310429", - "display": "Furosemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "310429", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "310429", + "display": "Furosemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "313988": { - "id": "313988", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "313988", - "display": "Furosemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "313988", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "313988", + "display": "Furosemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "9997": { "198222": { - "id": "198222", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198222", - "display": "Spironolactone (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198222", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198222", + "display": "Spironolactone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "198223": { - "id": "198223", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198223", - "display": "Spironolactone (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198223", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198223", + "display": "Spironolactone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "313096": { - "id": "313096", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "313096", - "display": "Spironolactone (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "313096", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "313096", + "display": "Spironolactone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "18867": { "898687": { - "id": "898687", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898687", - "display": "Benazepril (Oral Pill)" + "data": { + "resourceType": "Medication", + "id": "898687", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898687", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } } ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" } }, "898690": { - "id": "898690", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898690", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "898690", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898690", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "898719": { - "id": "898719", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898719", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "898719", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898719", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "898723": { - "id": "898723", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898723", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "898723", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898723", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "19484": { "854901": { - "id": "854901", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854901", - "display": "Bisoprolol (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "19484", - "display": "Bisoprolol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "854901", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854901", + "display": "Bisoprolol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "19484", + "display": "Bisoprolol" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "854905": { - "id": "854905", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854905", - "display": "Bisoprolol (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "19484", - "display": "Bisoprolol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "854905", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854905", + "display": "Bisoprolol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "19484", + "display": "Bisoprolol" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "20352": { "200031": { - "id": "200031", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200031", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6.25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "200031", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200031", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6.25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "200032": { - "id": "200032", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200032", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "200032", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200032", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "200033": { - "id": "200033", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200033", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "200033", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200033", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "686924": { - "id": "686924", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "686924", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 3.125, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "686924", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "686924", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 3.125, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "29046": { "197884": { - "id": "197884", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197884", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "197884", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197884", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "205326": { - "id": "205326", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "205326", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 30, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "205326", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "205326", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 30, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "311353": { - "id": "311353", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "311353", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "311353", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "311353", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "311354": { - "id": "311354", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "311354", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "311354", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "311354", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "314076": { - "id": "314076", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "314076", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "314076", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "314076", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "314077": { - "id": "314077", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "314077", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "314077", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "314077", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "30131": { "1299896": { - "id": "1299896", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1299896", - "display": "Moexipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "30131", - "display": "Moexipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1299896", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1299896", + "display": "Moexipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "30131", + "display": "Moexipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1299897": { - "id": "1299897", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1299897", - "display": "Moexipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "30131", - "display": "Moexipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 7.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1299897", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1299897", + "display": "Moexipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "30131", + "display": "Moexipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 7.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "35208": { "312748": { - "id": "312748", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "312748", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "312748", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "312748", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "312749": { - "id": "312749", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "312749", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "312749", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "312749", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "312750": { - "id": "312750", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "312750", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "312750", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "312750", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "314203": { - "id": "314203", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "314203", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "314203", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "314203", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "35296": { "198188": { - "id": "198188", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198188", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198188", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198188", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" + ] } }, "198189": { - "id": "198189", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198189", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198189", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198189", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" + ] } }, "251856": { - "id": "251856", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "251856", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "251856", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "251856", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "251857": { - "id": "251857", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "251857", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "251857", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "251857", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "261962": { - "id": "261962", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "261962", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "261962", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "261962", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" + ] } }, "401965": { - "id": "401965", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "401965", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "401965", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "401965", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "401968": { - "id": "401968", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "401968", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "401968", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "401968", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "845488": { - "id": "845488", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "845488", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "845488", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "845488", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" + ] } } }, "38413": { "198369": { - "id": "198369", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198369", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198369", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198369", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "198370": { - "id": "198370", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198370", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198370", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198370", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "198371": { - "id": "198371", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198371", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198371", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198371", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "198372": { - "id": "198372", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198372", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "198372", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198372", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "2589881": { - "id": "2589881", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2589881", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "2589881", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2589881", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "2589885": { - "id": "2589885", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2589885", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 60, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "2589885", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2589885", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 60, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "38454": { "199351": { - "id": "199351", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "199351", - "display": "Trandolapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "199351", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "199351", + "display": "Trandolapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "199352": { - "id": "199352", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "199352", - "display": "Trandolapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "199352", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "199352", + "display": "Trandolapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "199353": { - "id": "199353", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "199353", - "display": "Trandolapril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "199353", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "199353", + "display": "Trandolapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "54552": { "854925": { - "id": "854925", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854925", - "display": "Perindopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 8, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "854925", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854925", + "display": "Perindopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 8, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "854984": { - "id": "854984", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854984", - "display": "Perindopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "854984", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854984", + "display": "Perindopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - } - }, - "854988": { - "id": "854988", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854988", - "display": "Perindopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" + ] + } + }, + "854988": { + "data": { + "resourceType": "Medication", + "id": "854988", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854988", + "display": "Perindopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "69749": { "349199": { - "id": "349199", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349199", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349199", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349199", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "349200": { - "id": "349200", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349200", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 320, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349200", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349200", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 320, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "349201": { - "id": "349201", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349201", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 160, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349201", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349201", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 160, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "349483": { - "id": "349483", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349483", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349483", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349483", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "73494": { "205304": { - "id": "205304", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "205304", - "display": "Telmisartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "205304", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "205304", + "display": "Telmisartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "205305": { - "id": "205305", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "205305", - "display": "Telmisartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "205305", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "205305", + "display": "Telmisartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "282755": { - "id": "282755", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "282755", - "display": "Telmisartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "282755", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "282755", + "display": "Telmisartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "83515": { "310139": { - "id": "310139", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "310139", - "display": "Eprosartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83515", - "display": "Eprosartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "310139", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "310139", + "display": "Eprosartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83515", + "display": "Eprosartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "310140": { - "id": "310140", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "310140", - "display": "Eprosartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83515", - "display": "Eprosartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 600, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "310140", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "310140", + "display": "Eprosartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83515", + "display": "Eprosartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 600, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "83818": { "200094": { - "id": "200094", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200094", - "display": "Irbesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 75, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "200094", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200094", + "display": "Irbesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 75, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "200095": { - "id": "200095", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200095", - "display": "Irbesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 150, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "200095", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200095", + "display": "Irbesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 150, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "200096": { - "id": "200096", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200096", - "display": "Irbesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 300, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "200096", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200096", + "display": "Irbesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 300, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "118463": { "349373": { - "id": "349373", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349373", - "display": "Olmesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349373", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349373", + "display": "Olmesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "349401": { - "id": "349401", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349401", - "display": "Olmesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349401", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349401", + "display": "Olmesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "349405": { - "id": "349405", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349405", - "display": "Olmesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "349405", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349405", + "display": "Olmesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "203160": { "979480": { - "id": "979480", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "979480", - "display": "Losartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "979480", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "979480", + "display": "Losartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "979485": { - "id": "979485", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "979485", - "display": "Losartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "979485", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "979485", + "display": "Losartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "979492": { - "id": "979492", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "979492", - "display": "Losartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "979492", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "979492", + "display": "Losartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "214354": { "153822": { - "id": "153822", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "153822", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "153822", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "153822", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "153823": { - "id": "153823", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "153823", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 8, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "153823", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "153823", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 8, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "577776": { - "id": "577776", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "577776", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 16, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "577776", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "577776", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 16, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "639537": { - "id": "639537", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "639537", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 32, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "639537", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "639537", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 32, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "221124": { "866412": { - "id": "866412", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866412", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "866412", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866412", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" + ] } }, "866419": { - "id": "866419", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866419", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "866419", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866419", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" + ] } }, "866427": { - "id": "866427", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866427", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "866427", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866427", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" + ] } }, "866436": { - "id": "866436", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866436", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "866436", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866436", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" + ] } }, "1999031": { - "id": "1999031", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999031", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1999031", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999031", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } }, "1999033": { - "id": "1999033", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999033", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1999033", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999033", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } }, "1999035": { - "id": "1999035", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999035", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1999035", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999035", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } }, "1999037": { - "id": "1999037", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999037", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1999037", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999037", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } } }, "227278": { "857169": { - "id": "857169", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "857169", - "display": "Fosinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "857169", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "857169", + "display": "Fosinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "857183": { - "id": "857183", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "857183", - "display": "Fosinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "857183", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "857183", + "display": "Fosinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "857187": { - "id": "857187", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "857187", - "display": "Fosinopril (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "857187", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "857187", + "display": "Fosinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "298869": { "351256": { - "id": "351256", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "351256", - "display": "Eplerenone (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "298869", - "display": "Eplerenone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "351256", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "351256", + "display": "Eplerenone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "298869", + "display": "Eplerenone" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "351257": { - "id": "351257", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "351257", - "display": "Eplerenone (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "298869", - "display": "Eplerenone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "351257", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "351257", + "display": "Eplerenone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "298869", + "display": "Eplerenone" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "668310": { "860510": { - "id": "860510", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860510", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "860510", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860510", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } }, "860516": { - "id": "860516", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860516", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "860516", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860516", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } }, "860522": { - "id": "860522", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860522", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "860522", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860522", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } }, "860532": { - "id": "860532", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860532", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "860532", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860532", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" + ] } } }, "1091642": { "1091646": { - "id": "1091646", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091646", - "display": "Azilsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091642", - "display": "Azilsartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1091646", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091646", + "display": "Azilsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091642", + "display": "Azilsartan Medoxomil" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1091652": { - "id": "1091652", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091652", - "display": "Azilsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091642", - "display": "Azilsartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1091652", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091652", + "display": "Azilsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091642", + "display": "Azilsartan Medoxomil" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "1373458": { "1373463": { - "id": "1373463", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373463", - "display": "Canagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373458", - "display": "Canagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1373463", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373463", + "display": "Canagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373458", + "display": "Canagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1373471": { - "id": "1373471", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373471", - "display": "Canagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373458", - "display": "Canagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 300, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1373471", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373471", + "display": "Canagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373458", + "display": "Canagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 300, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "1488564": { "1488569": { - "id": "1488569", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488569", - "display": "Dapagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488564", - "display": "Dapagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1488569", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488569", + "display": "Dapagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488564", + "display": "Dapagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1488574": { - "id": "1488574", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488574", - "display": "Dapagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488564", - "display": "Dapagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1488574", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488574", + "display": "Dapagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488564", + "display": "Dapagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "1545653": { "1545658": { - "id": "1545658", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545658", - "display": "Empagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545653", - "display": "Empagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1545658", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545658", + "display": "Empagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545653", + "display": "Empagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1545666": { - "id": "1545666", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545666", - "display": "Empagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545653", - "display": "Empagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1545666", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545666", + "display": "Empagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545653", + "display": "Empagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "1656339": { "1656340": { - "id": "1656340", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656340", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 24, - "unit": "mg" - }, - "denominator": { - "value": 1 + "data": { + "resourceType": "Medication", + "id": "1656340", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656340", + "display": "Sacubitril/Valsartan (Oral Pill)" } - } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 24, + "unit": "mg" + }, + "denominator": { + "value": 1 } - ] + } }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 26, - "unit": "mg" + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 26, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1656349": { - "id": "1656349", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656349", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 49, - "unit": "mg" - }, - "denominator": { - "value": 1 + "data": { + "resourceType": "Medication", + "id": "1656349", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656349", + "display": "Sacubitril/Valsartan (Oral Pill)" } - } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 49, + "unit": "mg" + }, + "denominator": { + "value": 1 } - ] + } }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 51, - "unit": "mg" + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 51, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1656354": { - "id": "1656354", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656354", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 97, - "unit": "mg" - }, - "denominator": { - "value": 1 + "data": { + "resourceType": "Medication", + "id": "1656354", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656354", + "display": "Sacubitril/Valsartan (Oral Pill)" } - } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 97, + "unit": "mg" + }, + "denominator": { + "value": 1 } - ] + } }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 103, - "unit": "mg" + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 103, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "2679793": { - "id": "2679793", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2679793", - "display": "Sacubitril/Valsartan (Oral Pellet)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - }, - "denominator": { - "value": 1 + "data": { + "resourceType": "Medication", + "id": "2679793", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2679793", + "display": "Sacubitril/Valsartan (Oral Pellet)" } - } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Pellet", + "display": "Oral Pellet" + } + ], + "text": "Oral Pellet" }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + }, + "denominator": { + "value": 1 } - ] + } }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 16, - "unit": "mg" + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 16, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Pellet", - "display": "Oral Pellet" - } - ], - "text": "Oral Pellet" + ] } }, "2679800": { - "id": "2679800", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2679800", - "display": "Sacubitril/Valsartan (Oral Pellet)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6, - "unit": "mg" - }, - "denominator": { - "value": 1 + "data": { + "resourceType": "Medication", + "id": "2679800", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2679800", + "display": "Sacubitril/Valsartan (Oral Pellet)" } - } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Pellet", + "display": "Oral Pellet" + } + ], + "text": "Oral Pellet" }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6, + "unit": "mg" + }, + "denominator": { + "value": 1 } - ] + } }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6, - "unit": "mg" + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Pellet", - "display": "Oral Pellet" - } - ], - "text": "Oral Pellet" + ] } } }, "1992672": { "1992810": { - "id": "1992810", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992810", - "display": "Ertugliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992672", - "display": "Ertugliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1992810", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992810", + "display": "Ertugliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992672", + "display": "Ertugliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "1992819": { - "id": "1992819", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992819", - "display": "Ertugliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992672", - "display": "Ertugliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "1992819", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992819", + "display": "Ertugliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992672", + "display": "Ertugliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "2627044": { "2637859": { - "id": "2637859", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2637859", - "display": "Bexagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2627044", - "display": "Bexagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "2637859", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2637859", + "display": "Bexagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2627044", + "display": "Bexagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } }, "2638675": { "2638683": { - "id": "2638683", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638683", - "display": "Sotagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638675", - "display": "Sotagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "2638683", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638683", + "display": "Sotagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638675", + "display": "Sotagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } }, "2638691": { - "id": "2638691", - "resourceType": "Medication", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638691", - "display": "Sotagliflozin (Oral Pill)" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638675", - "display": "Sotagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" + "data": { + "resourceType": "Medication", + "id": "2638691", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638691", + "display": "Sotagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638675", + "display": "Sotagliflozin" + } + ] }, - "denominator": { - "value": 1 + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + }, + "denominator": { + "value": 1 + } } } - } - ], - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" + ] } } } diff --git a/functions/data/medications.json b/functions/data/medications.json index 4da4d1bc..a924cbcb 100644 --- a/functions/data/medications.json +++ b/functions/data/medications.json @@ -1,61 +1,59 @@ { "1808": { - "id": "1808", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Bumex" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + "data": { + "resourceType": "Medication", + "id": "1808", + "contained": [], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Bumex" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] + } } }, "1998": { - "id": "1998", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 18.75, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1998", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1998/drugs/308963", "display": "Captopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 18.75, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -77,29 +75,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 150, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1998/drugs/308964", "display": "Captopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 150, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -122,54 +119,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Capoten" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Captopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Captopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Capoten" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] + } } }, "3827": { - "id": "3827", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "3827", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/3827/drugs/858813", "display": "Enalapril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -191,29 +205,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/3827/drugs/858810", "display": "Enalapril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -236,106 +249,129 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Vasotec" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Enalapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Enalapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Vasotec" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] + } } }, "4109": { - "id": "4109", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Edecrin" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + "data": { + "resourceType": "Medication", + "id": "4109", + "contained": [], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4109", - "display": "Ethacrynic Acid" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Edecrin" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4109", + "display": "Ethacrynic Acid" + } + ] + } } }, "4603": { - "id": "4603", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Lasix" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + "data": { + "resourceType": "Medication", + "id": "4603", + "contained": [], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Lasix" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] + } } }, "9997": { - "id": "9997", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/2", - "display": "Mineralocorticoid Receptor Antagonists (MRAs)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "9997", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/9997/drugs/313096", "display": "Spironolactone (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -357,29 +393,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/9997/drugs/313096", "display": "Spironolactone (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -402,54 +437,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Aldactone" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/2", + "display": "Mineralocorticoid Receptor Antagonists (MRAs)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Spironolactone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Spironolactone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Aldactone" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] + } } }, "18867": { - "id": "18867", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "18867", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/18867/drugs/898723", "display": "Benazepril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -471,29 +523,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/18867/drugs/898719", "display": "Benazepril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -516,54 +567,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Lotensin" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Benazepril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Benazepril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Lotensin" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] + } } }, "19484": { - "id": "19484", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "19484", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/19484/drugs/854905", "display": "Bisoprolol (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -585,29 +653,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/19484/drugs/854901", "display": "Bisoprolol (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -630,54 +697,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Zebeta" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "19484", - "display": "Bisoprolol" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Bisoprolol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Bisoprolol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Zebeta" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "19484", + "display": "Bisoprolol" + } + ] + } } }, "20352": { - "id": "20352", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6.25, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "20352", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/20352/drugs/200031", "display": "Carvedilol (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6.25, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -699,29 +783,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/20352/drugs/200033", "display": "Carvedilol (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -744,54 +827,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Coreg" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Carvedilol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Carvedilol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Coreg" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] + } } }, "29046": { - "id": "29046", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "29046", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/29046/drugs/311353", "display": "Lisinopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -813,29 +913,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/29046/drugs/197884", "display": "Lisinopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -858,54 +957,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Zestril" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Lisinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Lisinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Zestril" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + } } }, "30131": { - "id": "30131", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 7.5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "30131", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/30131/drugs/1299897", "display": "Moexipril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 7.5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -927,29 +1043,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/30131/drugs/1299896", "display": "Moexipril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -972,54 +1087,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Univasc" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "30131", - "display": "Moexipril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Moexipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Moexipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Univasc" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "30131", + "display": "Moexipril" + } + ] + } } }, "35208": { - "id": "35208", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "35208", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35208/drugs/312748", "display": "Quinapril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1041,29 +1173,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35208/drugs/314203", "display": "Quinapril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1086,54 +1217,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Accupril" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Quinapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Quinapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Accupril" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] + } } }, "35296": { - "id": "35296", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "35296", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35296/drugs/401965", "display": "Ramipril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1155,29 +1303,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35296/drugs/401968", "display": "Ramipril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1200,80 +1347,100 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Altace" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Ramipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Ramipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Altace" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + } } }, "38413": { - "id": "38413", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Soaanz" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + "data": { + "resourceType": "Medication", + "id": "38413", + "contained": [], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Soaanz" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + } } }, "38454": { - "id": "38454", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "38454", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/38454/drugs/199353", "display": "Trandolapril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1295,29 +1462,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/38454/drugs/199352", "display": "Trandolapril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1340,54 +1506,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Mavik" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Trandolapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Trandolapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Mavik" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] + } } }, "54552": { - "id": "54552", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "54552", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/54552/drugs/854984", "display": "Perindopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1409,29 +1592,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 16, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/54552/drugs/854925", "display": "Perindopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 16, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1454,54 +1636,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Aceon" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Perindopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Perindopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Aceon" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] + } } }, "69749": { - "id": "69749", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "69749", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/69749/drugs/349483", "display": "Valsartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1523,29 +1722,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 320, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/69749/drugs/349201", "display": "Valsartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 320, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1568,54 +1766,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Diovan" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Diovan" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + } } }, - "73494": { - "id": "73494", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + "73494": { + "data": { + "resourceType": "Medication", + "id": "73494", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/73494/drugs/205304", "display": "Telmisartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1637,29 +1852,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/73494/drugs/205305", "display": "Telmisartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1682,54 +1896,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Micardis" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Telmisartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Telmisartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Micardis" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] + } } }, "83515": { - "id": "83515", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "83515", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83515/drugs/310139", "display": "Eprosartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1751,29 +1982,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 800, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83515/drugs/310139", "display": "Eprosartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 800, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1796,54 +2026,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Teveten" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83515", - "display": "Eprosartan" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Eprosartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Eprosartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Teveten" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83515", + "display": "Eprosartan" + } + ] + } } }, "83818": { - "id": "83818", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 75, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "83818", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83818/drugs/200094", "display": "Irbesartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 75, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1865,29 +2112,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 300, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83818/drugs/200096", "display": "Irbesartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 300, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1910,54 +2156,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Avapro" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Irbesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Irbesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Avapro" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] + } } }, "118463": { - "id": "118463", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "118463", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/118463/drugs/349373", "display": "Olmesartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -1979,29 +2242,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/118463/drugs/349405", "display": "Olmesartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2024,54 +2286,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Benicar" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Olmesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Olmesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Benicar" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] + } } }, "203160": { - "id": "203160", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "203160", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/203160/drugs/979485", "display": "Losartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2093,29 +2372,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 150, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/203160/drugs/979480", "display": "Losartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 150, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2138,54 +2416,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Cozaar" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Losartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Losartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Cozaar" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] + } } }, "214354": { - "id": "214354", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "214354", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/214354/drugs/153822", "display": "Candesartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2207,29 +2502,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 32, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/214354/drugs/639537", "display": "Candesartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 32, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2252,54 +2546,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Atacand" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - } - }, - "221124": { - "id": "221124", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - } - ] - } - ], + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Candesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Candesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Atacand" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] + } + } + }, + "221124": { + "data": { + "resourceType": "Medication", + "id": "221124", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/221124/drugs/1999035", "display": "Metoprolol XR (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2321,29 +2632,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/221124/drugs/866419", "display": "Metoprolol XR (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2366,54 +2676,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Toprol XL" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Metoprolol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Metoprolol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Toprol XL" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + } } }, "227278": { - "id": "227278", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "227278", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/227278/drugs/857169", "display": "Fosinopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2435,29 +2762,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/227278/drugs/857187", "display": "Fosinopril (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2480,54 +2806,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Monopril" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Fosinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Fosinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Monopril" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] + } } }, "298869": { - "id": "298869", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/2", - "display": "Mineralocorticoid Receptor Antagonists (MRAs)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "298869", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/298869/drugs/351256", "display": "Eplerenone (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2549,29 +2892,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/298869/drugs/351257", "display": "Eplerenone (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2594,54 +2936,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Inspra" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "298869", - "display": "Eplerenone" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/2", + "display": "Mineralocorticoid Receptor Antagonists (MRAs)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Eplerenone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Eplerenone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Inspra" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "298869", + "display": "Eplerenone" + } + ] + } } }, "668310": { - "id": "668310", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "668310", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/668310/drugs/860510", "display": "Carvedilol XR (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2663,29 +3022,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/668310/drugs/860532", "display": "Carvedilol XR (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2708,54 +3066,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Coreg CR" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Carvedilol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Carvedilol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Coreg CR" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] + } } }, "1091642": { - "id": "1091642", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1091642", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1091642/drugs/1091646", "display": "Azilsartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2777,29 +3152,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1091642/drugs/1091652", "display": "Azilsartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2822,54 +3196,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Edarbi" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091642", - "display": "Azilsartan Medoxomil" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Azilsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Azilsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Edarbi" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091642", + "display": "Azilsartan Medoxomil" + } + ] + } } }, "1373458": { - "id": "1373458", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1373458", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1373458/drugs/1373463", "display": "Canagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2891,29 +3282,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1373458/drugs/1373463", "display": "Canagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -2936,54 +3326,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Invokana" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373458", - "display": "Canagliflozin" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Canagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Canagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Invokana" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373458", + "display": "Canagliflozin" + } + ] + } } }, "1488564": { - "id": "1488564", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1488564", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1488564/drugs/1488574", "display": "Dapagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3005,29 +3412,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1488564/drugs/1488569", "display": "Dapagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3050,54 +3456,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Farxiga" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488564", - "display": "Dapagliflozin" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Dapagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Dapagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Farxiga" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488564", + "display": "Dapagliflozin" + } + ] + } } }, "1545653": { - "id": "1545653", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1545653", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1545653/drugs/1545658", "display": "Empagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3119,29 +3542,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1545653/drugs/1545658", "display": "Empagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3164,60 +3586,80 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Jardiance" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545653", - "display": "Empagliflozin" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Empagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Empagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Jardiance" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545653", + "display": "Empagliflozin" + } + ] + } } }, "1656339": { - "id": "1656339", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/5", - "display": "Angiotensin Receptor/Neprilysin Inhibitors (ARNI)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 48, - "unit": "mg" - }, - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 52, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1656339", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1656339/drugs/1656340", "display": "Sacubitril/Valsartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 48, + "unit": "mg" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 52, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3239,35 +3681,37 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 194, - "unit": "mg" - }, - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 206, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1656339/drugs/1656354", "display": "Sacubitril/Valsartan (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 194, + "unit": "mg" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 206, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3290,78 +3734,95 @@ } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/5", + "display": "Angiotensin Receptor/Neprilysin Inhibitors (ARNI)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Entresto" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656339", + "display": "Sacubitril / Valsartan" + } + ] }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Entresto" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + "ingredient": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656339", - "display": "Sacubitril / Valsartan" + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + } + }, + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + } } ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - } - }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - } - } - ] + } }, "1992672": { - "id": "1992672", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "1992672", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1992672/drugs/1992810", "display": "Ertugliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3383,29 +3844,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1992672/drugs/1992819", "display": "Ertugliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3428,54 +3888,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Steglatro" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992672", - "display": "Ertugliflozin" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Ertugliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Ertugliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Steglatro" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992672", + "display": "Ertugliflozin" + } + ] + } } }, "2627044": { - "id": "2627044", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "2627044", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2627044/drugs/2637859", "display": "Bexagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3497,29 +3974,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2627044/drugs/2637859", "display": "Bexagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3542,54 +4018,71 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Brenzavvy" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2627044", - "display": "Bexagliflozin" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Bexagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Bexagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Brenzavvy" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2627044", + "display": "Bexagliflozin" + } + ] + } } }, "2638675": { - "id": "2638675", - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" - } - ] - } - ], + "data": { + "resourceType": "Medication", + "id": "2638675", + "contained": [ + { + "id": "#minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2638675/drugs/2638683", "display": "Sotagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3611,29 +4104,28 @@ ] } ] - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueMedicationRequest": { - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantities": [ - { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" - } - ] - } - ], + }, + { + "id": "#targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2638675/drugs/2638691", "display": "Sotagliflozin (Oral Pill)" }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + } + } + ], "dosageInstruction": [ { "timing": { @@ -3656,21 +4148,43 @@ } ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Inpefa" - } - ], - "resourceType": "Medication", - "code": { - "coding": [ + ], + "extension": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638675", - "display": "Sotagliflozin" - } - ] + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Sotagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Sotagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Inpefa" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638675", + "display": "Sotagliflozin" + } + ] + } } } } \ No newline at end of file diff --git a/functions/data/questionnaires.json b/functions/data/questionnaires.json index 1e9b1e3b..f74b66d6 100644 --- a/functions/data/questionnaires.json +++ b/functions/data/questionnaires.json @@ -1,1526 +1,1050 @@ { "0": { - "id": "9528ccc2-d1be-4c4c-9c3c-19f78e51ec19", - "extension": null, "resourceType": "Questionnaire", + "id": "9528ccc2-d1be-4c4c-9c3c-19f78e51ec19", + "title": "KCCQ-12", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", "meta": { - "versionId": null, - "lastUpdated": null, "profile": [ "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" ], - "security": null, "tag": [ { - "id": null, - "extension": null, "system": "urn:ietf:bcp:47", - "version": null, "code": "en-US", - "display": "English", - "userSelected": null + "display": "English" } ] }, - "title": "KCCQ-12", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "subjectType": [ - "Patient" - ], "useContext": [ { "code": { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/ValueSet/usage-context-type", - "version": null, "code": "focus", - "display": "Clinical Focus", - "userSelected": null + "display": "Clinical Focus" }, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "urn:oid:2.16.578.1.12.4.1.1.8655", - "version": null, - "code": null, - "display": "KCCQ-12", - "userSelected": null + "display": "KCCQ-12" } - ], - "text": null - }, - "valueQuantity": null + ] + } } ], "contact": [ { - "name": "http://spezi.health", - "telecom": null + "name": "http://spezi.health" } ], + "subjectType": [ + "Patient" + ], "url": "http://spezi.health/fhir/questionnaire/9528ccc2-d1be-4c4c-9c3c-19f78e51ec19", "item": [ { "linkId": "73490535-203f-44b2-d1b7-7c0a786c16f9", "type": "display", "text": "The following questions refer to your heart failure and how it may affect your life. Please read and complete the following questions. There are no right or wrong answers. Please mark the answer that best applies to you.\n\nThese results will be send to your care team.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "c0b3bef6-1e2d-4621-d82e-b73069574dc4", "type": "group", - "text": "Heart failure affects different people in different ways. Some feel shortness of breath while others feel fatigue. Please indicate how much you are limited by heart failure (shortness of breath or fatigue) in your ability to do the following activities over the past 2 weeks.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "a459b804-35bf-4792-f1eb-0b52c4e176e1", "type": "choice", "text": "Showering/bathing", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "c973b297-4561-4b8c-c8c6-fb559ca15169", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "1", - "display": "Extremely Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Extremely Limited" } }, { "valueCoding": { "id": "1a8c0f4f-12a7-458d-8881-0a0750117ff0", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "2", - "display": "Quite a bit Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Quite a bit Limited" } }, { "valueCoding": { "id": "1e372729-1834-41c4-8cda-9a8196a77971", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "3", - "display": "Moderately Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Moderately Limited" } }, { "valueCoding": { "id": "cb3c686a-42a0-4c68-8b8d-f2621129adef", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "4", - "display": "Slightly Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Slightly Limited" } }, { "valueCoding": { "id": "4c04162f-e529-406b-a0fa-d636ad1bf6d7", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "5", - "display": "Not at all Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Not at all Limited" } }, { "valueCoding": { "id": "c4f351f5-33d6-477a-f9ba-f68a1ae0df6d", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "6", - "display": "Limited for other reasons or did not do the activity", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Limited for other reasons or did not do the activity" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "cf9c5031-1ed5-438a-fc7d-dc69234015a0", "type": "choice", "text": "Walking 1 block on level ground", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "c973b297-4561-4b8c-c8c6-fb559ca15169", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "1", - "display": "Extremely Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Extremely Limited" } }, { "valueCoding": { "id": "1a8c0f4f-12a7-458d-8881-0a0750117ff0", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "2", - "display": "Quite a bit Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Quite a bit Limited" } }, { "valueCoding": { "id": "1e372729-1834-41c4-8cda-9a8196a77971", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "3", - "display": "Moderately Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Moderately Limited" } }, { "valueCoding": { "id": "cb3c686a-42a0-4c68-8b8d-f2621129adef", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "4", - "display": "Slightly Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Slightly Limited" } }, { "valueCoding": { "id": "4c04162f-e529-406b-a0fa-d636ad1bf6d7", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "5", - "display": "Not at all Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Not at all Limited" } }, { "valueCoding": { "id": "c4f351f5-33d6-477a-f9ba-f68a1ae0df6d", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "6", - "display": "Limited for other reasons or did not do the activity", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Limited for other reasons or did not do the activity" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "1fad0f81-b2a9-4c8f-9a78-4b2a5d7aef07", "type": "choice", "text": "Hurrying or jogging (as if to catch a bus)", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "c973b297-4561-4b8c-c8c6-fb559ca15169", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "1", - "display": "Extremely Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Extremely Limited" } }, { "valueCoding": { "id": "1a8c0f4f-12a7-458d-8881-0a0750117ff0", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "2", - "display": "Quite a bit Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Quite a bit Limited" } }, { "valueCoding": { "id": "1e372729-1834-41c4-8cda-9a8196a77971", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "3", - "display": "Moderately Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Moderately Limited" } }, { "valueCoding": { "id": "cb3c686a-42a0-4c68-8b8d-f2621129adef", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "4", - "display": "Slightly Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Slightly Limited" } }, { "valueCoding": { "id": "4c04162f-e529-406b-a0fa-d636ad1bf6d7", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "5", - "display": "Not at all Limited", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Not at all Limited" } }, { "valueCoding": { "id": "c4f351f5-33d6-477a-f9ba-f68a1ae0df6d", - "extension": null, - "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", - "version": null, "code": "6", - "display": "Limited for other reasons or did not do the activity", - "userSelected": null + "system": "urn:uuid:8290e1d8-8141-4982-deb9-57f9d2e13a14", + "display": "Limited for other reasons or did not do the activity" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Heart failure affects different people in different ways. Some feel shortness of breath while others feel fatigue. Please indicate how much you are limited by heart failure (shortness of breath or fatigue) in your ability to do the following activities over the past 2 weeks." }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "692bda7d-a616-43d1-8dc6-8291f6460ab2", "type": "choice", "text": "Over the past 2 weeks, how many times did you have swelling in your feet, ankles or legs when you woke up in the morning?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "Every morning", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Every morning" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "3 or more times per week but not every day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "3 or more times per week but not every day" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "1-2 times per week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "1-2 times per week" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "Less than once a week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Less than once a week" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "Never over the past 2 weeks", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Never over the past 2 weeks" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "b1734b9e-1d16-4238-8556-5ae3fa0ba913", "type": "choice", "text": "Over the past 2 weeks, on average, how many times has fatigue limited your ability to do what you wanted", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "All of the time", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "All of the time" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "Several times per day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Several times per day" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "At least once a day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "At least once a day" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "3 or more times per week but not every day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "3 or more times per week but not every day" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "1-2 times per week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "1-2 times per week" } }, { "valueCoding": { "id": "e174ffbc-23d4-4c44-94c5-1864bf2afa18", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "6", - "display": "Less than once a week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Less than once a week" } }, { "valueCoding": { "id": "853fb552-dd2c-48f6-86b9-1bb923d7fd2d", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "7", - "display": "Never over the past 2 weeks", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Never over the past 2 weeks" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "57f37fb3-a0ad-4b1f-844e-3f67d9b76946", "type": "choice", "text": "Over the past 2 weeks, on average, how many times has shortness of breath limited your ability to do what you wanted", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "All of the time", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "All of the time" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "Several times per day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Several times per day" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "At least once a day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "At least once a day" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "3 or more times per week but not every day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "3 or more times per week but not every day" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "1-2 times per week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "1-2 times per week" } }, { "valueCoding": { "id": "e174ffbc-23d4-4c44-94c5-1864bf2afa18", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "6", - "display": "Less than once a week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Less than once a week" } }, { "valueCoding": { "id": "853fb552-dd2c-48f6-86b9-1bb923d7fd2d", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "7", - "display": "Never over the past 2 weeks", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Never over the past 2 weeks" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "396164df-d045-4c56-d710-513297bdc6f2", "type": "choice", "text": "Over the past 2 weeks, on average, how many times have you been forced to sleep sitting up in a chair or with at least 3 pillows to prop you up because of shortness of breath?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "Every night", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Every night" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "3 or more times per week but not every day", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "3 or more times per week but not every day" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "1-2 times per week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "1-2 times per week" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "Less than once a week", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Less than once a week" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "Never over the past 2 weeks", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Never over the past 2 weeks" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "75e3f62e-e37d-48a2-f4d9-af2db8922da0", "type": "choice", "text": "Over the past 2 weeks, how much has your heart failure limited your enjoyment of life?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "It has extremely limited my enjoyment of life", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "It has extremely limited my enjoyment of life" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "It has limited my enjoyment of life quite a bit", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "It has limited my enjoyment of life quite a bit" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "It has moderately limited my enjoyment of life", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "It has moderately limited my enjoyment of life" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "It has slightly limited my enjoyment of life", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "It has slightly limited my enjoyment of life" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "It has not limited my enjoyment of life", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "It has not limited my enjoyment of life" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "fce3a16e-c6d8-4bac-8ab5-8f4aee4adc08", "type": "choice", "text": "If you had to spend the rest of your life with your heart failure the way it is right now, how would you feel about this?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "Not at all satisfied", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Not at all satisfied" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "Mostly dissatisfied", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Mostly dissatisfied" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "Somewhat satisfied", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Somewhat satisfied" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "Mostly satisfied", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Mostly satisfied" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "Completely satisfied", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Completely satisfied" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] }, { "linkId": "8649bc8c-f908-487d-87a4-a97106b1a4c3", "type": "group", - "text": "How much does your heart failure affect your lifestyle? Please indicate how your heart failure may have limited your participation in the following activities over the past 2 weeks.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "8b022e69-127d-4447-8190-39ac645e60e1", "type": "choice", "text": "Hobbies, recreational activities", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "5df54746-3a58-4153-8f07-1f13fdc09902", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "1", - "display": "Severely Limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Severely Limited" } }, { "valueCoding": { "id": "a57b3a46-a005-4204-a07f-b2d535a6d5ab", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "2", - "display": "Limited quite a bit", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Limited quite a bit" } }, { "valueCoding": { "id": "632d08fb-b521-4511-8887-b7c375d901f3", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "3", - "display": "Moderately limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Moderately limited" } }, { "valueCoding": { "id": "fcbe715a-b86c-4fdc-8855-8aaa353d06d7", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "4", - "display": "Slightly limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Slightly limited" } }, { "valueCoding": { "id": "d9cf6b00-5fed-48ac-a2be-a2e29688c5fa", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "5", - "display": "Did not limit at all", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Did not limit at all" } }, { "valueCoding": { "id": "8a20b488-aad4-4676-86d3-c494b979db3f", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "6", - "display": "Does not apply or did not do for other reasons", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Does not apply or did not do for other reasons" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "1eee7259-da1c-4cba-80a9-e67e684573a1", "type": "choice", "text": "Working or doing household chores", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "5df54746-3a58-4153-8f07-1f13fdc09902", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "1", - "display": "Severely Limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Severely Limited" } }, { "valueCoding": { "id": "a57b3a46-a005-4204-a07f-b2d535a6d5ab", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "2", - "display": "Limited quite a bit", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Limited quite a bit" } }, { "valueCoding": { "id": "632d08fb-b521-4511-8887-b7c375d901f3", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "3", - "display": "Moderately limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Moderately limited" } }, { "valueCoding": { "id": "fcbe715a-b86c-4fdc-8855-8aaa353d06d7", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "4", - "display": "Slightly limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Slightly limited" } }, { "valueCoding": { "id": "d9cf6b00-5fed-48ac-a2be-a2e29688c5fa", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "5", - "display": "Did not limit at all", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Did not limit at all" } }, { "valueCoding": { "id": "8a20b488-aad4-4676-86d3-c494b979db3f", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "6", - "display": "Does not apply or did not do for other reasons", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Does not apply or did not do for other reasons" } } - ], - "enableWhen": null, - "enableBehavior": null, + ] + }, + { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "radio-button", - "display": "Radio Button", - "userSelected": null + "display": "Radio Button" } - ], - "text": null - }, - "valueMedicationRequest": null + ] + } } ], - "item": null - }, - { "linkId": "883a22a8-2f6e-4b41-84b7-0028ed543192", "type": "choice", "text": "Visiting family or friends out of your home", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "5df54746-3a58-4153-8f07-1f13fdc09902", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "1", - "display": "Severely Limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Severely Limited" } }, { "valueCoding": { "id": "a57b3a46-a005-4204-a07f-b2d535a6d5ab", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "2", - "display": "Limited quite a bit", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Limited quite a bit" } }, { "valueCoding": { "id": "632d08fb-b521-4511-8887-b7c375d901f3", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "3", - "display": "Moderately limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Moderately limited" } }, { "valueCoding": { "id": "fcbe715a-b86c-4fdc-8855-8aaa353d06d7", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "4", - "display": "Slightly limited", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Slightly limited" } }, { "valueCoding": { "id": "d9cf6b00-5fed-48ac-a2be-a2e29688c5fa", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "5", - "display": "Did not limit at all", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Did not limit at all" } }, { "valueCoding": { "id": "8a20b488-aad4-4676-86d3-c494b979db3f", - "extension": null, - "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", - "version": null, "code": "6", - "display": "Does not apply or did not do for other reasons", - "userSelected": null + "system": "urn:uuid:90ab9a5a-0ed7-43e0-9131-75ab9d8b94cf", + "display": "Does not apply or did not do for other reasons" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "How much does your heart failure affect your lifestyle? Please indicate how your heart failure may have limited your participation in the following activities over the past 2 weeks." }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "24108967-2ff3-40d0-c54f-a7b97bb84d05", "type": "choice", "text": "In the last two weeks, how much has your dizziness affected you?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "80df26e0-55a6-4d50-90de-b60cd851c4fb", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "5", - "display": "Extremely bothersome", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Extremely bothersome" } }, { "valueCoding": { "id": "473f99f2-b9d2-4e92-85ed-ca78f3e0141c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "4", - "display": "Quite a bit bothersome", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Quite a bit bothersome" } }, { "valueCoding": { "id": "e3eab124-44f9-43a4-b1f6-e42b0199e39b", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "3", - "display": "Moderately bothersome", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Moderately bothersome" } }, { "valueCoding": { "id": "253f487a-f26b-442f-8757-8a2401465fed", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "2", - "display": "Slightly bothersome", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Slightly bothersome" } }, { "valueCoding": { "id": "7de45367-76b2-4b9b-8e4e-050bae6b309c", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "1", - "display": "Not at all bothersome", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "Not at all bothersome" } }, { "valueCoding": { "id": "3d1a8f9b-e666-4ad4-9202-571313a2b5d1", - "extension": null, - "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", - "version": null, "code": "0", - "display": "I've had no dizziness", - "userSelected": null + "system": "urn:uuid:2b2f9a9a-e721-495a-82d6-fbc1b22a27b2", + "display": "I've had no dizziness" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } ] }, "registration_en_US": { - "id": "engagehf-registration", - "extension": null, "resourceType": "Questionnaire", + "id": "engagehf-registration", + "title": "Registration Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", "meta": { - "versionId": null, - "lastUpdated": null, "profile": [ "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" ], - "security": null, "tag": [ { - "id": null, - "extension": null, "system": "urn:ietf:bcp:47", - "version": null, "code": "en-US", - "display": "English", - "userSelected": null + "display": "English" } ] }, - "title": "Registration Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "subjectType": [ - "Patient" - ], "useContext": [], "contact": [ { - "name": "http://spezi.health", - "telecom": null + "name": "http://spezi.health" } ], + "subjectType": [ + "Patient" + ], "url": "http://spezi.health/fhir/questionnaire/engagehf-registration", "item": [ { "linkId": "welcome", "type": "display", "text": "Welcome to the ENGAGE-HF study! Please complete the following survey to help us understand your health and well-being.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "personal-information", "type": "group", - "text": "Personal information", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -1528,115 +1052,72 @@ "linkId": "personal-information.description", "type": "display", "text": "Please provide the following information to help us understand your health and well-being.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "personal-information.dateOfBirth", - "type": "date", "text": "Date of Birth", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "date", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "personal-information.sex", "type": "choice", "text": "Select your sex assigned at birth:", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "male", - "extension": null, - "system": "engage-hf-sex", - "version": null, "code": "male", - "display": "Male", - "userSelected": null + "system": "engage-hf-sex", + "display": "Male" } }, { "valueCoding": { "id": "female", - "extension": null, - "system": "engage-hf-sex", - "version": null, "code": "female", - "display": "Female", - "userSelected": null + "system": "engage-hf-sex", + "display": "Female" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Personal information" }, { "linkId": "lab.2160-0.exists", "type": "group", - "text": "Creatinine", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -1644,72 +1125,34 @@ "linkId": "lab.2160-0.exists-description", "type": "display", "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.2160-0.exists", - "type": "boolean", "text": "Have you recently received a new creatinine value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Creatinine" }, { "linkId": "lab.2160-0.page1", "type": "group", - "text": "Creatinine", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.2160-0.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -1717,70 +1160,47 @@ "linkId": "lab.2160-0.description", "type": "display", "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.2160-0.value", - "type": "decimal", "text": "Creatinine (mg/dL):", - "required": true, - "unit": "mg/dL", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.2160-0.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Creatinine", + "enableWhen": [ + { + "question": "lab.2160-0.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "lab.6298-4.exists", "type": "group", - "text": "Potassium", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -1788,72 +1208,34 @@ "linkId": "lab.6298-4.exists-description", "type": "display", "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.6298-4.exists", - "type": "boolean", "text": "Have you recently received a new potassium value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Potassium" }, { "linkId": "lab.6298-4.page1", "type": "group", - "text": "Potassium", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.6298-4.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -1861,70 +1243,47 @@ "linkId": "lab.6298-4.description", "type": "display", "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.6298-4.value", - "type": "decimal", "text": "Potassium (mEq/L):", - "required": true, - "unit": "mEq/L", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.6298-4.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Potassium", + "enableWhen": [ + { + "question": "lab.6298-4.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "lab.8340-2.exists", "type": "group", - "text": "Dry Weight", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -1932,72 +1291,34 @@ "linkId": "lab.8340-2.exists-description", "type": "display", "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.8340-2.exists", - "type": "boolean", "text": "Have you recently received a new dry weight value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Dry Weight" }, { "linkId": "lab.8340-2.page1", "type": "group", - "text": "Dry Weight", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.8340-2.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -2005,70 +1326,47 @@ "linkId": "lab.8340-2.description", "type": "display", "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.8340-2.value", - "type": "decimal", "text": "Dry Weight (lbs):", - "required": true, - "unit": "lbs", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.8340-2.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Dry Weight", + "enableWhen": [ + { + "question": "lab.8340-2.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "medication.betablockers.exists", "type": "group", - "text": "Beta Blockers", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -2076,125 +1374,66 @@ "linkId": "medication.betablockers.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.betablockers.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "yes", - "display": "Yes", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Beta Blockers" }, { "linkId": "medication.betablockers.page1", "type": "group", - "text": "Beta Blockers", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.betablockers.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, - "code": "yes", - "display": "Yes", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -2202,303 +1441,218 @@ "linkId": "medication.betablockers.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.betablockers.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.betablockers.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.betablockers.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/19484/drugs/854901", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/19484/drugs/854901", - "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/19484/drugs/854905", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/19484/drugs/854905", - "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200032", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200032", - "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200033", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200033", - "display": "Carvedilol (Coreg)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/686924", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/686924", - "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200031", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200031", - "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/668310/drugs/860510", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860510", - "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860516", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860516", - "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860522", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860522", - "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860532", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860532", - "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/1999031", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999031", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866412", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866412", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999033", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999033", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866419", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866419", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999035", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999035", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866427", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866427", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999037", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999037", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866436", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866436", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Beta Blockers", + "enableWhen": [ + { + "question": "medication.betablockers.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { "linkId": "medication.rasi.exists", "type": "group", - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -2506,125 +1660,66 @@ "linkId": "medication.rasi.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.rasi.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "yes", - "display": "Yes", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)" }, { "linkId": "medication.rasi.page1", "type": "group", - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.rasi.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, - "code": "yes", - "display": "Yes", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -2632,875 +1727,634 @@ "linkId": "medication.rasi.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.rasi.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.rasi.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.rasi.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/1091642/drugs/1091646", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1091642/drugs/1091646", - "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1091642/drugs/1091652", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1091642/drugs/1091652", - "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898687", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898687", - "display": "Benazepril (Lotensin)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898690", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898690", - "display": "Benazepril (Lotensin)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898719", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898719", - "display": "Benazepril (Lotensin)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898723", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898723", - "display": "Benazepril (Lotensin)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/577776", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/577776", - "display": "Candesartan (Atacand)\n16 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n16 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/639537", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/639537", - "display": "Candesartan (Atacand)\n32 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n32 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/153822", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/153822", - "display": "Candesartan (Atacand)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/153823", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/153823", - "display": "Candesartan (Atacand)\n8 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n8 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308962", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308962", - "display": "Captopril (Capoten)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308963", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308963", - "display": "Captopril (Capoten)\n12.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/317173", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/317173", - "display": "Captopril (Capoten)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308964", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308964", - "display": "Captopril (Capoten)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858817", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858817", - "display": "Enalapril (Vasotec)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858804", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858804", - "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858810", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858810", - "display": "Enalapril (Vasotec)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858813", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858813", - "display": "Enalapril (Vasotec)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83515/drugs/310139", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83515/drugs/310139", - "display": "Eprosartan (Teveten)\n400 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83515/drugs/310140", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83515/drugs/310140", - "display": "Eprosartan (Teveten)\n600 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857169", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857169", - "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857183", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857183", - "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857187", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857187", - "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200095", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200095", - "display": "Irbesartan (Avapro)\n150 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200096", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200096", - "display": "Irbesartan (Avapro)\n300 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200094", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200094", - "display": "Irbesartan (Avapro)\n75 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/314076", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/314076", - "display": "Lisinopril (Zestril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/311353", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/311353", - "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/314077", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/314077", - "display": "Lisinopril (Zestril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/205326", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/205326", - "display": "Lisinopril (Zestril)\n30 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/197884", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/197884", - "display": "Lisinopril (Zestril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/311354", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/311354", - "display": "Lisinopril (Zestril)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979480", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979480", - "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979485", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979485", - "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979492", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979492", - "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/30131/drugs/1299896", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/30131/drugs/1299896", - "display": "Moexipril (Univasc)\n15 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n15 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/30131/drugs/1299897", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/30131/drugs/1299897", - "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349401", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349401", - "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349405", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349405", - "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349373", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349373", - "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854984", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854984", - "display": "Perindopril (Aceon)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854988", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854988", - "display": "Perindopril (Aceon)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854925", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854925", - "display": "Perindopril (Aceon)\n8 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n8 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312748", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312748", - "display": "Quinapril (Accupril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312749", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312749", - "display": "Quinapril (Accupril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/314203", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/314203", - "display": "Quinapril (Accupril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312750", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312750", - "display": "Quinapril (Accupril)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/845488", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/845488", - "display": "Ramipril (Altace)\n1.25 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/401965", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/401965", - "display": "Ramipril (Altace)\n1.25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/261962", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/261962", - "display": "Ramipril (Altace)\n10 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/401968", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/401968", - "display": "Ramipril (Altace)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/198188", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/198188", - "display": "Ramipril (Altace)\n2.5 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/251856", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/251856", - "display": "Ramipril (Altace)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/198189", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/198189", - "display": "Ramipril (Altace)\n5 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/251857", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/251857", - "display": "Ramipril (Altace)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/2679793", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/2679793", - "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656340", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656340", - "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656349", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656349", - "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/2679800", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/2679800", - "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656354", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656354", - "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/282755", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/282755", - "display": "Telmisartan (Micardis)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/205304", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/205304", - "display": "Telmisartan (Micardis)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/205305", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/205305", - "display": "Telmisartan (Micardis)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199353", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199353", - "display": "Trandolapril (Mavik)\n1 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199351", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199351", - "display": "Trandolapril (Mavik)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199352", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199352", - "display": "Trandolapril (Mavik)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349201", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349201", - "display": "Valsartan (Diovan)\n160 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n160 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349200", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349200", - "display": "Valsartan (Diovan)\n320 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n320 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349483", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349483", - "display": "Valsartan (Diovan)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349199", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349199", - "display": "Valsartan (Diovan)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n80 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)", + "enableWhen": [ + { + "question": "medication.rasi.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { "linkId": "medication.mra.exists", "type": "group", - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -3508,125 +2362,66 @@ "linkId": "medication.mra.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.mra.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "yes", - "display": "Yes", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)" }, { "linkId": "medication.mra.page1", "type": "group", - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.mra.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, - "code": "yes", - "display": "Yes", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -3634,160 +2429,114 @@ "linkId": "medication.mra.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.mra.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.mra.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.mra.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/298869/drugs/351256", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/298869/drugs/351256", - "display": "Eplerenone (Inspra)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/298869/drugs/351257", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/298869/drugs/351257", - "display": "Eplerenone (Inspra)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/198222", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/198222", - "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/313096", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/313096", - "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/198223", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/198223", - "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)", + "enableWhen": [ + { + "question": "medication.mra.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { "linkId": "medication.sglt2i.exists", "type": "group", - "text": "SGLT2 Inhibitors (SGLT2i)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -3795,125 +2544,66 @@ "linkId": "medication.sglt2i.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.sglt2i.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "yes", - "display": "Yes", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)" }, { "linkId": "medication.sglt2i.page1", "type": "group", - "text": "SGLT2 Inhibitors (SGLT2i)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.sglt2i.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, - "code": "yes", - "display": "Yes", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -3921,226 +2611,162 @@ "linkId": "medication.sglt2i.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.sglt2i.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.sglt2i.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.sglt2i.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/2627044/drugs/2637859", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2627044/drugs/2637859", - "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1373458/drugs/1373463", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1373458/drugs/1373463", - "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1373458/drugs/1373471", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1373458/drugs/1373471", - "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1488564/drugs/1488569", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1488564/drugs/1488569", - "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1488564/drugs/1488574", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1488564/drugs/1488574", - "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1545653/drugs/1545658", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1545653/drugs/1545658", - "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1545653/drugs/1545666", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1545653/drugs/1545666", - "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1992672/drugs/1992819", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1992672/drugs/1992819", - "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1992672/drugs/1992810", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1992672/drugs/1992810", - "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/2638675/drugs/2638683", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2638675/drugs/2638683", - "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/2638675/drugs/2638691", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2638675/drugs/2638691", - "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)", + "enableWhen": [ + { + "question": "medication.sglt2i.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { "linkId": "medication.diuretics.exists", "type": "group", - "text": "Diuretics", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4148,125 +2774,66 @@ "linkId": "medication.diuretics.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.diuretics.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "yes", - "display": "Yes", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Diuretics" }, { "linkId": "medication.diuretics.page1", "type": "group", - "text": "Diuretics", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.diuretics.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "version": null, - "code": "yes", - "display": "Yes", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4274,259 +2841,186 @@ "linkId": "medication.diuretics.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.diuretics.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.diuretics.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.diuretics.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/1808/drugs/197417", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197417", - "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1808/drugs/197418", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197418", - "display": "Bumetanide (Bumex)\n1 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1808/drugs/197419", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197419", - "display": "Bumetanide (Bumex)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4109/drugs/1251903", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4109/drugs/1251903", - "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4109/drugs/1251907", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4109/drugs/1251907", - "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/310429", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/310429", - "display": "Furosemide (Lasix)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/313988", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/313988", - "display": "Furosemide (Lasix)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/197732", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/197732", - "display": "Furosemide (Lasix)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198369", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198369", - "display": "Torsemide (Soaanz)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198370", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198370", - "display": "Torsemide (Soaanz)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198371", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198371", - "display": "Torsemide (Soaanz)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/2589881", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/2589881", - "display": "Torsemide (Soaanz)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198372", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198372", - "display": "Torsemide (Soaanz)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/2589885", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/2589885", - "display": "Torsemide (Soaanz)\n60 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Diuretics", + "enableWhen": [ + { + "question": "medication.diuretics.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { "linkId": "appointment.exists", "type": "group", - "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4534,72 +3028,34 @@ "linkId": "appointment.exists-description", "type": "display", "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "appointment.exists", - "type": "boolean", "text": "Do you already have a new appointment scheduled?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Next appointment" }, { "linkId": "appointment.page1", "type": "group", - "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "appointment.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4607,99 +3063,73 @@ "linkId": "appointment.description", "type": "display", "text": "Upcoming appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "appointment.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Next appointment", + "enableWhen": [ + { + "question": "appointment.exists", + "operator": "=", + "answerBoolean": true } ] } ] }, "dataUpdate_en_US": { - "id": "engagehf-data-update", - "extension": null, "resourceType": "Questionnaire", + "id": "engagehf-data-update", + "title": "Update Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", "meta": { - "versionId": null, - "lastUpdated": null, "profile": [ "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" ], - "security": null, "tag": [ { - "id": null, - "extension": null, "system": "urn:ietf:bcp:47", - "version": null, "code": "en-US", - "display": "English", - "userSelected": null + "display": "English" } ] }, - "title": "Update Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "subjectType": [ - "Patient" - ], "useContext": [], "contact": [ { - "name": "http://spezi.health", - "telecom": null + "name": "http://spezi.health" } ], + "subjectType": [ + "Patient" + ], "url": "http://spezi.health/fhir/questionnaire/engagehf-data-update", "item": [ { "linkId": "lab.2160-0.exists", "type": "group", - "text": "Creatinine", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4707,72 +3137,34 @@ "linkId": "lab.2160-0.exists-description", "type": "display", "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.2160-0.exists", - "type": "boolean", "text": "Have you recently received a new creatinine value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Creatinine" }, { "linkId": "lab.2160-0.page1", "type": "group", - "text": "Creatinine", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.2160-0.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4780,70 +3172,47 @@ "linkId": "lab.2160-0.description", "type": "display", "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.2160-0.value", - "type": "decimal", "text": "Creatinine (mg/dL):", - "required": true, - "unit": "mg/dL", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.2160-0.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Creatinine", + "enableWhen": [ + { + "question": "lab.2160-0.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "lab.6298-4.exists", "type": "group", - "text": "Potassium", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4851,72 +3220,34 @@ "linkId": "lab.6298-4.exists-description", "type": "display", "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.6298-4.exists", - "type": "boolean", "text": "Have you recently received a new potassium value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Potassium" }, { "linkId": "lab.6298-4.page1", "type": "group", - "text": "Potassium", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.6298-4.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4924,70 +3255,47 @@ "linkId": "lab.6298-4.description", "type": "display", "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.6298-4.value", - "type": "decimal", "text": "Potassium (mEq/L):", - "required": true, - "unit": "mEq/L", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.6298-4.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Potassium", + "enableWhen": [ + { + "question": "lab.6298-4.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "lab.8340-2.exists", "type": "group", - "text": "Dry Weight", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -4995,72 +3303,34 @@ "linkId": "lab.8340-2.exists-description", "type": "display", "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.8340-2.exists", - "type": "boolean", "text": "Have you recently received a new dry weight value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Dry Weight" }, { "linkId": "lab.8340-2.page1", "type": "group", - "text": "Dry Weight", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.8340-2.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -5068,70 +3338,47 @@ "linkId": "lab.8340-2.description", "type": "display", "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.8340-2.value", - "type": "decimal", "text": "Dry Weight (lbs):", - "required": true, - "unit": "lbs", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.8340-2.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Dry Weight", + "enableWhen": [ + { + "question": "lab.8340-2.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "medication.betablockers.exists", "type": "group", - "text": "Beta Blockers", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -5139,136 +3386,74 @@ "linkId": "medication.betablockers.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.betablockers.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Beta Blockers" }, { "linkId": "medication.betablockers.page1", "type": "group", - "text": "Beta Blockers", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.betablockers.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -5276,303 +3461,218 @@ "linkId": "medication.betablockers.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.betablockers.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.betablockers.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.betablockers.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/19484/drugs/854901", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/19484/drugs/854901", - "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/19484/drugs/854905", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/19484/drugs/854905", - "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200032", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200032", - "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200033", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200033", - "display": "Carvedilol (Coreg)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/686924", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/686924", - "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200031", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200031", - "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/668310/drugs/860510", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860510", - "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860516", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860516", - "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860522", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860522", - "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860532", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860532", - "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/1999031", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999031", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866412", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866412", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999033", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999033", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866419", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866419", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999035", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999035", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866427", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866427", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999037", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999037", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866436", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866436", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Beta Blockers", + "enableWhen": [ + { + "question": "medication.betablockers.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.rasi.exists", "type": "group", - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -5580,136 +3680,74 @@ "linkId": "medication.rasi.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.rasi.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)" }, { "linkId": "medication.rasi.page1", "type": "group", - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.rasi.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -5717,875 +3755,634 @@ "linkId": "medication.rasi.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.rasi.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.rasi.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.rasi.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/1091642/drugs/1091646", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1091642/drugs/1091646", - "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1091642/drugs/1091652", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1091642/drugs/1091652", - "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898687", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898687", - "display": "Benazepril (Lotensin)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898690", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898690", - "display": "Benazepril (Lotensin)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898719", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898719", - "display": "Benazepril (Lotensin)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898723", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898723", - "display": "Benazepril (Lotensin)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/577776", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/577776", - "display": "Candesartan (Atacand)\n16 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n16 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/639537", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/639537", - "display": "Candesartan (Atacand)\n32 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n32 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/153822", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/153822", - "display": "Candesartan (Atacand)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/153823", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/153823", - "display": "Candesartan (Atacand)\n8 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n8 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308962", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308962", - "display": "Captopril (Capoten)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308963", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308963", - "display": "Captopril (Capoten)\n12.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/317173", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/317173", - "display": "Captopril (Capoten)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308964", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308964", - "display": "Captopril (Capoten)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858817", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858817", - "display": "Enalapril (Vasotec)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858804", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858804", - "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858810", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858810", - "display": "Enalapril (Vasotec)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858813", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858813", - "display": "Enalapril (Vasotec)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83515/drugs/310139", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83515/drugs/310139", - "display": "Eprosartan (Teveten)\n400 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83515/drugs/310140", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83515/drugs/310140", - "display": "Eprosartan (Teveten)\n600 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857169", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857169", - "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857183", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857183", - "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857187", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857187", - "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200095", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200095", - "display": "Irbesartan (Avapro)\n150 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200096", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200096", - "display": "Irbesartan (Avapro)\n300 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200094", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200094", - "display": "Irbesartan (Avapro)\n75 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/314076", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/314076", - "display": "Lisinopril (Zestril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/311353", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/311353", - "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/314077", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/314077", - "display": "Lisinopril (Zestril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/205326", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/205326", - "display": "Lisinopril (Zestril)\n30 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/197884", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/197884", - "display": "Lisinopril (Zestril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/311354", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/311354", - "display": "Lisinopril (Zestril)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979480", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979480", - "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979485", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979485", - "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979492", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979492", - "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/30131/drugs/1299896", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/30131/drugs/1299896", - "display": "Moexipril (Univasc)\n15 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n15 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/30131/drugs/1299897", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/30131/drugs/1299897", - "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349401", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349401", - "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349405", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349405", - "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349373", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349373", - "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854984", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854984", - "display": "Perindopril (Aceon)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854988", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854988", - "display": "Perindopril (Aceon)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854925", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854925", - "display": "Perindopril (Aceon)\n8 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n8 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312748", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312748", - "display": "Quinapril (Accupril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312749", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312749", - "display": "Quinapril (Accupril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/314203", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/314203", - "display": "Quinapril (Accupril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312750", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312750", - "display": "Quinapril (Accupril)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/845488", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/845488", - "display": "Ramipril (Altace)\n1.25 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/401965", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/401965", - "display": "Ramipril (Altace)\n1.25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/261962", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/261962", - "display": "Ramipril (Altace)\n10 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/401968", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/401968", - "display": "Ramipril (Altace)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/198188", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/198188", - "display": "Ramipril (Altace)\n2.5 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/251856", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/251856", - "display": "Ramipril (Altace)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/198189", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/198189", - "display": "Ramipril (Altace)\n5 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/251857", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/251857", - "display": "Ramipril (Altace)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/2679793", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/2679793", - "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656340", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656340", - "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656349", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656349", - "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/2679800", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/2679800", - "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656354", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656354", - "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/282755", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/282755", - "display": "Telmisartan (Micardis)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/205304", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/205304", - "display": "Telmisartan (Micardis)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/205305", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/205305", - "display": "Telmisartan (Micardis)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199353", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199353", - "display": "Trandolapril (Mavik)\n1 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199351", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199351", - "display": "Trandolapril (Mavik)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199352", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199352", - "display": "Trandolapril (Mavik)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349201", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349201", - "display": "Valsartan (Diovan)\n160 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n160 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349200", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349200", - "display": "Valsartan (Diovan)\n320 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n320 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349483", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349483", - "display": "Valsartan (Diovan)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349199", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349199", - "display": "Valsartan (Diovan)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n80 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)", + "enableWhen": [ + { + "question": "medication.rasi.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.mra.exists", "type": "group", - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -6593,136 +4390,74 @@ "linkId": "medication.mra.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.mra.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)" }, { "linkId": "medication.mra.page1", "type": "group", - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.mra.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -6730,160 +4465,114 @@ "linkId": "medication.mra.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.mra.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.mra.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.mra.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/298869/drugs/351256", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/298869/drugs/351256", - "display": "Eplerenone (Inspra)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/298869/drugs/351257", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/298869/drugs/351257", - "display": "Eplerenone (Inspra)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/198222", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/198222", - "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/313096", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/313096", - "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/198223", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/198223", - "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)", + "enableWhen": [ + { + "question": "medication.mra.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.sglt2i.exists", "type": "group", - "text": "SGLT2 Inhibitors (SGLT2i)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -6891,136 +4580,74 @@ "linkId": "medication.sglt2i.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { - "linkId": "medication.sglt2i.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "unit": null, - "answerOption": [ + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.sglt2i.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)" }, { "linkId": "medication.sglt2i.page1", "type": "group", - "text": "SGLT2 Inhibitors (SGLT2i)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.sglt2i.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7028,226 +4655,162 @@ "linkId": "medication.sglt2i.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.sglt2i.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.sglt2i.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.sglt2i.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/2627044/drugs/2637859", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2627044/drugs/2637859", - "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1373458/drugs/1373463", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1373458/drugs/1373463", - "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1373458/drugs/1373471", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1373458/drugs/1373471", - "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1488564/drugs/1488569", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1488564/drugs/1488569", - "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1488564/drugs/1488574", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1488564/drugs/1488574", - "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1545653/drugs/1545658", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1545653/drugs/1545658", - "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1545653/drugs/1545666", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1545653/drugs/1545666", - "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1992672/drugs/1992819", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1992672/drugs/1992819", - "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1992672/drugs/1992810", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1992672/drugs/1992810", - "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/2638675/drugs/2638683", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2638675/drugs/2638683", - "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/2638675/drugs/2638691", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2638675/drugs/2638691", - "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)", + "enableWhen": [ + { + "question": "medication.sglt2i.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.diuretics.exists", "type": "group", - "text": "Diuretics", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7255,136 +4818,74 @@ "linkId": "medication.diuretics.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.diuretics.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Diuretics" }, { "linkId": "medication.diuretics.page1", "type": "group", - "text": "Diuretics", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.diuretics.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7392,259 +4893,186 @@ "linkId": "medication.diuretics.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.diuretics.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.diuretics.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.diuretics.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/1808/drugs/197417", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197417", - "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1808/drugs/197418", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197418", - "display": "Bumetanide (Bumex)\n1 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1808/drugs/197419", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197419", - "display": "Bumetanide (Bumex)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4109/drugs/1251903", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4109/drugs/1251903", - "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4109/drugs/1251907", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4109/drugs/1251907", - "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/310429", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/310429", - "display": "Furosemide (Lasix)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/313988", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/313988", - "display": "Furosemide (Lasix)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/197732", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/197732", - "display": "Furosemide (Lasix)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198369", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198369", - "display": "Torsemide (Soaanz)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198370", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198370", - "display": "Torsemide (Soaanz)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198371", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198371", - "display": "Torsemide (Soaanz)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/2589881", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/2589881", - "display": "Torsemide (Soaanz)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198372", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198372", - "display": "Torsemide (Soaanz)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/2589885", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/2589885", - "display": "Torsemide (Soaanz)\n60 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Diuretics", + "enableWhen": [ + { + "question": "medication.diuretics.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "appointment.exists", "type": "group", - "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7652,72 +5080,34 @@ "linkId": "appointment.exists-description", "type": "display", "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "appointment.exists", - "type": "boolean", "text": "Do you already have a new appointment scheduled?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Next appointment" }, { "linkId": "appointment.page1", "type": "group", - "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "appointment.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7725,99 +5115,73 @@ "linkId": "appointment.description", "type": "display", "text": "Upcoming appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "appointment.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Next appointment", + "enableWhen": [ + { + "question": "appointment.exists", + "operator": "=", + "answerBoolean": true } ] } ] }, "postAppointment_en_US": { - "id": "engagehf-post-appointment", - "extension": null, "resourceType": "Questionnaire", + "id": "engagehf-post-appointment", + "title": "Post-Appointment Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", "meta": { - "versionId": null, - "lastUpdated": null, "profile": [ "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" ], - "security": null, "tag": [ { - "id": null, - "extension": null, "system": "urn:ietf:bcp:47", - "version": null, "code": "en-US", - "display": "English", - "userSelected": null + "display": "English" } ] }, - "title": "Post-Appointment Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "subjectType": [ - "Patient" - ], "useContext": [], "contact": [ { - "name": "http://spezi.health", - "telecom": null + "name": "http://spezi.health" } ], + "subjectType": [ + "Patient" + ], "url": "http://spezi.health/fhir/questionnaire/engagehf-post-appointment", "item": [ { "linkId": "lab.2160-0.exists", "type": "group", - "text": "Creatinine", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7825,72 +5189,34 @@ "linkId": "lab.2160-0.exists-description", "type": "display", "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.2160-0.exists", - "type": "boolean", "text": "Have you recently received a new creatinine value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Creatinine" }, { "linkId": "lab.2160-0.page1", "type": "group", - "text": "Creatinine", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.2160-0.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7898,70 +5224,47 @@ "linkId": "lab.2160-0.description", "type": "display", "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.2160-0.value", - "type": "decimal", "text": "Creatinine (mg/dL):", - "required": true, - "unit": "mg/dL", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.2160-0.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Creatinine", + "enableWhen": [ + { + "question": "lab.2160-0.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "lab.6298-4.exists", "type": "group", - "text": "Potassium", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -7969,72 +5272,34 @@ "linkId": "lab.6298-4.exists-description", "type": "display", "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.6298-4.exists", - "type": "boolean", "text": "Have you recently received a new potassium value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Potassium" }, { "linkId": "lab.6298-4.page1", "type": "group", - "text": "Potassium", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.6298-4.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8042,70 +5307,47 @@ "linkId": "lab.6298-4.description", "type": "display", "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.6298-4.value", - "type": "decimal", "text": "Potassium (mEq/L):", - "required": true, - "unit": "mEq/L", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.6298-4.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Potassium", + "enableWhen": [ + { + "question": "lab.6298-4.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "lab.8340-2.exists", "type": "group", - "text": "Dry Weight", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8113,72 +5355,34 @@ "linkId": "lab.8340-2.exists-description", "type": "display", "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.8340-2.exists", - "type": "boolean", "text": "Have you recently received a new dry weight value?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Dry Weight" }, { "linkId": "lab.8340-2.page1", "type": "group", - "text": "Dry Weight", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "lab.8340-2.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8186,70 +5390,47 @@ "linkId": "lab.8340-2.description", "type": "display", "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "lab.8340-2.value", - "type": "decimal", "text": "Dry Weight (lbs):", - "required": true, - "unit": "lbs", - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "lab.8340-2.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Dry Weight", + "enableWhen": [ + { + "question": "lab.8340-2.exists", + "operator": "=", + "answerBoolean": true } ] }, { "linkId": "medication.betablockers.exists", "type": "group", - "text": "Beta Blockers", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8257,136 +5438,74 @@ "linkId": "medication.betablockers.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.betablockers.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Beta Blockers" }, { "linkId": "medication.betablockers.page1", "type": "group", - "text": "Beta Blockers", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.betablockers.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8394,303 +5513,218 @@ "linkId": "medication.betablockers.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.betablockers.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.betablockers.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.betablockers.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/19484/drugs/854901", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/19484/drugs/854901", - "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/19484/drugs/854905", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/19484/drugs/854905", - "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200032", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200032", - "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200033", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200033", - "display": "Carvedilol (Coreg)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/686924", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/686924", - "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/20352/drugs/200031", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/20352/drugs/200031", - "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/668310/drugs/860510", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860510", - "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860516", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860516", - "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860522", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860522", - "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/668310/drugs/860532", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/668310/drugs/860532", - "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/1999031", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999031", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866412", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866412", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999033", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999033", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866419", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866419", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999035", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999035", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866427", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866427", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" } }, { "valueCoding": { "id": "medications/221124/drugs/1999037", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/1999037", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" } }, { "valueCoding": { "id": "medications/221124/drugs/866436", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/221124/drugs/866436", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Beta Blockers", + "enableWhen": [ + { + "question": "medication.betablockers.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.rasi.exists", "type": "group", - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8698,136 +5732,74 @@ "linkId": "medication.rasi.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.rasi.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)" }, { "linkId": "medication.rasi.page1", "type": "group", - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.rasi.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -8835,875 +5807,634 @@ "linkId": "medication.rasi.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.rasi.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.rasi.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.rasi.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/1091642/drugs/1091646", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1091642/drugs/1091646", - "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1091642/drugs/1091652", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1091642/drugs/1091652", - "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898687", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898687", - "display": "Benazepril (Lotensin)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898690", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898690", - "display": "Benazepril (Lotensin)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898719", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898719", - "display": "Benazepril (Lotensin)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/18867/drugs/898723", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/18867/drugs/898723", - "display": "Benazepril (Lotensin)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/577776", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/577776", - "display": "Candesartan (Atacand)\n16 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n16 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/639537", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/639537", - "display": "Candesartan (Atacand)\n32 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n32 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/153822", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/153822", - "display": "Candesartan (Atacand)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/214354/drugs/153823", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/214354/drugs/153823", - "display": "Candesartan (Atacand)\n8 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n8 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308962", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308962", - "display": "Captopril (Capoten)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308963", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308963", - "display": "Captopril (Capoten)\n12.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/317173", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/317173", - "display": "Captopril (Capoten)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1998/drugs/308964", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1998/drugs/308964", - "display": "Captopril (Capoten)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858817", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858817", - "display": "Enalapril (Vasotec)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858804", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858804", - "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858810", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858810", - "display": "Enalapril (Vasotec)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/3827/drugs/858813", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/3827/drugs/858813", - "display": "Enalapril (Vasotec)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83515/drugs/310139", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83515/drugs/310139", - "display": "Eprosartan (Teveten)\n400 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83515/drugs/310140", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83515/drugs/310140", - "display": "Eprosartan (Teveten)\n600 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857169", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857169", - "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857183", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857183", - "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/227278/drugs/857187", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/227278/drugs/857187", - "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200095", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200095", - "display": "Irbesartan (Avapro)\n150 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200096", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200096", - "display": "Irbesartan (Avapro)\n300 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/83818/drugs/200094", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/83818/drugs/200094", - "display": "Irbesartan (Avapro)\n75 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/314076", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/314076", - "display": "Lisinopril (Zestril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/311353", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/311353", - "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/314077", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/314077", - "display": "Lisinopril (Zestril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/205326", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/205326", - "display": "Lisinopril (Zestril)\n30 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/197884", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/197884", - "display": "Lisinopril (Zestril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/29046/drugs/311354", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/29046/drugs/311354", - "display": "Lisinopril (Zestril)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979480", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979480", - "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979485", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979485", - "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/203160/drugs/979492", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/203160/drugs/979492", - "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/30131/drugs/1299896", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/30131/drugs/1299896", - "display": "Moexipril (Univasc)\n15 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n15 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/30131/drugs/1299897", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/30131/drugs/1299897", - "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349401", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349401", - "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349405", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349405", - "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/118463/drugs/349373", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/118463/drugs/349373", - "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854984", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854984", - "display": "Perindopril (Aceon)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854988", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854988", - "display": "Perindopril (Aceon)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/54552/drugs/854925", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/54552/drugs/854925", - "display": "Perindopril (Aceon)\n8 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n8 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312748", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312748", - "display": "Quinapril (Accupril)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312749", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312749", - "display": "Quinapril (Accupril)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/314203", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/314203", - "display": "Quinapril (Accupril)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35208/drugs/312750", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35208/drugs/312750", - "display": "Quinapril (Accupril)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/845488", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/845488", - "display": "Ramipril (Altace)\n1.25 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/401965", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/401965", - "display": "Ramipril (Altace)\n1.25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/261962", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/261962", - "display": "Ramipril (Altace)\n10 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/401968", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/401968", - "display": "Ramipril (Altace)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/198188", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/198188", - "display": "Ramipril (Altace)\n2.5 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/251856", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/251856", - "display": "Ramipril (Altace)\n2.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/35296/drugs/198189", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/198189", - "display": "Ramipril (Altace)\n5 mg Oral Capsule", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Capsule" } }, { "valueCoding": { "id": "medications/35296/drugs/251857", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/35296/drugs/251857", - "display": "Ramipril (Altace)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/2679793", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/2679793", - "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656340", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656340", - "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656349", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656349", - "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1656339/drugs/2679800", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/2679800", - "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" } }, { "valueCoding": { "id": "medications/1656339/drugs/1656354", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1656339/drugs/1656354", - "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/282755", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/282755", - "display": "Telmisartan (Micardis)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/205304", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/205304", - "display": "Telmisartan (Micardis)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/73494/drugs/205305", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/73494/drugs/205305", - "display": "Telmisartan (Micardis)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199353", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199353", - "display": "Trandolapril (Mavik)\n1 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199351", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199351", - "display": "Trandolapril (Mavik)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38454/drugs/199352", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38454/drugs/199352", - "display": "Trandolapril (Mavik)\n4 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349201", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349201", - "display": "Valsartan (Diovan)\n160 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n160 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349200", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349200", - "display": "Valsartan (Diovan)\n320 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n320 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349483", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349483", - "display": "Valsartan (Diovan)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/69749/drugs/349199", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/69749/drugs/349199", - "display": "Valsartan (Diovan)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n80 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)", + "enableWhen": [ + { + "question": "medication.rasi.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.mra.exists", "type": "group", - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -9711,136 +6442,74 @@ "linkId": "medication.mra.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.mra.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)" }, { "linkId": "medication.mra.page1", "type": "group", - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.mra.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -9848,160 +6517,114 @@ "linkId": "medication.mra.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.mra.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.mra.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.mra.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/298869/drugs/351256", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/298869/drugs/351256", - "display": "Eplerenone (Inspra)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/298869/drugs/351257", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/298869/drugs/351257", - "display": "Eplerenone (Inspra)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/198222", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/198222", - "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/313096", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/313096", - "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/9997/drugs/198223", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/9997/drugs/198223", - "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)", + "enableWhen": [ + { + "question": "medication.mra.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.sglt2i.exists", "type": "group", - "text": "SGLT2 Inhibitors (SGLT2i)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -10009,136 +6632,74 @@ "linkId": "medication.sglt2i.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.sglt2i.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)" }, { "linkId": "medication.sglt2i.page1", "type": "group", - "text": "SGLT2 Inhibitors (SGLT2i)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.sglt2i.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -10146,226 +6707,162 @@ "linkId": "medication.sglt2i.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.sglt2i.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.sglt2i.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.sglt2i.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/2627044/drugs/2637859", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2627044/drugs/2637859", - "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1373458/drugs/1373463", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1373458/drugs/1373463", - "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1373458/drugs/1373471", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1373458/drugs/1373471", - "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1488564/drugs/1488569", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1488564/drugs/1488569", - "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1488564/drugs/1488574", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1488564/drugs/1488574", - "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1545653/drugs/1545658", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1545653/drugs/1545658", - "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1545653/drugs/1545666", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1545653/drugs/1545666", - "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1992672/drugs/1992819", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1992672/drugs/1992819", - "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1992672/drugs/1992810", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1992672/drugs/1992810", - "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/2638675/drugs/2638683", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2638675/drugs/2638683", - "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/2638675/drugs/2638691", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/2638675/drugs/2638691", - "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)", + "enableWhen": [ + { + "question": "medication.sglt2i.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "medication.diuretics.exists", "type": "group", - "text": "Diuretics", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -10373,136 +6870,74 @@ "linkId": "medication.diuretics.exists-description", "type": "display", "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.diuretics.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { "id": "yes-unchanged", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "yes-unchanged", - "display": "Yes, unchanged since last update", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { "id": "no", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, "code": "no", - "display": "No", - "userSelected": null + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] } - ] + ], + "required": false, + "text": "Diuretics" }, { "linkId": "medication.diuretics.page1", "type": "group", - "text": "Diuretics", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "medication.diuretics.exists", - "operator": "=", - "answerBoolean": null, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": { - "id": "yes-changed", - "extension": null, - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "version": null, - "code": "yes-changed", - "display": "Yes, changed since last update", - "userSelected": null - }, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -10510,259 +6945,186 @@ "linkId": "medication.diuretics.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "medication.diuretics.frequency", - "type": "decimal", "text": "Intake frequency (per day):", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { "linkId": "medication.diuretics.quantity", - "type": "decimal", "text": "Pills/tablets per intake:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "decimal", + "required": true }, { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], "linkId": "medication.diuretics.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "unit": null, "answerOption": [ { "valueCoding": { "id": "medications/1808/drugs/197417", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197417", - "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1808/drugs/197418", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197418", - "display": "Bumetanide (Bumex)\n1 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/1808/drugs/197419", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/1808/drugs/197419", - "display": "Bumetanide (Bumex)\n2 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4109/drugs/1251903", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4109/drugs/1251903", - "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4109/drugs/1251907", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4109/drugs/1251907", - "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/310429", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/310429", - "display": "Furosemide (Lasix)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/313988", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/313988", - "display": "Furosemide (Lasix)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/4603/drugs/197732", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/4603/drugs/197732", - "display": "Furosemide (Lasix)\n80 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n80 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198369", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198369", - "display": "Torsemide (Soaanz)\n10 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198370", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198370", - "display": "Torsemide (Soaanz)\n100 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198371", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198371", - "display": "Torsemide (Soaanz)\n20 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/2589881", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/2589881", - "display": "Torsemide (Soaanz)\n40 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/198372", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/198372", - "display": "Torsemide (Soaanz)\n5 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" } }, { "valueCoding": { "id": "medications/38413/drugs/2589885", - "extension": null, - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "version": null, "code": "medications/38413/drugs/2589885", - "display": "Torsemide (Soaanz)\n60 mg Oral Tablet", - "userSelected": null + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" } } - ], - "enableWhen": null, - "enableBehavior": null, - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, - "valueCodeableConcept": { - "coding": [ - { - "id": null, - "extension": null, - "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, - "code": "radio-button", - "display": "Radio Button", - "userSelected": null - } - ], - "text": null - }, - "valueMedicationRequest": null - } - ], - "item": null + ] + } + ], + "required": false, + "text": "Diuretics", + "enableWhen": [ + { + "question": "medication.diuretics.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { "linkId": "appointment.exists", "type": "group", - "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -10770,72 +7132,34 @@ "linkId": "appointment.exists-description", "type": "display", "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "appointment.exists", - "type": "boolean", "text": "Do you already have a new appointment scheduled?", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "boolean", + "required": true } - ] + ], + "required": false, + "text": "Next appointment" }, { "linkId": "appointment.page1", "type": "group", - "text": "Next appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": [ - { - "question": "appointment.exists", - "operator": "=", - "answerBoolean": true, - "answerDecimal": null, - "answerInteger": null, - "answerDate": null, - "answerDateTime": null, - "answerString": null, - "answerCoding": null, - "answerQuantity": null, - "answerReference": null - } - ], - "enableBehavior": null, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueQuantities": null, - "valueReference": null, - "valueString": null, "valueCodeableConcept": { "coding": [ { - "id": null, - "extension": null, "system": "http://hl7.org/fhir/questionnaire-item-control", - "version": null, "code": "page", - "display": "Page", - "userSelected": null + "display": "Page" } ], "text": "Page" - }, - "valueMedicationRequest": null + } } ], "item": [ @@ -10843,25 +7167,22 @@ "linkId": "appointment.description", "type": "display", "text": "Upcoming appointment", - "required": false, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "required": false }, { "linkId": "appointment.dateTime", - "type": "dateTime", "text": "Date:", - "required": true, - "unit": null, - "answerOption": null, - "enableWhen": null, - "enableBehavior": null, - "extension": null, - "item": null + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Next appointment", + "enableWhen": [ + { + "question": "appointment.exists", + "operator": "=", + "answerBoolean": true } ] } diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index 468da577..f94f0527 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.3" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.5" }, "devDependencies": { "@types/node": "^20", @@ -1612,9 +1612,9 @@ } }, "node_modules/@stanfordspezi/spezi-firebase-fhir": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.3.tgz", - "integrity": "sha512-gqmUCrD4FRwWap/mRYTkDvKQiWQf1DmneRrgorA3wCOcn1Sn8kg/bl5nKpHJ5Ua5Fx1zIA2ZFbzKqkkb4/PvMQ==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.5.tgz", + "integrity": "sha512-AcUzi66oVBxn09lVzWJ039bdtxJgmPilGhfhf1Rw3RGwDZw86z8cZndsJ3ya6vHzy6pGJEEhXB0tUzq6HTvmcQ==", "license": "MIT", "dependencies": { "@stanfordspezi/spezi-firebase-utils": "^0.1.0", diff --git a/functions/models/package.json b/functions/models/package.json index 99f2ee1b..e45fbbc0 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -22,7 +22,7 @@ ], "main": "lib/index.js", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.3" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.5" }, "devDependencies": { "@types/node": "^20", diff --git a/functions/package-lock.json b/functions/package-lock.json index 29f360f4..42f883aa 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -48,7 +48,7 @@ "models": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.3" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.5" }, "devDependencies": { "@types/node": "^20", @@ -2636,9 +2636,9 @@ "link": true }, "node_modules/@stanfordspezi/spezi-firebase-fhir": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.3.tgz", - "integrity": "sha512-gqmUCrD4FRwWap/mRYTkDvKQiWQf1DmneRrgorA3wCOcn1Sn8kg/bl5nKpHJ5Ua5Fx1zIA2ZFbzKqkkb4/PvMQ==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@stanfordspezi/spezi-firebase-fhir/-/spezi-firebase-fhir-0.1.5.tgz", + "integrity": "sha512-AcUzi66oVBxn09lVzWJ039bdtxJgmPilGhfhf1Rw3RGwDZw86z8cZndsJ3ya6vHzy6pGJEEhXB0tUzq6HTvmcQ==", "license": "MIT", "dependencies": { "@stanfordspezi/spezi-firebase-utils": "^0.1.0", diff --git a/functions/src/tests/resources/seeding/users_0_appointments.json b/functions/src/tests/resources/seeding/users_0_appointments.json index af3e63cf..33364cf8 100644 --- a/functions/src/tests/resources/seeding/users_0_appointments.json +++ b/functions/src/tests/resources/seeding/users_0_appointments.json @@ -1,24 +1,16 @@ { "0": { - "id": null, - "extension": null, "resourceType": "Appointment", - "meta": null, "status": "booked", "created": "2024-06-03T00:00:00.000Z", "start": "2024-06-07T00:00:00.000Z", "end": "2024-06-07T00:30:00.000Z", - "comment": null, - "patientInstruction": null, "participant": [ { + "status": "accepted", "actor": { - "reference": "users/0", - "type": null, - "display": null, - "identifier": null - }, - "type": null + "reference": "users/0" + } } ] } diff --git a/functions/src/tests/resources/seeding/users_0_bloodPressureObservations.json b/functions/src/tests/resources/seeding/users_0_bloodPressureObservations.json index c14ce219..a8ceed98 100644 --- a/functions/src/tests/resources/seeding/users_0_bloodPressureObservations.json +++ b/functions/src/tests/resources/seeding/users_0_bloodPressureObservations.json @@ -1,14402 +1,10802 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 133.9, "unit": "mmHg", - "value": 133.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80.8, "unit": "mmHg", - "value": 80.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" }, "1": { - "id": "1", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "1", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 98.2, "unit": "mmHg", - "value": 98.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 60.4, "unit": "mmHg", - "value": 60.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-02T00:00:00.000Z" }, "2": { - "id": "2", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "2", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 139.5, "unit": "mmHg", - "value": 139.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84, "unit": "mmHg", - "value": 84 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-01T00:00:00.000Z" }, "3": { - "id": "3", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "3", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 141.6, "unit": "mmHg", - "value": 141.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 85.2, "unit": "mmHg", - "value": 85.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-31T00:00:00.000Z" }, "4": { - "id": "4", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "4", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80, "unit": "mmHg", - "value": 80 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 50, "unit": "mmHg", - "value": 50 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-30T00:00:00.000Z" }, "5": { - "id": "5", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "5", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 128.3, "unit": "mmHg", - "value": 128.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 77.6, "unit": "mmHg", - "value": 77.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-29T00:00:00.000Z" }, "6": { - "id": "6", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "6", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 83.5, "unit": "mmHg", - "value": 83.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 52, "unit": "mmHg", - "value": 52 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-28T00:00:00.000Z" }, "7": { - "id": "7", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "7", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 143.7, "unit": "mmHg", - "value": 143.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86.4, "unit": "mmHg", - "value": 86.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-27T00:00:00.000Z" }, "8": { - "id": "8", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "8", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 138.1, "unit": "mmHg", - "value": 138.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 83.19999999999999, "unit": "mmHg", - "value": 83.19999999999999 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-26T00:00:00.000Z" }, "9": { - "id": "9", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "9", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 122, "unit": "mmHg", - "value": 122 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 74, "unit": "mmHg", - "value": 74 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-25T00:00:00.000Z" }, "10": { - "id": "10", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "10", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 126.9, "unit": "mmHg", - "value": 126.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 76.8, "unit": "mmHg", - "value": 76.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-24T00:00:00.000Z" }, "11": { - "id": "11", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "11", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 115.7, "unit": "mmHg", - "value": 115.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 70.4, "unit": "mmHg", - "value": 70.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-23T00:00:00.000Z" }, "12": { - "id": "12", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "12", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 99.6, "unit": "mmHg", - "value": 99.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 61.2, "unit": "mmHg", - "value": 61.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-22T00:00:00.000Z" }, "13": { - "id": "13", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "13", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.1, "unit": "mmHg", - "value": 89.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 55.2, "unit": "mmHg", - "value": 55.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-21T00:00:00.000Z" }, "14": { - "id": "14", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "14", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.2, "unit": "mmHg", - "value": 84.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 52.4, "unit": "mmHg", - "value": 52.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-20T00:00:00.000Z" }, "15": { - "id": "15", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "15", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 124.1, "unit": "mmHg", - "value": 124.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 75.2, "unit": "mmHg", - "value": 75.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-19T00:00:00.000Z" }, "16": { - "id": "16", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "16", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 105.2, "unit": "mmHg", - "value": 105.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 64.4, "unit": "mmHg", - "value": 64.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-18T00:00:00.000Z" }, "17": { - "id": "17", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "17", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 147.89999999999998, "unit": "mmHg", - "value": 147.89999999999998 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88.8, "unit": "mmHg", - "value": 88.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-17T00:00:00.000Z" }, "18": { - "id": "18", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "18", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 116.4, "unit": "mmHg", - "value": 116.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 70.8, "unit": "mmHg", - "value": 70.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-16T00:00:00.000Z" }, "19": { - "id": "19", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "19", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87.7, "unit": "mmHg", - "value": 87.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 54.4, "unit": "mmHg", - "value": 54.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-15T00:00:00.000Z" }, "20": { - "id": "20", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "20", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 149.3, "unit": "mmHg", - "value": 149.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.6, "unit": "mmHg", - "value": 89.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-14T00:00:00.000Z" }, "21": { - "id": "21", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "21", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 117.1, "unit": "mmHg", - "value": 117.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 71.2, "unit": "mmHg", - "value": 71.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-13T00:00:00.000Z" }, "22": { - "id": "22", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "22", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 103.1, "unit": "mmHg", - "value": 103.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 63.2, "unit": "mmHg", - "value": 63.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-12T00:00:00.000Z" }, "23": { - "id": "23", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "23", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 148.6, "unit": "mmHg", - "value": 148.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.2, "unit": "mmHg", - "value": 89.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-11T00:00:00.000Z" }, "24": { - "id": "24", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "24", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 110.8, "unit": "mmHg", - "value": 110.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 67.6, "unit": "mmHg", - "value": 67.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-10T00:00:00.000Z" }, "25": { - "id": "25", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "25", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 107.3, "unit": "mmHg", - "value": 107.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 65.6, "unit": "mmHg", - "value": 65.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-09T00:00:00.000Z" }, "26": { - "id": "26", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "26", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 133.2, "unit": "mmHg", - "value": 133.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80.4, "unit": "mmHg", - "value": 80.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-08T00:00:00.000Z" }, "27": { - "id": "27", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "27", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 134.6, "unit": "mmHg", - "value": 134.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 81.2, "unit": "mmHg", - "value": 81.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-07T00:00:00.000Z" }, "28": { - "id": "28", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "28", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 126.2, "unit": "mmHg", - "value": 126.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 76.4, "unit": "mmHg", - "value": 76.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-06T00:00:00.000Z" }, "29": { - "id": "29", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "29", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 131.1, "unit": "mmHg", - "value": 131.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 79.2, "unit": "mmHg", - "value": 79.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-05T00:00:00.000Z" }, "30": { - "id": "30", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "30", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 124.80000000000001, "unit": "mmHg", - "value": 124.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 75.6, "unit": "mmHg", - "value": 75.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-04T00:00:00.000Z" }, "31": { - "id": "31", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "31", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 127.6, "unit": "mmHg", - "value": 127.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 77.2, "unit": "mmHg", - "value": 77.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-03T00:00:00.000Z" }, "32": { - "id": "32", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "32", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 96.1, "unit": "mmHg", - "value": 96.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 59.2, "unit": "mmHg", - "value": 59.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-02T00:00:00.000Z" }, "33": { - "id": "33", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "33", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 102.4, "unit": "mmHg", - "value": 102.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 62.8, "unit": "mmHg", - "value": 62.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-01T00:00:00.000Z" }, "34": { - "id": "34", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "34", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 113.6, "unit": "mmHg", - "value": 113.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 69.2, "unit": "mmHg", - "value": 69.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-30T00:00:00.000Z" }, "35": { - "id": "35", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "35", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 129.7, "unit": "mmHg", - "value": 129.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 78.4, "unit": "mmHg", - "value": 78.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-29T00:00:00.000Z" }, "36": { - "id": "36", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "36", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 143, "unit": "mmHg", - "value": 143 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86, "unit": "mmHg", - "value": 86 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-28T00:00:00.000Z" }, "37": { - "id": "37", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "37", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 105.9, "unit": "mmHg", - "value": 105.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 64.8, "unit": "mmHg", - "value": 64.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-27T00:00:00.000Z" }, "38": { - "id": "38", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "38", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 85.6, "unit": "mmHg", - "value": 85.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 53.2, "unit": "mmHg", - "value": 53.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-26T00:00:00.000Z" }, "39": { - "id": "39", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "39", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 145.10000000000002, "unit": "mmHg", - "value": 145.10000000000002 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87.2, "unit": "mmHg", - "value": 87.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-25T00:00:00.000Z" }, "40": { - "id": "40", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "40", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88.4, "unit": "mmHg", - "value": 88.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 54.8, "unit": "mmHg", - "value": 54.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-24T00:00:00.000Z" }, "41": { - "id": "41", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "41", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 106.6, "unit": "mmHg", - "value": 106.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 65.2, "unit": "mmHg", - "value": 65.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-23T00:00:00.000Z" }, "42": { - "id": "42", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "42", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 110.1, "unit": "mmHg", - "value": 110.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 67.2, "unit": "mmHg", - "value": 67.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-22T00:00:00.000Z" }, "43": { - "id": "43", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "43", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 97.5, "unit": "mmHg", - "value": 97.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 60, "unit": "mmHg", - "value": 60 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-21T00:00:00.000Z" }, "44": { - "id": "44", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "44", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 108, "unit": "mmHg", - "value": 108 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 66, "unit": "mmHg", - "value": 66 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-20T00:00:00.000Z" }, "45": { - "id": "45", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "45", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 136.7, "unit": "mmHg", - "value": 136.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.4, "unit": "mmHg", - "value": 82.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-19T00:00:00.000Z" }, "46": { - "id": "46", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "46", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 125.5, "unit": "mmHg", - "value": 125.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 76, "unit": "mmHg", - "value": 76 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-18T00:00:00.000Z" }, "47": { - "id": "47", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "47", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 112.2, "unit": "mmHg", - "value": 112.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 68.4, "unit": "mmHg", - "value": 68.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-17T00:00:00.000Z" }, "48": { - "id": "48", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "48", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 109.4, "unit": "mmHg", - "value": 109.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 66.8, "unit": "mmHg", - "value": 66.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-16T00:00:00.000Z" }, "49": { - "id": "49", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "49", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 135.3, "unit": "mmHg", - "value": 135.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 81.6, "unit": "mmHg", - "value": 81.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-15T00:00:00.000Z" }, "50": { - "id": "50", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "50", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 94.7, "unit": "mmHg", - "value": 94.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 58.4, "unit": "mmHg", - "value": 58.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-14T00:00:00.000Z" }, "51": { - "id": "51", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "51", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 131.8, "unit": "mmHg", - "value": 131.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 79.6, "unit": "mmHg", - "value": 79.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-13T00:00:00.000Z" }, "52": { - "id": "52", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "52", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 132.5, "unit": "mmHg", - "value": 132.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80, "unit": "mmHg", - "value": 80 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-12T00:00:00.000Z" }, "53": { - "id": "53", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "53", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 147.2, "unit": "mmHg", - "value": 147.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88.4, "unit": "mmHg", - "value": 88.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-11T00:00:00.000Z" }, "54": { - "id": "54", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "54", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 119.2, "unit": "mmHg", - "value": 119.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 72.4, "unit": "mmHg", - "value": 72.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-10T00:00:00.000Z" }, "55": { - "id": "55", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "55", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 90.5, "unit": "mmHg", - "value": 90.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 56, "unit": "mmHg", - "value": 56 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-09T00:00:00.000Z" }, "56": { - "id": "56", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "56", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 101, "unit": "mmHg", - "value": 101 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 62, "unit": "mmHg", - "value": 62 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-08T00:00:00.000Z" }, "57": { - "id": "57", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "57", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 146.5, "unit": "mmHg", - "value": 146.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88, "unit": "mmHg", - "value": 88 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-07T00:00:00.000Z" }, "58": { - "id": "58", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "58", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 112.9, "unit": "mmHg", - "value": 112.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 68.8, "unit": "mmHg", - "value": 68.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-06T00:00:00.000Z" }, "59": { - "id": "59", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "59", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 142.3, "unit": "mmHg", - "value": 142.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 85.6, "unit": "mmHg", - "value": 85.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-05T00:00:00.000Z" }, "60": { - "id": "60", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "60", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 118.5, "unit": "mmHg", - "value": 118.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 72, "unit": "mmHg", - "value": 72 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-04T00:00:00.000Z" }, "61": { - "id": "61", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "61", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 138.8, "unit": "mmHg", - "value": 138.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 83.6, "unit": "mmHg", - "value": 83.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-03T00:00:00.000Z" }, "62": { - "id": "62", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "62", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 119.9, "unit": "mmHg", - "value": 119.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 72.8, "unit": "mmHg", - "value": 72.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-02T00:00:00.000Z" }, "63": { - "id": "63", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "63", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86.3, "unit": "mmHg", - "value": 86.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 53.6, "unit": "mmHg", - "value": 53.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-01T00:00:00.000Z" }, "64": { - "id": "64", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "64", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 120.6, "unit": "mmHg", - "value": 120.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 73.2, "unit": "mmHg", - "value": 73.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-31T00:00:00.000Z" }, "65": { - "id": "65", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "65", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 96.8, "unit": "mmHg", - "value": 96.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 59.6, "unit": "mmHg", - "value": 59.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-30T00:00:00.000Z" }, "66": { - "id": "66", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "66", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87, "unit": "mmHg", - "value": 87 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 54, "unit": "mmHg", - "value": 54 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-29T00:00:00.000Z" }, "67": { - "id": "67", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "67", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 111.5, "unit": "mmHg", - "value": 111.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 68, "unit": "mmHg", - "value": 68 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-28T00:00:00.000Z" }, "68": { - "id": "68", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "68", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 140.2, "unit": "mmHg", - "value": 140.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.4, "unit": "mmHg", - "value": 84.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-27T00:00:00.000Z" }, "69": { - "id": "69", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "69", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 122.69999999999999, "unit": "mmHg", - "value": 122.69999999999999 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 74.4, "unit": "mmHg", - "value": 74.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-26T00:00:00.000Z" }, "70": { - "id": "70", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "70", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 117.80000000000001, "unit": "mmHg", - "value": 117.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 71.6, "unit": "mmHg", - "value": 71.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-25T00:00:00.000Z" }, "71": { - "id": "71", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "71", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 140.9, "unit": "mmHg", - "value": 140.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.8, "unit": "mmHg", - "value": 84.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-24T00:00:00.000Z" }, "72": { - "id": "72", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "72", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 91.9, "unit": "mmHg", - "value": 91.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 56.8, "unit": "mmHg", - "value": 56.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-23T00:00:00.000Z" }, "73": { - "id": "73", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "73", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 108.7, "unit": "mmHg", - "value": 108.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 66.4, "unit": "mmHg", - "value": 66.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-22T00:00:00.000Z" }, "74": { - "id": "74", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "74", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 123.4, "unit": "mmHg", - "value": 123.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 74.8, "unit": "mmHg", - "value": 74.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-21T00:00:00.000Z" }, "75": { - "id": "75", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "75", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 114.3, "unit": "mmHg", - "value": 114.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 69.6, "unit": "mmHg", - "value": 69.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-20T00:00:00.000Z" }, "76": { - "id": "76", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "76", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 103.8, "unit": "mmHg", - "value": 103.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 63.6, "unit": "mmHg", - "value": 63.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-19T00:00:00.000Z" }, "77": { - "id": "77", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "77", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.8, "unit": "mmHg", - "value": 82.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 51.6, "unit": "mmHg", - "value": 51.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-18T00:00:00.000Z" }, "78": { - "id": "78", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "78", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 144.4, "unit": "mmHg", - "value": 144.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86.80000000000001, "unit": "mmHg", - "value": 86.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-17T00:00:00.000Z" }, "79": { - "id": "79", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "79", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.8, "unit": "mmHg", - "value": 89.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 55.6, "unit": "mmHg", - "value": 55.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-16T00:00:00.000Z" }, "80": { - "id": "80", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "80", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 121.3, "unit": "mmHg", - "value": 121.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 73.6, "unit": "mmHg", - "value": 73.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-15T00:00:00.000Z" }, "81": { - "id": "81", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "81", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 91.2, "unit": "mmHg", - "value": 91.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 56.4, "unit": "mmHg", - "value": 56.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-14T00:00:00.000Z" }, "82": { - "id": "82", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "82", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 92.6, "unit": "mmHg", - "value": 92.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 57.2, "unit": "mmHg", - "value": 57.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-13T00:00:00.000Z" }, "83": { - "id": "83", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "83", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.1, "unit": "mmHg", - "value": 82.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 51.2, "unit": "mmHg", - "value": 51.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-12T00:00:00.000Z" }, "84": { - "id": "84", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "84", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 104.5, "unit": "mmHg", - "value": 104.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 64, "unit": "mmHg", - "value": 64 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-11T00:00:00.000Z" }, "85": { - "id": "85", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "85", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 81.4, "unit": "mmHg", - "value": 81.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 50.8, "unit": "mmHg", - "value": 50.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-10T00:00:00.000Z" }, "86": { - "id": "86", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "86", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 130.4, "unit": "mmHg", - "value": 130.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 78.8, "unit": "mmHg", - "value": 78.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-09T00:00:00.000Z" }, "87": { - "id": "87", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "87", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 115, "unit": "mmHg", - "value": 115 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 70, "unit": "mmHg", - "value": 70 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-08T00:00:00.000Z" }, "88": { - "id": "88", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "88", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 95.4, "unit": "mmHg", - "value": 95.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 58.8, "unit": "mmHg", - "value": 58.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-07T00:00:00.000Z" }, "89": { - "id": "89", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "89", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80.7, "unit": "mmHg", - "value": 80.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 50.4, "unit": "mmHg", - "value": 50.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-06T00:00:00.000Z" }, "90": { - "id": "90", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "90", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 136, "unit": "mmHg", - "value": 136 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82, "unit": "mmHg", - "value": 82 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-05T00:00:00.000Z" }, "91": { - "id": "91", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "91", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.9, "unit": "mmHg", - "value": 84.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 52.8, "unit": "mmHg", - "value": 52.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-04T00:00:00.000Z" }, "92": { - "id": "92", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "92", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 100.3, "unit": "mmHg", - "value": 100.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 61.6, "unit": "mmHg", - "value": 61.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-03T00:00:00.000Z" }, "93": { - "id": "93", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "93", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 137.4, "unit": "mmHg", - "value": 137.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.8, "unit": "mmHg", - "value": 82.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-02T00:00:00.000Z" }, "94": { - "id": "94", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "94", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 101.7, "unit": "mmHg", - "value": 101.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 62.4, "unit": "mmHg", - "value": 62.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-01T00:00:00.000Z" }, "95": { - "id": "95", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "95", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 145.8, "unit": "mmHg", - "value": 145.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87.6, "unit": "mmHg", - "value": 87.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-29T00:00:00.000Z" }, "96": { - "id": "96", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "96", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 93.3, "unit": "mmHg", - "value": 93.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 57.6, "unit": "mmHg", - "value": 57.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-28T00:00:00.000Z" }, "97": { - "id": "97", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "97", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 98.9, "unit": "mmHg", - "value": 98.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 60.8, "unit": "mmHg", - "value": 60.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-27T00:00:00.000Z" }, "98": { - "id": "98", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "98", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 129, "unit": "mmHg", - "value": 129 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 78, "unit": "mmHg", - "value": 78 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-26T00:00:00.000Z" }, "99": { - "id": "99", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "99", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 94, "unit": "mmHg", - "value": 94 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 58, "unit": "mmHg", - "value": 58 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-25T00:00:00.000Z" }, "100": { - "id": "100", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "100", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 133.9, "unit": "mmHg", - "value": 133.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80.8, "unit": "mmHg", - "value": 80.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-24T00:00:00.000Z" }, "101": { - "id": "101", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "101", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 98.2, "unit": "mmHg", - "value": 98.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 60.4, "unit": "mmHg", - "value": 60.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-23T00:00:00.000Z" }, "102": { - "id": "102", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "102", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 139.5, "unit": "mmHg", - "value": 139.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84, "unit": "mmHg", - "value": 84 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-22T00:00:00.000Z" }, "103": { - "id": "103", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "103", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 141.6, "unit": "mmHg", - "value": 141.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 85.2, "unit": "mmHg", - "value": 85.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-21T00:00:00.000Z" }, "104": { - "id": "104", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "104", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80, "unit": "mmHg", - "value": 80 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 50, "unit": "mmHg", - "value": 50 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-20T00:00:00.000Z" }, "105": { - "id": "105", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "105", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 128.3, "unit": "mmHg", - "value": 128.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 77.6, "unit": "mmHg", - "value": 77.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-19T00:00:00.000Z" }, "106": { - "id": "106", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "106", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 83.5, "unit": "mmHg", - "value": 83.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 52, "unit": "mmHg", - "value": 52 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-18T00:00:00.000Z" }, "107": { - "id": "107", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "107", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 143.7, "unit": "mmHg", - "value": 143.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86.4, "unit": "mmHg", - "value": 86.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-17T00:00:00.000Z" }, "108": { - "id": "108", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "108", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 138.1, "unit": "mmHg", - "value": 138.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 83.19999999999999, "unit": "mmHg", - "value": 83.19999999999999 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-16T00:00:00.000Z" }, "109": { - "id": "109", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "109", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 122, "unit": "mmHg", - "value": 122 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 74, "unit": "mmHg", - "value": 74 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-15T00:00:00.000Z" }, "110": { - "id": "110", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "110", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 126.9, "unit": "mmHg", - "value": 126.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 76.8, "unit": "mmHg", - "value": 76.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-14T00:00:00.000Z" }, "111": { - "id": "111", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "111", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 115.7, "unit": "mmHg", - "value": 115.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 70.4, "unit": "mmHg", - "value": 70.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-13T00:00:00.000Z" }, "112": { - "id": "112", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "112", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 99.6, "unit": "mmHg", - "value": 99.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 61.2, "unit": "mmHg", - "value": 61.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-12T00:00:00.000Z" }, "113": { - "id": "113", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "113", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.1, "unit": "mmHg", - "value": 89.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 55.2, "unit": "mmHg", - "value": 55.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-11T00:00:00.000Z" }, "114": { - "id": "114", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "114", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.2, "unit": "mmHg", - "value": 84.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 52.4, "unit": "mmHg", - "value": 52.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-10T00:00:00.000Z" }, "115": { - "id": "115", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "115", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 124.1, "unit": "mmHg", - "value": 124.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 75.2, "unit": "mmHg", - "value": 75.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-09T00:00:00.000Z" }, "116": { - "id": "116", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "116", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 105.2, "unit": "mmHg", - "value": 105.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 64.4, "unit": "mmHg", - "value": 64.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-08T00:00:00.000Z" }, "117": { - "id": "117", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "117", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 147.89999999999998, "unit": "mmHg", - "value": 147.89999999999998 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88.8, "unit": "mmHg", - "value": 88.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-07T00:00:00.000Z" }, "118": { - "id": "118", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "118", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 116.4, "unit": "mmHg", - "value": 116.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 70.8, "unit": "mmHg", - "value": 70.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-06T00:00:00.000Z" }, "119": { - "id": "119", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "119", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87.7, "unit": "mmHg", - "value": 87.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 54.4, "unit": "mmHg", - "value": 54.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-05T00:00:00.000Z" }, "120": { - "id": "120", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "120", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 149.3, "unit": "mmHg", - "value": 149.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.6, "unit": "mmHg", - "value": 89.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-04T00:00:00.000Z" }, "121": { - "id": "121", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "121", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 117.1, "unit": "mmHg", - "value": 117.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 71.2, "unit": "mmHg", - "value": 71.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-03T00:00:00.000Z" }, "122": { - "id": "122", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "122", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 103.1, "unit": "mmHg", - "value": 103.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 63.2, "unit": "mmHg", - "value": 63.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-02T00:00:00.000Z" }, "123": { - "id": "123", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "123", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 148.6, "unit": "mmHg", - "value": 148.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.2, "unit": "mmHg", - "value": 89.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-01T00:00:00.000Z" }, "124": { - "id": "124", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "124", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 110.8, "unit": "mmHg", - "value": 110.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 67.6, "unit": "mmHg", - "value": 67.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-31T00:00:00.000Z" }, "125": { - "id": "125", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "125", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 107.3, "unit": "mmHg", - "value": 107.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 65.6, "unit": "mmHg", - "value": 65.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-30T00:00:00.000Z" }, "126": { - "id": "126", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "126", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 133.2, "unit": "mmHg", - "value": 133.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80.4, "unit": "mmHg", - "value": 80.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-29T00:00:00.000Z" }, "127": { - "id": "127", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "127", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 134.6, "unit": "mmHg", - "value": 134.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 81.2, "unit": "mmHg", - "value": 81.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-28T00:00:00.000Z" }, "128": { - "id": "128", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "128", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 126.2, "unit": "mmHg", - "value": 126.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 76.4, "unit": "mmHg", - "value": 76.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-27T00:00:00.000Z" }, "129": { - "id": "129", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "129", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 131.1, "unit": "mmHg", - "value": 131.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 79.2, "unit": "mmHg", - "value": 79.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-26T00:00:00.000Z" }, "130": { - "id": "130", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "130", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 124.80000000000001, "unit": "mmHg", - "value": 124.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 75.6, "unit": "mmHg", - "value": 75.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-25T00:00:00.000Z" }, "131": { - "id": "131", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "131", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 127.6, "unit": "mmHg", - "value": 127.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 77.2, "unit": "mmHg", - "value": 77.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-24T00:00:00.000Z" }, "132": { - "id": "132", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "132", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 96.1, "unit": "mmHg", - "value": 96.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 59.2, "unit": "mmHg", - "value": 59.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-23T00:00:00.000Z" }, "133": { - "id": "133", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "133", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 102.4, "unit": "mmHg", - "value": 102.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 62.8, "unit": "mmHg", - "value": 62.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-22T00:00:00.000Z" }, "134": { - "id": "134", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "134", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 113.6, "unit": "mmHg", - "value": 113.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 69.2, "unit": "mmHg", - "value": 69.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-21T00:00:00.000Z" }, "135": { - "id": "135", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "135", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 129.7, "unit": "mmHg", - "value": 129.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 78.4, "unit": "mmHg", - "value": 78.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-20T00:00:00.000Z" }, "136": { - "id": "136", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "136", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 143, "unit": "mmHg", - "value": 143 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86, "unit": "mmHg", - "value": 86 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-19T00:00:00.000Z" }, "137": { - "id": "137", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "137", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 105.9, "unit": "mmHg", - "value": 105.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 64.8, "unit": "mmHg", - "value": 64.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-18T00:00:00.000Z" }, "138": { - "id": "138", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "138", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 85.6, "unit": "mmHg", - "value": 85.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 53.2, "unit": "mmHg", - "value": 53.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-17T00:00:00.000Z" }, "139": { - "id": "139", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "139", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 145.10000000000002, "unit": "mmHg", - "value": 145.10000000000002 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87.2, "unit": "mmHg", - "value": 87.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-16T00:00:00.000Z" }, "140": { - "id": "140", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "140", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88.4, "unit": "mmHg", - "value": 88.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 54.8, "unit": "mmHg", - "value": 54.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-15T00:00:00.000Z" }, "141": { - "id": "141", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "141", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 106.6, "unit": "mmHg", - "value": 106.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 65.2, "unit": "mmHg", - "value": 65.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-14T00:00:00.000Z" }, "142": { - "id": "142", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "142", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 110.1, "unit": "mmHg", - "value": 110.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 67.2, "unit": "mmHg", - "value": 67.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-13T00:00:00.000Z" }, "143": { - "id": "143", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "143", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 97.5, "unit": "mmHg", - "value": 97.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 60, "unit": "mmHg", - "value": 60 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-12T00:00:00.000Z" }, "144": { - "id": "144", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "144", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 108, "unit": "mmHg", - "value": 108 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 66, "unit": "mmHg", - "value": 66 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-11T00:00:00.000Z" }, "145": { - "id": "145", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "145", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 136.7, "unit": "mmHg", - "value": 136.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.4, "unit": "mmHg", - "value": 82.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-10T00:00:00.000Z" }, "146": { - "id": "146", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "146", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 125.5, "unit": "mmHg", - "value": 125.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 76, "unit": "mmHg", - "value": 76 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-09T00:00:00.000Z" }, "147": { - "id": "147", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "147", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 112.2, "unit": "mmHg", - "value": 112.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 68.4, "unit": "mmHg", - "value": 68.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-08T00:00:00.000Z" }, "148": { - "id": "148", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "148", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 109.4, "unit": "mmHg", - "value": 109.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 66.8, "unit": "mmHg", - "value": 66.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-07T00:00:00.000Z" }, "149": { - "id": "149", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "149", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 135.3, "unit": "mmHg", - "value": 135.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 81.6, "unit": "mmHg", - "value": 81.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-06T00:00:00.000Z" }, "150": { - "id": "150", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "150", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 94.7, "unit": "mmHg", - "value": 94.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 58.4, "unit": "mmHg", - "value": 58.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-05T00:00:00.000Z" }, "151": { - "id": "151", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "151", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 131.8, "unit": "mmHg", - "value": 131.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 79.6, "unit": "mmHg", - "value": 79.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-04T00:00:00.000Z" }, "152": { - "id": "152", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "152", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 132.5, "unit": "mmHg", - "value": 132.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80, "unit": "mmHg", - "value": 80 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-03T00:00:00.000Z" }, "153": { - "id": "153", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "153", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 147.2, "unit": "mmHg", - "value": 147.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88.4, "unit": "mmHg", - "value": 88.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-02T00:00:00.000Z" }, "154": { - "id": "154", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "154", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 119.2, "unit": "mmHg", - "value": 119.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 72.4, "unit": "mmHg", - "value": 72.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-01T00:00:00.000Z" }, "155": { - "id": "155", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "155", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 90.5, "unit": "mmHg", - "value": 90.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 56, "unit": "mmHg", - "value": 56 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-31T00:00:00.000Z" }, "156": { - "id": "156", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "156", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 101, "unit": "mmHg", - "value": 101 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 62, "unit": "mmHg", - "value": 62 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-30T00:00:00.000Z" }, "157": { - "id": "157", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "157", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 146.5, "unit": "mmHg", - "value": 146.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 88, "unit": "mmHg", - "value": 88 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-29T00:00:00.000Z" }, "158": { - "id": "158", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "158", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 112.9, "unit": "mmHg", - "value": 112.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 68.8, "unit": "mmHg", - "value": 68.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-28T00:00:00.000Z" }, "159": { - "id": "159", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "159", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 142.3, "unit": "mmHg", - "value": 142.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 85.6, "unit": "mmHg", - "value": 85.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-27T00:00:00.000Z" }, "160": { - "id": "160", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "160", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 118.5, "unit": "mmHg", - "value": 118.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 72, "unit": "mmHg", - "value": 72 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-26T00:00:00.000Z" }, "161": { - "id": "161", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "161", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 138.8, "unit": "mmHg", - "value": 138.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 83.6, "unit": "mmHg", - "value": 83.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-25T00:00:00.000Z" }, "162": { - "id": "162", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "162", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 119.9, "unit": "mmHg", - "value": 119.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 72.8, "unit": "mmHg", - "value": 72.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-24T00:00:00.000Z" }, "163": { - "id": "163", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "163", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86.3, "unit": "mmHg", - "value": 86.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 53.6, "unit": "mmHg", - "value": 53.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-23T00:00:00.000Z" }, "164": { - "id": "164", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "164", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 120.6, "unit": "mmHg", - "value": 120.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 73.2, "unit": "mmHg", - "value": 73.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-22T00:00:00.000Z" }, "165": { - "id": "165", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "165", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 96.8, "unit": "mmHg", - "value": 96.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 59.6, "unit": "mmHg", - "value": 59.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-21T00:00:00.000Z" }, "166": { - "id": "166", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "166", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87, "unit": "mmHg", - "value": 87 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 54, "unit": "mmHg", - "value": 54 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-20T00:00:00.000Z" }, "167": { - "id": "167", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "167", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 111.5, "unit": "mmHg", - "value": 111.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 68, "unit": "mmHg", - "value": 68 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-19T00:00:00.000Z" }, "168": { - "id": "168", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "168", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 140.2, "unit": "mmHg", - "value": 140.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.4, "unit": "mmHg", - "value": 84.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-18T00:00:00.000Z" }, "169": { - "id": "169", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "169", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 122.69999999999999, "unit": "mmHg", - "value": 122.69999999999999 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 74.4, "unit": "mmHg", - "value": 74.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-17T00:00:00.000Z" }, "170": { - "id": "170", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "170", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 117.80000000000001, "unit": "mmHg", - "value": 117.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 71.6, "unit": "mmHg", - "value": 71.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-16T00:00:00.000Z" }, "171": { - "id": "171", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "171", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 140.9, "unit": "mmHg", - "value": 140.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.8, "unit": "mmHg", - "value": 84.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-15T00:00:00.000Z" }, "172": { - "id": "172", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "172", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 91.9, "unit": "mmHg", - "value": 91.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 56.8, "unit": "mmHg", - "value": 56.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-14T00:00:00.000Z" }, "173": { - "id": "173", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "173", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 108.7, "unit": "mmHg", - "value": 108.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 66.4, "unit": "mmHg", - "value": 66.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-13T00:00:00.000Z" }, "174": { - "id": "174", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "174", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 123.4, "unit": "mmHg", - "value": 123.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 74.8, "unit": "mmHg", - "value": 74.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-12T00:00:00.000Z" }, "175": { - "id": "175", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "175", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 114.3, "unit": "mmHg", - "value": 114.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 69.6, "unit": "mmHg", - "value": 69.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-11T00:00:00.000Z" }, "176": { - "id": "176", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "176", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 103.8, "unit": "mmHg", - "value": 103.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 63.6, "unit": "mmHg", - "value": 63.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-10T00:00:00.000Z" }, "177": { - "id": "177", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "177", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.8, "unit": "mmHg", - "value": 82.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 51.6, "unit": "mmHg", - "value": 51.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-09T00:00:00.000Z" }, "178": { - "id": "178", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "178", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 144.4, "unit": "mmHg", - "value": 144.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 86.80000000000001, "unit": "mmHg", - "value": 86.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-08T00:00:00.000Z" }, "179": { - "id": "179", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "179", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 89.8, "unit": "mmHg", - "value": 89.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 55.6, "unit": "mmHg", - "value": 55.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-07T00:00:00.000Z" }, "180": { - "id": "180", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "180", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 121.3, "unit": "mmHg", - "value": 121.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 73.6, "unit": "mmHg", - "value": 73.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-06T00:00:00.000Z" }, "181": { - "id": "181", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "181", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 91.2, "unit": "mmHg", - "value": 91.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 56.4, "unit": "mmHg", - "value": 56.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-05T00:00:00.000Z" }, "182": { - "id": "182", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "182", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 92.6, "unit": "mmHg", - "value": 92.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 57.2, "unit": "mmHg", - "value": 57.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-04T00:00:00.000Z" }, "183": { - "id": "183", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "183", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.1, "unit": "mmHg", - "value": 82.1 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 51.2, "unit": "mmHg", - "value": 51.2 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-03T00:00:00.000Z" }, "184": { - "id": "184", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "184", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 104.5, "unit": "mmHg", - "value": 104.5 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 64, "unit": "mmHg", - "value": 64 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-02T00:00:00.000Z" }, "185": { - "id": "185", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "185", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 81.4, "unit": "mmHg", - "value": 81.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 50.8, "unit": "mmHg", - "value": 50.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-01T00:00:00.000Z" }, "186": { - "id": "186", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "186", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 130.4, "unit": "mmHg", - "value": 130.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 78.8, "unit": "mmHg", - "value": 78.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-30T00:00:00.000Z" }, "187": { - "id": "187", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "187", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 115, "unit": "mmHg", - "value": 115 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 70, "unit": "mmHg", - "value": 70 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-29T00:00:00.000Z" }, "188": { - "id": "188", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "188", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 95.4, "unit": "mmHg", - "value": 95.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 58.8, "unit": "mmHg", - "value": 58.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-28T00:00:00.000Z" }, "189": { - "id": "189", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "189", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 80.7, "unit": "mmHg", - "value": 80.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 50.4, "unit": "mmHg", - "value": 50.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-27T00:00:00.000Z" }, "190": { - "id": "190", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "190", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 136, "unit": "mmHg", - "value": 136 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82, "unit": "mmHg", - "value": 82 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-26T00:00:00.000Z" }, "191": { - "id": "191", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "191", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 84.9, "unit": "mmHg", - "value": 84.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 52.8, "unit": "mmHg", - "value": 52.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-25T00:00:00.000Z" }, "192": { - "id": "192", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "192", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 100.3, "unit": "mmHg", - "value": 100.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 61.6, "unit": "mmHg", - "value": 61.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-24T00:00:00.000Z" }, "193": { - "id": "193", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "193", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 137.4, "unit": "mmHg", - "value": 137.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 82.8, "unit": "mmHg", - "value": 82.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-23T00:00:00.000Z" }, "194": { - "id": "194", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "194", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 101.7, "unit": "mmHg", - "value": 101.7 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 62.4, "unit": "mmHg", - "value": 62.4 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-22T00:00:00.000Z" }, "195": { - "id": "195", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "195", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 145.8, "unit": "mmHg", - "value": 145.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 87.6, "unit": "mmHg", - "value": 87.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-21T00:00:00.000Z" }, "196": { - "id": "196", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "196", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 93.3, "unit": "mmHg", - "value": 93.3 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 57.6, "unit": "mmHg", - "value": 57.6 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-20T00:00:00.000Z" }, "197": { - "id": "197", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "197", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 98.9, "unit": "mmHg", - "value": 98.9 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 60.8, "unit": "mmHg", - "value": 60.8 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-19T00:00:00.000Z" }, "198": { - "id": "198", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "198", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 129, "unit": "mmHg", - "value": 129 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 78, "unit": "mmHg", - "value": 78 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-18T00:00:00.000Z" }, "199": { - "id": "199", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "199", "status": "final", "code": { + "text": "Blood pressure panel with all children optional", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "85354-9", - "display": "Blood pressure panel with all children optional", - "userSelected": null + "display": "Blood pressure panel with all children optional" } - ], - "text": "Blood pressure panel with all children optional" + ] }, "component": [ { "code": { + "text": "Systolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8480-6", - "display": "Systolic blood pressure", - "userSelected": null + "display": "Systolic blood pressure" } - ], - "text": "Systolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 94, "unit": "mmHg", - "value": 94 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } }, { "code": { + "text": "Diastolic blood pressure", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8462-4", - "display": "Diastolic blood pressure", - "userSelected": null + "display": "Diastolic blood pressure" } - ], - "text": "Diastolic blood pressure" + ] }, "valueQuantity": { - "code": "mm[Hg]", - "system": "http://unitsofmeasure.org", + "value": 58, "unit": "mmHg", - "value": 58 + "system": "http://unitsofmeasure.org", + "code": "mm[Hg]" } } ], - "valueQuantity": null, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-17T00:00:00.000Z" } } \ No newline at end of file diff --git a/functions/src/tests/resources/seeding/users_0_bodyWeightObservations.json b/functions/src/tests/resources/seeding/users_0_bodyWeightObservations.json index fc0eacc2..868df6b1 100644 --- a/functions/src/tests/resources/seeding/users_0_bodyWeightObservations.json +++ b/functions/src/tests/resources/seeding/users_0_bodyWeightObservations.json @@ -1,6434 +1,4424 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "kg", - "system": "http://unitsofmeasure.org", + "value": 70, "unit": "kg", - "value": 70 + "system": "http://unitsofmeasure.org", + "code": "kg" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" }, "1": { - "id": "1", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "1", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.6, "unit": "lbs", - "value": 167.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-02T00:00:00.000Z" }, "2": { - "id": "2", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "2", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.4, "unit": "lbs", - "value": 158.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-01T00:00:00.000Z" }, "3": { - "id": "3", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "3", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.2, "unit": "lbs", - "value": 152.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-31T00:00:00.000Z" }, "4": { - "id": "4", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "4", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.2, "unit": "lbs", - "value": 164.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-30T00:00:00.000Z" }, "5": { - "id": "5", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "5", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.8, "unit": "lbs", - "value": 150.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-29T00:00:00.000Z" }, "6": { - "id": "6", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "6", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150, "unit": "lbs", - "value": 150 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-28T00:00:00.000Z" }, "7": { - "id": "7", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "7", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.2, "unit": "lbs", - "value": 167.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-27T00:00:00.000Z" }, "8": { - "id": "8", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "8", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153, "unit": "lbs", - "value": 153 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-26T00:00:00.000Z" }, "9": { - "id": "9", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "9", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.2, "unit": "lbs", - "value": 158.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-25T00:00:00.000Z" }, "10": { - "id": "10", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "10", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.2, "unit": "lbs", - "value": 150.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-24T00:00:00.000Z" }, "11": { - "id": "11", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "11", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.6, "unit": "lbs", - "value": 169.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-23T00:00:00.000Z" }, "12": { - "id": "12", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "12", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167, "unit": "lbs", - "value": 167 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-22T00:00:00.000Z" }, "13": { - "id": "13", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "13", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168, "unit": "lbs", - "value": 168 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-21T00:00:00.000Z" }, "14": { - "id": "14", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "14", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.4, "unit": "lbs", - "value": 159.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-20T00:00:00.000Z" }, "15": { - "id": "15", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "15", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.8, "unit": "lbs", - "value": 166.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-19T00:00:00.000Z" }, "16": { - "id": "16", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "16", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.6, "unit": "lbs", - "value": 150.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-18T00:00:00.000Z" }, "17": { - "id": "17", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "17", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.2, "unit": "lbs", - "value": 162.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-17T00:00:00.000Z" }, "18": { - "id": "18", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "18", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.2, "unit": "lbs", - "value": 151.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-16T00:00:00.000Z" }, "19": { - "id": "19", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "19", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.4, "unit": "lbs", - "value": 165.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-15T00:00:00.000Z" }, "20": { - "id": "20", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "20", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.2, "unit": "lbs", - "value": 165.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-14T00:00:00.000Z" }, "21": { - "id": "21", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "21", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.8, "unit": "lbs", - "value": 165.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-13T00:00:00.000Z" }, "22": { - "id": "22", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "22", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.6, "unit": "lbs", - "value": 162.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-12T00:00:00.000Z" }, "23": { - "id": "23", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "23", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.2, "unit": "lbs", - "value": 159.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-11T00:00:00.000Z" }, "24": { - "id": "24", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "24", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.6, "unit": "lbs", - "value": 160.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-10T00:00:00.000Z" }, "25": { - "id": "25", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "25", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161, "unit": "lbs", - "value": 161 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-09T00:00:00.000Z" }, "26": { - "id": "26", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "26", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.6, "unit": "lbs", - "value": 165.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-08T00:00:00.000Z" }, "27": { - "id": "27", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "27", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.8, "unit": "lbs", - "value": 152.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-07T00:00:00.000Z" }, "28": { - "id": "28", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "28", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.8, "unit": "lbs", - "value": 156.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-06T00:00:00.000Z" }, "29": { - "id": "29", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "29", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162, "unit": "lbs", - "value": 162 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-05T00:00:00.000Z" }, "30": { - "id": "30", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "30", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.4, "unit": "lbs", - "value": 168.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-04T00:00:00.000Z" }, "31": { - "id": "31", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "31", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.4, "unit": "lbs", - "value": 160.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-03T00:00:00.000Z" }, "32": { - "id": "32", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "32", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.6, "unit": "lbs", - "value": 158.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-02T00:00:00.000Z" }, "33": { - "id": "33", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "33", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.8, "unit": "lbs", - "value": 164.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-01T00:00:00.000Z" }, "34": { - "id": "34", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "34", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.4, "unit": "lbs", - "value": 167.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-30T00:00:00.000Z" }, "35": { - "id": "35", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "35", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158, "unit": "lbs", - "value": 158 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-29T00:00:00.000Z" }, "36": { - "id": "36", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "36", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152, "unit": "lbs", - "value": 152 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-28T00:00:00.000Z" }, "37": { - "id": "37", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "37", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.6, "unit": "lbs", - "value": 151.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-27T00:00:00.000Z" }, "38": { - "id": "38", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "38", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.8, "unit": "lbs", - "value": 163.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-26T00:00:00.000Z" }, "39": { - "id": "39", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "39", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.8, "unit": "lbs", - "value": 154.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-25T00:00:00.000Z" }, "40": { - "id": "40", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "40", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.4, "unit": "lbs", - "value": 157.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-24T00:00:00.000Z" }, "41": { - "id": "41", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "41", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.4, "unit": "lbs", - "value": 169.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-23T00:00:00.000Z" }, "42": { - "id": "42", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "42", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.4, "unit": "lbs", - "value": 161.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-22T00:00:00.000Z" }, "43": { - "id": "43", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "43", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.6, "unit": "lbs", - "value": 166.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-21T00:00:00.000Z" }, "44": { - "id": "44", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "44", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.8, "unit": "lbs", - "value": 159.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-20T00:00:00.000Z" }, "45": { - "id": "45", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "45", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.4, "unit": "lbs", - "value": 154.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-19T00:00:00.000Z" }, "46": { - "id": "46", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "46", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169, "unit": "lbs", - "value": 169 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-18T00:00:00.000Z" }, "47": { - "id": "47", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "47", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.4, "unit": "lbs", - "value": 153.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-17T00:00:00.000Z" }, "48": { - "id": "48", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "48", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.6, "unit": "lbs", - "value": 153.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-16T00:00:00.000Z" }, "49": { - "id": "49", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "49", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.8, "unit": "lbs", - "value": 158.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-15T00:00:00.000Z" }, "50": { - "id": "50", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "50", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151, "unit": "lbs", - "value": 151 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-14T00:00:00.000Z" }, "51": { - "id": "51", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "51", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166, "unit": "lbs", - "value": 166 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-13T00:00:00.000Z" }, "52": { - "id": "52", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "52", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160, "unit": "lbs", - "value": 160 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-12T00:00:00.000Z" }, "53": { - "id": "53", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "53", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.8, "unit": "lbs", - "value": 155.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-11T00:00:00.000Z" }, "54": { - "id": "54", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "54", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.6, "unit": "lbs", - "value": 161.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-10T00:00:00.000Z" }, "55": { - "id": "55", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "55", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.8, "unit": "lbs", - "value": 157.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-09T00:00:00.000Z" }, "56": { - "id": "56", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "56", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.4, "unit": "lbs", - "value": 150.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-08T00:00:00.000Z" }, "57": { - "id": "57", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "57", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164, "unit": "lbs", - "value": 164 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-07T00:00:00.000Z" }, "58": { - "id": "58", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "58", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.2, "unit": "lbs", - "value": 153.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-06T00:00:00.000Z" }, "59": { - "id": "59", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "59", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.8, "unit": "lbs", - "value": 162.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-05T00:00:00.000Z" }, "60": { - "id": "60", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "60", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.2, "unit": "lbs", - "value": 161.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-04T00:00:00.000Z" }, "61": { - "id": "61", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "61", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.8, "unit": "lbs", - "value": 161.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-03T00:00:00.000Z" }, "62": { - "id": "62", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "62", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.8, "unit": "lbs", - "value": 153.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-02T00:00:00.000Z" }, "63": { - "id": "63", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "63", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.6, "unit": "lbs", - "value": 156.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-01T00:00:00.000Z" }, "64": { - "id": "64", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "64", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.8, "unit": "lbs", - "value": 169.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-31T00:00:00.000Z" }, "65": { - "id": "65", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "65", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.6, "unit": "lbs", - "value": 152.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-30T00:00:00.000Z" }, "66": { - "id": "66", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "66", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.6, "unit": "lbs", - "value": 154.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-29T00:00:00.000Z" }, "67": { - "id": "67", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "67", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.2, "unit": "lbs", - "value": 166.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-28T00:00:00.000Z" }, "68": { - "id": "68", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "68", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.4, "unit": "lbs", - "value": 155.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-27T00:00:00.000Z" }, "69": { - "id": "69", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "69", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.6, "unit": "lbs", - "value": 157.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-26T00:00:00.000Z" }, "70": { - "id": "70", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "70", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163, "unit": "lbs", - "value": 163 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-25T00:00:00.000Z" }, "71": { - "id": "71", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "71", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.2, "unit": "lbs", - "value": 155.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-24T00:00:00.000Z" }, "72": { - "id": "72", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "72", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159, "unit": "lbs", - "value": 159 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-23T00:00:00.000Z" }, "73": { - "id": "73", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "73", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.4, "unit": "lbs", - "value": 151.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-22T00:00:00.000Z" }, "74": { - "id": "74", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "74", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.4, "unit": "lbs", - "value": 164.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-21T00:00:00.000Z" }, "75": { - "id": "75", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "75", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156, "unit": "lbs", - "value": 156 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-20T00:00:00.000Z" }, "76": { - "id": "76", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "76", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.6, "unit": "lbs", - "value": 155.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-19T00:00:00.000Z" }, "77": { - "id": "77", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "77", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.4, "unit": "lbs", - "value": 152.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-18T00:00:00.000Z" }, "78": { - "id": "78", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "78", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.6, "unit": "lbs", - "value": 164.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-17T00:00:00.000Z" }, "79": { - "id": "79", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "79", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.2, "unit": "lbs", - "value": 156.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-16T00:00:00.000Z" }, "80": { - "id": "80", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "80", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.8, "unit": "lbs", - "value": 167.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-15T00:00:00.000Z" }, "81": { - "id": "81", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "81", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155, "unit": "lbs", - "value": 155 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-14T00:00:00.000Z" }, "82": { - "id": "82", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "82", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.2, "unit": "lbs", - "value": 157.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-13T00:00:00.000Z" }, "83": { - "id": "83", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "83", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.2, "unit": "lbs", - "value": 169.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-12T00:00:00.000Z" }, "84": { - "id": "84", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "84", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.2, "unit": "lbs", - "value": 168.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-11T00:00:00.000Z" }, "85": { - "id": "85", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "85", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157, "unit": "lbs", - "value": 157 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-10T00:00:00.000Z" }, "86": { - "id": "86", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "86", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.6, "unit": "lbs", - "value": 159.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-09T00:00:00.000Z" }, "87": { - "id": "87", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "87", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.2, "unit": "lbs", - "value": 154.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-08T00:00:00.000Z" }, "88": { - "id": "88", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "88", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.4, "unit": "lbs", - "value": 162.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-07T00:00:00.000Z" }, "89": { - "id": "89", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "89", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.2, "unit": "lbs", - "value": 160.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-06T00:00:00.000Z" }, "90": { - "id": "90", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "90", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.8, "unit": "lbs", - "value": 151.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-05T00:00:00.000Z" }, "91": { - "id": "91", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "91", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.6, "unit": "lbs", - "value": 163.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-04T00:00:00.000Z" }, "92": { - "id": "92", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "92", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.4, "unit": "lbs", - "value": 166.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-03T00:00:00.000Z" }, "93": { - "id": "93", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "93", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.6, "unit": "lbs", - "value": 168.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-02T00:00:00.000Z" }, "94": { - "id": "94", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "94", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.8, "unit": "lbs", - "value": 168.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-01T00:00:00.000Z" }, "95": { - "id": "95", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "95", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.8, "unit": "lbs", - "value": 160.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-29T00:00:00.000Z" }, "96": { - "id": "96", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "96", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.4, "unit": "lbs", - "value": 156.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-28T00:00:00.000Z" }, "97": { - "id": "97", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "97", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.2, "unit": "lbs", - "value": 163.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-27T00:00:00.000Z" }, "98": { - "id": "98", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "98", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154, "unit": "lbs", - "value": 154 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-26T00:00:00.000Z" }, "99": { - "id": "99", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "99", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165, "unit": "lbs", - "value": 165 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-25T00:00:00.000Z" }, "100": { - "id": "100", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "100", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.4, "unit": "lbs", - "value": 163.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-24T00:00:00.000Z" }, "101": { - "id": "101", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "101", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.6, "unit": "lbs", - "value": 167.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-23T00:00:00.000Z" }, "102": { - "id": "102", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "102", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.4, "unit": "lbs", - "value": 158.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-22T00:00:00.000Z" }, "103": { - "id": "103", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "103", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.2, "unit": "lbs", - "value": 152.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-21T00:00:00.000Z" }, "104": { - "id": "104", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "104", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.2, "unit": "lbs", - "value": 164.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-20T00:00:00.000Z" }, "105": { - "id": "105", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "105", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.8, "unit": "lbs", - "value": 150.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-19T00:00:00.000Z" }, "106": { - "id": "106", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "106", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150, "unit": "lbs", - "value": 150 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-18T00:00:00.000Z" }, "107": { - "id": "107", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "107", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.2, "unit": "lbs", - "value": 167.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-17T00:00:00.000Z" }, "108": { - "id": "108", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "108", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153, "unit": "lbs", - "value": 153 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-16T00:00:00.000Z" }, "109": { - "id": "109", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "109", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.2, "unit": "lbs", - "value": 158.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-15T00:00:00.000Z" }, "110": { - "id": "110", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "110", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.2, "unit": "lbs", - "value": 150.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-14T00:00:00.000Z" }, "111": { - "id": "111", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "111", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.6, "unit": "lbs", - "value": 169.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-13T00:00:00.000Z" }, "112": { - "id": "112", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "112", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167, "unit": "lbs", - "value": 167 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-12T00:00:00.000Z" }, "113": { - "id": "113", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "113", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168, "unit": "lbs", - "value": 168 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-11T00:00:00.000Z" }, "114": { - "id": "114", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "114", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.4, "unit": "lbs", - "value": 159.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-10T00:00:00.000Z" }, "115": { - "id": "115", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "115", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.8, "unit": "lbs", - "value": 166.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-09T00:00:00.000Z" }, "116": { - "id": "116", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "116", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.6, "unit": "lbs", - "value": 150.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-08T00:00:00.000Z" }, "117": { - "id": "117", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "117", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.2, "unit": "lbs", - "value": 162.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-07T00:00:00.000Z" }, "118": { - "id": "118", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "118", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.2, "unit": "lbs", - "value": 151.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-06T00:00:00.000Z" }, "119": { - "id": "119", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "119", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.4, "unit": "lbs", - "value": 165.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-05T00:00:00.000Z" }, "120": { - "id": "120", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "120", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.2, "unit": "lbs", - "value": 165.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-04T00:00:00.000Z" }, "121": { - "id": "121", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "121", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.8, "unit": "lbs", - "value": 165.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-03T00:00:00.000Z" }, "122": { - "id": "122", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "122", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.6, "unit": "lbs", - "value": 162.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-02T00:00:00.000Z" }, "123": { - "id": "123", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "123", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.2, "unit": "lbs", - "value": 159.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-01T00:00:00.000Z" }, "124": { - "id": "124", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "124", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.6, "unit": "lbs", - "value": 160.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-31T00:00:00.000Z" }, "125": { - "id": "125", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "125", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161, "unit": "lbs", - "value": 161 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-30T00:00:00.000Z" }, "126": { - "id": "126", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "126", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165.6, "unit": "lbs", - "value": 165.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-29T00:00:00.000Z" }, "127": { - "id": "127", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "127", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.8, "unit": "lbs", - "value": 152.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-28T00:00:00.000Z" }, "128": { - "id": "128", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "128", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.8, "unit": "lbs", - "value": 156.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-27T00:00:00.000Z" }, "129": { - "id": "129", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "129", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162, "unit": "lbs", - "value": 162 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-26T00:00:00.000Z" }, "130": { - "id": "130", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "130", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.4, "unit": "lbs", - "value": 168.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-25T00:00:00.000Z" }, "131": { - "id": "131", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "131", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.4, "unit": "lbs", - "value": 160.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-24T00:00:00.000Z" }, "132": { - "id": "132", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "132", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.6, "unit": "lbs", - "value": 158.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-23T00:00:00.000Z" }, "133": { - "id": "133", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "133", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.8, "unit": "lbs", - "value": 164.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-22T00:00:00.000Z" }, "134": { - "id": "134", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "134", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.4, "unit": "lbs", - "value": 167.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-21T00:00:00.000Z" }, "135": { - "id": "135", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "135", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158, "unit": "lbs", - "value": 158 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-20T00:00:00.000Z" }, "136": { - "id": "136", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "136", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152, "unit": "lbs", - "value": 152 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-19T00:00:00.000Z" }, "137": { - "id": "137", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "137", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.6, "unit": "lbs", - "value": 151.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-18T00:00:00.000Z" }, "138": { - "id": "138", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "138", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.8, "unit": "lbs", - "value": 163.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-17T00:00:00.000Z" }, "139": { - "id": "139", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "139", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.8, "unit": "lbs", - "value": 154.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-16T00:00:00.000Z" }, "140": { - "id": "140", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "140", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.4, "unit": "lbs", - "value": 157.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-15T00:00:00.000Z" }, "141": { - "id": "141", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "141", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.4, "unit": "lbs", - "value": 169.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-14T00:00:00.000Z" }, "142": { - "id": "142", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "142", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.4, "unit": "lbs", - "value": 161.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-13T00:00:00.000Z" }, "143": { - "id": "143", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "143", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.6, "unit": "lbs", - "value": 166.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-12T00:00:00.000Z" }, "144": { - "id": "144", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "144", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.8, "unit": "lbs", - "value": 159.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-11T00:00:00.000Z" }, "145": { - "id": "145", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "145", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.4, "unit": "lbs", - "value": 154.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-10T00:00:00.000Z" }, "146": { - "id": "146", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "146", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169, "unit": "lbs", - "value": 169 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-09T00:00:00.000Z" }, "147": { - "id": "147", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "147", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.4, "unit": "lbs", - "value": 153.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-08T00:00:00.000Z" }, "148": { - "id": "148", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "148", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.6, "unit": "lbs", - "value": 153.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-07T00:00:00.000Z" }, "149": { - "id": "149", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "149", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 158.8, "unit": "lbs", - "value": 158.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-06T00:00:00.000Z" }, "150": { - "id": "150", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "150", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151, "unit": "lbs", - "value": 151 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-05T00:00:00.000Z" }, "151": { - "id": "151", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "151", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166, "unit": "lbs", - "value": 166 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-04T00:00:00.000Z" }, "152": { - "id": "152", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "152", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160, "unit": "lbs", - "value": 160 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-03T00:00:00.000Z" }, "153": { - "id": "153", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "153", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.8, "unit": "lbs", - "value": 155.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-02T00:00:00.000Z" }, "154": { - "id": "154", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "154", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.6, "unit": "lbs", - "value": 161.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-01T00:00:00.000Z" }, "155": { - "id": "155", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "155", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.8, "unit": "lbs", - "value": 157.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-31T00:00:00.000Z" }, "156": { - "id": "156", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "156", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 150.4, "unit": "lbs", - "value": 150.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-30T00:00:00.000Z" }, "157": { - "id": "157", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "157", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164, "unit": "lbs", - "value": 164 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-29T00:00:00.000Z" }, "158": { - "id": "158", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "158", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.2, "unit": "lbs", - "value": 153.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-28T00:00:00.000Z" }, "159": { - "id": "159", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "159", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.8, "unit": "lbs", - "value": 162.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-27T00:00:00.000Z" }, "160": { - "id": "160", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "160", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.2, "unit": "lbs", - "value": 161.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-26T00:00:00.000Z" }, "161": { - "id": "161", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "161", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 161.8, "unit": "lbs", - "value": 161.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-25T00:00:00.000Z" }, "162": { - "id": "162", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "162", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 153.8, "unit": "lbs", - "value": 153.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-24T00:00:00.000Z" }, "163": { - "id": "163", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "163", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.6, "unit": "lbs", - "value": 156.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-23T00:00:00.000Z" }, "164": { - "id": "164", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "164", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.8, "unit": "lbs", - "value": 169.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-22T00:00:00.000Z" }, "165": { - "id": "165", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "165", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.6, "unit": "lbs", - "value": 152.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-21T00:00:00.000Z" }, "166": { - "id": "166", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "166", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.6, "unit": "lbs", - "value": 154.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-20T00:00:00.000Z" }, "167": { - "id": "167", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "167", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.2, "unit": "lbs", - "value": 166.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-19T00:00:00.000Z" }, "168": { - "id": "168", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "168", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.4, "unit": "lbs", - "value": 155.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-18T00:00:00.000Z" }, "169": { - "id": "169", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "169", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.6, "unit": "lbs", - "value": 157.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-17T00:00:00.000Z" }, "170": { - "id": "170", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "170", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163, "unit": "lbs", - "value": 163 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-16T00:00:00.000Z" }, "171": { - "id": "171", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "171", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.2, "unit": "lbs", - "value": 155.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-15T00:00:00.000Z" }, "172": { - "id": "172", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "172", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159, "unit": "lbs", - "value": 159 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-14T00:00:00.000Z" }, "173": { - "id": "173", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "173", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.4, "unit": "lbs", - "value": 151.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-13T00:00:00.000Z" }, "174": { - "id": "174", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "174", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.4, "unit": "lbs", - "value": 164.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-12T00:00:00.000Z" }, "175": { - "id": "175", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "175", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156, "unit": "lbs", - "value": 156 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-11T00:00:00.000Z" }, "176": { - "id": "176", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "176", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155.6, "unit": "lbs", - "value": 155.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-10T00:00:00.000Z" }, "177": { - "id": "177", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "177", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 152.4, "unit": "lbs", - "value": 152.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-09T00:00:00.000Z" }, "178": { - "id": "178", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "178", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 164.6, "unit": "lbs", - "value": 164.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-08T00:00:00.000Z" }, "179": { - "id": "179", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "179", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.2, "unit": "lbs", - "value": 156.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-07T00:00:00.000Z" }, "180": { - "id": "180", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "180", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 167.8, "unit": "lbs", - "value": 167.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-06T00:00:00.000Z" }, "181": { - "id": "181", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "181", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 155, "unit": "lbs", - "value": 155 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-05T00:00:00.000Z" }, "182": { - "id": "182", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "182", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157.2, "unit": "lbs", - "value": 157.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-04T00:00:00.000Z" }, "183": { - "id": "183", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "183", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 169.2, "unit": "lbs", - "value": 169.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-03T00:00:00.000Z" }, "184": { - "id": "184", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "184", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.2, "unit": "lbs", - "value": 168.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-02T00:00:00.000Z" }, "185": { - "id": "185", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "185", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 157, "unit": "lbs", - "value": 157 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-01T00:00:00.000Z" }, "186": { - "id": "186", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "186", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 159.6, "unit": "lbs", - "value": 159.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-30T00:00:00.000Z" }, "187": { - "id": "187", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "187", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154.2, "unit": "lbs", - "value": 154.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-29T00:00:00.000Z" }, "188": { - "id": "188", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "188", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 162.4, "unit": "lbs", - "value": 162.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-28T00:00:00.000Z" }, "189": { - "id": "189", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "189", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.2, "unit": "lbs", - "value": 160.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-27T00:00:00.000Z" }, "190": { - "id": "190", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "190", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 151.8, "unit": "lbs", - "value": 151.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-26T00:00:00.000Z" }, "191": { - "id": "191", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "191", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.6, "unit": "lbs", - "value": 163.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-25T00:00:00.000Z" }, "192": { - "id": "192", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "192", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 166.4, "unit": "lbs", - "value": 166.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-24T00:00:00.000Z" }, "193": { - "id": "193", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "193", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.6, "unit": "lbs", - "value": 168.6 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-23T00:00:00.000Z" }, "194": { - "id": "194", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "194", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 168.8, "unit": "lbs", - "value": 168.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-22T00:00:00.000Z" }, "195": { - "id": "195", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "195", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 160.8, "unit": "lbs", - "value": 160.8 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-21T00:00:00.000Z" }, "196": { - "id": "196", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "196", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 156.4, "unit": "lbs", - "value": 156.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-20T00:00:00.000Z" }, "197": { - "id": "197", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "197", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.2, "unit": "lbs", - "value": 163.2 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-19T00:00:00.000Z" }, "198": { - "id": "198", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "198", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 154, "unit": "lbs", - "value": 154 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-18T00:00:00.000Z" }, "199": { - "id": "199", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "199", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 165, "unit": "lbs", - "value": 165 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-17T00:00:00.000Z" }, "200": { - "id": "200", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "200", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "[lb_av]", - "system": "http://unitsofmeasure.org", + "value": 163.4, "unit": "lbs", - "value": 163.4 + "system": "http://unitsofmeasure.org", + "code": "[lb_av]" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-16T00:00:00.000Z" } } \ No newline at end of file diff --git a/functions/src/tests/resources/seeding/users_0_creatinineObservations.json b/functions/src/tests/resources/seeding/users_0_creatinineObservations.json index ea53b270..f87bfc38 100644 --- a/functions/src/tests/resources/seeding/users_0_creatinineObservations.json +++ b/functions/src/tests/resources/seeding/users_0_creatinineObservations.json @@ -1,34 +1,24 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Creatinine [Mass/volume] in Serum or Plasma", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "2160-0", - "display": "Creatinine [Mass/volume] in Serum or Plasma", - "userSelected": null + "display": "Creatinine [Mass/volume] in Serum or Plasma" } - ], - "text": "Creatinine [Mass/volume] in Serum or Plasma" + ] }, - "component": null, "valueQuantity": { - "code": "mg/dL", - "system": "http://unitsofmeasure.org", + "value": 1.2, "unit": "mg/dL", - "value": 1.2 + "system": "http://unitsofmeasure.org", + "code": "mg/dL" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" } } \ No newline at end of file diff --git a/functions/src/tests/resources/seeding/users_0_dryWeightObservations.json b/functions/src/tests/resources/seeding/users_0_dryWeightObservations.json index 36e399b2..bc31cfed 100644 --- a/functions/src/tests/resources/seeding/users_0_dryWeightObservations.json +++ b/functions/src/tests/resources/seeding/users_0_dryWeightObservations.json @@ -1,34 +1,24 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Body weight", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "29463-7", - "display": "Body weight", - "userSelected": null + "display": "Body weight" } - ], - "text": "Body weight" + ] }, - "component": null, "valueQuantity": { - "code": "kg", - "system": "http://unitsofmeasure.org", + "value": 71.5, "unit": "kg", - "value": 71.5 + "system": "http://unitsofmeasure.org", + "code": "kg" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" } } \ No newline at end of file diff --git a/functions/src/tests/resources/seeding/users_0_eGfrObservations.json b/functions/src/tests/resources/seeding/users_0_eGfrObservations.json index 77617921..9c744c75 100644 --- a/functions/src/tests/resources/seeding/users_0_eGfrObservations.json +++ b/functions/src/tests/resources/seeding/users_0_eGfrObservations.json @@ -1,34 +1,24 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (CKD-EPI 2021)", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "98979-8", - "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (CKD-EPI 2021)", - "userSelected": null + "display": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (CKD-EPI 2021)" } - ], - "text": "Glomerular filtration rate/1.73 sq M.predicted [Volume Rate/Area] in Serum, Plasma or Blood by Creatinine-based formula (CKD-EPI 2021)" + ] }, - "component": null, "valueQuantity": { - "code": "mL/min/{1.73_m2}", - "system": "http://unitsofmeasure.org", + "value": 60, "unit": "mL/min/1.73m2", - "value": 60 + "system": "http://unitsofmeasure.org", + "code": "mL/min/{1.73_m2}" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" } } \ No newline at end of file diff --git a/functions/src/tests/resources/seeding/users_0_heartRateObservations.json b/functions/src/tests/resources/seeding/users_0_heartRateObservations.json index 38b2d0b8..6736e419 100644 --- a/functions/src/tests/resources/seeding/users_0_heartRateObservations.json +++ b/functions/src/tests/resources/seeding/users_0_heartRateObservations.json @@ -1,6402 +1,4402 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 95.2, "unit": "beats/minute", - "value": 95.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" }, "1": { - "id": "1", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "1", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 76.8, "unit": "beats/minute", - "value": 76.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-02T00:00:00.000Z" }, "2": { - "id": "2", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "2", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 64.4, "unit": "beats/minute", - "value": 64.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-01T00:00:00.000Z" }, "3": { - "id": "3", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "3", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 88.4, "unit": "beats/minute", - "value": 88.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-31T00:00:00.000Z" }, "4": { - "id": "4", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "4", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 61.6, "unit": "beats/minute", - "value": 61.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-30T00:00:00.000Z" }, "5": { - "id": "5", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "5", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 60, "unit": "beats/minute", - "value": 60 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-29T00:00:00.000Z" }, "6": { - "id": "6", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "6", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 94.4, "unit": "beats/minute", - "value": 94.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-28T00:00:00.000Z" }, "7": { - "id": "7", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "7", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 66, "unit": "beats/minute", - "value": 66 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-27T00:00:00.000Z" }, "8": { - "id": "8", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "8", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 76.4, "unit": "beats/minute", - "value": 76.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-26T00:00:00.000Z" }, "9": { - "id": "9", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "9", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 60.4, "unit": "beats/minute", - "value": 60.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-25T00:00:00.000Z" }, "10": { - "id": "10", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "10", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 99.2, "unit": "beats/minute", - "value": 99.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-24T00:00:00.000Z" }, "11": { - "id": "11", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "11", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 94, "unit": "beats/minute", - "value": 94 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-23T00:00:00.000Z" }, "12": { - "id": "12", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "12", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 96, "unit": "beats/minute", - "value": 96 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-22T00:00:00.000Z" }, "13": { - "id": "13", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "13", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 78.8, "unit": "beats/minute", - "value": 78.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-21T00:00:00.000Z" }, "14": { - "id": "14", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "14", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 93.6, "unit": "beats/minute", - "value": 93.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-20T00:00:00.000Z" }, "15": { - "id": "15", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "15", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 61.2, "unit": "beats/minute", - "value": 61.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-19T00:00:00.000Z" }, "16": { - "id": "16", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "16", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 84.4, "unit": "beats/minute", - "value": 84.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-18T00:00:00.000Z" }, "17": { - "id": "17", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "17", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 62.4, "unit": "beats/minute", - "value": 62.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-17T00:00:00.000Z" }, "18": { - "id": "18", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "18", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 90.8, "unit": "beats/minute", - "value": 90.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-16T00:00:00.000Z" }, "19": { - "id": "19", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "19", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 90.4, "unit": "beats/minute", - "value": 90.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-15T00:00:00.000Z" }, "20": { - "id": "20", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "20", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 91.6, "unit": "beats/minute", - "value": 91.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-14T00:00:00.000Z" }, "21": { - "id": "21", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "21", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 85.2, "unit": "beats/minute", - "value": 85.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-13T00:00:00.000Z" }, "22": { - "id": "22", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "22", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 78.4, "unit": "beats/minute", - "value": 78.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-12T00:00:00.000Z" }, "23": { - "id": "23", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "23", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 81.2, "unit": "beats/minute", - "value": 81.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-11T00:00:00.000Z" }, "24": { - "id": "24", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "24", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 82, "unit": "beats/minute", - "value": 82 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-10T00:00:00.000Z" }, "25": { - "id": "25", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "25", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 91.2, "unit": "beats/minute", - "value": 91.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-09T00:00:00.000Z" }, "26": { - "id": "26", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "26", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 65.6, "unit": "beats/minute", - "value": 65.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-08T00:00:00.000Z" }, "27": { - "id": "27", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "27", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 73.6, "unit": "beats/minute", - "value": 73.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-07T00:00:00.000Z" }, "28": { - "id": "28", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "28", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 84, "unit": "beats/minute", - "value": 84 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-06T00:00:00.000Z" }, "29": { - "id": "29", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "29", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 96.80000000000001, "unit": "beats/minute", - "value": 96.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-05T00:00:00.000Z" }, "30": { - "id": "30", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "30", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 80.8, "unit": "beats/minute", - "value": 80.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-04T00:00:00.000Z" }, "31": { - "id": "31", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "31", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 77.2, "unit": "beats/minute", - "value": 77.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-03T00:00:00.000Z" }, "32": { - "id": "32", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "32", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 89.6, "unit": "beats/minute", - "value": 89.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-02T00:00:00.000Z" }, "33": { - "id": "33", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "33", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 94.8, "unit": "beats/minute", - "value": 94.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-05-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-05-01T00:00:00.000Z" }, "34": { - "id": "34", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "34", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 76, "unit": "beats/minute", - "value": 76 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-30T00:00:00.000Z" }, "35": { - "id": "35", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "35", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 64, "unit": "beats/minute", - "value": 64 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-29T00:00:00.000Z" }, "36": { - "id": "36", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "36", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 63.2, "unit": "beats/minute", - "value": 63.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-28T00:00:00.000Z" }, "37": { - "id": "37", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "37", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 87.6, "unit": "beats/minute", - "value": 87.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-27T00:00:00.000Z" }, "38": { - "id": "38", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "38", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 69.6, "unit": "beats/minute", - "value": 69.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-26T00:00:00.000Z" }, "39": { - "id": "39", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "39", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 74.8, "unit": "beats/minute", - "value": 74.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-25T00:00:00.000Z" }, "40": { - "id": "40", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "40", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 98.8, "unit": "beats/minute", - "value": 98.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-24T00:00:00.000Z" }, "41": { - "id": "41", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "41", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 82.8, "unit": "beats/minute", - "value": 82.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-23T00:00:00.000Z" }, "42": { - "id": "42", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "42", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 93.19999999999999, "unit": "beats/minute", - "value": 93.19999999999999 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-22T00:00:00.000Z" }, "43": { - "id": "43", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "43", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 79.6, "unit": "beats/minute", - "value": 79.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-21T00:00:00.000Z" }, "44": { - "id": "44", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "44", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 68.8, "unit": "beats/minute", - "value": 68.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-20T00:00:00.000Z" }, "45": { - "id": "45", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "45", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 98, "unit": "beats/minute", - "value": 98 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-19T00:00:00.000Z" }, "46": { - "id": "46", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "46", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 66.8, "unit": "beats/minute", - "value": 66.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-18T00:00:00.000Z" }, "47": { - "id": "47", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "47", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 67.2, "unit": "beats/minute", - "value": 67.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-17T00:00:00.000Z" }, "48": { - "id": "48", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "48", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 77.6, "unit": "beats/minute", - "value": 77.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-16T00:00:00.000Z" }, "49": { - "id": "49", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "49", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 62, "unit": "beats/minute", - "value": 62 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-15T00:00:00.000Z" }, "50": { - "id": "50", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "50", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 92, "unit": "beats/minute", - "value": 92 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-14T00:00:00.000Z" }, "51": { - "id": "51", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "51", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 80, "unit": "beats/minute", - "value": 80 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-13T00:00:00.000Z" }, "52": { - "id": "52", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "52", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 71.6, "unit": "beats/minute", - "value": 71.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-12T00:00:00.000Z" }, "53": { - "id": "53", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "53", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 83.2, "unit": "beats/minute", - "value": 83.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-11T00:00:00.000Z" }, "54": { - "id": "54", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "54", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 75.6, "unit": "beats/minute", - "value": 75.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-10T00:00:00.000Z" }, "55": { - "id": "55", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "55", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 60.8, "unit": "beats/minute", - "value": 60.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-09T00:00:00.000Z" }, "56": { - "id": "56", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "56", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 88, "unit": "beats/minute", - "value": 88 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-08T00:00:00.000Z" }, "57": { - "id": "57", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "57", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 66.4, "unit": "beats/minute", - "value": 66.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-07T00:00:00.000Z" }, "58": { - "id": "58", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "58", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 85.6, "unit": "beats/minute", - "value": 85.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-06T00:00:00.000Z" }, "59": { - "id": "59", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "59", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 82.4, "unit": "beats/minute", - "value": 82.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-05T00:00:00.000Z" }, "60": { - "id": "60", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "60", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 83.6, "unit": "beats/minute", - "value": 83.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-04T00:00:00.000Z" }, "61": { - "id": "61", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "61", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 67.6, "unit": "beats/minute", - "value": 67.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-03T00:00:00.000Z" }, "62": { - "id": "62", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "62", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 73.2, "unit": "beats/minute", - "value": 73.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-02T00:00:00.000Z" }, "63": { - "id": "63", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "63", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 99.6, "unit": "beats/minute", - "value": 99.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-04-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-04-01T00:00:00.000Z" }, "64": { - "id": "64", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "64", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 65.2, "unit": "beats/minute", - "value": 65.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-31T00:00:00.000Z" }, "65": { - "id": "65", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "65", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 69.2, "unit": "beats/minute", - "value": 69.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-30T00:00:00.000Z" }, "66": { - "id": "66", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "66", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 92.4, "unit": "beats/minute", - "value": 92.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-29T00:00:00.000Z" }, "67": { - "id": "67", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "67", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 70.8, "unit": "beats/minute", - "value": 70.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-28T00:00:00.000Z" }, "68": { - "id": "68", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "68", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 75.2, "unit": "beats/minute", - "value": 75.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-27T00:00:00.000Z" }, "69": { - "id": "69", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "69", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 86, "unit": "beats/minute", - "value": 86 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-26T00:00:00.000Z" }, "70": { - "id": "70", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "70", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 70.4, "unit": "beats/minute", - "value": 70.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-25T00:00:00.000Z" }, "71": { - "id": "71", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "71", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 78, "unit": "beats/minute", - "value": 78 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-24T00:00:00.000Z" }, "72": { - "id": "72", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "72", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 62.8, "unit": "beats/minute", - "value": 62.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-23T00:00:00.000Z" }, "73": { - "id": "73", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "73", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 88.8, "unit": "beats/minute", - "value": 88.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-22T00:00:00.000Z" }, "74": { - "id": "74", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "74", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 72, "unit": "beats/minute", - "value": 72 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-21T00:00:00.000Z" }, "75": { - "id": "75", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "75", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 71.2, "unit": "beats/minute", - "value": 71.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-20T00:00:00.000Z" }, "76": { - "id": "76", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "76", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 64.8, "unit": "beats/minute", - "value": 64.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-19T00:00:00.000Z" }, "77": { - "id": "77", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "77", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 89.2, "unit": "beats/minute", - "value": 89.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-18T00:00:00.000Z" }, "78": { - "id": "78", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "78", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 72.4, "unit": "beats/minute", - "value": 72.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-17T00:00:00.000Z" }, "79": { - "id": "79", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "79", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 95.6, "unit": "beats/minute", - "value": 95.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-16T00:00:00.000Z" }, "80": { - "id": "80", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "80", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 70, "unit": "beats/minute", - "value": 70 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-15T00:00:00.000Z" }, "81": { - "id": "81", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "81", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 74.4, "unit": "beats/minute", - "value": 74.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-14T00:00:00.000Z" }, "82": { - "id": "82", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "82", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 98.4, "unit": "beats/minute", - "value": 98.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-13T00:00:00.000Z" }, "83": { - "id": "83", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "83", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 96.4, "unit": "beats/minute", - "value": 96.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-12T00:00:00.000Z" }, "84": { - "id": "84", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "84", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 74, "unit": "beats/minute", - "value": 74 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-11T00:00:00.000Z" }, "85": { - "id": "85", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "85", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 79.2, "unit": "beats/minute", - "value": 79.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-10T00:00:00.000Z" }, "86": { - "id": "86", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "86", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 68.4, "unit": "beats/minute", - "value": 68.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-09T00:00:00.000Z" }, "87": { - "id": "87", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "87", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 84.8, "unit": "beats/minute", - "value": 84.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-08T00:00:00.000Z" }, "88": { - "id": "88", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "88", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 80.4, "unit": "beats/minute", - "value": 80.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-07T00:00:00.000Z" }, "89": { - "id": "89", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "89", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 63.6, "unit": "beats/minute", - "value": 63.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-06T00:00:00.000Z" }, "90": { - "id": "90", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "90", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 87.2, "unit": "beats/minute", - "value": 87.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-05T00:00:00.000Z" }, "91": { - "id": "91", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "91", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 92.8, "unit": "beats/minute", - "value": 92.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-04T00:00:00.000Z" }, "92": { - "id": "92", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "92", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 97.2, "unit": "beats/minute", - "value": 97.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-03T00:00:00.000Z" }, "93": { - "id": "93", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "93", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 97.6, "unit": "beats/minute", - "value": 97.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-02T00:00:00.000Z" }, "94": { - "id": "94", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "94", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 81.6, "unit": "beats/minute", - "value": 81.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-03-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-03-01T00:00:00.000Z" }, "95": { - "id": "95", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "95", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 72.8, "unit": "beats/minute", - "value": 72.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-29T00:00:00.000Z" }, "96": { - "id": "96", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "96", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 86.4, "unit": "beats/minute", - "value": 86.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-28T00:00:00.000Z" }, "97": { - "id": "97", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "97", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 68, "unit": "beats/minute", - "value": 68 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-27T00:00:00.000Z" }, "98": { - "id": "98", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "98", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 90, "unit": "beats/minute", - "value": 90 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-26T00:00:00.000Z" }, "99": { - "id": "99", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "99", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 86.8, "unit": "beats/minute", - "value": 86.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-25T00:00:00.000Z" }, "100": { - "id": "100", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "100", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 95.2, "unit": "beats/minute", - "value": 95.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-24T00:00:00.000Z" }, "101": { - "id": "101", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "101", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 76.8, "unit": "beats/minute", - "value": 76.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-23T00:00:00.000Z" }, "102": { - "id": "102", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "102", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 64.4, "unit": "beats/minute", - "value": 64.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-22T00:00:00.000Z" }, "103": { - "id": "103", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "103", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 88.4, "unit": "beats/minute", - "value": 88.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-21T00:00:00.000Z" }, "104": { - "id": "104", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "104", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 61.6, "unit": "beats/minute", - "value": 61.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-20T00:00:00.000Z" }, "105": { - "id": "105", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "105", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 60, "unit": "beats/minute", - "value": 60 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-19T00:00:00.000Z" }, "106": { - "id": "106", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "106", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 94.4, "unit": "beats/minute", - "value": 94.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-18T00:00:00.000Z" }, "107": { - "id": "107", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "107", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 66, "unit": "beats/minute", - "value": 66 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-17T00:00:00.000Z" }, "108": { - "id": "108", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "108", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 76.4, "unit": "beats/minute", - "value": 76.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-16T00:00:00.000Z" }, "109": { - "id": "109", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "109", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 60.4, "unit": "beats/minute", - "value": 60.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-15T00:00:00.000Z" }, "110": { - "id": "110", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "110", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 99.2, "unit": "beats/minute", - "value": 99.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-14T00:00:00.000Z" }, "111": { - "id": "111", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "111", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 94, "unit": "beats/minute", - "value": 94 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-13T00:00:00.000Z" }, "112": { - "id": "112", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "112", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 96, "unit": "beats/minute", - "value": 96 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-12T00:00:00.000Z" }, "113": { - "id": "113", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "113", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 78.8, "unit": "beats/minute", - "value": 78.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-11T00:00:00.000Z" }, "114": { - "id": "114", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "114", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 93.6, "unit": "beats/minute", - "value": 93.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-10T00:00:00.000Z" }, "115": { - "id": "115", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "115", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 61.2, "unit": "beats/minute", - "value": 61.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-09T00:00:00.000Z" }, "116": { - "id": "116", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "116", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 84.4, "unit": "beats/minute", - "value": 84.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-08T00:00:00.000Z" }, "117": { - "id": "117", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "117", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 62.4, "unit": "beats/minute", - "value": 62.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-07T00:00:00.000Z" }, "118": { - "id": "118", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "118", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 90.8, "unit": "beats/minute", - "value": 90.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-06T00:00:00.000Z" }, "119": { - "id": "119", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "119", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 90.4, "unit": "beats/minute", - "value": 90.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-05T00:00:00.000Z" }, "120": { - "id": "120", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "120", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 91.6, "unit": "beats/minute", - "value": 91.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-04T00:00:00.000Z" }, "121": { - "id": "121", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "121", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 85.2, "unit": "beats/minute", - "value": 85.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-03T00:00:00.000Z" }, "122": { - "id": "122", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "122", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 78.4, "unit": "beats/minute", - "value": 78.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-02T00:00:00.000Z" }, "123": { - "id": "123", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "123", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 81.2, "unit": "beats/minute", - "value": 81.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-02-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-02-01T00:00:00.000Z" }, "124": { - "id": "124", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "124", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 82, "unit": "beats/minute", - "value": 82 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-31T00:00:00.000Z" }, "125": { - "id": "125", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "125", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 91.2, "unit": "beats/minute", - "value": 91.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-30T00:00:00.000Z" }, "126": { - "id": "126", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "126", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 65.6, "unit": "beats/minute", - "value": 65.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-29T00:00:00.000Z" }, "127": { - "id": "127", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "127", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 73.6, "unit": "beats/minute", - "value": 73.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-28T00:00:00.000Z" }, "128": { - "id": "128", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "128", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 84, "unit": "beats/minute", - "value": 84 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-27T00:00:00.000Z" }, "129": { - "id": "129", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "129", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 96.80000000000001, "unit": "beats/minute", - "value": 96.80000000000001 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-26T00:00:00.000Z" }, "130": { - "id": "130", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "130", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 80.8, "unit": "beats/minute", - "value": 80.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-25T00:00:00.000Z" }, "131": { - "id": "131", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "131", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 77.2, "unit": "beats/minute", - "value": 77.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-24T00:00:00.000Z" }, "132": { - "id": "132", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "132", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 89.6, "unit": "beats/minute", - "value": 89.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-23T00:00:00.000Z" }, "133": { - "id": "133", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "133", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 94.8, "unit": "beats/minute", - "value": 94.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-22T00:00:00.000Z" }, "134": { - "id": "134", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "134", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 76, "unit": "beats/minute", - "value": 76 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-21T00:00:00.000Z" }, "135": { - "id": "135", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "135", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 64, "unit": "beats/minute", - "value": 64 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-20T00:00:00.000Z" }, "136": { - "id": "136", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "136", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 63.2, "unit": "beats/minute", - "value": 63.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-19T00:00:00.000Z" }, "137": { - "id": "137", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "137", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 87.6, "unit": "beats/minute", - "value": 87.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-18T00:00:00.000Z" }, "138": { - "id": "138", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "138", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 69.6, "unit": "beats/minute", - "value": 69.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-17T00:00:00.000Z" }, "139": { - "id": "139", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "139", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 74.8, "unit": "beats/minute", - "value": 74.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-16T00:00:00.000Z" }, "140": { - "id": "140", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "140", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 98.8, "unit": "beats/minute", - "value": 98.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-15T00:00:00.000Z" }, "141": { - "id": "141", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "141", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 82.8, "unit": "beats/minute", - "value": 82.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-14T00:00:00.000Z" }, "142": { - "id": "142", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "142", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 93.19999999999999, "unit": "beats/minute", - "value": 93.19999999999999 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-13T00:00:00.000Z" }, "143": { - "id": "143", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "143", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 79.6, "unit": "beats/minute", - "value": 79.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-12T00:00:00.000Z" }, "144": { - "id": "144", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "144", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 68.8, "unit": "beats/minute", - "value": 68.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-11T00:00:00.000Z" }, "145": { - "id": "145", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "145", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 98, "unit": "beats/minute", - "value": 98 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-10T00:00:00.000Z" }, "146": { - "id": "146", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "146", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 66.8, "unit": "beats/minute", - "value": 66.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-09T00:00:00.000Z" }, "147": { - "id": "147", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "147", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 67.2, "unit": "beats/minute", - "value": 67.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-08T00:00:00.000Z" }, "148": { - "id": "148", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "148", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 77.6, "unit": "beats/minute", - "value": 77.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-07T00:00:00.000Z" }, "149": { - "id": "149", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "149", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 62, "unit": "beats/minute", - "value": 62 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-06T00:00:00.000Z" }, "150": { - "id": "150", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "150", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 92, "unit": "beats/minute", - "value": 92 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-05T00:00:00.000Z" }, "151": { - "id": "151", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "151", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 80, "unit": "beats/minute", - "value": 80 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-04T00:00:00.000Z" }, "152": { - "id": "152", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "152", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 71.6, "unit": "beats/minute", - "value": 71.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-03T00:00:00.000Z" }, "153": { - "id": "153", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "153", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 83.2, "unit": "beats/minute", - "value": 83.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-02T00:00:00.000Z" }, "154": { - "id": "154", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "154", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 75.6, "unit": "beats/minute", - "value": 75.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-01-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-01-01T00:00:00.000Z" }, "155": { - "id": "155", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "155", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 60.8, "unit": "beats/minute", - "value": 60.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-31T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-31T00:00:00.000Z" }, "156": { - "id": "156", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "156", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 88, "unit": "beats/minute", - "value": 88 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-30T00:00:00.000Z" }, "157": { - "id": "157", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "157", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 66.4, "unit": "beats/minute", - "value": 66.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-29T00:00:00.000Z" }, "158": { - "id": "158", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "158", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 85.6, "unit": "beats/minute", - "value": 85.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-28T00:00:00.000Z" }, "159": { - "id": "159", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "159", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 82.4, "unit": "beats/minute", - "value": 82.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-27T00:00:00.000Z" }, "160": { - "id": "160", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "160", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 83.6, "unit": "beats/minute", - "value": 83.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-26T00:00:00.000Z" }, "161": { - "id": "161", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "161", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 67.6, "unit": "beats/minute", - "value": 67.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-25T00:00:00.000Z" }, "162": { - "id": "162", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "162", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 73.2, "unit": "beats/minute", - "value": 73.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-24T00:00:00.000Z" }, "163": { - "id": "163", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "163", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 99.6, "unit": "beats/minute", - "value": 99.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-23T00:00:00.000Z" }, "164": { - "id": "164", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "164", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 65.2, "unit": "beats/minute", - "value": 65.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-22T00:00:00.000Z" }, "165": { - "id": "165", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "165", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 69.2, "unit": "beats/minute", - "value": 69.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-21T00:00:00.000Z" }, "166": { - "id": "166", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "166", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 92.4, "unit": "beats/minute", - "value": 92.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-20T00:00:00.000Z" }, "167": { - "id": "167", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "167", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 70.8, "unit": "beats/minute", - "value": 70.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-19T00:00:00.000Z" }, "168": { - "id": "168", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "168", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 75.2, "unit": "beats/minute", - "value": 75.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-18T00:00:00.000Z" }, "169": { - "id": "169", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "169", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 86, "unit": "beats/minute", - "value": 86 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-17T00:00:00.000Z" }, "170": { - "id": "170", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "170", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 70.4, "unit": "beats/minute", - "value": 70.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-16T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-16T00:00:00.000Z" }, "171": { - "id": "171", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "171", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 78, "unit": "beats/minute", - "value": 78 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-15T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-15T00:00:00.000Z" }, "172": { - "id": "172", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "172", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 62.8, "unit": "beats/minute", - "value": 62.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-14T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-14T00:00:00.000Z" }, "173": { - "id": "173", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "173", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 88.8, "unit": "beats/minute", - "value": 88.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-13T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-13T00:00:00.000Z" }, "174": { - "id": "174", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "174", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 72, "unit": "beats/minute", - "value": 72 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-12T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-12T00:00:00.000Z" }, "175": { - "id": "175", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "175", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 71.2, "unit": "beats/minute", - "value": 71.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-11T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-11T00:00:00.000Z" }, "176": { - "id": "176", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "176", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 64.8, "unit": "beats/minute", - "value": 64.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-10T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-10T00:00:00.000Z" }, "177": { - "id": "177", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "177", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 89.2, "unit": "beats/minute", - "value": 89.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-09T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-09T00:00:00.000Z" }, "178": { - "id": "178", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "178", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 72.4, "unit": "beats/minute", - "value": 72.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-08T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-08T00:00:00.000Z" }, "179": { - "id": "179", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "179", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 95.6, "unit": "beats/minute", - "value": 95.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-07T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-07T00:00:00.000Z" }, "180": { - "id": "180", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "180", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 70, "unit": "beats/minute", - "value": 70 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-06T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-06T00:00:00.000Z" }, "181": { - "id": "181", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "181", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 74.4, "unit": "beats/minute", - "value": 74.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-05T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-05T00:00:00.000Z" }, "182": { - "id": "182", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "182", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 98.4, "unit": "beats/minute", - "value": 98.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-04T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-04T00:00:00.000Z" }, "183": { - "id": "183", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "183", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 96.4, "unit": "beats/minute", - "value": 96.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-03T00:00:00.000Z" }, "184": { - "id": "184", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "184", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 74, "unit": "beats/minute", - "value": 74 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-02T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-02T00:00:00.000Z" }, "185": { - "id": "185", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "185", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 79.2, "unit": "beats/minute", - "value": 79.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-12-01T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-12-01T00:00:00.000Z" }, "186": { - "id": "186", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "186", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 68.4, "unit": "beats/minute", - "value": 68.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-30T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-30T00:00:00.000Z" }, "187": { - "id": "187", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "187", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 84.8, "unit": "beats/minute", - "value": 84.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-29T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-29T00:00:00.000Z" }, "188": { - "id": "188", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "188", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 80.4, "unit": "beats/minute", - "value": 80.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-28T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-28T00:00:00.000Z" }, "189": { - "id": "189", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "189", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 63.6, "unit": "beats/minute", - "value": 63.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-27T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-27T00:00:00.000Z" }, "190": { - "id": "190", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "190", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 87.2, "unit": "beats/minute", - "value": 87.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-26T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-26T00:00:00.000Z" }, "191": { - "id": "191", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "191", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 92.8, "unit": "beats/minute", - "value": 92.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-25T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-25T00:00:00.000Z" }, "192": { - "id": "192", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "192", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 97.2, "unit": "beats/minute", - "value": 97.2 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-24T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-24T00:00:00.000Z" }, "193": { - "id": "193", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "193", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 97.6, "unit": "beats/minute", - "value": 97.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-23T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-23T00:00:00.000Z" }, "194": { - "id": "194", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "194", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 81.6, "unit": "beats/minute", - "value": 81.6 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-22T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-22T00:00:00.000Z" }, "195": { - "id": "195", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "195", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 72.8, "unit": "beats/minute", - "value": 72.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-21T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-21T00:00:00.000Z" }, "196": { - "id": "196", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "196", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 86.4, "unit": "beats/minute", - "value": 86.4 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-20T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-20T00:00:00.000Z" }, "197": { - "id": "197", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "197", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 68, "unit": "beats/minute", - "value": 68 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-19T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-19T00:00:00.000Z" }, "198": { - "id": "198", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "198", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 90, "unit": "beats/minute", - "value": 90 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-18T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-18T00:00:00.000Z" }, "199": { - "id": "199", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "199", "status": "final", "code": { + "text": "Heart rate", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "8867-4", - "display": "Heart rate", - "userSelected": null + "display": "Heart rate" } - ], - "text": "Heart rate" + ] }, - "component": null, "valueQuantity": { - "code": "/min", - "system": "http://unitsofmeasure.org", + "value": 86.8, "unit": "beats/minute", - "value": 86.8 + "system": "http://unitsofmeasure.org", + "code": "/min" }, - "effectivePeriod": null, - "effectiveDateTime": "2023-11-17T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2023-11-17T00:00:00.000Z" } } \ No newline at end of file diff --git a/functions/src/tests/resources/seeding/users_0_medicationRequests.json b/functions/src/tests/resources/seeding/users_0_medicationRequests.json index f3c9e948..fc8e589a 100644 --- a/functions/src/tests/resources/seeding/users_0_medicationRequests.json +++ b/functions/src/tests/resources/seeding/users_0_medicationRequests.json @@ -1,36 +1,28 @@ { "0": { - "id": null, - "extension": null, "resourceType": "MedicationRequest", - "meta": null, "medicationReference": { - "reference": "medications/298869/drugs/351256", - "type": null, - "display": null, - "identifier": null + "reference": "medications/298869/drugs/351256" }, + "intent": "plan", + "status": "draft", + "subject": {}, "dosageInstruction": [ { - "text": null, - "patientInstruction": null, "timing": { "repeat": { "frequency": 2, "period": 1, - "periodUnit": "d", - "timeOfDay": null - }, - "code": null + "periodUnit": "d" + } }, "doseAndRate": [ { - "type": null, "doseQuantity": { - "code": "{tbl}", "system": "http://unitsofmeasure.org", - "unit": "tbl.", - "value": 2 + "code": "{tbl}", + "value": 2, + "unit": "tbl." } } ] diff --git a/functions/src/tests/resources/seeding/users_0_potassiumObservations.json b/functions/src/tests/resources/seeding/users_0_potassiumObservations.json index 0a4b4d58..0135dcac 100644 --- a/functions/src/tests/resources/seeding/users_0_potassiumObservations.json +++ b/functions/src/tests/resources/seeding/users_0_potassiumObservations.json @@ -1,34 +1,24 @@ { "0": { - "id": "0", - "extension": null, "resourceType": "Observation", - "meta": null, + "id": "0", "status": "final", "code": { + "text": "Potassium [Moles/volume] in Blood", "coding": [ { - "id": null, - "extension": null, "system": "http://loinc.org", - "version": null, "code": "6298-4", - "display": "Potassium [Moles/volume] in Blood", - "userSelected": null + "display": "Potassium [Moles/volume] in Blood" } - ], - "text": "Potassium [Moles/volume] in Blood" + ] }, - "component": null, "valueQuantity": { - "code": "meq/L", - "system": "http://unitsofmeasure.org", + "value": 4.2, "unit": "mEq/L", - "value": 4.2 + "system": "http://unitsofmeasure.org", + "code": "meq/L" }, - "effectivePeriod": null, - "effectiveDateTime": "2024-06-03T00:00:00.000Z", - "effectiveInstant": null, - "derivedFrom": null + "effectiveDateTime": "2024-06-03T00:00:00.000Z" } } \ No newline at end of file From 4f2dffab55d3547bb49bc4e6aa4f5cd96957998a Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 19:05:05 +0200 Subject: [PATCH 09/18] lint:fix --- functions/src/functions/enrollUser.test.ts | 12 +++------ functions/src/functions/helpers.ts | 2 +- .../onUserMedicationRequestWritten.ts | 5 +--- .../onUserQuestionnaireResponseWritten.ts | 5 +--- functions/src/healthSummary/generate.ts | 6 ++++- .../src/models/medicationRequestContext.ts | 2 +- .../defaultContraindicationService.test.ts | 2 +- .../defaultContraindicationService.ts | 2 +- .../services/database/databaseConverter.ts | 27 ++++++++++--------- .../medication/databaseMedicationService.ts | 2 +- .../services/medication/medicationService.ts | 2 +- .../patient/databasePatientService.ts | 2 +- .../services/patient/patientService.mock.ts | 16 +++++++---- .../src/services/patient/patientService.ts | 2 +- ...UpdateQuestionnaireResponseService.test.ts | 3 ++- ...rationQuestionnaireResponseService.test.ts | 6 +++-- .../recommendationService.test.ts | 2 +- .../recommendation/recommendationService.ts | 3 +-- .../src/services/seeding/seedingService.ts | 2 +- .../kccqQuestionnaireFactory.ts | 2 +- .../questionnaireFactory.ts | 16 +++++------ .../seeding/staticData/rxNorm/rxNormApi.ts | 2 +- .../staticData/rxNorm/rxNormService.ts | 2 +- functions/src/tests/mocks/questionnaire.ts | 4 +-- 24 files changed, 65 insertions(+), 64 deletions(-) diff --git a/functions/src/functions/enrollUser.test.ts b/functions/src/functions/enrollUser.test.ts index 3d29c288..32d4955b 100644 --- a/functions/src/functions/enrollUser.test.ts +++ b/functions/src/functions/enrollUser.test.ts @@ -136,9 +136,7 @@ describeWithEmulators('function: enrollUser', (env) => { if (actualObservation === undefined) { fail('actualObservation is undefined') } else { - expect( - fhirObservationConverter.encode(actualObservation), - ).toStrictEqual( + expect(fhirObservationConverter.encode(actualObservation)).toStrictEqual( fhirObservationConverter.encode(expectedObservation), ) } @@ -241,9 +239,7 @@ describeWithEmulators('function: enrollUser', (env) => { if (actualAppointment === undefined) { fail('actualAppointment is undefined') } else { - expect( - fhirAppointmentConverter.encode(actualAppointment), - ).toStrictEqual( + expect(fhirAppointmentConverter.encode(actualAppointment)).toStrictEqual( fhirAppointmentConverter.encode(expectedAppointment), ) } @@ -256,9 +252,7 @@ describeWithEmulators('function: enrollUser', (env) => { if (actualObservation === undefined) { fail('actualObservation is undefined') } else { - expect( - fhirObservationConverter.encode(actualObservation), - ).toStrictEqual( + expect(fhirObservationConverter.encode(actualObservation)).toStrictEqual( fhirObservationConverter.encode(expectedObservation), ) } diff --git a/functions/src/functions/helpers.ts b/functions/src/functions/helpers.ts index 0a994232..006cdd42 100644 --- a/functions/src/functions/helpers.ts +++ b/functions/src/functions/helpers.ts @@ -17,7 +17,7 @@ import { onRequest, type Request, } from 'firebase-functions/v2/https' -import { z, ZodType } from 'zod' +import { z, type ZodType } from 'zod' export const serviceAccount = `cloudfunctionsserviceaccount@${process.env.GCLOUD_PROJECT}.iam.gserviceaccount.com` diff --git a/functions/src/functions/onUserMedicationRequestWritten.ts b/functions/src/functions/onUserMedicationRequestWritten.ts index 8954d48e..419957d8 100644 --- a/functions/src/functions/onUserMedicationRequestWritten.ts +++ b/functions/src/functions/onUserMedicationRequestWritten.ts @@ -9,10 +9,7 @@ import { fhirMedicationRequestConverter } from '@stanfordbdhg/engagehf-models' import { onDocumentWritten } from 'firebase-functions/firestore' import { Env } from '../env.js' -import { - DatabaseConverter, - FHIRDatabaseConverter, -} from '../services/database/databaseConverter.js' +import { FHIRDatabaseConverter } from '../services/database/databaseConverter.js' import { getServiceFactory } from '../services/factory/getServiceFactory.js' export const onUserMedicationRequestWritten = onDocumentWritten( diff --git a/functions/src/functions/onUserQuestionnaireResponseWritten.ts b/functions/src/functions/onUserQuestionnaireResponseWritten.ts index 89978964..4093cbb4 100644 --- a/functions/src/functions/onUserQuestionnaireResponseWritten.ts +++ b/functions/src/functions/onUserQuestionnaireResponseWritten.ts @@ -9,10 +9,7 @@ import { fhirQuestionnaireResponseConverter } from '@stanfordbdhg/engagehf-models' import { onDocumentWritten } from 'firebase-functions/firestore' import { Env } from '../env.js' -import { - DatabaseConverter, - FHIRDatabaseConverter, -} from '../services/database/databaseConverter.js' +import { FHIRDatabaseConverter } from '../services/database/databaseConverter.js' import { getServiceFactory } from '../services/factory/getServiceFactory.js' export const onUserQuestionnaireResponseWritten = onDocumentWritten( diff --git a/functions/src/healthSummary/generate.ts b/functions/src/healthSummary/generate.ts index 347afa3f..a1cacbd2 100644 --- a/functions/src/healthSummary/generate.ts +++ b/functions/src/healthSummary/generate.ts @@ -495,7 +495,11 @@ class HealthSummaryPdfGenerator extends PdfGenerator { // Helpers - PDF Generation - private addChart(data: ObservationQuantity[], maxWidth?: number, baseline?: number) { + private addChart( + data: ObservationQuantity[], + maxWidth?: number, + baseline?: number, + ) { const width = maxWidth ?? this.pageWidth - this.cursor.x - this.margins.right const height = width * (9 / 16) diff --git a/functions/src/models/medicationRequestContext.ts b/functions/src/models/medicationRequestContext.ts index cf600e71..fcbba29c 100644 --- a/functions/src/models/medicationRequestContext.ts +++ b/functions/src/models/medicationRequestContext.ts @@ -13,7 +13,7 @@ import { type FHIRMedicationRequest, type MedicationClass, } from '@stanfordbdhg/engagehf-models' -import { Reference } from 'fhir/r4b.js' +import { type Reference } from 'fhir/r4b.js' export interface MedicationRequestContext { lastUpdate: Date diff --git a/functions/src/services/contraindication/defaultContraindicationService.test.ts b/functions/src/services/contraindication/defaultContraindicationService.test.ts index da669946..316e5c84 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.test.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.test.ts @@ -12,13 +12,13 @@ import { MedicationClassReference, MedicationReference, } from '@stanfordbdhg/engagehf-models' +import { type AllergyIntolerance } from 'fhir/r4b.js' import { logger } from 'firebase-functions' import { ContraindicationCategory, type ContraindicationService, } from './contraindicationService.js' import { DefaultContraindicationService } from './defaultContraindicationService.js' -import { AllergyIntolerance } from 'fhir/r4b.js' describe('DefaultContraindicationService', () => { const contraindicationService: ContraindicationService = diff --git a/functions/src/services/contraindication/defaultContraindicationService.ts b/functions/src/services/contraindication/defaultContraindicationService.ts index 157c9155..f0251481 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.ts @@ -11,13 +11,13 @@ import { MedicationClassReference, MedicationReference, } from '@stanfordbdhg/engagehf-models' +import { type AllergyIntolerance } from 'fhir/r4b.js' import { logger } from 'firebase-functions' import { ContraindicationCategory, type ContraindicationService, } from './contraindicationService.js' import { medicationClassReference } from '../../models/medicationRequestContext.js' -import { AllergyIntolerance } from 'fhir/r4b.js' interface ContraindicationRecord { category: ContraindicationCategory diff --git a/functions/src/services/database/databaseConverter.ts b/functions/src/services/database/databaseConverter.ts index 97ef4d61..3feee388 100644 --- a/functions/src/services/database/databaseConverter.ts +++ b/functions/src/services/database/databaseConverter.ts @@ -6,15 +6,19 @@ // SPDX-License-Identifier: MIT // -import { FHIRResource, FHIRSchemaConverter, type SchemaConverter } from '@stanfordbdhg/engagehf-models' -import { DomainResource } from 'fhir/r4b' +import { + type FHIRResource, + type FHIRSchemaConverter, + type SchemaConverter, +} from '@stanfordbdhg/engagehf-models' +import { type DomainResource } from 'fhir/r4b' import { type DocumentData, type DocumentSnapshot, type FirestoreDataConverter, } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { ZodType, type z } from 'zod' +import { type ZodType, type z } from 'zod' export class DatabaseConverter implements FirestoreDataConverter> @@ -34,11 +38,10 @@ export class DatabaseConverter fromFirestore(snapshot: DocumentSnapshot): z.output { const data = snapshot.data() try { - /* eslint-disable-next-line @typescript-eslint/no-unsafe-return */ - return this.converter.schema.parse(data) as z.output + return this.converter.schema.parse(data) } catch (error) { logger.error( - `DatabaseDecoder(${this.converter.schema._output}): Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, + `DatabaseDecoder: Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, ) throw error } @@ -49,15 +52,16 @@ export class DatabaseConverter return this.converter.encode(modelObject) as DocumentData } catch (error) { logger.error( - `DatabaseDecoder(${typeof modelObject}): Failed to encode object ${modelObject} due to ${String(error)}.`, + `DatabaseDecoder(${typeof modelObject}): Failed to encode object ${JSON.stringify(modelObject)} due to ${String(error)}.`, ) throw error } } } -export class FHIRDatabaseConverter>> - implements FirestoreDataConverter> +export class FHIRDatabaseConverter< + C extends FHIRSchemaConverter>, +> implements FirestoreDataConverter> { // Properties @@ -74,11 +78,10 @@ export class FHIRDatabaseConverter { const data = snapshot.data() try { - /* eslint-disable-next-line @typescript-eslint/no-unsafe-return */ return this.converter.schema.parse(data) as z.output } catch (error) { logger.error( - `DatabaseDecoder(${this.converter.schema._output}): Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, + `DatabaseDecoder: Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, ) throw error } @@ -89,7 +92,7 @@ export class FHIRDatabaseConverter { + async getBodyWeightObservations( + userId: string, + ): Promise { return [ this.bodyWeightObservation( 269, @@ -232,7 +234,9 @@ export class MockPatientService implements PatientService { } } - async getHeartRateObservations(userId: string): Promise { + async getHeartRateObservations( + userId: string, + ): Promise { return [ this.heartRateObservation(79, new Date(2024, 1, 30, 12, 30)), this.heartRateObservation(62, new Date(2024, 1, 29, 12, 30)), @@ -285,7 +289,9 @@ export class MockPatientService implements PatientService { } } - async getMostRecentPotassiumObservation(): Promise { + async getMostRecentPotassiumObservation(): Promise< + ObservationQuantity | undefined + > { return { date: new Date('2024-01-29'), unit: QuantityUnit.mEq_L, diff --git a/functions/src/services/patient/patientService.ts b/functions/src/services/patient/patientService.ts index 4fc1d8e1..630ac53e 100644 --- a/functions/src/services/patient/patientService.ts +++ b/functions/src/services/patient/patientService.ts @@ -19,8 +19,8 @@ import { type UserObservationCollection, type LoincCode, } from '@stanfordbdhg/engagehf-models' +import { type Reference } from 'fhir/r4b.js' import { type Document } from '../database/databaseService.js' -import { Reference } from 'fhir/r4b.js' export interface PatientService { // Appointments diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts index a824f87e..03d73ad2 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts @@ -82,7 +82,8 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { const valsartan = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === 'medications/69749/drugs/349201', + req.data.medicationReference?.reference === + 'medications/69749/drugs/349201', )?.data expect(valsartan).toBeDefined() expect(valsartan?.dosageInstruction?.length).toBe(1) diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts index dc71d2ff..ea6e9433 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts @@ -61,7 +61,8 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const valsartan = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === 'medications/69749/drugs/349201', + req.data.medicationReference?.reference === + 'medications/69749/drugs/349201', )?.data expect(valsartan).toBeDefined() expect(valsartan?.dosageInstruction?.length).toBe(1) @@ -157,7 +158,8 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { const benazepril = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === 'medications/18867/drugs/898719', + req.data.medicationReference?.reference === + 'medications/18867/drugs/898719', )?.data expect(benazepril).toBeDefined() expect(benazepril?.dosageInstruction?.length).toBe(1) diff --git a/functions/src/services/recommendation/recommendationService.test.ts b/functions/src/services/recommendation/recommendationService.test.ts index cb6ccccc..5002ccbb 100644 --- a/functions/src/services/recommendation/recommendationService.test.ts +++ b/functions/src/services/recommendation/recommendationService.test.ts @@ -14,13 +14,13 @@ import { MedicationReference, UserMedicationRecommendationType, } from '@stanfordbdhg/engagehf-models' +import { type AllergyIntolerance } from 'fhir/r4b.js' import { type RecommendationService } from './recommendationService.js' import { readCsv } from '../../tests/helpers/csv.js' import { mockRecommendationVitals } from '../../tests/mocks/recommendationVitals.js' import { setupMockFirebase } from '../../tests/setup.js' import { getServiceFactory } from '../factory/getServiceFactory.js' import { type MedicationService } from '../medication/medicationService.js' -import { AllergyIntolerance } from 'fhir/r4b.js' describe('RecommendationService', () => { let medicationService: MedicationService diff --git a/functions/src/services/recommendation/recommendationService.ts b/functions/src/services/recommendation/recommendationService.ts index 4fcc4a1c..095985ee 100644 --- a/functions/src/services/recommendation/recommendationService.ts +++ b/functions/src/services/recommendation/recommendationService.ts @@ -9,7 +9,6 @@ import { type FHIRAllergyIntolerance, type FHIRMedication, - type FHIRMedicationRequest, LocalizedText, type MedicationReference, type ObservationQuantity, @@ -17,6 +16,7 @@ import { type UserMedicationRecommendationDoseSchedule, UserMedicationRecommendationType, } from '@stanfordbdhg/engagehf-models' +import { type Medication, type MedicationRequest } from 'fhir/r4b.js' import { recommendationLocalization } from './recommendationService+localization.js' import { BetaBlockerRecommender } from './recommenders/betaBlockerRecommender.js' import { DiureticRecommender } from './recommenders/diureticRecommender.js' @@ -27,7 +27,6 @@ import { Sglt2iRecommender } from './recommenders/sglt2iRecommender.js' import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' import { type ContraindicationService } from '../contraindication/contraindicationService.js' import { type MedicationService } from '../medication/medicationService.js' -import { Medication, MedicationRequest } from 'fhir/r4b.js' export interface RecommendationInput { requests: MedicationRequestContext[] diff --git a/functions/src/services/seeding/seedingService.ts b/functions/src/services/seeding/seedingService.ts index 8cc94947..158e5814 100644 --- a/functions/src/services/seeding/seedingService.ts +++ b/functions/src/services/seeding/seedingService.ts @@ -10,7 +10,7 @@ import fs from 'fs' import { CachingStrategy } from '@stanfordbdhg/engagehf-models' import { type CollectionReference } from 'firebase-admin/firestore' import { logger } from 'firebase-functions' -import { z, ZodType } from 'zod' +import { z, type ZodType } from 'zod' export interface SeedingOptions { useIndicesAsKeys: boolean diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts index 4abd5213..9cc5de67 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts @@ -7,9 +7,9 @@ // import { type FHIRQuestionnaire } from '@stanfordbdhg/engagehf-models' +import { type QuestionnaireItem } from 'fhir/r4b.js' import { QuestionnaireFactory } from './questionnaireFactory.js' import { QuestionnaireId, QuestionnaireLinkId } from './questionnaireLinkIds.js' -import { QuestionnaireItem } from 'fhir/r4b.js' export class KccqQuestionnaireFactory extends QuestionnaireFactory { create(): FHIRQuestionnaire { diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts index e5c07165..11fa3fab 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts @@ -15,20 +15,20 @@ import { LoincCode, QuantityUnit, } from '@stanfordbdhg/engagehf-models' +import { + type QuestionnaireItem, + type QuestionnaireItemEnableWhen, + type QuestionnaireItemAnswerOption, + type UsageContext, + type Extension, + type Questionnaire, +} from 'fhir/r4b.js' import { medicationClassesForGroup, MedicationGroup, type QuestionnaireId, QuestionnaireLinkId, } from './questionnaireLinkIds.js' -import { - QuestionnaireItem, - QuestionnaireItemEnableWhen, - QuestionnaireItemAnswerOption, - UsageContext, - Extension, - Questionnaire, -} from 'fhir/r4b.js' // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters export abstract class QuestionnaireFactory { diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts index 059b2960..c2b26bce 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormApi.ts @@ -9,7 +9,7 @@ import * as https from 'https' import { optionalish } from '@stanfordbdhg/engagehf-models' import { logger } from 'firebase-functions' -import { z, ZodType } from 'zod' +import { z, type ZodType } from 'zod' import { rxNormRelatedDrugGroupResponse, type RxNormRelatedDrugGroupResponse, diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts index d7780a03..e166069a 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts @@ -15,6 +15,7 @@ import { optionalish, QuantityUnit, } from '@stanfordbdhg/engagehf-models' +import { type Extension, type FhirResource } from 'fhir/r4b.js' import { logger } from 'firebase-functions' import { z } from 'zod' import { RxNormApi } from './rxNormApi.js' @@ -24,7 +25,6 @@ import { rxTermInfo, } from './rxNormModels.js' import { capitalize } from '../../../../extensions/string.js' -import { Extension, FhirResource, Medication } from 'fhir/r4b.js' export const medicationDailyDoseSpecificationSchema = z.object({ drug: z.string(), diff --git a/functions/src/tests/mocks/questionnaire.ts b/functions/src/tests/mocks/questionnaire.ts index 7906bea8..fade080a 100644 --- a/functions/src/tests/mocks/questionnaire.ts +++ b/functions/src/tests/mocks/questionnaire.ts @@ -6,9 +6,7 @@ // SPDX-License-Identifier: MIT // -import { - FHIRQuestionnaire, -} from '@stanfordbdhg/engagehf-models' +import { FHIRQuestionnaire } from '@stanfordbdhg/engagehf-models' import { QuestionnaireId, QuestionnaireLinkId, From ef5a979e38082b5b4aa6d453ac5ff3a90481fed9 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 20:38:16 +0200 Subject: [PATCH 10/18] update --- functions/data/drugs.json | 5965 +------------ functions/data/medications.json | 7506 ++++++++--------- functions/data/questionnaires.json | 5633 +++---------- .../seeding/staticData/staticDataService.ts | 20 +- 4 files changed, 5130 insertions(+), 13994 deletions(-) diff --git a/functions/data/drugs.json b/functions/data/drugs.json index f88a4c7e..9e26dfee 100644 --- a/functions/data/drugs.json +++ b/functions/data/drugs.json @@ -1,5964 +1 @@ -{ - "1808": { - "197417": { - "data": { - "resourceType": "Medication", - "id": "197417", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197417", - "display": "Bumetanide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 0.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "197418": { - "data": { - "resourceType": "Medication", - "id": "197418", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197418", - "display": "Bumetanide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "197419": { - "data": { - "resourceType": "Medication", - "id": "197419", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197419", - "display": "Bumetanide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1998": { - "308962": { - "data": { - "resourceType": "Medication", - "id": "308962", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "308962", - "display": "Captopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "308963": { - "data": { - "resourceType": "Medication", - "id": "308963", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "308963", - "display": "Captopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "308964": { - "data": { - "resourceType": "Medication", - "id": "308964", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "308964", - "display": "Captopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "317173": { - "data": { - "resourceType": "Medication", - "id": "317173", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "317173", - "display": "Captopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "3827": { - "858804": { - "data": { - "resourceType": "Medication", - "id": "858804", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858804", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "858810": { - "data": { - "resourceType": "Medication", - "id": "858810", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858810", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "858813": { - "data": { - "resourceType": "Medication", - "id": "858813", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858813", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "858817": { - "data": { - "resourceType": "Medication", - "id": "858817", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "858817", - "display": "Enalapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "4109": { - "1251903": { - "data": { - "resourceType": "Medication", - "id": "1251903", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1251903", - "display": "Ethacrynate (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4109", - "display": "Ethacrynic Acid" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1251907": { - "data": { - "resourceType": "Medication", - "id": "1251907", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1251907", - "display": "Ethacrynate (Oral Tablet)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4109", - "display": "Ethacrynic Acid" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "4603": { - "197732": { - "data": { - "resourceType": "Medication", - "id": "197732", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197732", - "display": "Furosemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "310429": { - "data": { - "resourceType": "Medication", - "id": "310429", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "310429", - "display": "Furosemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "313988": { - "data": { - "resourceType": "Medication", - "id": "313988", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "313988", - "display": "Furosemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "9997": { - "198222": { - "data": { - "resourceType": "Medication", - "id": "198222", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198222", - "display": "Spironolactone (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "198223": { - "data": { - "resourceType": "Medication", - "id": "198223", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198223", - "display": "Spironolactone (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "313096": { - "data": { - "resourceType": "Medication", - "id": "313096", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "313096", - "display": "Spironolactone (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "18867": { - "898687": { - "data": { - "resourceType": "Medication", - "id": "898687", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898687", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "898690": { - "data": { - "resourceType": "Medication", - "id": "898690", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898690", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "898719": { - "data": { - "resourceType": "Medication", - "id": "898719", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898719", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "898723": { - "data": { - "resourceType": "Medication", - "id": "898723", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "898723", - "display": "Benazepril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "19484": { - "854901": { - "data": { - "resourceType": "Medication", - "id": "854901", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854901", - "display": "Bisoprolol (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "19484", - "display": "Bisoprolol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "854905": { - "data": { - "resourceType": "Medication", - "id": "854905", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854905", - "display": "Bisoprolol (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "19484", - "display": "Bisoprolol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "20352": { - "200031": { - "data": { - "resourceType": "Medication", - "id": "200031", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200031", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6.25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "200032": { - "data": { - "resourceType": "Medication", - "id": "200032", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200032", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "200033": { - "data": { - "resourceType": "Medication", - "id": "200033", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200033", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "686924": { - "data": { - "resourceType": "Medication", - "id": "686924", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "686924", - "display": "Carvedilol (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 3.125, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "29046": { - "197884": { - "data": { - "resourceType": "Medication", - "id": "197884", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "197884", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "205326": { - "data": { - "resourceType": "Medication", - "id": "205326", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "205326", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 30, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "311353": { - "data": { - "resourceType": "Medication", - "id": "311353", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "311353", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "311354": { - "data": { - "resourceType": "Medication", - "id": "311354", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "311354", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "314076": { - "data": { - "resourceType": "Medication", - "id": "314076", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "314076", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "314077": { - "data": { - "resourceType": "Medication", - "id": "314077", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "314077", - "display": "Lisinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "30131": { - "1299896": { - "data": { - "resourceType": "Medication", - "id": "1299896", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1299896", - "display": "Moexipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "30131", - "display": "Moexipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1299897": { - "data": { - "resourceType": "Medication", - "id": "1299897", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1299897", - "display": "Moexipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "30131", - "display": "Moexipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 7.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "35208": { - "312748": { - "data": { - "resourceType": "Medication", - "id": "312748", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "312748", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "312749": { - "data": { - "resourceType": "Medication", - "id": "312749", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "312749", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "312750": { - "data": { - "resourceType": "Medication", - "id": "312750", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "312750", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "314203": { - "data": { - "resourceType": "Medication", - "id": "314203", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "314203", - "display": "Quinapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "35296": { - "198188": { - "data": { - "resourceType": "Medication", - "id": "198188", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198188", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "198189": { - "data": { - "resourceType": "Medication", - "id": "198189", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198189", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "251856": { - "data": { - "resourceType": "Medication", - "id": "251856", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "251856", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "251857": { - "data": { - "resourceType": "Medication", - "id": "251857", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "251857", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "261962": { - "data": { - "resourceType": "Medication", - "id": "261962", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "261962", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "401965": { - "data": { - "resourceType": "Medication", - "id": "401965", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "401965", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "401968": { - "data": { - "resourceType": "Medication", - "id": "401968", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "401968", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "845488": { - "data": { - "resourceType": "Medication", - "id": "845488", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "845488", - "display": "Ramipril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Capsule", - "display": "Oral Capsule" - } - ], - "text": "Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "38413": { - "198369": { - "data": { - "resourceType": "Medication", - "id": "198369", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198369", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "198370": { - "data": { - "resourceType": "Medication", - "id": "198370", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198370", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "198371": { - "data": { - "resourceType": "Medication", - "id": "198371", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198371", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "198372": { - "data": { - "resourceType": "Medication", - "id": "198372", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "198372", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "2589881": { - "data": { - "resourceType": "Medication", - "id": "2589881", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2589881", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "2589885": { - "data": { - "resourceType": "Medication", - "id": "2589885", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2589885", - "display": "Torsemide (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 60, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "38454": { - "199351": { - "data": { - "resourceType": "Medication", - "id": "199351", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "199351", - "display": "Trandolapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "199352": { - "data": { - "resourceType": "Medication", - "id": "199352", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "199352", - "display": "Trandolapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "199353": { - "data": { - "resourceType": "Medication", - "id": "199353", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "199353", - "display": "Trandolapril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "54552": { - "854925": { - "data": { - "resourceType": "Medication", - "id": "854925", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854925", - "display": "Perindopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 8, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "854984": { - "data": { - "resourceType": "Medication", - "id": "854984", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854984", - "display": "Perindopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "854988": { - "data": { - "resourceType": "Medication", - "id": "854988", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "854988", - "display": "Perindopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "69749": { - "349199": { - "data": { - "resourceType": "Medication", - "id": "349199", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349199", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "349200": { - "data": { - "resourceType": "Medication", - "id": "349200", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349200", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 320, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "349201": { - "data": { - "resourceType": "Medication", - "id": "349201", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349201", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 160, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "349483": { - "data": { - "resourceType": "Medication", - "id": "349483", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349483", - "display": "Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "73494": { - "205304": { - "data": { - "resourceType": "Medication", - "id": "205304", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "205304", - "display": "Telmisartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "205305": { - "data": { - "resourceType": "Medication", - "id": "205305", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "205305", - "display": "Telmisartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "282755": { - "data": { - "resourceType": "Medication", - "id": "282755", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "282755", - "display": "Telmisartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "83515": { - "310139": { - "data": { - "resourceType": "Medication", - "id": "310139", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "310139", - "display": "Eprosartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83515", - "display": "Eprosartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "310140": { - "data": { - "resourceType": "Medication", - "id": "310140", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "310140", - "display": "Eprosartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83515", - "display": "Eprosartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 600, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "83818": { - "200094": { - "data": { - "resourceType": "Medication", - "id": "200094", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200094", - "display": "Irbesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 75, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "200095": { - "data": { - "resourceType": "Medication", - "id": "200095", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200095", - "display": "Irbesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 150, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "200096": { - "data": { - "resourceType": "Medication", - "id": "200096", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "200096", - "display": "Irbesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 300, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "118463": { - "349373": { - "data": { - "resourceType": "Medication", - "id": "349373", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349373", - "display": "Olmesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "349401": { - "data": { - "resourceType": "Medication", - "id": "349401", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349401", - "display": "Olmesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "349405": { - "data": { - "resourceType": "Medication", - "id": "349405", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "349405", - "display": "Olmesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "203160": { - "979480": { - "data": { - "resourceType": "Medication", - "id": "979480", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "979480", - "display": "Losartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "979485": { - "data": { - "resourceType": "Medication", - "id": "979485", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "979485", - "display": "Losartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "979492": { - "data": { - "resourceType": "Medication", - "id": "979492", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "979492", - "display": "Losartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "214354": { - "153822": { - "data": { - "resourceType": "Medication", - "id": "153822", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "153822", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "153823": { - "data": { - "resourceType": "Medication", - "id": "153823", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "153823", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 8, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "577776": { - "data": { - "resourceType": "Medication", - "id": "577776", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "577776", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 16, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "639537": { - "data": { - "resourceType": "Medication", - "id": "639537", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "639537", - "display": "Candesartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 32, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "221124": { - "866412": { - "data": { - "resourceType": "Medication", - "id": "866412", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866412", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "866419": { - "data": { - "resourceType": "Medication", - "id": "866419", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866419", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "866427": { - "data": { - "resourceType": "Medication", - "id": "866427", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866427", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "866436": { - "data": { - "resourceType": "Medication", - "id": "866436", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "866436", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Tablet", - "display": "Extended Release Oral Tablet" - } - ], - "text": "Extended Release Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1999031": { - "data": { - "resourceType": "Medication", - "id": "1999031", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999031", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1999033": { - "data": { - "resourceType": "Medication", - "id": "1999033", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999033", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1999035": { - "data": { - "resourceType": "Medication", - "id": "1999035", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999035", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1999037": { - "data": { - "resourceType": "Medication", - "id": "1999037", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1999037", - "display": "Metoprolol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "227278": { - "857169": { - "data": { - "resourceType": "Medication", - "id": "857169", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "857169", - "display": "Fosinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "857183": { - "data": { - "resourceType": "Medication", - "id": "857183", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "857183", - "display": "Fosinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "857187": { - "data": { - "resourceType": "Medication", - "id": "857187", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "857187", - "display": "Fosinopril (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "298869": { - "351256": { - "data": { - "resourceType": "Medication", - "id": "351256", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "351256", - "display": "Eplerenone (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "298869", - "display": "Eplerenone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "351257": { - "data": { - "resourceType": "Medication", - "id": "351257", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "351257", - "display": "Eplerenone (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "298869", - "display": "Eplerenone" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "668310": { - "860510": { - "data": { - "resourceType": "Medication", - "id": "860510", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860510", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "860516": { - "data": { - "resourceType": "Medication", - "id": "860516", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860516", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "860522": { - "data": { - "resourceType": "Medication", - "id": "860522", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860522", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "860532": { - "data": { - "resourceType": "Medication", - "id": "860532", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "860532", - "display": "Carvedilol XR (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Extended Release Oral Capsule", - "display": "Extended Release Oral Capsule" - } - ], - "text": "Extended Release Oral Capsule" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1091642": { - "1091646": { - "data": { - "resourceType": "Medication", - "id": "1091646", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091646", - "display": "Azilsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091642", - "display": "Azilsartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1091652": { - "data": { - "resourceType": "Medication", - "id": "1091652", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091652", - "display": "Azilsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091642", - "display": "Azilsartan Medoxomil" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1373458": { - "1373463": { - "data": { - "resourceType": "Medication", - "id": "1373463", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373463", - "display": "Canagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373458", - "display": "Canagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1373471": { - "data": { - "resourceType": "Medication", - "id": "1373471", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373471", - "display": "Canagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373458", - "display": "Canagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 300, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1488564": { - "1488569": { - "data": { - "resourceType": "Medication", - "id": "1488569", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488569", - "display": "Dapagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488564", - "display": "Dapagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1488574": { - "data": { - "resourceType": "Medication", - "id": "1488574", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488574", - "display": "Dapagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488564", - "display": "Dapagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1545653": { - "1545658": { - "data": { - "resourceType": "Medication", - "id": "1545658", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545658", - "display": "Empagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545653", - "display": "Empagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1545666": { - "data": { - "resourceType": "Medication", - "id": "1545666", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545666", - "display": "Empagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545653", - "display": "Empagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1656339": { - "1656340": { - "data": { - "resourceType": "Medication", - "id": "1656340", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656340", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 24, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 26, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1656349": { - "data": { - "resourceType": "Medication", - "id": "1656349", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656349", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 49, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 51, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1656354": { - "data": { - "resourceType": "Medication", - "id": "1656354", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656354", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 97, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 103, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "2679793": { - "data": { - "resourceType": "Medication", - "id": "2679793", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2679793", - "display": "Sacubitril/Valsartan (Oral Pellet)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Pellet", - "display": "Oral Pellet" - } - ], - "text": "Oral Pellet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 16, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "2679800": { - "data": { - "resourceType": "Medication", - "id": "2679800", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2679800", - "display": "Sacubitril/Valsartan (Oral Pellet)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Pellet", - "display": "Oral Pellet" - } - ], - "text": "Oral Pellet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - }, - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "1992672": { - "1992810": { - "data": { - "resourceType": "Medication", - "id": "1992810", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992810", - "display": "Ertugliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992672", - "display": "Ertugliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "1992819": { - "data": { - "resourceType": "Medication", - "id": "1992819", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992819", - "display": "Ertugliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992672", - "display": "Ertugliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "2627044": { - "2637859": { - "data": { - "resourceType": "Medication", - "id": "2637859", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2637859", - "display": "Bexagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2627044", - "display": "Bexagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - }, - "2638675": { - "2638683": { - "data": { - "resourceType": "Medication", - "id": "2638683", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638683", - "display": "Sotagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638675", - "display": "Sotagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - }, - "2638691": { - "data": { - "resourceType": "Medication", - "id": "2638691", - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638691", - "display": "Sotagliflozin (Oral Pill)" - } - ] - }, - "form": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "Oral Tablet", - "display": "Oral Tablet" - } - ], - "text": "Oral Tablet" - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638675", - "display": "Sotagliflozin" - } - ] - }, - "strength": { - "numerator": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" - }, - "denominator": { - "value": 1 - } - } - } - ] - } - } - } -} \ No newline at end of file +{} \ No newline at end of file diff --git a/functions/data/medications.json b/functions/data/medications.json index a924cbcb..66552ca4 100644 --- a/functions/data/medications.json +++ b/functions/data/medications.json @@ -1,4190 +1,4120 @@ { "1808": { - "data": { - "resourceType": "Medication", - "id": "1808", - "contained": [], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Bumex" + "resourceType": "Medication", + "id": "1808", + "contained": [], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" } - ], - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1808", - "display": "Bumetanide" - } - ] + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Bumex" } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] } }, "1998": { - "data": { - "resourceType": "Medication", - "id": "1998", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1998/drugs/308963", - "display": "Captopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 18.75, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "1998", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1998/drugs/308963", + "display": "Captopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 18.75, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1998/drugs/308964", - "display": "Captopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 150, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 3, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Captopril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Captopril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1998/drugs/308964", + "display": "Captopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 150, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Capoten" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1998", - "display": "Captopril" + "timing": { + "repeat": { + "frequency": 3, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Captopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Captopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Capoten" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] } }, "3827": { - "data": { - "resourceType": "Medication", - "id": "3827", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/3827/drugs/858813", - "display": "Enalapril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "3827", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/3827/drugs/858813", + "display": "Enalapril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/3827/drugs/858810", - "display": "Enalapril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Enalapril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Enalapril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/3827/drugs/858810", + "display": "Enalapril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Vasotec" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "3827", - "display": "Enalapril" + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Enalapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Enalapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Vasotec" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] } }, "4109": { - "data": { - "resourceType": "Medication", - "id": "4109", - "contained": [], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Edecrin" + "resourceType": "Medication", + "id": "4109", + "contained": [], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" } - ], - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4109", - "display": "Ethacrynic Acid" - } - ] + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Edecrin" } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4109", + "display": "Ethacrynic Acid" + } + ] } }, "4603": { - "data": { - "resourceType": "Medication", - "id": "4603", - "contained": [], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Lasix" + "resourceType": "Medication", + "id": "4603", + "contained": [], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" } - ], - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "4603", - "display": "Furosemide" - } - ] + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Lasix" } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] } }, "9997": { - "data": { - "resourceType": "Medication", - "id": "9997", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/9997/drugs/313096", - "display": "Spironolactone (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "9997", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/9997/drugs/313096", + "display": "Spironolactone (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/9997/drugs/313096", - "display": "Spironolactone (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/2", - "display": "Mineralocorticoid Receptor Antagonists (MRAs)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Spironolactone (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Spironolactone (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/9997/drugs/313096", + "display": "Spironolactone (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Aldactone" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "9997", - "display": "Spironolactone" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/2", + "display": "Mineralocorticoid Receptor Antagonists (MRAs)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Spironolactone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Spironolactone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Aldactone" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] } }, "18867": { - "data": { - "resourceType": "Medication", - "id": "18867", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/18867/drugs/898723", - "display": "Benazepril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "18867", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/18867/drugs/898723", + "display": "Benazepril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/18867/drugs/898719", - "display": "Benazepril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Benazepril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Benazepril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/18867/drugs/898719", + "display": "Benazepril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Lotensin" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "18867", - "display": "Benazepril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Benazepril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Benazepril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Lotensin" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] } }, "19484": { - "data": { - "resourceType": "Medication", - "id": "19484", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/19484/drugs/854905", - "display": "Bisoprolol (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.25, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "19484", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/19484/drugs/854905", + "display": "Bisoprolol (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/19484/drugs/854901", - "display": "Bisoprolol (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.25, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Bisoprolol (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Bisoprolol (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/19484/drugs/854901", + "display": "Bisoprolol (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Zebeta" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "19484", - "display": "Bisoprolol" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Bisoprolol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Bisoprolol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Zebeta" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "19484", + "display": "Bisoprolol" + } + ] } }, "20352": { - "data": { - "resourceType": "Medication", - "id": "20352", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/20352/drugs/200031", - "display": "Carvedilol (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 6.25, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "20352", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/20352/drugs/200031", + "display": "Carvedilol (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6.25, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/20352/drugs/200033", - "display": "Carvedilol (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Carvedilol (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Carvedilol (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/20352/drugs/200033", + "display": "Carvedilol (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Coreg" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "20352", - "display": "Carvedilol" + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Carvedilol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Carvedilol (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Coreg" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] } }, "29046": { - "data": { - "resourceType": "Medication", - "id": "29046", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/29046/drugs/311353", - "display": "Lisinopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2.5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "29046", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/29046/drugs/311353", + "display": "Lisinopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/29046/drugs/197884", - "display": "Lisinopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Lisinopril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Lisinopril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/29046/drugs/197884", + "display": "Lisinopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Zestril" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "29046", - "display": "Lisinopril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Lisinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Lisinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Zestril" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] } }, "30131": { - "data": { - "resourceType": "Medication", - "id": "30131", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/30131/drugs/1299897", - "display": "Moexipril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 7.5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "30131", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/30131/drugs/1299897", + "display": "Moexipril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 7.5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/30131/drugs/1299896", - "display": "Moexipril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Moexipril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Moexipril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/30131/drugs/1299896", + "display": "Moexipril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Univasc" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "30131", - "display": "Moexipril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Moexipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Moexipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Univasc" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "30131", + "display": "Moexipril" + } + ] } }, "35208": { - "data": { - "resourceType": "Medication", - "id": "35208", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/35208/drugs/312748", - "display": "Quinapril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "35208", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/35208/drugs/312748", + "display": "Quinapril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/35208/drugs/314203", - "display": "Quinapril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Quinapril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Quinapril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/35208/drugs/314203", + "display": "Quinapril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Accupril" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35208", - "display": "Quinapril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Quinapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Quinapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Accupril" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] } }, "35296": { - "data": { - "resourceType": "Medication", - "id": "35296", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/35296/drugs/401965", - "display": "Ramipril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1.25, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "35296", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/35296/drugs/401965", + "display": "Ramipril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/35296/drugs/401968", - "display": "Ramipril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Ramipril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Ramipril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/35296/drugs/401968", + "display": "Ramipril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Altace" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "35296", - "display": "Ramipril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Ramipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Ramipril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Altace" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] } }, "38413": { - "data": { - "resourceType": "Medication", - "id": "38413", - "contained": [], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/6", - "display": "Diuretics" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Soaanz" + "resourceType": "Medication", + "id": "38413", + "contained": [], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/6", + "display": "Diuretics" } - ], - "code": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38413", - "display": "Torsemide" - } - ] + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Soaanz" } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] } }, "38454": { - "data": { - "resourceType": "Medication", - "id": "38454", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/38454/drugs/199353", - "display": "Trandolapril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 1, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "38454", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/38454/drugs/199353", + "display": "Trandolapril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/38454/drugs/199352", - "display": "Trandolapril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Trandolapril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Trandolapril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/38454/drugs/199352", + "display": "Trandolapril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Mavik" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "38454", - "display": "Trandolapril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Trandolapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Trandolapril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Mavik" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] } }, "54552": { - "data": { - "resourceType": "Medication", - "id": "54552", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/54552/drugs/854984", - "display": "Perindopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 2, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "54552", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/54552/drugs/854984", + "display": "Perindopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/54552/drugs/854925", - "display": "Perindopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 16, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 2, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Perindopril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Perindopril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/54552/drugs/854925", + "display": "Perindopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 16, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Aceon" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "54552", - "display": "Perindopril" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 2, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Perindopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Perindopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Aceon" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] } }, "69749": { - "data": { - "resourceType": "Medication", - "id": "69749", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/69749/drugs/349483", - "display": "Valsartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "69749", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/69749/drugs/349483", + "display": "Valsartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/69749/drugs/349201", - "display": "Valsartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 320, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Valsartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Valsartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/69749/drugs/349201", + "display": "Valsartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 320, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Diovan" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Diovan" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] } }, "73494": { - "data": { - "resourceType": "Medication", - "id": "73494", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/73494/drugs/205304", - "display": "Telmisartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "73494", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/73494/drugs/205304", + "display": "Telmisartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/73494/drugs/205305", - "display": "Telmisartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Telmisartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Telmisartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/73494/drugs/205305", + "display": "Telmisartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Micardis" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "73494", - "display": "Telmisartan" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Telmisartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Telmisartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Micardis" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] } }, "83515": { - "data": { - "resourceType": "Medication", - "id": "83515", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/83515/drugs/310139", - "display": "Eprosartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "83515", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/83515/drugs/310139", + "display": "Eprosartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/83515/drugs/310139", - "display": "Eprosartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 800, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 2, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Eprosartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Eprosartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/83515/drugs/310139", + "display": "Eprosartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 800, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Teveten" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83515", - "display": "Eprosartan" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 2, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Eprosartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Eprosartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Teveten" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83515", + "display": "Eprosartan" + } + ] } }, "83818": { - "data": { - "resourceType": "Medication", - "id": "83818", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/83818/drugs/200094", - "display": "Irbesartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 75, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "83818", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/83818/drugs/200094", + "display": "Irbesartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 75, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/83818/drugs/200096", - "display": "Irbesartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 300, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Irbesartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Irbesartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/83818/drugs/200096", + "display": "Irbesartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 300, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Avapro" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "83818", - "display": "Irbesartan" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Irbesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Irbesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Avapro" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] } }, "118463": { - "data": { - "resourceType": "Medication", - "id": "118463", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/118463/drugs/349373", - "display": "Olmesartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 2, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "118463", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/118463/drugs/349373", + "display": "Olmesartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/118463/drugs/349405", - "display": "Olmesartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 2, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Olmesartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Olmesartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/118463/drugs/349405", + "display": "Olmesartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Benicar" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "118463", - "display": "Olmesartan Medoxomil" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Olmesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Olmesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Benicar" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] } }, "203160": { - "data": { - "resourceType": "Medication", - "id": "203160", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/203160/drugs/979485", - "display": "Losartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 25, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] - } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/203160/drugs/979480", - "display": "Losartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 150, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "203160", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/203160/drugs/979485", + "display": "Losartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Losartan (Oral Pill)" + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Losartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/203160/drugs/979480", + "display": "Losartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 150, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Cozaar" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "203160", - "display": "Losartan Potassium" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1.5, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Losartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Losartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Cozaar" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] } }, "214354": { - "data": { - "resourceType": "Medication", - "id": "214354", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/214354/drugs/153822", - "display": "Candesartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 4, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "214354", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/214354/drugs/153822", + "display": "Candesartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/214354/drugs/639537", - "display": "Candesartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 32, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Candesartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Candesartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/214354/drugs/639537", + "display": "Candesartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 32, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Atacand" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "214354", - "display": "Candesartan" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Candesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Candesartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Atacand" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] } }, "221124": { - "data": { - "resourceType": "Medication", - "id": "221124", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/221124/drugs/1999035", - "display": "Metoprolol XR (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "221124", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/221124/drugs/1999035", + "display": "Metoprolol XR (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/221124/drugs/866419", - "display": "Metoprolol XR (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Metoprolol XR (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Metoprolol XR (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/221124/drugs/866419", + "display": "Metoprolol XR (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Toprol XL" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "221124", - "display": "Metoprolol Succinate" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Metoprolol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Metoprolol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Toprol XL" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] } }, "227278": { - "data": { - "resourceType": "Medication", - "id": "227278", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/227278/drugs/857169", - "display": "Fosinopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "227278", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/227278/drugs/857169", + "display": "Fosinopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/227278/drugs/857187", - "display": "Fosinopril (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/3", - "display": "ACE inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Fosinopril (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Fosinopril (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/227278/drugs/857187", + "display": "Fosinopril (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Monopril" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "227278", - "display": "Fosinopril Sodium" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/3", + "display": "ACE inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Fosinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Fosinopril (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Monopril" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] } }, "298869": { - "data": { - "resourceType": "Medication", - "id": "298869", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/298869/drugs/351256", - "display": "Eplerenone (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 12.5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "298869", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/298869/drugs/351256", + "display": "Eplerenone (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/298869/drugs/351257", - "display": "Eplerenone (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 50, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/2", - "display": "Mineralocorticoid Receptor Antagonists (MRAs)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Eplerenone (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Eplerenone (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/298869/drugs/351257", + "display": "Eplerenone (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Inspra" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "298869", - "display": "Eplerenone" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/2", + "display": "Mineralocorticoid Receptor Antagonists (MRAs)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Eplerenone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Eplerenone (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Inspra" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "298869", + "display": "Eplerenone" + } + ] } }, "668310": { - "data": { - "resourceType": "Medication", - "id": "668310", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/668310/drugs/860510", - "display": "Carvedilol XR (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "668310", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/668310/drugs/860510", + "display": "Carvedilol XR (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/668310/drugs/860532", - "display": "Carvedilol XR (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/0", - "display": "Beta blockers" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Carvedilol XR (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Carvedilol XR (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/668310/drugs/860532", + "display": "Carvedilol XR (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Coreg CR" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "668310", - "display": "Carvedilol Phosphate" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/0", + "display": "Beta blockers" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Carvedilol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Carvedilol XR (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Coreg CR" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] } }, "1091642": { - "data": { - "resourceType": "Medication", - "id": "1091642", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1091642/drugs/1091646", - "display": "Azilsartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 40, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "1091642", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1091642/drugs/1091646", + "display": "Azilsartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1091642/drugs/1091652", - "display": "Azilsartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 80, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/4", - "display": "ARBs" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Azilsartan (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Azilsartan (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1091642/drugs/1091652", + "display": "Azilsartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Edarbi" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1091642", - "display": "Azilsartan Medoxomil" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/4", + "display": "ARBs" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Azilsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Azilsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Edarbi" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091642", + "display": "Azilsartan Medoxomil" + } + ] } }, "1373458": { - "data": { - "resourceType": "Medication", - "id": "1373458", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1373458/drugs/1373463", - "display": "Canagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "1373458", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1373458/drugs/1373463", + "display": "Canagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1373458/drugs/1373463", - "display": "Canagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 100, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Canagliflozin (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Canagliflozin (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1373458/drugs/1373463", + "display": "Canagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Invokana" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1373458", - "display": "Canagliflozin" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Canagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Canagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Invokana" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373458", + "display": "Canagliflozin" + } + ] } }, "1488564": { - "data": { - "resourceType": "Medication", - "id": "1488564", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1488564/drugs/1488574", - "display": "Dapagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "1488564", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1488564/drugs/1488574", + "display": "Dapagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1488564/drugs/1488569", - "display": "Dapagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Dapagliflozin (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Dapagliflozin (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1488564/drugs/1488569", + "display": "Dapagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Farxiga" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1488564", - "display": "Dapagliflozin" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Dapagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Dapagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Farxiga" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488564", + "display": "Dapagliflozin" + } + ] } }, "1545653": { - "data": { - "resourceType": "Medication", - "id": "1545653", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1545653/drugs/1545658", - "display": "Empagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 0.5, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "1545653", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1545653/drugs/1545658", + "display": "Empagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1545653/drugs/1545658", - "display": "Empagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 10, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 0.5, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Empagliflozin (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Empagliflozin (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1545653/drugs/1545658", + "display": "Empagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Jardiance" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1545653", - "display": "Empagliflozin" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Empagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Empagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Jardiance" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545653", + "display": "Empagliflozin" + } + ] } }, "1656339": { - "data": { - "resourceType": "Medication", - "id": "1656339", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1656339/drugs/1656340", - "display": "Sacubitril/Valsartan (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 48, - "unit": "mg" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 52, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "1656339", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1656339/drugs/1656340", + "display": "Sacubitril/Valsartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 48, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1656339/drugs/1656354", - "display": "Sacubitril/Valsartan (Oral Pill)" }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 194, - "unit": "mg" + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 52, + "unit": "mg" + } + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" } }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 206, - "unit": "mg" + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } } + ] + } + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1656339/drugs/1656354", + "display": "Sacubitril/Valsartan (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 194, + "unit": "mg" } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 2, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 206, + "unit": "mg" } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/5", - "display": "Angiotensin Receptor/Neprilysin Inhibitors (ARNI)" } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Sacubitril/Valsartan (Oral Pill)" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Entresto" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656339", - "display": "Sacubitril / Valsartan" - } - ] - }, - "ingredient": [ - { - "itemCodeableConcept": { - "coding": [ - { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1656328", - "display": "Sacubitril" + "timing": { + "repeat": { + "frequency": 2, + "period": 1, + "periodUnit": "d" } - ] - } - }, - { - "itemCodeableConcept": { - "coding": [ + }, + "doseAndRate": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "69749", - "display": "Valsartan" + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } } ] } + ] + } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/5", + "display": "Angiotensin Receptor/Neprilysin Inhibitors (ARNI)" } - ] - } - }, - "1992672": { - "data": { - "resourceType": "Medication", - "id": "1992672", - "contained": [ + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Entresto" + } + ], + "code": { + "coding": [ { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1992672/drugs/1992810", - "display": "Ertugliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 5, - "unit": "mg" - } - } - ], - "dosageInstruction": [ + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656339", + "display": "Sacubitril / Valsartan" + } + ] + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" } ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/1992672/drugs/1992819", - "display": "Ertugliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 15, - "unit": "mg" - } - } - ], - "dosageInstruction": [ + } + }, + { + "itemCodeableConcept": { + "coding": [ { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" } ] } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" + } + ] + }, + "1992672": { + "resourceType": "Medication", + "id": "1992672", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1992672/drugs/1992810", + "display": "Ertugliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Ertugliflozin (Oral Pill)" + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Ertugliflozin (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/1992672/drugs/1992819", + "display": "Ertugliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Steglatro" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "1992672", - "display": "Ertugliflozin" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Ertugliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Ertugliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Steglatro" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992672", + "display": "Ertugliflozin" + } + ] } }, "2627044": { - "data": { - "resourceType": "Medication", - "id": "2627044", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/2627044/drugs/2637859", - "display": "Bexagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "2627044", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/2627044/drugs/2637859", + "display": "Bexagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/2627044/drugs/2637859", - "display": "Bexagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 20, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Bexagliflozin (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Bexagliflozin (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/2627044/drugs/2637859", + "display": "Bexagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Brenzavvy" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2627044", - "display": "Bexagliflozin" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Bexagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Bexagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Brenzavvy" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2627044", + "display": "Bexagliflozin" + } + ] } }, "2638675": { - "data": { - "resourceType": "Medication", - "id": "2638675", - "contained": [ - { - "id": "#minimumDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/2638675/drugs/2638683", - "display": "Sotagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 200, - "unit": "mg" - } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } - } - ] + "resourceType": "Medication", + "id": "2638675", + "contained": [ + { + "id": "#minimumDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/2638675/drugs/2638683", + "display": "Sotagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" } - ] - }, - { - "id": "#targetDailyDose", - "resourceType": "MedicationRequest", - "medicationReference": { - "reference": "medications/2638675/drugs/2638691", - "display": "Sotagliflozin (Oral Pill)" - }, - "intent": "plan", - "status": "draft", - "subject": {}, - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", - "valueQuantity": { - "system": "http://unitsofmeasure.org", - "code": "mg", - "value": 400, - "unit": "mg" + } + ], + "dosageInstruction": [ + { + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" } - } - ], - "dosageInstruction": [ - { - "timing": { - "repeat": { - "frequency": 1, - "period": 1, - "periodUnit": "d" - } - }, - "doseAndRate": [ - { - "doseQuantity": { - "system": "http://unitsofmeasure.org", - "code": "{tbl}", - "value": 1, - "unit": "tbl." - } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." } - ] - } - ] - } - ], - "extension": [ - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", - "valueReference": { - "reference": "medicationClasses/1", - "display": "SGLT2 Inhibitors" - } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", - "valueReference": { - "reference": "#minimumDailyDose", - "display": "Sotagliflozin (Oral Pill)" + } + ] } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", - "valueReference": { - "reference": "#targetDailyDose", - "display": "Sotagliflozin (Oral Pill)" + ] + }, + { + "id": "#targetDailyDose", + "resourceType": "MedicationRequest", + "medicationReference": { + "reference": "medications/2638675/drugs/2638691", + "display": "Sotagliflozin (Oral Pill)" + }, + "intent": "plan", + "status": "draft", + "subject": {}, + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/MedicationRequest/extension/totalDailyDose", + "valueQuantity": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + } } - }, - { - "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", - "valueString": "Inpefa" - } - ], - "code": { - "coding": [ + ], + "dosageInstruction": [ { - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "code": "2638675", - "display": "Sotagliflozin" + "timing": { + "repeat": { + "frequency": 1, + "period": 1, + "periodUnit": "d" + } + }, + "doseAndRate": [ + { + "doseQuantity": { + "system": "http://unitsofmeasure.org", + "code": "{tbl}", + "value": 1, + "unit": "tbl." + } + } + ] } ] } + ], + "extension": [ + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/medicationClass", + "valueReference": { + "reference": "medicationClasses/1", + "display": "SGLT2 Inhibitors" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/minimumDailyDose", + "valueReference": { + "reference": "#minimumDailyDose", + "display": "Sotagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/targetDailyDose", + "valueReference": { + "reference": "#targetDailyDose", + "display": "Sotagliflozin (Oral Pill)" + } + }, + { + "url": "http://engagehf.bdh.stanford.edu/fhir/StructureDefinition/Medication/extension/brandName", + "valueString": "Inpefa" + } + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638675", + "display": "Sotagliflozin" + } + ] } } } \ No newline at end of file diff --git a/functions/data/questionnaires.json b/functions/data/questionnaires.json index f74b66d6..1c4a8fa4 100644 --- a/functions/data/questionnaires.json +++ b/functions/data/questionnaires.json @@ -1474,152 +1474,7 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/19484/drugs/854901", - "code": "medications/19484/drugs/854901", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/19484/drugs/854905", - "code": "medications/19484/drugs/854905", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200032", - "code": "medications/20352/drugs/200032", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200033", - "code": "medications/20352/drugs/200033", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/686924", - "code": "medications/20352/drugs/686924", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200031", - "code": "medications/20352/drugs/200031", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860510", - "code": "medications/668310/drugs/860510", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860516", - "code": "medications/668310/drugs/860516", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860522", - "code": "medications/668310/drugs/860522", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860532", - "code": "medications/668310/drugs/860532", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999031", - "code": "medications/221124/drugs/1999031", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866412", - "code": "medications/221124/drugs/866412", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999033", - "code": "medications/221124/drugs/1999033", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866419", - "code": "medications/221124/drugs/866419", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999035", - "code": "medications/221124/drugs/1999035", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866427", - "code": "medications/221124/drugs/866427", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999037", - "code": "medications/221124/drugs/1999037", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866436", - "code": "medications/221124/drugs/866436", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" - } - } - ] + "answerOption": [] } ], "required": false, @@ -1760,575 +1615,437 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/1091642/drugs/1091646", - "code": "medications/1091642/drugs/1091646", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1091642/drugs/1091652", - "code": "medications/1091642/drugs/1091652", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898687", - "code": "medications/18867/drugs/898687", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898690", - "code": "medications/18867/drugs/898690", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" + "answerOption": [] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)", + "enableWhen": [ + { + "question": "medication.rasi.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } + } + ] + }, + { + "linkId": "medication.mra.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.mra.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", + "required": false + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/18867/drugs/898719", - "code": "medications/18867/drugs/898719", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, + } + ], + "linkId": "medication.mra.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ { "valueCoding": { - "id": "medications/18867/drugs/898723", - "code": "medications/18867/drugs/898723", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { - "id": "medications/214354/drugs/577776", - "code": "medications/214354/drugs/577776", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n16 mg Oral Tablet" + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/639537", - "code": "medications/214354/drugs/639537", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n32 mg Oral Tablet" + } + ] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)" + }, + { + "linkId": "medication.mra.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.mra.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.mra.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.mra.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/214354/drugs/153822", - "code": "medications/214354/drugs/153822", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n4 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/153823", - "code": "medications/214354/drugs/153823", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n8 mg Oral Tablet" + } + ], + "linkId": "medication.mra.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)", + "enableWhen": [ + { + "question": "medication.mra.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } + } + ] + }, + { + "linkId": "medication.sglt2i.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308962", - "code": "medications/1998/drugs/308962", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308963", - "code": "medications/1998/drugs/308963", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/317173", - "code": "medications/1998/drugs/317173", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308964", - "code": "medications/1998/drugs/308964", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n50 mg Oral Tablet" - } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.sglt2i.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", + "required": false + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/3827/drugs/858817", - "code": "medications/3827/drugs/858817", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, + } + ], + "linkId": "medication.sglt2i.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ { "valueCoding": { - "id": "medications/3827/drugs/858804", - "code": "medications/3827/drugs/858804", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { - "id": "medications/3827/drugs/858810", - "code": "medications/3827/drugs/858810", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858813", - "code": "medications/3827/drugs/858813", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" + } + ] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)" + }, + { + "linkId": "medication.sglt2i.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.sglt2i.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.sglt2i.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.sglt2i.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/83515/drugs/310139", - "code": "medications/83515/drugs/310139", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, - { - "valueCoding": { - "id": "medications/83515/drugs/310140", - "code": "medications/83515/drugs/310140", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" + } + ], + "linkId": "medication.sglt2i.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)", + "enableWhen": [ + { + "question": "medication.sglt2i.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } + } + ] + }, + { + "linkId": "medication.diuretics.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.diuretics.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", + "required": false + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/227278/drugs/857169", - "code": "medications/227278/drugs/857169", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, + } + ], + "linkId": "medication.diuretics.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ { "valueCoding": { - "id": "medications/227278/drugs/857183", - "code": "medications/227278/drugs/857183", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { - "id": "medications/227278/drugs/857187", - "code": "medications/227278/drugs/857187", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200095", - "code": "medications/83818/drugs/200095", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" + } + ] + } + ], + "required": false, + "text": "Diuretics" + }, + { + "linkId": "medication.diuretics.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.diuretics.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.diuretics.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.diuretics.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/83818/drugs/200096", - "code": "medications/83818/drugs/200096", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200094", - "code": "medications/83818/drugs/200094", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/314076", - "code": "medications/29046/drugs/314076", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/311353", - "code": "medications/29046/drugs/311353", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/314077", - "code": "medications/29046/drugs/314077", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/205326", - "code": "medications/29046/drugs/205326", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/197884", - "code": "medications/29046/drugs/197884", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/311354", - "code": "medications/29046/drugs/311354", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979480", - "code": "medications/203160/drugs/979480", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979485", - "code": "medications/203160/drugs/979485", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979492", - "code": "medications/203160/drugs/979492", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/30131/drugs/1299896", - "code": "medications/30131/drugs/1299896", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Moexipril (Univasc)\n15 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/30131/drugs/1299897", - "code": "medications/30131/drugs/1299897", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349401", - "code": "medications/118463/drugs/349401", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349405", - "code": "medications/118463/drugs/349405", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349373", - "code": "medications/118463/drugs/349373", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854984", - "code": "medications/54552/drugs/854984", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854988", - "code": "medications/54552/drugs/854988", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854925", - "code": "medications/54552/drugs/854925", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n8 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312748", - "code": "medications/35208/drugs/312748", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312749", - "code": "medications/35208/drugs/312749", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/314203", - "code": "medications/35208/drugs/314203", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312750", - "code": "medications/35208/drugs/312750", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/845488", - "code": "medications/35296/drugs/845488", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/401965", - "code": "medications/35296/drugs/401965", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/261962", - "code": "medications/35296/drugs/261962", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n10 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/401968", - "code": "medications/35296/drugs/401968", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/198188", - "code": "medications/35296/drugs/198188", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/251856", - "code": "medications/35296/drugs/251856", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/198189", - "code": "medications/35296/drugs/198189", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n5 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/251857", - "code": "medications/35296/drugs/251857", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/2679793", - "code": "medications/1656339/drugs/2679793", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656340", - "code": "medications/1656339/drugs/1656340", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656349", - "code": "medications/1656339/drugs/1656349", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/2679800", - "code": "medications/1656339/drugs/2679800", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656354", - "code": "medications/1656339/drugs/1656354", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/282755", - "code": "medications/73494/drugs/282755", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/205304", - "code": "medications/73494/drugs/205304", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/205305", - "code": "medications/73494/drugs/205305", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199353", - "code": "medications/38454/drugs/199353", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199351", - "code": "medications/38454/drugs/199351", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199352", - "code": "medications/38454/drugs/199352", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349201", - "code": "medications/69749/drugs/349201", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n160 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349200", - "code": "medications/69749/drugs/349200", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n320 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349483", - "code": "medications/69749/drugs/349483", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349199", - "code": "medications/69749/drugs/349199", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n80 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } } - ] + ], + "linkId": "medication.diuretics.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] } ], "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)", + "text": "Diuretics", "enableWhen": [ { - "question": "medication.rasi.exists", + "question": "medication.diuretics.exists", "operator": "=", "answerCoding": { "id": "yes", @@ -2340,7 +2057,7 @@ ] }, { - "linkId": "medication.mra.exists", + "linkId": "appointment.exists", "type": "group", "extension": [ { @@ -2359,55 +2076,23 @@ ], "item": [ { - "linkId": "medication.mra.exists-description", + "linkId": "appointment.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", + "text": "Next appointment", "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.mra.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "No" - } - } - ] + "linkId": "appointment.exists", + "text": "Do you already have a new appointment scheduled?", + "type": "boolean", + "required": true } ], "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)" + "text": "Next appointment" }, { - "linkId": "medication.mra.page1", + "linkId": "appointment.page1", "type": "group", "extension": [ { @@ -2426,103 +2111,62 @@ ], "item": [ { - "linkId": "medication.mra.description", + "linkId": "appointment.description", "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "text": "Upcoming appointment", "required": false }, { - "linkId": "medication.mra.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", + "linkId": "appointment.dateTime", + "text": "Date:", + "type": "dateTime", "required": true - }, + } + ], + "required": false, + "text": "Next appointment", + "enableWhen": [ { - "linkId": "medication.mra.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.mra.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/298869/drugs/351256", - "code": "medications/298869/drugs/351256", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/298869/drugs/351257", - "code": "medications/298869/drugs/351257", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/198222", - "code": "medications/9997/drugs/198222", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/313096", - "code": "medications/9997/drugs/313096", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/198223", - "code": "medications/9997/drugs/198223", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" - } - } - ] - } - ], - "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "enableWhen": [ - { - "question": "medication.mra.exists", + "question": "appointment.exists", "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } + "answerBoolean": true } ] - }, + } + ] + }, + "dataUpdate_en_US": { + "resourceType": "Questionnaire", + "id": "engagehf-data-update", + "title": "Update Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", + "meta": { + "profile": [ + "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" + ], + "tag": [ + { + "system": "urn:ietf:bcp:47", + "code": "en-US", + "display": "English" + } + ] + }, + "useContext": [], + "contact": [ { - "linkId": "medication.sglt2i.exists", + "name": "http://spezi.health" + } + ], + "subjectType": [ + "Patient" + ], + "url": "http://spezi.health/fhir/questionnaire/engagehf-data-update", + "item": [ + { + "linkId": "lab.2160-0.exists", "type": "group", "extension": [ { @@ -2541,55 +2185,23 @@ ], "item": [ { - "linkId": "medication.sglt2i.exists-description", + "linkId": "lab.2160-0.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.sglt2i.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "No" - } - } - ] + "linkId": "lab.2160-0.exists", + "text": "Have you recently received a new creatinine value?", + "type": "boolean", + "required": true } ], "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)" + "text": "Creatinine" }, { - "linkId": "medication.sglt2i.page1", + "linkId": "lab.2160-0.page1", "type": "group", "extension": [ { @@ -2608,151 +2220,36 @@ ], "item": [ { - "linkId": "medication.sglt2i.description", + "linkId": "lab.2160-0.description", "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", "required": false }, { - "linkId": "medication.sglt2i.frequency", - "text": "Intake frequency (per day):", + "linkId": "lab.2160-0.value", + "text": "Creatinine (mg/dL):", "type": "decimal", "required": true }, { - "linkId": "medication.sglt2i.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", + "linkId": "lab.2160-0.dateTime", + "text": "Date:", + "type": "dateTime", "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.sglt2i.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/2627044/drugs/2637859", - "code": "medications/2627044/drugs/2637859", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1373458/drugs/1373463", - "code": "medications/1373458/drugs/1373463", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1373458/drugs/1373471", - "code": "medications/1373458/drugs/1373471", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1488564/drugs/1488569", - "code": "medications/1488564/drugs/1488569", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1488564/drugs/1488574", - "code": "medications/1488564/drugs/1488574", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1545653/drugs/1545658", - "code": "medications/1545653/drugs/1545658", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1545653/drugs/1545666", - "code": "medications/1545653/drugs/1545666", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1992672/drugs/1992819", - "code": "medications/1992672/drugs/1992819", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1992672/drugs/1992810", - "code": "medications/1992672/drugs/1992810", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/2638675/drugs/2638683", - "code": "medications/2638675/drugs/2638683", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/2638675/drugs/2638691", - "code": "medications/2638675/drugs/2638691", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" - } - } - ] } ], "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)", + "text": "Creatinine", "enableWhen": [ { - "question": "medication.sglt2i.exists", + "question": "lab.2160-0.exists", "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } + "answerBoolean": true } ] }, { - "linkId": "medication.diuretics.exists", + "linkId": "lab.6298-4.exists", "type": "group", "extension": [ { @@ -2771,55 +2268,23 @@ ], "item": [ { - "linkId": "medication.diuretics.exists-description", + "linkId": "lab.6298-4.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.diuretics.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "No" - } - } - ] + "linkId": "lab.6298-4.exists", + "text": "Have you recently received a new potassium value?", + "type": "boolean", + "required": true } ], "required": false, - "text": "Diuretics" + "text": "Potassium" }, { - "linkId": "medication.diuretics.page1", + "linkId": "lab.6298-4.page1", "type": "group", "extension": [ { @@ -2838,175 +2303,36 @@ ], "item": [ { - "linkId": "medication.diuretics.description", + "linkId": "lab.6298-4.description", "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", "required": false }, { - "linkId": "medication.diuretics.frequency", - "text": "Intake frequency (per day):", + "linkId": "lab.6298-4.value", + "text": "Potassium (mEq/L):", "type": "decimal", "required": true }, { - "linkId": "medication.diuretics.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", + "linkId": "lab.6298-4.dateTime", + "text": "Date:", + "type": "dateTime", "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.diuretics.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/1808/drugs/197417", - "code": "medications/1808/drugs/197417", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1808/drugs/197418", - "code": "medications/1808/drugs/197418", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1808/drugs/197419", - "code": "medications/1808/drugs/197419", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4109/drugs/1251903", - "code": "medications/4109/drugs/1251903", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4109/drugs/1251907", - "code": "medications/4109/drugs/1251907", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/310429", - "code": "medications/4603/drugs/310429", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/313988", - "code": "medications/4603/drugs/313988", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/197732", - "code": "medications/4603/drugs/197732", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198369", - "code": "medications/38413/drugs/198369", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198370", - "code": "medications/38413/drugs/198370", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198371", - "code": "medications/38413/drugs/198371", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/2589881", - "code": "medications/38413/drugs/2589881", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198372", - "code": "medications/38413/drugs/198372", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/2589885", - "code": "medications/38413/drugs/2589885", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" - } - } - ] } ], "required": false, - "text": "Diuretics", + "text": "Potassium", "enableWhen": [ { - "question": "medication.diuretics.exists", + "question": "lab.6298-4.exists", "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } + "answerBoolean": true } ] }, { - "linkId": "appointment.exists", + "linkId": "lab.8340-2.exists", "type": "group", "extension": [ { @@ -3025,23 +2351,23 @@ ], "item": [ { - "linkId": "appointment.exists-description", + "linkId": "lab.8340-2.exists-description", "type": "display", - "text": "Next appointment", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", "required": false }, { - "linkId": "appointment.exists", - "text": "Do you already have a new appointment scheduled?", + "linkId": "lab.8340-2.exists", + "text": "Have you recently received a new dry weight value?", "type": "boolean", "required": true } ], "required": false, - "text": "Next appointment" + "text": "Dry Weight" }, { - "linkId": "appointment.page1", + "linkId": "lab.8340-2.page1", "type": "group", "extension": [ { @@ -3060,62 +2386,36 @@ ], "item": [ { - "linkId": "appointment.description", + "linkId": "lab.8340-2.description", "type": "display", - "text": "Upcoming appointment", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", "required": false }, { - "linkId": "appointment.dateTime", + "linkId": "lab.8340-2.value", + "text": "Dry Weight (lbs):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.8340-2.dateTime", "text": "Date:", "type": "dateTime", "required": true } ], "required": false, - "text": "Next appointment", + "text": "Dry Weight", "enableWhen": [ { - "question": "appointment.exists", + "question": "lab.8340-2.exists", "operator": "=", "answerBoolean": true } ] - } - ] - }, - "dataUpdate_en_US": { - "resourceType": "Questionnaire", - "id": "engagehf-data-update", - "title": "Update Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "meta": { - "profile": [ - "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" - ], - "tag": [ - { - "system": "urn:ietf:bcp:47", - "code": "en-US", - "display": "English" - } - ] - }, - "useContext": [], - "contact": [ - { - "name": "http://spezi.health" - } - ], - "subjectType": [ - "Patient" - ], - "url": "http://spezi.health/fhir/questionnaire/engagehf-data-update", - "item": [ + }, { - "linkId": "lab.2160-0.exists", + "linkId": "medication.betablockers.exists", "type": "group", "extension": [ { @@ -3134,23 +2434,63 @@ ], "item": [ { - "linkId": "lab.2160-0.exists-description", + "linkId": "medication.betablockers.exists-description", "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", "required": false }, { - "linkId": "lab.2160-0.exists", - "text": "Have you recently received a new creatinine value?", - "type": "boolean", - "required": true + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.betablockers.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] } ], "required": false, - "text": "Creatinine" + "text": "Beta Blockers" }, { - "linkId": "lab.2160-0.page1", + "linkId": "medication.betablockers.page1", "type": "group", "extension": [ { @@ -3169,36 +2509,62 @@ ], "item": [ { - "linkId": "lab.2160-0.description", + "linkId": "medication.betablockers.description", "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "lab.2160-0.value", - "text": "Creatinine (mg/dL):", + "linkId": "medication.betablockers.frequency", + "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "lab.2160-0.dateTime", - "text": "Date:", - "type": "dateTime", + "linkId": "medication.betablockers.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.betablockers.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] } ], "required": false, - "text": "Creatinine", + "text": "Beta Blockers", "enableWhen": [ { - "question": "lab.2160-0.exists", + "question": "medication.betablockers.exists", "operator": "=", - "answerBoolean": true + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { - "linkId": "lab.6298-4.exists", + "linkId": "medication.rasi.exists", "type": "group", "extension": [ { @@ -3217,23 +2583,63 @@ ], "item": [ { - "linkId": "lab.6298-4.exists-description", + "linkId": "medication.rasi.exists-description", "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", "required": false }, { - "linkId": "lab.6298-4.exists", - "text": "Have you recently received a new potassium value?", - "type": "boolean", - "required": true + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.rasi.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] } ], "required": false, - "text": "Potassium" + "text": "Renin-Angiotensin System Inhibitors (RASI)" }, { - "linkId": "lab.6298-4.page1", + "linkId": "medication.rasi.page1", "type": "group", "extension": [ { @@ -3252,36 +2658,62 @@ ], "item": [ { - "linkId": "lab.6298-4.description", + "linkId": "medication.rasi.description", "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "lab.6298-4.value", - "text": "Potassium (mEq/L):", + "linkId": "medication.rasi.frequency", + "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "lab.6298-4.dateTime", - "text": "Date:", - "type": "dateTime", + "linkId": "medication.rasi.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.rasi.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] } ], "required": false, - "text": "Potassium", + "text": "Renin-Angiotensin System Inhibitors (RASI)", "enableWhen": [ { - "question": "lab.6298-4.exists", + "question": "medication.rasi.exists", "operator": "=", - "answerBoolean": true + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { - "linkId": "lab.8340-2.exists", + "linkId": "medication.mra.exists", "type": "group", "extension": [ { @@ -3300,23 +2732,63 @@ ], "item": [ { - "linkId": "lab.8340-2.exists-description", + "linkId": "medication.mra.exists-description", "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", "required": false }, { - "linkId": "lab.8340-2.exists", - "text": "Have you recently received a new dry weight value?", - "type": "boolean", - "required": true + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.mra.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] } ], "required": false, - "text": "Dry Weight" + "text": "Mineralocorticoid Receptor Antagonists (MRA)" }, { - "linkId": "lab.8340-2.page1", + "linkId": "medication.mra.page1", "type": "group", "extension": [ { @@ -3335,36 +2807,62 @@ ], "item": [ { - "linkId": "lab.8340-2.description", + "linkId": "medication.mra.description", "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "lab.8340-2.value", - "text": "Dry Weight (lbs):", + "linkId": "medication.mra.frequency", + "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "lab.8340-2.dateTime", - "text": "Date:", - "type": "dateTime", + "linkId": "medication.mra.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.mra.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] } ], "required": false, - "text": "Dry Weight", + "text": "Mineralocorticoid Receptor Antagonists (MRA)", "enableWhen": [ { - "question": "lab.8340-2.exists", + "question": "medication.mra.exists", "operator": "=", - "answerBoolean": true + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } } ] }, { - "linkId": "medication.betablockers.exists", + "linkId": "medication.sglt2i.exists", "type": "group", "extension": [ { @@ -3383,9 +2881,9 @@ ], "item": [ { - "linkId": "medication.betablockers.exists-description", + "linkId": "medication.sglt2i.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", + "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", "required": false }, { @@ -3403,7 +2901,7 @@ } } ], - "linkId": "medication.betablockers.exists", + "linkId": "medication.sglt2i.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, @@ -3436,10 +2934,10 @@ } ], "required": false, - "text": "Beta Blockers" + "text": "SGLT2 Inhibitors (SGLT2i)" }, { - "linkId": "medication.betablockers.page1", + "linkId": "medication.sglt2i.page1", "type": "group", "extension": [ { @@ -3458,19 +2956,19 @@ ], "item": [ { - "linkId": "medication.betablockers.description", + "linkId": "medication.sglt2i.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "medication.betablockers.frequency", + "linkId": "medication.sglt2i.frequency", "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "medication.betablockers.quantity", + "linkId": "medication.sglt2i.quantity", "text": "Pills/tablets per intake:", "type": "decimal", "required": true @@ -3490,163 +2988,18 @@ } } ], - "linkId": "medication.betablockers.drug", + "linkId": "medication.sglt2i.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/19484/drugs/854901", - "code": "medications/19484/drugs/854901", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/19484/drugs/854905", - "code": "medications/19484/drugs/854905", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200032", - "code": "medications/20352/drugs/200032", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200033", - "code": "medications/20352/drugs/200033", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/686924", - "code": "medications/20352/drugs/686924", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200031", - "code": "medications/20352/drugs/200031", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860510", - "code": "medications/668310/drugs/860510", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860516", - "code": "medications/668310/drugs/860516", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860522", - "code": "medications/668310/drugs/860522", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860532", - "code": "medications/668310/drugs/860532", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999031", - "code": "medications/221124/drugs/1999031", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866412", - "code": "medications/221124/drugs/866412", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999033", - "code": "medications/221124/drugs/1999033", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866419", - "code": "medications/221124/drugs/866419", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999035", - "code": "medications/221124/drugs/1999035", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866427", - "code": "medications/221124/drugs/866427", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999037", - "code": "medications/221124/drugs/1999037", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866436", - "code": "medications/221124/drugs/866436", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" - } - } - ] + "answerOption": [] } ], "required": false, - "text": "Beta Blockers", + "text": "SGLT2 Inhibitors (SGLT2i)", "enableWhen": [ { - "question": "medication.betablockers.exists", + "question": "medication.sglt2i.exists", "operator": "=", "answerCoding": { "id": "yes-changed", @@ -3658,7 +3011,7 @@ ] }, { - "linkId": "medication.rasi.exists", + "linkId": "medication.diuretics.exists", "type": "group", "extension": [ { @@ -3677,9 +3030,9 @@ ], "item": [ { - "linkId": "medication.rasi.exists-description", + "linkId": "medication.diuretics.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", + "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", "required": false }, { @@ -3697,7 +3050,7 @@ } } ], - "linkId": "medication.rasi.exists", + "linkId": "medication.diuretics.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, @@ -3730,10 +3083,10 @@ } ], "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)" + "text": "Diuretics" }, { - "linkId": "medication.rasi.page1", + "linkId": "medication.diuretics.page1", "type": "group", "extension": [ { @@ -3752,19 +3105,19 @@ ], "item": [ { - "linkId": "medication.rasi.description", + "linkId": "medication.diuretics.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "medication.rasi.frequency", + "linkId": "medication.diuretics.frequency", "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "medication.rasi.quantity", + "linkId": "medication.diuretics.quantity", "text": "Pills/tablets per intake:", "type": "decimal", "required": true @@ -3784,2624 +3137,667 @@ } } ], - "linkId": "medication.rasi.drug", + "linkId": "medication.diuretics.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/1091642/drugs/1091646", - "code": "medications/1091642/drugs/1091646", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" + "answerOption": [] + } + ], + "required": false, + "text": "Diuretics", + "enableWhen": [ + { + "question": "medication.diuretics.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "appointment.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/1091642/drugs/1091652", - "code": "medications/1091642/drugs/1091652", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "appointment.exists-description", + "type": "display", + "text": "Next appointment", + "required": false + }, + { + "linkId": "appointment.exists", + "text": "Do you already have a new appointment scheduled?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Next appointment" + }, + { + "linkId": "appointment.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898687", - "code": "medications/18867/drugs/898687", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "appointment.description", + "type": "display", + "text": "Upcoming appointment", + "required": false + }, + { + "linkId": "appointment.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Next appointment", + "enableWhen": [ + { + "question": "appointment.exists", + "operator": "=", + "answerBoolean": true + } + ] + } + ] + }, + "postAppointment_en_US": { + "resourceType": "Questionnaire", + "id": "engagehf-post-appointment", + "title": "Post-Appointment Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", + "meta": { + "profile": [ + "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" + ], + "tag": [ + { + "system": "urn:ietf:bcp:47", + "code": "en-US", + "display": "English" + } + ] + }, + "useContext": [], + "contact": [ + { + "name": "http://spezi.health" + } + ], + "subjectType": [ + "Patient" + ], + "url": "http://spezi.health/fhir/questionnaire/engagehf-post-appointment", + "item": [ + { + "linkId": "lab.2160-0.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898690", - "code": "medications/18867/drugs/898690", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898719", - "code": "medications/18867/drugs/898719", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898723", - "code": "medications/18867/drugs/898723", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/577776", - "code": "medications/214354/drugs/577776", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n16 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/639537", - "code": "medications/214354/drugs/639537", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n32 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/153822", - "code": "medications/214354/drugs/153822", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/153823", - "code": "medications/214354/drugs/153823", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n8 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308962", - "code": "medications/1998/drugs/308962", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308963", - "code": "medications/1998/drugs/308963", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/317173", - "code": "medications/1998/drugs/317173", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308964", - "code": "medications/1998/drugs/308964", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858817", - "code": "medications/3827/drugs/858817", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858804", - "code": "medications/3827/drugs/858804", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858810", - "code": "medications/3827/drugs/858810", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858813", - "code": "medications/3827/drugs/858813", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83515/drugs/310139", - "code": "medications/83515/drugs/310139", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83515/drugs/310140", - "code": "medications/83515/drugs/310140", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/227278/drugs/857169", - "code": "medications/227278/drugs/857169", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/227278/drugs/857183", - "code": "medications/227278/drugs/857183", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/227278/drugs/857187", - "code": "medications/227278/drugs/857187", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200095", - "code": "medications/83818/drugs/200095", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200096", - "code": "medications/83818/drugs/200096", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200094", - "code": "medications/83818/drugs/200094", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/314076", - "code": "medications/29046/drugs/314076", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/311353", - "code": "medications/29046/drugs/311353", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/314077", - "code": "medications/29046/drugs/314077", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/205326", - "code": "medications/29046/drugs/205326", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/197884", - "code": "medications/29046/drugs/197884", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/311354", - "code": "medications/29046/drugs/311354", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979480", - "code": "medications/203160/drugs/979480", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979485", - "code": "medications/203160/drugs/979485", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979492", - "code": "medications/203160/drugs/979492", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/30131/drugs/1299896", - "code": "medications/30131/drugs/1299896", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Moexipril (Univasc)\n15 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/30131/drugs/1299897", - "code": "medications/30131/drugs/1299897", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349401", - "code": "medications/118463/drugs/349401", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349405", - "code": "medications/118463/drugs/349405", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349373", - "code": "medications/118463/drugs/349373", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854984", - "code": "medications/54552/drugs/854984", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854988", - "code": "medications/54552/drugs/854988", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854925", - "code": "medications/54552/drugs/854925", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n8 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312748", - "code": "medications/35208/drugs/312748", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312749", - "code": "medications/35208/drugs/312749", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/314203", - "code": "medications/35208/drugs/314203", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312750", - "code": "medications/35208/drugs/312750", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/845488", - "code": "medications/35296/drugs/845488", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/401965", - "code": "medications/35296/drugs/401965", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/261962", - "code": "medications/35296/drugs/261962", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n10 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/401968", - "code": "medications/35296/drugs/401968", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/198188", - "code": "medications/35296/drugs/198188", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/251856", - "code": "medications/35296/drugs/251856", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/198189", - "code": "medications/35296/drugs/198189", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n5 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/251857", - "code": "medications/35296/drugs/251857", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/2679793", - "code": "medications/1656339/drugs/2679793", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656340", - "code": "medications/1656339/drugs/1656340", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656349", - "code": "medications/1656339/drugs/1656349", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/2679800", - "code": "medications/1656339/drugs/2679800", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" - } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656354", - "code": "medications/1656339/drugs/1656354", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/282755", - "code": "medications/73494/drugs/282755", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/205304", - "code": "medications/73494/drugs/205304", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/205305", - "code": "medications/73494/drugs/205305", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199353", - "code": "medications/38454/drugs/199353", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199351", - "code": "medications/38454/drugs/199351", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199352", - "code": "medications/38454/drugs/199352", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349201", - "code": "medications/69749/drugs/349201", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n160 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349200", - "code": "medications/69749/drugs/349200", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n320 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349483", - "code": "medications/69749/drugs/349483", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349199", - "code": "medications/69749/drugs/349199", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n80 mg Oral Tablet" - } - } - ] - } - ], - "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "enableWhen": [ - { - "question": "medication.rasi.exists", - "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - } - ] - }, - { - "linkId": "medication.mra.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.mra.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", - "required": false - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.mra.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] - } - ], - "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)" - }, - { - "linkId": "medication.mra.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.mra.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.mra.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.mra.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.mra.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/298869/drugs/351256", - "code": "medications/298869/drugs/351256", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/298869/drugs/351257", - "code": "medications/298869/drugs/351257", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/198222", - "code": "medications/9997/drugs/198222", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/313096", - "code": "medications/9997/drugs/313096", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/198223", - "code": "medications/9997/drugs/198223", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" - } - } - ] - } - ], - "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "enableWhen": [ - { - "question": "medication.mra.exists", - "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - } - ] - }, - { - "linkId": "medication.sglt2i.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.sglt2i.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", - "required": false - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.sglt2i.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] - } - ], - "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)" - }, - { - "linkId": "medication.sglt2i.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.sglt2i.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.sglt2i.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.sglt2i.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.sglt2i.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/2627044/drugs/2637859", - "code": "medications/2627044/drugs/2637859", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1373458/drugs/1373463", - "code": "medications/1373458/drugs/1373463", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1373458/drugs/1373471", - "code": "medications/1373458/drugs/1373471", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1488564/drugs/1488569", - "code": "medications/1488564/drugs/1488569", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1488564/drugs/1488574", - "code": "medications/1488564/drugs/1488574", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1545653/drugs/1545658", - "code": "medications/1545653/drugs/1545658", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1545653/drugs/1545666", - "code": "medications/1545653/drugs/1545666", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1992672/drugs/1992819", - "code": "medications/1992672/drugs/1992819", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1992672/drugs/1992810", - "code": "medications/1992672/drugs/1992810", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/2638675/drugs/2638683", - "code": "medications/2638675/drugs/2638683", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/2638675/drugs/2638691", - "code": "medications/2638675/drugs/2638691", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" - } - } - ] - } - ], - "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)", - "enableWhen": [ - { - "question": "medication.sglt2i.exists", - "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - } - ] - }, - { - "linkId": "medication.diuretics.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.diuretics.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", - "required": false - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.diuretics.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] - } - ], - "required": false, - "text": "Diuretics" - }, - { - "linkId": "medication.diuretics.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.diuretics.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.diuretics.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.diuretics.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.diuretics.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/1808/drugs/197417", - "code": "medications/1808/drugs/197417", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1808/drugs/197418", - "code": "medications/1808/drugs/197418", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1808/drugs/197419", - "code": "medications/1808/drugs/197419", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4109/drugs/1251903", - "code": "medications/4109/drugs/1251903", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4109/drugs/1251907", - "code": "medications/4109/drugs/1251907", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/310429", - "code": "medications/4603/drugs/310429", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/313988", - "code": "medications/4603/drugs/313988", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/197732", - "code": "medications/4603/drugs/197732", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198369", - "code": "medications/38413/drugs/198369", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198370", - "code": "medications/38413/drugs/198370", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198371", - "code": "medications/38413/drugs/198371", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/2589881", - "code": "medications/38413/drugs/2589881", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198372", - "code": "medications/38413/drugs/198372", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/2589885", - "code": "medications/38413/drugs/2589885", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" - } - } - ] - } - ], - "required": false, - "text": "Diuretics", - "enableWhen": [ - { - "question": "medication.diuretics.exists", - "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - } - ] - }, - { - "linkId": "appointment.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "appointment.exists-description", - "type": "display", - "text": "Next appointment", - "required": false - }, - { - "linkId": "appointment.exists", - "text": "Do you already have a new appointment scheduled?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Next appointment" - }, - { - "linkId": "appointment.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "appointment.description", - "type": "display", - "text": "Upcoming appointment", - "required": false - }, - { - "linkId": "appointment.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Next appointment", - "enableWhen": [ - { - "question": "appointment.exists", - "operator": "=", - "answerBoolean": true - } - ] - } - ] - }, - "postAppointment_en_US": { - "resourceType": "Questionnaire", - "id": "engagehf-post-appointment", - "title": "Post-Appointment Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "meta": { - "profile": [ - "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" - ], - "tag": [ - { - "system": "urn:ietf:bcp:47", - "code": "en-US", - "display": "English" - } - ] - }, - "useContext": [], - "contact": [ - { - "name": "http://spezi.health" - } - ], - "subjectType": [ - "Patient" - ], - "url": "http://spezi.health/fhir/questionnaire/engagehf-post-appointment", - "item": [ - { - "linkId": "lab.2160-0.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.2160-0.exists-description", - "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.2160-0.exists", - "text": "Have you recently received a new creatinine value?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Creatinine" - }, - { - "linkId": "lab.2160-0.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.2160-0.description", - "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.2160-0.value", - "text": "Creatinine (mg/dL):", - "type": "decimal", - "required": true - }, - { - "linkId": "lab.2160-0.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Creatinine", - "enableWhen": [ - { - "question": "lab.2160-0.exists", - "operator": "=", - "answerBoolean": true - } - ] - }, - { - "linkId": "lab.6298-4.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.6298-4.exists-description", - "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.6298-4.exists", - "text": "Have you recently received a new potassium value?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Potassium" - }, - { - "linkId": "lab.6298-4.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.6298-4.description", - "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.6298-4.value", - "text": "Potassium (mEq/L):", - "type": "decimal", - "required": true - }, - { - "linkId": "lab.6298-4.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Potassium", - "enableWhen": [ - { - "question": "lab.6298-4.exists", - "operator": "=", - "answerBoolean": true - } - ] - }, - { - "linkId": "lab.8340-2.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.8340-2.exists-description", - "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false - }, - { - "linkId": "lab.8340-2.exists", - "text": "Have you recently received a new dry weight value?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Dry Weight" - }, - { - "linkId": "lab.8340-2.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.8340-2.description", - "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false - }, - { - "linkId": "lab.8340-2.value", - "text": "Dry Weight (lbs):", - "type": "decimal", - "required": true - }, - { - "linkId": "lab.8340-2.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Dry Weight", - "enableWhen": [ - { - "question": "lab.8340-2.exists", - "operator": "=", - "answerBoolean": true - } - ] - }, - { - "linkId": "medication.betablockers.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.betablockers.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", - "required": false - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.betablockers.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] - } - ], - "required": false, - "text": "Beta Blockers" - }, - { - "linkId": "medication.betablockers.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.betablockers.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.betablockers.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.betablockers.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.betablockers.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/19484/drugs/854901", - "code": "medications/19484/drugs/854901", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/19484/drugs/854905", - "code": "medications/19484/drugs/854905", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200032", - "code": "medications/20352/drugs/200032", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200033", - "code": "medications/20352/drugs/200033", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/686924", - "code": "medications/20352/drugs/686924", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/20352/drugs/200031", - "code": "medications/20352/drugs/200031", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860510", - "code": "medications/668310/drugs/860510", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860516", - "code": "medications/668310/drugs/860516", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860522", - "code": "medications/668310/drugs/860522", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/668310/drugs/860532", - "code": "medications/668310/drugs/860532", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999031", - "code": "medications/221124/drugs/1999031", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866412", - "code": "medications/221124/drugs/866412", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999033", - "code": "medications/221124/drugs/1999033", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866419", - "code": "medications/221124/drugs/866419", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999035", - "code": "medications/221124/drugs/1999035", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866427", - "code": "medications/221124/drugs/866427", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/1999037", - "code": "medications/221124/drugs/1999037", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/221124/drugs/866436", - "code": "medications/221124/drugs/866436", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" - } - } - ] - } - ], - "required": false, - "text": "Beta Blockers", - "enableWhen": [ - { - "question": "medication.betablockers.exists", - "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - } - ] - }, - { - "linkId": "medication.rasi.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.rasi.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", - "required": false - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.rasi.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] - } - ], - "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)" - }, - { - "linkId": "medication.rasi.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.rasi.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.rasi.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.rasi.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.rasi.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/1091642/drugs/1091646", - "code": "medications/1091642/drugs/1091646", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1091642/drugs/1091652", - "code": "medications/1091642/drugs/1091652", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898687", - "code": "medications/18867/drugs/898687", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898690", - "code": "medications/18867/drugs/898690", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898719", - "code": "medications/18867/drugs/898719", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/18867/drugs/898723", - "code": "medications/18867/drugs/898723", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/577776", - "code": "medications/214354/drugs/577776", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n16 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/639537", - "code": "medications/214354/drugs/639537", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n32 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/153822", - "code": "medications/214354/drugs/153822", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/214354/drugs/153823", - "code": "medications/214354/drugs/153823", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Candesartan (Atacand)\n8 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308962", - "code": "medications/1998/drugs/308962", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308963", - "code": "medications/1998/drugs/308963", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/317173", - "code": "medications/1998/drugs/317173", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1998/drugs/308964", - "code": "medications/1998/drugs/308964", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Captopril (Capoten)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858817", - "code": "medications/3827/drugs/858817", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858804", - "code": "medications/3827/drugs/858804", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858810", - "code": "medications/3827/drugs/858810", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/3827/drugs/858813", - "code": "medications/3827/drugs/858813", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83515/drugs/310139", - "code": "medications/83515/drugs/310139", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83515/drugs/310140", - "code": "medications/83515/drugs/310140", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/227278/drugs/857169", - "code": "medications/227278/drugs/857169", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/227278/drugs/857183", - "code": "medications/227278/drugs/857183", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/227278/drugs/857187", - "code": "medications/227278/drugs/857187", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200095", - "code": "medications/83818/drugs/200095", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200096", - "code": "medications/83818/drugs/200096", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/83818/drugs/200094", - "code": "medications/83818/drugs/200094", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/314076", - "code": "medications/29046/drugs/314076", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/311353", - "code": "medications/29046/drugs/311353", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/314077", - "code": "medications/29046/drugs/314077", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/205326", - "code": "medications/29046/drugs/205326", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/197884", - "code": "medications/29046/drugs/197884", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/29046/drugs/311354", - "code": "medications/29046/drugs/311354", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979480", - "code": "medications/203160/drugs/979480", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979485", - "code": "medications/203160/drugs/979485", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/203160/drugs/979492", - "code": "medications/203160/drugs/979492", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/30131/drugs/1299896", - "code": "medications/30131/drugs/1299896", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Moexipril (Univasc)\n15 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/30131/drugs/1299897", - "code": "medications/30131/drugs/1299897", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349401", - "code": "medications/118463/drugs/349401", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349405", - "code": "medications/118463/drugs/349405", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/118463/drugs/349373", - "code": "medications/118463/drugs/349373", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854984", - "code": "medications/54552/drugs/854984", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854988", - "code": "medications/54552/drugs/854988", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n4 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/54552/drugs/854925", - "code": "medications/54552/drugs/854925", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Perindopril (Aceon)\n8 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312748", - "code": "medications/35208/drugs/312748", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312749", - "code": "medications/35208/drugs/312749", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/314203", - "code": "medications/35208/drugs/314203", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35208/drugs/312750", - "code": "medications/35208/drugs/312750", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Quinapril (Accupril)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/845488", - "code": "medications/35296/drugs/845488", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/401965", - "code": "medications/35296/drugs/401965", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/261962", - "code": "medications/35296/drugs/261962", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n10 mg Oral Capsule" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/401968", - "code": "medications/35296/drugs/401968", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/198188", - "code": "medications/35296/drugs/198188", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.2160-0.exists-description", + "type": "display", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.2160-0.exists", + "text": "Have you recently received a new creatinine value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Creatinine" + }, + { + "linkId": "lab.2160-0.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/251856", - "code": "medications/35296/drugs/251856", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.2160-0.description", + "type": "display", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.2160-0.value", + "text": "Creatinine (mg/dL):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.2160-0.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Creatinine", + "enableWhen": [ + { + "question": "lab.2160-0.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "lab.6298-4.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/198189", - "code": "medications/35296/drugs/198189", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n5 mg Oral Capsule" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.6298-4.exists-description", + "type": "display", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.6298-4.exists", + "text": "Have you recently received a new potassium value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Potassium" + }, + { + "linkId": "lab.6298-4.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/35296/drugs/251857", - "code": "medications/35296/drugs/251857", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ramipril (Altace)\n5 mg Oral Tablet" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.6298-4.description", + "type": "display", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.6298-4.value", + "text": "Potassium (mEq/L):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.6298-4.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Potassium", + "enableWhen": [ + { + "question": "lab.6298-4.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "lab.8340-2.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/2679793", - "code": "medications/1656339/drugs/2679793", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.8340-2.exists-description", + "type": "display", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "required": false + }, + { + "linkId": "lab.8340-2.exists", + "text": "Have you recently received a new dry weight value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Dry Weight" + }, + { + "linkId": "lab.8340-2.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, - { - "valueCoding": { - "id": "medications/1656339/drugs/1656340", - "code": "medications/1656339/drugs/1656340", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.8340-2.description", + "type": "display", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "required": false + }, + { + "linkId": "lab.8340-2.value", + "text": "Dry Weight (lbs):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.8340-2.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Dry Weight", + "enableWhen": [ + { + "question": "lab.8340-2.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "medication.betablockers.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.betablockers.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", + "required": false + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/1656339/drugs/1656349", - "code": "medications/1656339/drugs/1656349", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, + } + ], + "linkId": "medication.betablockers.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ { "valueCoding": { - "id": "medications/1656339/drugs/2679800", - "code": "medications/1656339/drugs/2679800", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { - "id": "medications/1656339/drugs/1656354", - "code": "medications/1656339/drugs/1656354", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { - "id": "medications/73494/drugs/282755", - "code": "medications/73494/drugs/282755", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } - }, - { - "valueCoding": { - "id": "medications/73494/drugs/205304", - "code": "medications/73494/drugs/205304", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" + } + ] + } + ], + "required": false, + "text": "Beta Blockers" + }, + { + "linkId": "medication.betablockers.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.betablockers.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.betablockers.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.betablockers.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/73494/drugs/205305", - "code": "medications/73494/drugs/205305", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, - { - "valueCoding": { - "id": "medications/38454/drugs/199353", - "code": "medications/38454/drugs/199353", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" + } + ], + "linkId": "medication.betablockers.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] + } + ], + "required": false, + "text": "Beta Blockers", + "enableWhen": [ + { + "question": "medication.betablockers.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "medication.rasi.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.rasi.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", + "required": false + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/38454/drugs/199351", - "code": "medications/38454/drugs/199351", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - }, + } + ], + "linkId": "medication.rasi.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ { "valueCoding": { - "id": "medications/38454/drugs/199352", - "code": "medications/38454/drugs/199352", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } }, { "valueCoding": { - "id": "medications/69749/drugs/349201", - "code": "medications/69749/drugs/349201", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n160 mg Oral Tablet" + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } }, { "valueCoding": { - "id": "medications/69749/drugs/349200", - "code": "medications/69749/drugs/349200", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n320 mg Oral Tablet" + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" } - }, - { - "valueCoding": { - "id": "medications/69749/drugs/349483", - "code": "medications/69749/drugs/349483", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n40 mg Oral Tablet" + } + ] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)" + }, + { + "linkId": "medication.rasi.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - }, + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.rasi.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.rasi.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.rasi.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ { - "valueCoding": { - "id": "medications/69749/drugs/349199", - "code": "medications/69749/drugs/349199", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Valsartan (Diovan)\n80 mg Oral Tablet" + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } } - ] + ], + "linkId": "medication.rasi.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [] } ], "required": false, @@ -6550,48 +3946,7 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/298869/drugs/351256", - "code": "medications/298869/drugs/351256", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/298869/drugs/351257", - "code": "medications/298869/drugs/351257", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/198222", - "code": "medications/9997/drugs/198222", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/313096", - "code": "medications/9997/drugs/313096", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/9997/drugs/198223", - "code": "medications/9997/drugs/198223", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" - } - } - ] + "answerOption": [] } ], "required": false, @@ -6740,96 +4095,7 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/2627044/drugs/2637859", - "code": "medications/2627044/drugs/2637859", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1373458/drugs/1373463", - "code": "medications/1373458/drugs/1373463", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1373458/drugs/1373471", - "code": "medications/1373458/drugs/1373471", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1488564/drugs/1488569", - "code": "medications/1488564/drugs/1488569", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1488564/drugs/1488574", - "code": "medications/1488564/drugs/1488574", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1545653/drugs/1545658", - "code": "medications/1545653/drugs/1545658", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1545653/drugs/1545666", - "code": "medications/1545653/drugs/1545666", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1992672/drugs/1992819", - "code": "medications/1992672/drugs/1992819", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1992672/drugs/1992810", - "code": "medications/1992672/drugs/1992810", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/2638675/drugs/2638683", - "code": "medications/2638675/drugs/2638683", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/2638675/drugs/2638691", - "code": "medications/2638675/drugs/2638691", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" - } - } - ] + "answerOption": [] } ], "required": false, @@ -6978,120 +4244,7 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "medications/1808/drugs/197417", - "code": "medications/1808/drugs/197417", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1808/drugs/197418", - "code": "medications/1808/drugs/197418", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/1808/drugs/197419", - "code": "medications/1808/drugs/197419", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4109/drugs/1251903", - "code": "medications/4109/drugs/1251903", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4109/drugs/1251907", - "code": "medications/4109/drugs/1251907", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/310429", - "code": "medications/4603/drugs/310429", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/313988", - "code": "medications/4603/drugs/313988", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/4603/drugs/197732", - "code": "medications/4603/drugs/197732", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Furosemide (Lasix)\n80 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198369", - "code": "medications/38413/drugs/198369", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198370", - "code": "medications/38413/drugs/198370", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198371", - "code": "medications/38413/drugs/198371", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/2589881", - "code": "medications/38413/drugs/2589881", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/198372", - "code": "medications/38413/drugs/198372", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" - } - }, - { - "valueCoding": { - "id": "medications/38413/drugs/2589885", - "code": "medications/38413/drugs/2589885", - "system": "http://www.nlm.nih.gov/research/umls/rxnorm", - "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" - } - } - ] + "answerOption": [] } ], "required": false, diff --git a/functions/src/services/seeding/staticData/staticDataService.ts b/functions/src/services/seeding/staticData/staticDataService.ts index 18832a4f..8f95bb02 100644 --- a/functions/src/services/seeding/staticData/staticDataService.ts +++ b/functions/src/services/seeding/staticData/staticDataService.ts @@ -257,8 +257,24 @@ export class StaticDataService extends SeedingService { ) }, (result) => { - this.writeJSON('medications.json', result.medications) - this.writeJSON('drugs.json', result.drugs) + this.writeJSON( + 'medications.json', + Object.fromEntries( + Object.entries(result.medications).map(([key, value]) => [ + key, + value.data, + ]), + ), + ) + this.writeJSON( + 'drugs.json', + Object.fromEntries( + Object.entries(result.drugs).map(([key, value]) => [ + key, + value.data, + ]), + ), + ) }, ) } From 8d48dee21db19dd0119b04ceaa6b9fb089fb0f7e Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 20:42:26 +0200 Subject: [PATCH 11/18] update --- functions/data/drugs.json | 5729 +++++++++++++++- functions/data/questionnaires.json | 5759 ++++++++++++----- .../seeding/staticData/staticDataService.ts | 7 +- 3 files changed, 10037 insertions(+), 1458 deletions(-) diff --git a/functions/data/drugs.json b/functions/data/drugs.json index 9e26dfee..238bc58d 100644 --- a/functions/data/drugs.json +++ b/functions/data/drugs.json @@ -1 +1,5728 @@ -{} \ No newline at end of file +{ + "1808": { + "197417": { + "resourceType": "Medication", + "id": "197417", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197417", + "display": "Bumetanide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 0.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "197418": { + "resourceType": "Medication", + "id": "197418", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197418", + "display": "Bumetanide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "197419": { + "resourceType": "Medication", + "id": "197419", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197419", + "display": "Bumetanide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1808", + "display": "Bumetanide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1998": { + "308962": { + "resourceType": "Medication", + "id": "308962", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "308962", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "308963": { + "resourceType": "Medication", + "id": "308963", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "308963", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "308964": { + "resourceType": "Medication", + "id": "308964", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "308964", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "317173": { + "resourceType": "Medication", + "id": "317173", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "317173", + "display": "Captopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1998", + "display": "Captopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "3827": { + "858804": { + "resourceType": "Medication", + "id": "858804", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858804", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "858810": { + "resourceType": "Medication", + "id": "858810", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858810", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "858813": { + "resourceType": "Medication", + "id": "858813", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858813", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "858817": { + "resourceType": "Medication", + "id": "858817", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "858817", + "display": "Enalapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "3827", + "display": "Enalapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "4109": { + "1251903": { + "resourceType": "Medication", + "id": "1251903", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1251903", + "display": "Ethacrynate (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4109", + "display": "Ethacrynic Acid" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1251907": { + "resourceType": "Medication", + "id": "1251907", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1251907", + "display": "Ethacrynate (Oral Tablet)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4109", + "display": "Ethacrynic Acid" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "4603": { + "197732": { + "resourceType": "Medication", + "id": "197732", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197732", + "display": "Furosemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "310429": { + "resourceType": "Medication", + "id": "310429", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "310429", + "display": "Furosemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "313988": { + "resourceType": "Medication", + "id": "313988", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "313988", + "display": "Furosemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "4603", + "display": "Furosemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "9997": { + "198222": { + "resourceType": "Medication", + "id": "198222", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198222", + "display": "Spironolactone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "198223": { + "resourceType": "Medication", + "id": "198223", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198223", + "display": "Spironolactone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "313096": { + "resourceType": "Medication", + "id": "313096", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "313096", + "display": "Spironolactone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "9997", + "display": "Spironolactone" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "18867": { + "898687": { + "resourceType": "Medication", + "id": "898687", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898687", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "898690": { + "resourceType": "Medication", + "id": "898690", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898690", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "898719": { + "resourceType": "Medication", + "id": "898719", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898719", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "898723": { + "resourceType": "Medication", + "id": "898723", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "898723", + "display": "Benazepril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "18867", + "display": "Benazepril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "19484": { + "854901": { + "resourceType": "Medication", + "id": "854901", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854901", + "display": "Bisoprolol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "19484", + "display": "Bisoprolol" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "854905": { + "resourceType": "Medication", + "id": "854905", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854905", + "display": "Bisoprolol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "19484", + "display": "Bisoprolol" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "20352": { + "200031": { + "resourceType": "Medication", + "id": "200031", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200031", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6.25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "200032": { + "resourceType": "Medication", + "id": "200032", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200032", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 12.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "200033": { + "resourceType": "Medication", + "id": "200033", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200033", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "686924": { + "resourceType": "Medication", + "id": "686924", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "686924", + "display": "Carvedilol (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "20352", + "display": "Carvedilol" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 3.125, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "29046": { + "197884": { + "resourceType": "Medication", + "id": "197884", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "197884", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "205326": { + "resourceType": "Medication", + "id": "205326", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "205326", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 30, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "311353": { + "resourceType": "Medication", + "id": "311353", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "311353", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "311354": { + "resourceType": "Medication", + "id": "311354", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "311354", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "314076": { + "resourceType": "Medication", + "id": "314076", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "314076", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "314077": { + "resourceType": "Medication", + "id": "314077", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "314077", + "display": "Lisinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "29046", + "display": "Lisinopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "30131": { + "1299896": { + "resourceType": "Medication", + "id": "1299896", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1299896", + "display": "Moexipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "30131", + "display": "Moexipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1299897": { + "resourceType": "Medication", + "id": "1299897", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1299897", + "display": "Moexipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "30131", + "display": "Moexipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 7.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "35208": { + "312748": { + "resourceType": "Medication", + "id": "312748", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "312748", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "312749": { + "resourceType": "Medication", + "id": "312749", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "312749", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "312750": { + "resourceType": "Medication", + "id": "312750", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "312750", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "314203": { + "resourceType": "Medication", + "id": "314203", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "314203", + "display": "Quinapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35208", + "display": "Quinapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "35296": { + "198188": { + "resourceType": "Medication", + "id": "198188", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198188", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "198189": { + "resourceType": "Medication", + "id": "198189", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198189", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "251856": { + "resourceType": "Medication", + "id": "251856", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "251856", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2.5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "251857": { + "resourceType": "Medication", + "id": "251857", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "251857", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "261962": { + "resourceType": "Medication", + "id": "261962", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "261962", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "401965": { + "resourceType": "Medication", + "id": "401965", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "401965", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "401968": { + "resourceType": "Medication", + "id": "401968", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "401968", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "845488": { + "resourceType": "Medication", + "id": "845488", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "845488", + "display": "Ramipril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Capsule", + "display": "Oral Capsule" + } + ], + "text": "Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "35296", + "display": "Ramipril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1.25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "38413": { + "198369": { + "resourceType": "Medication", + "id": "198369", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198369", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "198370": { + "resourceType": "Medication", + "id": "198370", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198370", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "198371": { + "resourceType": "Medication", + "id": "198371", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198371", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "198372": { + "resourceType": "Medication", + "id": "198372", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "198372", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "2589881": { + "resourceType": "Medication", + "id": "2589881", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2589881", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "2589885": { + "resourceType": "Medication", + "id": "2589885", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2589885", + "display": "Torsemide (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38413", + "display": "Torsemide" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 60, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "38454": { + "199351": { + "resourceType": "Medication", + "id": "199351", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "199351", + "display": "Trandolapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "199352": { + "resourceType": "Medication", + "id": "199352", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "199352", + "display": "Trandolapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "199353": { + "resourceType": "Medication", + "id": "199353", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "199353", + "display": "Trandolapril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "38454", + "display": "Trandolapril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 1, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "54552": { + "854925": { + "resourceType": "Medication", + "id": "854925", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854925", + "display": "Perindopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 8, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "854984": { + "resourceType": "Medication", + "id": "854984", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854984", + "display": "Perindopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 2, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "854988": { + "resourceType": "Medication", + "id": "854988", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "854988", + "display": "Perindopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "54552", + "display": "Perindopril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "69749": { + "349199": { + "resourceType": "Medication", + "id": "349199", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349199", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "349200": { + "resourceType": "Medication", + "id": "349200", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349200", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 320, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "349201": { + "resourceType": "Medication", + "id": "349201", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349201", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 160, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "349483": { + "resourceType": "Medication", + "id": "349483", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349483", + "display": "Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "73494": { + "205304": { + "resourceType": "Medication", + "id": "205304", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "205304", + "display": "Telmisartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "205305": { + "resourceType": "Medication", + "id": "205305", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "205305", + "display": "Telmisartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "282755": { + "resourceType": "Medication", + "id": "282755", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "282755", + "display": "Telmisartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "73494", + "display": "Telmisartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "83515": { + "310139": { + "resourceType": "Medication", + "id": "310139", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "310139", + "display": "Eprosartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83515", + "display": "Eprosartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "310140": { + "resourceType": "Medication", + "id": "310140", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "310140", + "display": "Eprosartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83515", + "display": "Eprosartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 600, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "83818": { + "200094": { + "resourceType": "Medication", + "id": "200094", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200094", + "display": "Irbesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 75, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "200095": { + "resourceType": "Medication", + "id": "200095", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200095", + "display": "Irbesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 150, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "200096": { + "resourceType": "Medication", + "id": "200096", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "200096", + "display": "Irbesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "83818", + "display": "Irbesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 300, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "118463": { + "349373": { + "resourceType": "Medication", + "id": "349373", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349373", + "display": "Olmesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "349401": { + "resourceType": "Medication", + "id": "349401", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349401", + "display": "Olmesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "349405": { + "resourceType": "Medication", + "id": "349405", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "349405", + "display": "Olmesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "118463", + "display": "Olmesartan Medoxomil" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "203160": { + "979480": { + "resourceType": "Medication", + "id": "979480", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "979480", + "display": "Losartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "979485": { + "resourceType": "Medication", + "id": "979485", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "979485", + "display": "Losartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "979492": { + "resourceType": "Medication", + "id": "979492", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "979492", + "display": "Losartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "203160", + "display": "Losartan Potassium" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "214354": { + "153822": { + "resourceType": "Medication", + "id": "153822", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "153822", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 4, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "153823": { + "resourceType": "Medication", + "id": "153823", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "153823", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 8, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "577776": { + "resourceType": "Medication", + "id": "577776", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "577776", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 16, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "639537": { + "resourceType": "Medication", + "id": "639537", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "639537", + "display": "Candesartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "214354", + "display": "Candesartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 32, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "221124": { + "866412": { + "resourceType": "Medication", + "id": "866412", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866412", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "866419": { + "resourceType": "Medication", + "id": "866419", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866419", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "866427": { + "resourceType": "Medication", + "id": "866427", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866427", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "866436": { + "resourceType": "Medication", + "id": "866436", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "866436", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Tablet", + "display": "Extended Release Oral Tablet" + } + ], + "text": "Extended Release Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1999031": { + "resourceType": "Medication", + "id": "1999031", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999031", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1999033": { + "resourceType": "Medication", + "id": "1999033", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999033", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1999035": { + "resourceType": "Medication", + "id": "1999035", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999035", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1999037": { + "resourceType": "Medication", + "id": "1999037", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1999037", + "display": "Metoprolol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "221124", + "display": "Metoprolol Succinate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "227278": { + "857169": { + "resourceType": "Medication", + "id": "857169", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "857169", + "display": "Fosinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "857183": { + "resourceType": "Medication", + "id": "857183", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "857183", + "display": "Fosinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "857187": { + "resourceType": "Medication", + "id": "857187", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "857187", + "display": "Fosinopril (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "227278", + "display": "Fosinopril Sodium" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "298869": { + "351256": { + "resourceType": "Medication", + "id": "351256", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "351256", + "display": "Eplerenone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "298869", + "display": "Eplerenone" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "351257": { + "resourceType": "Medication", + "id": "351257", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "351257", + "display": "Eplerenone (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "298869", + "display": "Eplerenone" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 50, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "668310": { + "860510": { + "resourceType": "Medication", + "id": "860510", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860510", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "860516": { + "resourceType": "Medication", + "id": "860516", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860516", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "860522": { + "resourceType": "Medication", + "id": "860522", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860522", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "860532": { + "resourceType": "Medication", + "id": "860532", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "860532", + "display": "Carvedilol XR (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Extended Release Oral Capsule", + "display": "Extended Release Oral Capsule" + } + ], + "text": "Extended Release Oral Capsule" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "668310", + "display": "Carvedilol Phosphate" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1091642": { + "1091646": { + "resourceType": "Medication", + "id": "1091646", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091646", + "display": "Azilsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091642", + "display": "Azilsartan Medoxomil" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 40, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1091652": { + "resourceType": "Medication", + "id": "1091652", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091652", + "display": "Azilsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1091642", + "display": "Azilsartan Medoxomil" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 80, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1373458": { + "1373463": { + "resourceType": "Medication", + "id": "1373463", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373463", + "display": "Canagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373458", + "display": "Canagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 100, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1373471": { + "resourceType": "Medication", + "id": "1373471", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373471", + "display": "Canagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1373458", + "display": "Canagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 300, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1488564": { + "1488569": { + "resourceType": "Medication", + "id": "1488569", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488569", + "display": "Dapagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488564", + "display": "Dapagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1488574": { + "resourceType": "Medication", + "id": "1488574", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488574", + "display": "Dapagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1488564", + "display": "Dapagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1545653": { + "1545658": { + "resourceType": "Medication", + "id": "1545658", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545658", + "display": "Empagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545653", + "display": "Empagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 10, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1545666": { + "resourceType": "Medication", + "id": "1545666", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545666", + "display": "Empagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1545653", + "display": "Empagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 25, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1656339": { + "1656340": { + "resourceType": "Medication", + "id": "1656340", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656340", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 24, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + }, + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 26, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1656349": { + "resourceType": "Medication", + "id": "1656349", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656349", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 49, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + }, + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 51, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1656354": { + "resourceType": "Medication", + "id": "1656354", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656354", + "display": "Sacubitril/Valsartan (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 97, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + }, + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 103, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "2679793": { + "resourceType": "Medication", + "id": "2679793", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2679793", + "display": "Sacubitril/Valsartan (Oral Pellet)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Pellet", + "display": "Oral Pellet" + } + ], + "text": "Oral Pellet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + }, + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 16, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "2679800": { + "resourceType": "Medication", + "id": "2679800", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2679800", + "display": "Sacubitril/Valsartan (Oral Pellet)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Pellet", + "display": "Oral Pellet" + } + ], + "text": "Oral Pellet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1656328", + "display": "Sacubitril" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + }, + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "69749", + "display": "Valsartan" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 6, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "1992672": { + "1992810": { + "resourceType": "Medication", + "id": "1992810", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992810", + "display": "Ertugliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992672", + "display": "Ertugliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 5, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "1992819": { + "resourceType": "Medication", + "id": "1992819", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992819", + "display": "Ertugliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1992672", + "display": "Ertugliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 15, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "2627044": { + "2637859": { + "resourceType": "Medication", + "id": "2637859", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2637859", + "display": "Bexagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2627044", + "display": "Bexagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 20, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + }, + "2638675": { + "2638683": { + "resourceType": "Medication", + "id": "2638683", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638683", + "display": "Sotagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638675", + "display": "Sotagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 200, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + }, + "2638691": { + "resourceType": "Medication", + "id": "2638691", + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638691", + "display": "Sotagliflozin (Oral Pill)" + } + ] + }, + "form": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "Oral Tablet", + "display": "Oral Tablet" + } + ], + "text": "Oral Tablet" + }, + "ingredient": [ + { + "itemCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "2638675", + "display": "Sotagliflozin" + } + ] + }, + "strength": { + "numerator": { + "system": "http://unitsofmeasure.org", + "code": "mg", + "value": 400, + "unit": "mg" + }, + "denominator": { + "value": 1 + } + } + } + ] + } + } +} \ No newline at end of file diff --git a/functions/data/questionnaires.json b/functions/data/questionnaires.json index 1c4a8fa4..f74b66d6 100644 --- a/functions/data/questionnaires.json +++ b/functions/data/questionnaires.json @@ -1474,7 +1474,152 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] + "answerOption": [ + { + "valueCoding": { + "id": "medications/19484/drugs/854901", + "code": "medications/19484/drugs/854901", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/19484/drugs/854905", + "code": "medications/19484/drugs/854905", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200032", + "code": "medications/20352/drugs/200032", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200033", + "code": "medications/20352/drugs/200033", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/686924", + "code": "medications/20352/drugs/686924", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200031", + "code": "medications/20352/drugs/200031", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860510", + "code": "medications/668310/drugs/860510", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860516", + "code": "medications/668310/drugs/860516", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860522", + "code": "medications/668310/drugs/860522", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860532", + "code": "medications/668310/drugs/860532", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999031", + "code": "medications/221124/drugs/1999031", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866412", + "code": "medications/221124/drugs/866412", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999033", + "code": "medications/221124/drugs/1999033", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866419", + "code": "medications/221124/drugs/866419", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999035", + "code": "medications/221124/drugs/1999035", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866427", + "code": "medications/221124/drugs/866427", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999037", + "code": "medications/221124/drugs/1999037", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866436", + "code": "medications/221124/drugs/866436", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" + } + } + ] } ], "required": false, @@ -1615,484 +1760,587 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] - } - ], - "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)", - "enableWhen": [ - { - "question": "medication.rasi.exists", - "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - } - ] - }, - { - "linkId": "medication.mra.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + "answerOption": [ + { + "valueCoding": { + "id": "medications/1091642/drugs/1091646", + "code": "medications/1091642/drugs/1091646", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.mra.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", - "required": false - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/1091642/drugs/1091652", + "code": "medications/1091642/drugs/1091652", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" } - } - ], - "linkId": "medication.mra.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ + }, { "valueCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" + "id": "medications/18867/drugs/898687", + "code": "medications/18867/drugs/898687", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" } }, { "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "No" + "id": "medications/18867/drugs/898690", + "code": "medications/18867/drugs/898690", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" } - } - ] - } - ], - "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)" - }, - { - "linkId": "medication.mra.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898719", + "code": "medications/18867/drugs/898719", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.mra.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.mra.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.mra.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/18867/drugs/898723", + "code": "medications/18867/drugs/898723", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" } - } - ], - "linkId": "medication.mra.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] - } - ], - "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)", - "enableWhen": [ - { - "question": "medication.mra.exists", - "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - } - ] - }, - { - "linkId": "medication.sglt2i.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/214354/drugs/577776", + "code": "medications/214354/drugs/577776", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n16 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.sglt2i.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", - "required": false - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/214354/drugs/639537", + "code": "medications/214354/drugs/639537", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n32 mg Oral Tablet" } - } - ], - "linkId": "medication.sglt2i.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ + }, { "valueCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" + "id": "medications/214354/drugs/153822", + "code": "medications/214354/drugs/153822", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n4 mg Oral Tablet" } }, { "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "No" + "id": "medications/214354/drugs/153823", + "code": "medications/214354/drugs/153823", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n8 mg Oral Tablet" } - } - ] - } - ], - "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)" - }, - { - "linkId": "medication.sglt2i.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308962", + "code": "medications/1998/drugs/308962", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n100 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.sglt2i.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.sglt2i.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.sglt2i.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/1998/drugs/308963", + "code": "medications/1998/drugs/308963", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" } - } - ], - "linkId": "medication.sglt2i.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] - } - ], - "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)", - "enableWhen": [ - { - "question": "medication.sglt2i.exists", - "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - } - ] - }, - { - "linkId": "medication.diuretics.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/1998/drugs/317173", + "code": "medications/1998/drugs/317173", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n25 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.diuretics.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", - "required": false - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/1998/drugs/308964", + "code": "medications/1998/drugs/308964", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n50 mg Oral Tablet" } - } - ], - "linkId": "medication.diuretics.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ + }, { "valueCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" + "id": "medications/3827/drugs/858817", + "code": "medications/3827/drugs/858817", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" } }, { "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "No" + "id": "medications/3827/drugs/858804", + "code": "medications/3827/drugs/858804", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" } - } - ] - } - ], - "required": false, - "text": "Diuretics" - }, - { - "linkId": "medication.diuretics.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858810", + "code": "medications/3827/drugs/858810", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.diuretics.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.diuretics.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.diuretics.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/3827/drugs/858813", + "code": "medications/3827/drugs/858813", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" } - } - ], - "linkId": "medication.diuretics.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] - } - ], - "required": false, - "text": "Diuretics", - "enableWhen": [ - { - "question": "medication.diuretics.exists", - "operator": "=", - "answerCoding": { - "id": "yes", - "code": "yes", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", - "display": "Yes" - } - } - ] - }, - { - "linkId": "appointment.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/83515/drugs/310139", + "code": "medications/83515/drugs/310139", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" } - ], - "text": "Page" - } + }, + { + "valueCoding": { + "id": "medications/83515/drugs/310140", + "code": "medications/83515/drugs/310140", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857169", + "code": "medications/227278/drugs/857169", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857183", + "code": "medications/227278/drugs/857183", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857187", + "code": "medications/227278/drugs/857187", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200095", + "code": "medications/83818/drugs/200095", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200096", + "code": "medications/83818/drugs/200096", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200094", + "code": "medications/83818/drugs/200094", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/314076", + "code": "medications/29046/drugs/314076", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/311353", + "code": "medications/29046/drugs/311353", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/314077", + "code": "medications/29046/drugs/314077", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/205326", + "code": "medications/29046/drugs/205326", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/197884", + "code": "medications/29046/drugs/197884", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/311354", + "code": "medications/29046/drugs/311354", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979480", + "code": "medications/203160/drugs/979480", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979485", + "code": "medications/203160/drugs/979485", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979492", + "code": "medications/203160/drugs/979492", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/30131/drugs/1299896", + "code": "medications/30131/drugs/1299896", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n15 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/30131/drugs/1299897", + "code": "medications/30131/drugs/1299897", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349401", + "code": "medications/118463/drugs/349401", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349405", + "code": "medications/118463/drugs/349405", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349373", + "code": "medications/118463/drugs/349373", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854984", + "code": "medications/54552/drugs/854984", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854988", + "code": "medications/54552/drugs/854988", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854925", + "code": "medications/54552/drugs/854925", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n8 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312748", + "code": "medications/35208/drugs/312748", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312749", + "code": "medications/35208/drugs/312749", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/314203", + "code": "medications/35208/drugs/314203", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312750", + "code": "medications/35208/drugs/312750", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/845488", + "code": "medications/35296/drugs/845488", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/401965", + "code": "medications/35296/drugs/401965", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/261962", + "code": "medications/35296/drugs/261962", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/401968", + "code": "medications/35296/drugs/401968", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/198188", + "code": "medications/35296/drugs/198188", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/251856", + "code": "medications/35296/drugs/251856", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/198189", + "code": "medications/35296/drugs/198189", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/251857", + "code": "medications/35296/drugs/251857", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/2679793", + "code": "medications/1656339/drugs/2679793", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656340", + "code": "medications/1656339/drugs/1656340", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656349", + "code": "medications/1656339/drugs/1656349", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/2679800", + "code": "medications/1656339/drugs/2679800", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656354", + "code": "medications/1656339/drugs/1656354", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/73494/drugs/282755", + "code": "medications/73494/drugs/282755", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/73494/drugs/205304", + "code": "medications/73494/drugs/205304", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/73494/drugs/205305", + "code": "medications/73494/drugs/205305", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199353", + "code": "medications/38454/drugs/199353", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199351", + "code": "medications/38454/drugs/199351", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199352", + "code": "medications/38454/drugs/199352", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349201", + "code": "medications/69749/drugs/349201", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n160 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349200", + "code": "medications/69749/drugs/349200", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n320 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349483", + "code": "medications/69749/drugs/349483", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349199", + "code": "medications/69749/drugs/349199", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n80 mg Oral Tablet" + } + } + ] } ], - "item": [ - { - "linkId": "appointment.exists-description", - "type": "display", - "text": "Next appointment", - "required": false - }, + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)", + "enableWhen": [ { - "linkId": "appointment.exists", - "text": "Do you already have a new appointment scheduled?", - "type": "boolean", - "required": true + "question": "medication.rasi.exists", + "operator": "=", + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } - ], - "required": false, - "text": "Next appointment" + ] }, { - "linkId": "appointment.page1", + "linkId": "medication.mra.exists", "type": "group", "extension": [ { @@ -2111,97 +2359,55 @@ ], "item": [ { - "linkId": "appointment.description", + "linkId": "medication.mra.exists-description", "type": "display", - "text": "Upcoming appointment", + "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", "required": false }, { - "linkId": "appointment.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Next appointment", - "enableWhen": [ - { - "question": "appointment.exists", - "operator": "=", - "answerBoolean": true - } - ] - } - ] - }, - "dataUpdate_en_US": { - "resourceType": "Questionnaire", - "id": "engagehf-data-update", - "title": "Update Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "meta": { - "profile": [ - "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" - ], - "tag": [ - { - "system": "urn:ietf:bcp:47", - "code": "en-US", - "display": "English" - } - ] - }, - "useContext": [], - "contact": [ - { - "name": "http://spezi.health" - } - ], - "subjectType": [ - "Patient" - ], - "url": "http://spezi.health/fhir/questionnaire/engagehf-data-update", - "item": [ - { - "linkId": "lab.2160-0.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.2160-0.exists-description", - "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.2160-0.exists", - "text": "Have you recently received a new creatinine value?", - "type": "boolean", - "required": true + } + ], + "linkId": "medication.mra.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" + } + } + ] } ], "required": false, - "text": "Creatinine" + "text": "Mineralocorticoid Receptor Antagonists (MRA)" }, { - "linkId": "lab.2160-0.page1", + "linkId": "medication.mra.page1", "type": "group", "extension": [ { @@ -2220,36 +2426,103 @@ ], "item": [ { - "linkId": "lab.2160-0.description", + "linkId": "medication.mra.description", "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "lab.2160-0.value", - "text": "Creatinine (mg/dL):", + "linkId": "medication.mra.frequency", + "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "lab.2160-0.dateTime", - "text": "Date:", - "type": "dateTime", + "linkId": "medication.mra.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.mra.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/298869/drugs/351256", + "code": "medications/298869/drugs/351256", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/298869/drugs/351257", + "code": "medications/298869/drugs/351257", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/198222", + "code": "medications/9997/drugs/198222", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/313096", + "code": "medications/9997/drugs/313096", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/198223", + "code": "medications/9997/drugs/198223", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" + } + } + ] } ], "required": false, - "text": "Creatinine", + "text": "Mineralocorticoid Receptor Antagonists (MRA)", "enableWhen": [ { - "question": "lab.2160-0.exists", + "question": "medication.mra.exists", "operator": "=", - "answerBoolean": true + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { - "linkId": "lab.6298-4.exists", + "linkId": "medication.sglt2i.exists", "type": "group", "extension": [ { @@ -2268,23 +2541,55 @@ ], "item": [ { - "linkId": "lab.6298-4.exists-description", + "linkId": "medication.sglt2i.exists-description", "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", "required": false }, { - "linkId": "lab.6298-4.exists", - "text": "Have you recently received a new potassium value?", - "type": "boolean", - "required": true + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.sglt2i.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "No" + } + } + ] } ], "required": false, - "text": "Potassium" + "text": "SGLT2 Inhibitors (SGLT2i)" }, { - "linkId": "lab.6298-4.page1", + "linkId": "medication.sglt2i.page1", "type": "group", "extension": [ { @@ -2303,119 +2608,151 @@ ], "item": [ { - "linkId": "lab.6298-4.description", + "linkId": "medication.sglt2i.description", "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "lab.6298-4.value", - "text": "Potassium (mEq/L):", + "linkId": "medication.sglt2i.frequency", + "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "lab.6298-4.dateTime", - "text": "Date:", - "type": "dateTime", + "linkId": "medication.sglt2i.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", "required": true - } - ], - "required": false, - "text": "Potassium", - "enableWhen": [ + }, { - "question": "lab.6298-4.exists", - "operator": "=", - "answerBoolean": true - } - ] - }, - { - "linkId": "lab.8340-2.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.8340-2.exists-description", - "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false - }, - { - "linkId": "lab.8340-2.exists", - "text": "Have you recently received a new dry weight value?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Dry Weight" - }, - { - "linkId": "lab.8340-2.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + } + ], + "linkId": "medication.sglt2i.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/2627044/drugs/2637859", + "code": "medications/2627044/drugs/2637859", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.8340-2.description", - "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false - }, - { - "linkId": "lab.8340-2.value", - "text": "Dry Weight (lbs):", - "type": "decimal", - "required": true - }, - { - "linkId": "lab.8340-2.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true + }, + { + "valueCoding": { + "id": "medications/1373458/drugs/1373463", + "code": "medications/1373458/drugs/1373463", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1373458/drugs/1373471", + "code": "medications/1373458/drugs/1373471", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1488564/drugs/1488569", + "code": "medications/1488564/drugs/1488569", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1488564/drugs/1488574", + "code": "medications/1488564/drugs/1488574", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1545653/drugs/1545658", + "code": "medications/1545653/drugs/1545658", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1545653/drugs/1545666", + "code": "medications/1545653/drugs/1545666", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1992672/drugs/1992819", + "code": "medications/1992672/drugs/1992819", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1992672/drugs/1992810", + "code": "medications/1992672/drugs/1992810", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/2638675/drugs/2638683", + "code": "medications/2638675/drugs/2638683", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/2638675/drugs/2638691", + "code": "medications/2638675/drugs/2638691", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" + } + } + ] } ], "required": false, - "text": "Dry Weight", + "text": "SGLT2 Inhibitors (SGLT2i)", "enableWhen": [ { - "question": "lab.8340-2.exists", + "question": "medication.sglt2i.exists", "operator": "=", - "answerBoolean": true + "answerCoding": { + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" + } } ] }, { - "linkId": "medication.betablockers.exists", + "linkId": "medication.diuretics.exists", "type": "group", "extension": [ { @@ -2434,9 +2771,9 @@ ], "item": [ { - "linkId": "medication.betablockers.exists-description", + "linkId": "medication.diuretics.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", + "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", "required": false }, { @@ -2454,32 +2791,24 @@ } } ], - "linkId": "medication.betablockers.exists", + "linkId": "medication.diuretics.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, "answerOption": [ { "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } }, { "valueCoding": { "id": "no", "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", "display": "No" } } @@ -2487,10 +2816,10 @@ } ], "required": false, - "text": "Beta Blockers" + "text": "Diuretics" }, { - "linkId": "medication.betablockers.page1", + "linkId": "medication.diuretics.page1", "type": "group", "extension": [ { @@ -2509,19 +2838,19 @@ ], "item": [ { - "linkId": "medication.betablockers.description", + "linkId": "medication.diuretics.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "medication.betablockers.frequency", + "linkId": "medication.diuretics.frequency", "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "medication.betablockers.quantity", + "linkId": "medication.diuretics.quantity", "text": "Pills/tablets per intake:", "type": "decimal", "required": true @@ -2541,30 +2870,143 @@ } } ], - "linkId": "medication.betablockers.drug", + "linkId": "medication.diuretics.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] + "answerOption": [ + { + "valueCoding": { + "id": "medications/1808/drugs/197417", + "code": "medications/1808/drugs/197417", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1808/drugs/197418", + "code": "medications/1808/drugs/197418", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1808/drugs/197419", + "code": "medications/1808/drugs/197419", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4109/drugs/1251903", + "code": "medications/4109/drugs/1251903", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4109/drugs/1251907", + "code": "medications/4109/drugs/1251907", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/310429", + "code": "medications/4603/drugs/310429", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/313988", + "code": "medications/4603/drugs/313988", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/197732", + "code": "medications/4603/drugs/197732", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n80 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198369", + "code": "medications/38413/drugs/198369", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198370", + "code": "medications/38413/drugs/198370", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198371", + "code": "medications/38413/drugs/198371", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/2589881", + "code": "medications/38413/drugs/2589881", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198372", + "code": "medications/38413/drugs/198372", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/2589885", + "code": "medications/38413/drugs/2589885", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" + } + } + ] } ], "required": false, - "text": "Beta Blockers", + "text": "Diuretics", "enableWhen": [ { - "question": "medication.betablockers.exists", + "question": "medication.diuretics.exists", "operator": "=", "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" + "id": "yes", + "code": "yes", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-registration", + "display": "Yes" } } ] }, { - "linkId": "medication.rasi.exists", + "linkId": "appointment.exists", "type": "group", "extension": [ { @@ -2583,63 +3025,23 @@ ], "item": [ { - "linkId": "medication.rasi.exists-description", + "linkId": "appointment.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", + "text": "Next appointment", "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.rasi.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] + "linkId": "appointment.exists", + "text": "Do you already have a new appointment scheduled?", + "type": "boolean", + "required": true } ], "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)" + "text": "Next appointment" }, { - "linkId": "medication.rasi.page1", + "linkId": "appointment.page1", "type": "group", "extension": [ { @@ -2658,62 +3060,62 @@ ], "item": [ { - "linkId": "medication.rasi.description", + "linkId": "appointment.description", "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "text": "Upcoming appointment", "required": false }, { - "linkId": "medication.rasi.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.rasi.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", + "linkId": "appointment.dateTime", + "text": "Date:", + "type": "dateTime", "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.rasi.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] } ], "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)", + "text": "Next appointment", "enableWhen": [ { - "question": "medication.rasi.exists", + "question": "appointment.exists", "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } + "answerBoolean": true } ] - }, + } + ] + }, + "dataUpdate_en_US": { + "resourceType": "Questionnaire", + "id": "engagehf-data-update", + "title": "Update Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", + "meta": { + "profile": [ + "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" + ], + "tag": [ + { + "system": "urn:ietf:bcp:47", + "code": "en-US", + "display": "English" + } + ] + }, + "useContext": [], + "contact": [ { - "linkId": "medication.mra.exists", + "name": "http://spezi.health" + } + ], + "subjectType": [ + "Patient" + ], + "url": "http://spezi.health/fhir/questionnaire/engagehf-data-update", + "item": [ + { + "linkId": "lab.2160-0.exists", "type": "group", "extension": [ { @@ -2732,63 +3134,23 @@ ], "item": [ { - "linkId": "medication.mra.exists-description", + "linkId": "lab.2160-0.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.mra.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] + "linkId": "lab.2160-0.exists", + "text": "Have you recently received a new creatinine value?", + "type": "boolean", + "required": true } ], "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)" + "text": "Creatinine" }, { - "linkId": "medication.mra.page1", + "linkId": "lab.2160-0.page1", "type": "group", "extension": [ { @@ -2807,62 +3169,36 @@ ], "item": [ { - "linkId": "medication.mra.description", + "linkId": "lab.2160-0.description", "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", "required": false }, { - "linkId": "medication.mra.frequency", - "text": "Intake frequency (per day):", + "linkId": "lab.2160-0.value", + "text": "Creatinine (mg/dL):", "type": "decimal", "required": true }, { - "linkId": "medication.mra.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", + "linkId": "lab.2160-0.dateTime", + "text": "Date:", + "type": "dateTime", "required": true - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.mra.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] } ], "required": false, - "text": "Mineralocorticoid Receptor Antagonists (MRA)", + "text": "Creatinine", "enableWhen": [ { - "question": "medication.mra.exists", + "question": "lab.2160-0.exists", "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } + "answerBoolean": true } ] }, { - "linkId": "medication.sglt2i.exists", + "linkId": "lab.6298-4.exists", "type": "group", "extension": [ { @@ -2881,63 +3217,23 @@ ], "item": [ { - "linkId": "medication.sglt2i.exists-description", + "linkId": "lab.6298-4.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] - } - } - ], - "linkId": "medication.sglt2i.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ - { - "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - }, - { - "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" - } - }, - { - "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" - } - } - ] + "linkId": "lab.6298-4.exists", + "text": "Have you recently received a new potassium value?", + "type": "boolean", + "required": true } ], "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)" + "text": "Potassium" }, { - "linkId": "medication.sglt2i.page1", + "linkId": "lab.6298-4.page1", "type": "group", "extension": [ { @@ -2956,62 +3252,119 @@ ], "item": [ { - "linkId": "medication.sglt2i.description", + "linkId": "lab.6298-4.description", "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", "required": false }, { - "linkId": "medication.sglt2i.frequency", - "text": "Intake frequency (per day):", + "linkId": "lab.6298-4.value", + "text": "Potassium (mEq/L):", "type": "decimal", "required": true }, { - "linkId": "medication.sglt2i.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", + "linkId": "lab.6298-4.dateTime", + "text": "Date:", + "type": "dateTime", "required": true + } + ], + "required": false, + "text": "Potassium", + "enableWhen": [ + { + "question": "lab.6298-4.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "lab.8340-2.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.8340-2.exists-description", + "type": "display", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "required": false }, { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "linkId": "lab.8340-2.exists", + "text": "Have you recently received a new dry weight value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Dry Weight" + }, + { + "linkId": "lab.8340-2.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" } - } - ], - "linkId": "medication.sglt2i.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.8340-2.description", + "type": "display", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "required": false + }, + { + "linkId": "lab.8340-2.value", + "text": "Dry Weight (lbs):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.8340-2.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true } ], "required": false, - "text": "SGLT2 Inhibitors (SGLT2i)", + "text": "Dry Weight", "enableWhen": [ { - "question": "medication.sglt2i.exists", + "question": "lab.8340-2.exists", "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } + "answerBoolean": true } ] }, { - "linkId": "medication.diuretics.exists", + "linkId": "medication.betablockers.exists", "type": "group", "extension": [ { @@ -3030,9 +3383,9 @@ ], "item": [ { - "linkId": "medication.diuretics.exists-description", + "linkId": "medication.betablockers.exists-description", "type": "display", - "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", + "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", "required": false }, { @@ -3050,7 +3403,7 @@ } } ], - "linkId": "medication.diuretics.exists", + "linkId": "medication.betablockers.exists", "type": "choice", "text": "Do you take any medication from the above list?", "required": true, @@ -3083,10 +3436,10 @@ } ], "required": false, - "text": "Diuretics" + "text": "Beta Blockers" }, { - "linkId": "medication.diuretics.page1", + "linkId": "medication.betablockers.page1", "type": "group", "extension": [ { @@ -3105,19 +3458,19 @@ ], "item": [ { - "linkId": "medication.diuretics.description", + "linkId": "medication.betablockers.description", "type": "display", "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "medication.diuretics.frequency", + "linkId": "medication.betablockers.frequency", "text": "Intake frequency (per day):", "type": "decimal", "required": true }, { - "linkId": "medication.diuretics.quantity", + "linkId": "medication.betablockers.quantity", "text": "Pills/tablets per intake:", "type": "decimal", "required": true @@ -3137,18 +3490,163 @@ } } ], - "linkId": "medication.diuretics.drug", + "linkId": "medication.betablockers.drug", "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] + "answerOption": [ + { + "valueCoding": { + "id": "medications/19484/drugs/854901", + "code": "medications/19484/drugs/854901", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/19484/drugs/854905", + "code": "medications/19484/drugs/854905", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200032", + "code": "medications/20352/drugs/200032", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200033", + "code": "medications/20352/drugs/200033", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/686924", + "code": "medications/20352/drugs/686924", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200031", + "code": "medications/20352/drugs/200031", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860510", + "code": "medications/668310/drugs/860510", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860516", + "code": "medications/668310/drugs/860516", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860522", + "code": "medications/668310/drugs/860522", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860532", + "code": "medications/668310/drugs/860532", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999031", + "code": "medications/221124/drugs/1999031", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866412", + "code": "medications/221124/drugs/866412", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999033", + "code": "medications/221124/drugs/1999033", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866419", + "code": "medications/221124/drugs/866419", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999035", + "code": "medications/221124/drugs/1999035", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866427", + "code": "medications/221124/drugs/866427", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999037", + "code": "medications/221124/drugs/1999037", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866436", + "code": "medications/221124/drugs/866436", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" + } + } + ] } ], "required": false, - "text": "Diuretics", + "text": "Beta Blockers", "enableWhen": [ { - "question": "medication.diuretics.exists", + "question": "medication.betablockers.exists", "operator": "=", "answerCoding": { "id": "yes-changed", @@ -3160,7 +3658,7 @@ ] }, { - "linkId": "appointment.exists", + "linkId": "medication.rasi.exists", "type": "group", "extension": [ { @@ -3179,180 +3677,63 @@ ], "item": [ { - "linkId": "appointment.exists-description", + "linkId": "medication.rasi.exists-description", "type": "display", - "text": "Next appointment", + "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", "required": false }, { - "linkId": "appointment.exists", - "text": "Do you already have a new appointment scheduled?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Next appointment" - }, - { - "linkId": "appointment.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "appointment.description", - "type": "display", - "text": "Upcoming appointment", - "required": false - }, - { - "linkId": "appointment.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Next appointment", - "enableWhen": [ - { - "question": "appointment.exists", - "operator": "=", - "answerBoolean": true - } - ] - } - ] - }, - "postAppointment_en_US": { - "resourceType": "Questionnaire", - "id": "engagehf-post-appointment", - "title": "Post-Appointment Survey", - "language": "en-US", - "status": "active", - "publisher": "Stanford Biodesign Digital Health", - "meta": { - "profile": [ - "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" - ], - "tag": [ - { - "system": "urn:ietf:bcp:47", - "code": "en-US", - "display": "English" - } - ] - }, - "useContext": [], - "contact": [ - { - "name": "http://spezi.health" - } - ], - "subjectType": [ - "Patient" - ], - "url": "http://spezi.health/fhir/questionnaire/engagehf-post-appointment", - "item": [ - { - "linkId": "lab.2160-0.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + } + ], + "linkId": "medication.rasi.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.2160-0.exists-description", - "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.2160-0.exists", - "text": "Have you recently received a new creatinine value?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Creatinine" - }, - { - "linkId": "lab.2160-0.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.2160-0.description", - "type": "display", - "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", - "required": false - }, - { - "linkId": "lab.2160-0.value", - "text": "Creatinine (mg/dL):", - "type": "decimal", - "required": true - }, - { - "linkId": "lab.2160-0.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] } ], "required": false, - "text": "Creatinine", - "enableWhen": [ - { - "question": "lab.2160-0.exists", - "operator": "=", - "answerBoolean": true - } - ] + "text": "Renin-Angiotensin System Inhibitors (RASI)" }, { - "linkId": "lab.6298-4.exists", + "linkId": "medication.rasi.page1", "type": "group", "extension": [ { @@ -3371,177 +3752,23 @@ ], "item": [ { - "linkId": "lab.6298-4.exists-description", + "linkId": "medication.rasi.description", "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", "required": false }, { - "linkId": "lab.6298-4.exists", - "text": "Have you recently received a new potassium value?", - "type": "boolean", + "linkId": "medication.rasi.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", "required": true - } - ], - "required": false, - "text": "Potassium" - }, - { - "linkId": "lab.6298-4.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.6298-4.description", - "type": "display", - "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", - "required": false }, { - "linkId": "lab.6298-4.value", - "text": "Potassium (mEq/L):", + "linkId": "medication.rasi.quantity", + "text": "Pills/tablets per intake:", "type": "decimal", "required": true }, - { - "linkId": "lab.6298-4.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Potassium", - "enableWhen": [ - { - "question": "lab.6298-4.exists", - "operator": "=", - "answerBoolean": true - } - ] - }, - { - "linkId": "lab.8340-2.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.8340-2.exists-description", - "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false - }, - { - "linkId": "lab.8340-2.exists", - "text": "Have you recently received a new dry weight value?", - "type": "boolean", - "required": true - } - ], - "required": false, - "text": "Dry Weight" - }, - { - "linkId": "lab.8340-2.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "lab.8340-2.description", - "type": "display", - "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", - "required": false - }, - { - "linkId": "lab.8340-2.value", - "text": "Dry Weight (lbs):", - "type": "decimal", - "required": true - }, - { - "linkId": "lab.8340-2.dateTime", - "text": "Date:", - "type": "dateTime", - "required": true - } - ], - "required": false, - "text": "Dry Weight", - "enableWhen": [ - { - "question": "lab.8340-2.exists", - "operator": "=", - "answerBoolean": true - } - ] - }, - { - "linkId": "medication.betablockers.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" - } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.betablockers.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", - "required": false - }, { "extension": [ { @@ -3557,247 +3784,2624 @@ } } ], - "linkId": "medication.betablockers.exists", + "linkId": "medication.rasi.drug", "type": "choice", - "text": "Do you take any medication from the above list?", + "text": "Which pill/tablet do you take?", "required": true, "answerOption": [ { "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" + "id": "medications/1091642/drugs/1091646", + "code": "medications/1091642/drugs/1091646", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" } }, { "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" + "id": "medications/1091642/drugs/1091652", + "code": "medications/1091642/drugs/1091652", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" } }, { "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" + "id": "medications/18867/drugs/898687", + "code": "medications/18867/drugs/898687", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" } - } - ] - } - ], - "required": false, - "text": "Beta Blockers" - }, - { - "linkId": "medication.betablockers.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898690", + "code": "medications/18867/drugs/898690", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.betablockers.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.betablockers.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.betablockers.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/18867/drugs/898719", + "code": "medications/18867/drugs/898719", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" } - } - ], - "linkId": "medication.betablockers.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] - } - ], - "required": false, - "text": "Beta Blockers", - "enableWhen": [ - { - "question": "medication.betablockers.exists", - "operator": "=", - "answerCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" - } - } - ] - }, - { - "linkId": "medication.rasi.exists", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898723", + "code": "medications/18867/drugs/898723", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/577776", + "code": "medications/214354/drugs/577776", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n16 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/639537", + "code": "medications/214354/drugs/639537", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n32 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/153822", + "code": "medications/214354/drugs/153822", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/153823", + "code": "medications/214354/drugs/153823", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n8 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308962", + "code": "medications/1998/drugs/308962", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308963", + "code": "medications/1998/drugs/308963", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/317173", + "code": "medications/1998/drugs/317173", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308964", + "code": "medications/1998/drugs/308964", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858817", + "code": "medications/3827/drugs/858817", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858804", + "code": "medications/3827/drugs/858804", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858810", + "code": "medications/3827/drugs/858810", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858813", + "code": "medications/3827/drugs/858813", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83515/drugs/310139", + "code": "medications/83515/drugs/310139", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83515/drugs/310140", + "code": "medications/83515/drugs/310140", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857169", + "code": "medications/227278/drugs/857169", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857183", + "code": "medications/227278/drugs/857183", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857187", + "code": "medications/227278/drugs/857187", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200095", + "code": "medications/83818/drugs/200095", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200096", + "code": "medications/83818/drugs/200096", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200094", + "code": "medications/83818/drugs/200094", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/314076", + "code": "medications/29046/drugs/314076", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/311353", + "code": "medications/29046/drugs/311353", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/314077", + "code": "medications/29046/drugs/314077", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/205326", + "code": "medications/29046/drugs/205326", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/197884", + "code": "medications/29046/drugs/197884", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/311354", + "code": "medications/29046/drugs/311354", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979480", + "code": "medications/203160/drugs/979480", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979485", + "code": "medications/203160/drugs/979485", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979492", + "code": "medications/203160/drugs/979492", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/30131/drugs/1299896", + "code": "medications/30131/drugs/1299896", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n15 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/30131/drugs/1299897", + "code": "medications/30131/drugs/1299897", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349401", + "code": "medications/118463/drugs/349401", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349405", + "code": "medications/118463/drugs/349405", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349373", + "code": "medications/118463/drugs/349373", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854984", + "code": "medications/54552/drugs/854984", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854988", + "code": "medications/54552/drugs/854988", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854925", + "code": "medications/54552/drugs/854925", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n8 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312748", + "code": "medications/35208/drugs/312748", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312749", + "code": "medications/35208/drugs/312749", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/314203", + "code": "medications/35208/drugs/314203", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312750", + "code": "medications/35208/drugs/312750", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/845488", + "code": "medications/35296/drugs/845488", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/401965", + "code": "medications/35296/drugs/401965", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/261962", + "code": "medications/35296/drugs/261962", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/401968", + "code": "medications/35296/drugs/401968", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/198188", + "code": "medications/35296/drugs/198188", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/251856", + "code": "medications/35296/drugs/251856", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/198189", + "code": "medications/35296/drugs/198189", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/251857", + "code": "medications/35296/drugs/251857", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/2679793", + "code": "medications/1656339/drugs/2679793", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656340", + "code": "medications/1656339/drugs/1656340", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656349", + "code": "medications/1656339/drugs/1656349", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/2679800", + "code": "medications/1656339/drugs/2679800", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656354", + "code": "medications/1656339/drugs/1656354", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/73494/drugs/282755", + "code": "medications/73494/drugs/282755", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/73494/drugs/205304", + "code": "medications/73494/drugs/205304", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/73494/drugs/205305", + "code": "medications/73494/drugs/205305", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199353", + "code": "medications/38454/drugs/199353", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199351", + "code": "medications/38454/drugs/199351", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199352", + "code": "medications/38454/drugs/199352", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349201", + "code": "medications/69749/drugs/349201", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n160 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349200", + "code": "medications/69749/drugs/349200", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n320 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349483", + "code": "medications/69749/drugs/349483", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349199", + "code": "medications/69749/drugs/349199", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n80 mg Oral Tablet" + } + } + ] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)", + "enableWhen": [ + { + "question": "medication.rasi.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "medication.mra.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.mra.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nSpironolactone (Aldactone)\nEplerenone (Inspra)", + "required": false + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.mra.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)" + }, + { + "linkId": "medication.mra.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.mra.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.mra.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.mra.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.mra.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/298869/drugs/351256", + "code": "medications/298869/drugs/351256", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/298869/drugs/351257", + "code": "medications/298869/drugs/351257", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/198222", + "code": "medications/9997/drugs/198222", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/313096", + "code": "medications/9997/drugs/313096", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/198223", + "code": "medications/9997/drugs/198223", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" + } + } + ] + } + ], + "required": false, + "text": "Mineralocorticoid Receptor Antagonists (MRA)", + "enableWhen": [ + { + "question": "medication.mra.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "medication.sglt2i.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.sglt2i.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nCanagliflozin (Invokana)\nDapagliflozin (Farxiga)\nEmpagliflozin (Jardiance)\nErtugliflozin (Steglatro)\nBexagliflozin (Brenzavvy)\nSotagliflozin (Inpefa)", + "required": false + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.sglt2i.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)" + }, + { + "linkId": "medication.sglt2i.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.sglt2i.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.sglt2i.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.sglt2i.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.sglt2i.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/2627044/drugs/2637859", + "code": "medications/2627044/drugs/2637859", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1373458/drugs/1373463", + "code": "medications/1373458/drugs/1373463", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1373458/drugs/1373471", + "code": "medications/1373458/drugs/1373471", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1488564/drugs/1488569", + "code": "medications/1488564/drugs/1488569", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1488564/drugs/1488574", + "code": "medications/1488564/drugs/1488574", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1545653/drugs/1545658", + "code": "medications/1545653/drugs/1545658", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1545653/drugs/1545666", + "code": "medications/1545653/drugs/1545666", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1992672/drugs/1992819", + "code": "medications/1992672/drugs/1992819", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1992672/drugs/1992810", + "code": "medications/1992672/drugs/1992810", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/2638675/drugs/2638683", + "code": "medications/2638675/drugs/2638683", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/2638675/drugs/2638691", + "code": "medications/2638675/drugs/2638691", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" + } + } + ] + } + ], + "required": false, + "text": "SGLT2 Inhibitors (SGLT2i)", + "enableWhen": [ + { + "question": "medication.sglt2i.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "medication.diuretics.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.diuretics.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nBumetanide (Bumex)\nEthacrynic Acid (Edecrin)\nFurosemide (Lasix)\nTorsemide (Soaanz)", + "required": false + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.diuretics.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] + } + ], + "required": false, + "text": "Diuretics" + }, + { + "linkId": "medication.diuretics.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.diuretics.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.diuretics.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.diuretics.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.diuretics.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/1808/drugs/197417", + "code": "medications/1808/drugs/197417", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1808/drugs/197418", + "code": "medications/1808/drugs/197418", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1808/drugs/197419", + "code": "medications/1808/drugs/197419", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4109/drugs/1251903", + "code": "medications/4109/drugs/1251903", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4109/drugs/1251907", + "code": "medications/4109/drugs/1251907", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/310429", + "code": "medications/4603/drugs/310429", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/313988", + "code": "medications/4603/drugs/313988", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/197732", + "code": "medications/4603/drugs/197732", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n80 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198369", + "code": "medications/38413/drugs/198369", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198370", + "code": "medications/38413/drugs/198370", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198371", + "code": "medications/38413/drugs/198371", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/2589881", + "code": "medications/38413/drugs/2589881", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198372", + "code": "medications/38413/drugs/198372", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/2589885", + "code": "medications/38413/drugs/2589885", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" + } + } + ] + } + ], + "required": false, + "text": "Diuretics", + "enableWhen": [ + { + "question": "medication.diuretics.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "appointment.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "appointment.exists-description", + "type": "display", + "text": "Next appointment", + "required": false + }, + { + "linkId": "appointment.exists", + "text": "Do you already have a new appointment scheduled?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Next appointment" + }, + { + "linkId": "appointment.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "appointment.description", + "type": "display", + "text": "Upcoming appointment", + "required": false + }, + { + "linkId": "appointment.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Next appointment", + "enableWhen": [ + { + "question": "appointment.exists", + "operator": "=", + "answerBoolean": true + } + ] + } + ] + }, + "postAppointment_en_US": { + "resourceType": "Questionnaire", + "id": "engagehf-post-appointment", + "title": "Post-Appointment Survey", + "language": "en-US", + "status": "active", + "publisher": "Stanford Biodesign Digital Health", + "meta": { + "profile": [ + "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire" + ], + "tag": [ + { + "system": "urn:ietf:bcp:47", + "code": "en-US", + "display": "English" + } + ] + }, + "useContext": [], + "contact": [ + { + "name": "http://spezi.health" + } + ], + "subjectType": [ + "Patient" + ], + "url": "http://spezi.health/fhir/questionnaire/engagehf-post-appointment", + "item": [ + { + "linkId": "lab.2160-0.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.2160-0.exists-description", + "type": "display", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.2160-0.exists", + "text": "Have you recently received a new creatinine value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Creatinine" + }, + { + "linkId": "lab.2160-0.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.2160-0.description", + "type": "display", + "text": "The creatinine level in your body helps understand how your kidneys handle the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.2160-0.value", + "text": "Creatinine (mg/dL):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.2160-0.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Creatinine", + "enableWhen": [ + { + "question": "lab.2160-0.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "lab.6298-4.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.6298-4.exists-description", + "type": "display", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.6298-4.exists", + "text": "Have you recently received a new potassium value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Potassium" + }, + { + "linkId": "lab.6298-4.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.6298-4.description", + "type": "display", + "text": "The potassium level in your body helps understand how your liver handles the drugs you are taking.", + "required": false + }, + { + "linkId": "lab.6298-4.value", + "text": "Potassium (mEq/L):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.6298-4.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Potassium", + "enableWhen": [ + { + "question": "lab.6298-4.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "lab.8340-2.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.8340-2.exists-description", + "type": "display", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "required": false + }, + { + "linkId": "lab.8340-2.exists", + "text": "Have you recently received a new dry weight value?", + "type": "boolean", + "required": true + } + ], + "required": false, + "text": "Dry Weight" + }, + { + "linkId": "lab.8340-2.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "lab.8340-2.description", + "type": "display", + "text": "The dry weight is useful to set a baseline to check that your weight does not increase unnoticed.", + "required": false + }, + { + "linkId": "lab.8340-2.value", + "text": "Dry Weight (lbs):", + "type": "decimal", + "required": true + }, + { + "linkId": "lab.8340-2.dateTime", + "text": "Date:", + "type": "dateTime", + "required": true + } + ], + "required": false, + "text": "Dry Weight", + "enableWhen": [ + { + "question": "lab.8340-2.exists", + "operator": "=", + "answerBoolean": true + } + ] + }, + { + "linkId": "medication.betablockers.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.betablockers.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nBisoprolol (Zebeta)\nCarvedilol (Coreg)\nMetoprolol Succinate (Toprol XL)\nCarvedilol Phosphate (Coreg CR)", + "required": false + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.betablockers.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] + } + ], + "required": false, + "text": "Beta Blockers" + }, + { + "linkId": "medication.betablockers.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.betablockers.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.betablockers.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.betablockers.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.betablockers.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/19484/drugs/854901", + "code": "medications/19484/drugs/854901", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/19484/drugs/854905", + "code": "medications/19484/drugs/854905", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bisoprolol (Zebeta)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200032", + "code": "medications/20352/drugs/200032", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n12.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200033", + "code": "medications/20352/drugs/200033", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/686924", + "code": "medications/20352/drugs/686924", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n3.125 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/20352/drugs/200031", + "code": "medications/20352/drugs/200031", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol (Coreg)\n6.25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860510", + "code": "medications/668310/drugs/860510", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n10 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860516", + "code": "medications/668310/drugs/860516", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n20 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860522", + "code": "medications/668310/drugs/860522", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n40 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/668310/drugs/860532", + "code": "medications/668310/drugs/860532", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Carvedilol Phosphate (Coreg CR)\n80 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999031", + "code": "medications/221124/drugs/1999031", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866412", + "code": "medications/221124/drugs/866412", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n100 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999033", + "code": "medications/221124/drugs/1999033", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866419", + "code": "medications/221124/drugs/866419", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n200 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999035", + "code": "medications/221124/drugs/1999035", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866427", + "code": "medications/221124/drugs/866427", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n25 mg Extended Release Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/1999037", + "code": "medications/221124/drugs/1999037", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/221124/drugs/866436", + "code": "medications/221124/drugs/866436", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Metoprolol Succinate (Toprol XL)\n50 mg Extended Release Oral Tablet" + } + } + ] + } + ], + "required": false, + "text": "Beta Blockers", + "enableWhen": [ + { + "question": "medication.betablockers.exists", + "operator": "=", + "answerCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + } + ] + }, + { + "linkId": "medication.rasi.exists", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.rasi.exists-description", + "type": "display", + "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", + "required": false + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.rasi.exists", + "type": "choice", + "text": "Do you take any medication from the above list?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "yes-changed", + "code": "yes-changed", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, changed since last update" + } + }, + { + "valueCoding": { + "id": "yes-unchanged", + "code": "yes-unchanged", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "Yes, unchanged since last update" + } + }, + { + "valueCoding": { + "id": "no", + "code": "no", + "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", + "display": "No" + } + } + ] + } + ], + "required": false, + "text": "Renin-Angiotensin System Inhibitors (RASI)" + }, + { + "linkId": "medication.rasi.page1", + "type": "group", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "page", + "display": "Page" + } + ], + "text": "Page" + } + } + ], + "item": [ + { + "linkId": "medication.rasi.description", + "type": "display", + "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", + "required": false + }, + { + "linkId": "medication.rasi.frequency", + "text": "Intake frequency (per day):", + "type": "decimal", + "required": true + }, + { + "linkId": "medication.rasi.quantity", + "text": "Pills/tablets per intake:", + "type": "decimal", + "required": true + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "valueCodeableConcept": { + "coding": [ + { + "system": "http://hl7.org/fhir/questionnaire-item-control", + "code": "radio-button", + "display": "Radio Button" + } + ] + } + } + ], + "linkId": "medication.rasi.drug", + "type": "choice", + "text": "Which pill/tablet do you take?", + "required": true, + "answerOption": [ + { + "valueCoding": { + "id": "medications/1091642/drugs/1091646", + "code": "medications/1091642/drugs/1091646", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1091642/drugs/1091652", + "code": "medications/1091642/drugs/1091652", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Azilsartan Medoxomil (Edarbi)\n80 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898687", + "code": "medications/18867/drugs/898687", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898690", + "code": "medications/18867/drugs/898690", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898719", + "code": "medications/18867/drugs/898719", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/18867/drugs/898723", + "code": "medications/18867/drugs/898723", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Benazepril (Lotensin)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/577776", + "code": "medications/214354/drugs/577776", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n16 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/639537", + "code": "medications/214354/drugs/639537", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n32 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/153822", + "code": "medications/214354/drugs/153822", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/214354/drugs/153823", + "code": "medications/214354/drugs/153823", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Candesartan (Atacand)\n8 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308962", + "code": "medications/1998/drugs/308962", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308963", + "code": "medications/1998/drugs/308963", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n12.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/317173", + "code": "medications/1998/drugs/317173", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1998/drugs/308964", + "code": "medications/1998/drugs/308964", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Captopril (Capoten)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858817", + "code": "medications/3827/drugs/858817", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858804", + "code": "medications/3827/drugs/858804", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858810", + "code": "medications/3827/drugs/858810", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/3827/drugs/858813", + "code": "medications/3827/drugs/858813", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Enalapril (Vasotec)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83515/drugs/310139", + "code": "medications/83515/drugs/310139", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n400 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83515/drugs/310140", + "code": "medications/83515/drugs/310140", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eprosartan (Teveten)\n600 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857169", + "code": "medications/227278/drugs/857169", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857183", + "code": "medications/227278/drugs/857183", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/227278/drugs/857187", + "code": "medications/227278/drugs/857187", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Fosinopril Sodium (Monopril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200095", + "code": "medications/83818/drugs/200095", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n150 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200096", + "code": "medications/83818/drugs/200096", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n300 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/83818/drugs/200094", + "code": "medications/83818/drugs/200094", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Irbesartan (Avapro)\n75 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/314076", + "code": "medications/29046/drugs/314076", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/311353", + "code": "medications/29046/drugs/311353", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/314077", + "code": "medications/29046/drugs/314077", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/205326", + "code": "medications/29046/drugs/205326", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n30 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/197884", + "code": "medications/29046/drugs/197884", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/29046/drugs/311354", + "code": "medications/29046/drugs/311354", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Lisinopril (Zestril)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979480", + "code": "medications/203160/drugs/979480", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979485", + "code": "medications/203160/drugs/979485", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/203160/drugs/979492", + "code": "medications/203160/drugs/979492", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Losartan Potassium (Cozaar)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/30131/drugs/1299896", + "code": "medications/30131/drugs/1299896", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n15 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/30131/drugs/1299897", + "code": "medications/30131/drugs/1299897", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Moexipril (Univasc)\n7.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349401", + "code": "medications/118463/drugs/349401", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349405", + "code": "medications/118463/drugs/349405", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/118463/drugs/349373", + "code": "medications/118463/drugs/349373", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Olmesartan Medoxomil (Benicar)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854984", + "code": "medications/54552/drugs/854984", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854988", + "code": "medications/54552/drugs/854988", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/54552/drugs/854925", + "code": "medications/54552/drugs/854925", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Perindopril (Aceon)\n8 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312748", + "code": "medications/35208/drugs/312748", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312749", + "code": "medications/35208/drugs/312749", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/314203", + "code": "medications/35208/drugs/314203", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35208/drugs/312750", + "code": "medications/35208/drugs/312750", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Quinapril (Accupril)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/845488", + "code": "medications/35296/drugs/845488", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/401965", + "code": "medications/35296/drugs/401965", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n1.25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/261962", + "code": "medications/35296/drugs/261962", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/401968", + "code": "medications/35296/drugs/401968", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/198188", + "code": "medications/35296/drugs/198188", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/251856", + "code": "medications/35296/drugs/251856", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n2.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/198189", + "code": "medications/35296/drugs/198189", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Capsule" + } + }, + { + "valueCoding": { + "id": "medications/35296/drugs/251857", + "code": "medications/35296/drugs/251857", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ramipril (Altace)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/2679793", + "code": "medications/1656339/drugs/2679793", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n15/16 mg Oral Pellet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656340", + "code": "medications/1656339/drugs/1656340", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n24/26 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/1656349", + "code": "medications/1656339/drugs/1656349", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n49/51 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1656339/drugs/2679800", + "code": "medications/1656339/drugs/2679800", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n6/6 mg Oral Pellet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.rasi.exists-description", - "type": "display", - "text": "Do you take any of the following medications?\n\nCaptopril (Capoten)\nEnalapril (Vasotec)\nBenazepril (Lotensin)\nLisinopril (Zestril)\nMoexipril (Univasc)\nQuinapril (Accupril)\nRamipril (Altace)\nTrandolapril (Mavik)\nPerindopril (Aceon)\nValsartan (Diovan)\nTelmisartan (Micardis)\nEprosartan (Teveten)\nIrbesartan (Avapro)\nOlmesartan Medoxomil (Benicar)\nLosartan Potassium (Cozaar)\nCandesartan (Atacand)\nFosinopril Sodium (Monopril)\nAzilsartan Medoxomil (Edarbi)\nSacubitril / Valsartan (Entresto)", - "required": false - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/1656339/drugs/1656354", + "code": "medications/1656339/drugs/1656354", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sacubitril / Valsartan (Entresto)\n97/103 mg Oral Tablet" } - } - ], - "linkId": "medication.rasi.exists", - "type": "choice", - "text": "Do you take any medication from the above list?", - "required": true, - "answerOption": [ + }, { "valueCoding": { - "id": "yes-changed", - "code": "yes-changed", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, changed since last update" + "id": "medications/73494/drugs/282755", + "code": "medications/73494/drugs/282755", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n20 mg Oral Tablet" } }, { "valueCoding": { - "id": "yes-unchanged", - "code": "yes-unchanged", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "Yes, unchanged since last update" + "id": "medications/73494/drugs/205304", + "code": "medications/73494/drugs/205304", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n40 mg Oral Tablet" } }, { "valueCoding": { - "id": "no", - "code": "no", - "system": "http://engagehf.bdh.stanford.edu/fhir/ValueSet/medication-exists-update", - "display": "No" + "id": "medications/73494/drugs/205305", + "code": "medications/73494/drugs/205305", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Telmisartan (Micardis)\n80 mg Oral Tablet" } - } - ] - } - ], - "required": false, - "text": "Renin-Angiotensin System Inhibitors (RASI)" - }, - { - "linkId": "medication.rasi.page1", - "type": "group", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "page", - "display": "Page" + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199353", + "code": "medications/38454/drugs/199353", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n1 mg Oral Tablet" } - ], - "text": "Page" - } - } - ], - "item": [ - { - "linkId": "medication.rasi.description", - "type": "display", - "text": "Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.", - "required": false - }, - { - "linkId": "medication.rasi.frequency", - "text": "Intake frequency (per day):", - "type": "decimal", - "required": true - }, - { - "linkId": "medication.rasi.quantity", - "text": "Pills/tablets per intake:", - "type": "decimal", - "required": true - }, - { - "extension": [ + }, { - "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://hl7.org/fhir/questionnaire-item-control", - "code": "radio-button", - "display": "Radio Button" - } - ] + "valueCoding": { + "id": "medications/38454/drugs/199351", + "code": "medications/38454/drugs/199351", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38454/drugs/199352", + "code": "medications/38454/drugs/199352", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Trandolapril (Mavik)\n4 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349201", + "code": "medications/69749/drugs/349201", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n160 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349200", + "code": "medications/69749/drugs/349200", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n320 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349483", + "code": "medications/69749/drugs/349483", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/69749/drugs/349199", + "code": "medications/69749/drugs/349199", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Valsartan (Diovan)\n80 mg Oral Tablet" } } - ], - "linkId": "medication.rasi.drug", - "type": "choice", - "text": "Which pill/tablet do you take?", - "required": true, - "answerOption": [] + ] } ], "required": false, @@ -3946,7 +6550,48 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] + "answerOption": [ + { + "valueCoding": { + "id": "medications/298869/drugs/351256", + "code": "medications/298869/drugs/351256", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/298869/drugs/351257", + "code": "medications/298869/drugs/351257", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Eplerenone (Inspra)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/198222", + "code": "medications/9997/drugs/198222", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/313096", + "code": "medications/9997/drugs/313096", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/9997/drugs/198223", + "code": "medications/9997/drugs/198223", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Spironolactone (Aldactone)\n50 mg Oral Tablet" + } + } + ] } ], "required": false, @@ -4095,7 +6740,96 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] + "answerOption": [ + { + "valueCoding": { + "id": "medications/2627044/drugs/2637859", + "code": "medications/2627044/drugs/2637859", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bexagliflozin (Brenzavvy)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1373458/drugs/1373463", + "code": "medications/1373458/drugs/1373463", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1373458/drugs/1373471", + "code": "medications/1373458/drugs/1373471", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Canagliflozin (Invokana)\n300 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1488564/drugs/1488569", + "code": "medications/1488564/drugs/1488569", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1488564/drugs/1488574", + "code": "medications/1488564/drugs/1488574", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Dapagliflozin (Farxiga)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1545653/drugs/1545658", + "code": "medications/1545653/drugs/1545658", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1545653/drugs/1545666", + "code": "medications/1545653/drugs/1545666", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Empagliflozin (Jardiance)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1992672/drugs/1992819", + "code": "medications/1992672/drugs/1992819", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n15 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1992672/drugs/1992810", + "code": "medications/1992672/drugs/1992810", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ertugliflozin (Steglatro)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/2638675/drugs/2638683", + "code": "medications/2638675/drugs/2638683", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n200 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/2638675/drugs/2638691", + "code": "medications/2638675/drugs/2638691", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Sotagliflozin (Inpefa)\n400 mg Oral Tablet" + } + } + ] } ], "required": false, @@ -4244,7 +6978,120 @@ "type": "choice", "text": "Which pill/tablet do you take?", "required": true, - "answerOption": [] + "answerOption": [ + { + "valueCoding": { + "id": "medications/1808/drugs/197417", + "code": "medications/1808/drugs/197417", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n0.5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1808/drugs/197418", + "code": "medications/1808/drugs/197418", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n1 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/1808/drugs/197419", + "code": "medications/1808/drugs/197419", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Bumetanide (Bumex)\n2 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4109/drugs/1251903", + "code": "medications/4109/drugs/1251903", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n25 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4109/drugs/1251907", + "code": "medications/4109/drugs/1251907", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Ethacrynic Acid (Edecrin)\n50 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/310429", + "code": "medications/4603/drugs/310429", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/313988", + "code": "medications/4603/drugs/313988", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/4603/drugs/197732", + "code": "medications/4603/drugs/197732", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Furosemide (Lasix)\n80 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198369", + "code": "medications/38413/drugs/198369", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n10 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198370", + "code": "medications/38413/drugs/198370", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n100 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198371", + "code": "medications/38413/drugs/198371", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n20 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/2589881", + "code": "medications/38413/drugs/2589881", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n40 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/198372", + "code": "medications/38413/drugs/198372", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n5 mg Oral Tablet" + } + }, + { + "valueCoding": { + "id": "medications/38413/drugs/2589885", + "code": "medications/38413/drugs/2589885", + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "display": "Torsemide (Soaanz)\n60 mg Oral Tablet" + } + } + ] } ], "required": false, diff --git a/functions/src/services/seeding/staticData/staticDataService.ts b/functions/src/services/seeding/staticData/staticDataService.ts index 8f95bb02..7de46b1b 100644 --- a/functions/src/services/seeding/staticData/staticDataService.ts +++ b/functions/src/services/seeding/staticData/staticDataService.ts @@ -271,7 +271,12 @@ export class StaticDataService extends SeedingService { Object.fromEntries( Object.entries(result.drugs).map(([key, value]) => [ key, - value.data, + Object.fromEntries( + Object.entries(value).map(([drugKey, drugValue]) => [ + drugKey, + drugValue.data, + ]), + ), ]), ), ) From 4b903831167ab62bb04231137f8a5ed75545c3b7 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 22:19:38 +0200 Subject: [PATCH 12/18] fix more tests --- functions/data/medications.json | 124 +++++++++--------- .../models/src/helpers/fhirSchemaConverter.ts | 14 +- functions/src/functions/deleteUser.test.ts | 9 +- functions/src/functions/enrollUser.test.ts | 18 ++- .../src/functions/updateStaticData.test.ts | 2 +- ...UpdateQuestionnaireResponseService.test.ts | 5 +- ...rationQuestionnaireResponseService.test.ts | 7 +- .../staticData/rxNorm/rxNormService.ts | 20 +-- 8 files changed, 112 insertions(+), 87 deletions(-) diff --git a/functions/data/medications.json b/functions/data/medications.json index 66552ca4..08d652ae 100644 --- a/functions/data/medications.json +++ b/functions/data/medications.json @@ -31,7 +31,7 @@ "id": "1998", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1998/drugs/308963", @@ -74,7 +74,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1998/drugs/308964", @@ -159,7 +159,7 @@ "id": "3827", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/3827/drugs/858813", @@ -202,7 +202,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/3827/drugs/858810", @@ -341,7 +341,7 @@ "id": "9997", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/9997/drugs/313096", @@ -384,7 +384,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/9997/drugs/313096", @@ -469,7 +469,7 @@ "id": "18867", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/18867/drugs/898723", @@ -512,7 +512,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/18867/drugs/898719", @@ -597,7 +597,7 @@ "id": "19484", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/19484/drugs/854905", @@ -640,7 +640,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/19484/drugs/854901", @@ -725,7 +725,7 @@ "id": "20352", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/20352/drugs/200031", @@ -768,7 +768,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/20352/drugs/200033", @@ -853,7 +853,7 @@ "id": "29046", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/29046/drugs/311353", @@ -896,7 +896,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/29046/drugs/197884", @@ -981,7 +981,7 @@ "id": "30131", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/30131/drugs/1299897", @@ -1024,7 +1024,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/30131/drugs/1299896", @@ -1109,7 +1109,7 @@ "id": "35208", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35208/drugs/312748", @@ -1152,7 +1152,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35208/drugs/314203", @@ -1237,7 +1237,7 @@ "id": "35296", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35296/drugs/401965", @@ -1280,7 +1280,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/35296/drugs/401968", @@ -1392,7 +1392,7 @@ "id": "38454", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/38454/drugs/199353", @@ -1435,7 +1435,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/38454/drugs/199352", @@ -1520,7 +1520,7 @@ "id": "54552", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/54552/drugs/854984", @@ -1563,7 +1563,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/54552/drugs/854925", @@ -1648,7 +1648,7 @@ "id": "69749", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/69749/drugs/349483", @@ -1691,7 +1691,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/69749/drugs/349201", @@ -1776,7 +1776,7 @@ "id": "73494", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/73494/drugs/205304", @@ -1819,7 +1819,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/73494/drugs/205305", @@ -1904,7 +1904,7 @@ "id": "83515", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83515/drugs/310139", @@ -1947,7 +1947,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83515/drugs/310139", @@ -2032,7 +2032,7 @@ "id": "83818", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83818/drugs/200094", @@ -2075,7 +2075,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/83818/drugs/200096", @@ -2160,7 +2160,7 @@ "id": "118463", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/118463/drugs/349373", @@ -2203,7 +2203,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/118463/drugs/349405", @@ -2288,7 +2288,7 @@ "id": "203160", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/203160/drugs/979485", @@ -2331,7 +2331,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/203160/drugs/979480", @@ -2416,7 +2416,7 @@ "id": "214354", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/214354/drugs/153822", @@ -2459,7 +2459,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/214354/drugs/639537", @@ -2544,7 +2544,7 @@ "id": "221124", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/221124/drugs/1999035", @@ -2587,7 +2587,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/221124/drugs/866419", @@ -2672,7 +2672,7 @@ "id": "227278", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/227278/drugs/857169", @@ -2715,7 +2715,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/227278/drugs/857187", @@ -2800,7 +2800,7 @@ "id": "298869", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/298869/drugs/351256", @@ -2843,7 +2843,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/298869/drugs/351257", @@ -2928,7 +2928,7 @@ "id": "668310", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/668310/drugs/860510", @@ -2971,7 +2971,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/668310/drugs/860532", @@ -3056,7 +3056,7 @@ "id": "1091642", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1091642/drugs/1091646", @@ -3099,7 +3099,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1091642/drugs/1091652", @@ -3184,7 +3184,7 @@ "id": "1373458", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1373458/drugs/1373463", @@ -3227,7 +3227,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1373458/drugs/1373463", @@ -3312,7 +3312,7 @@ "id": "1488564", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1488564/drugs/1488574", @@ -3355,7 +3355,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1488564/drugs/1488569", @@ -3440,7 +3440,7 @@ "id": "1545653", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1545653/drugs/1545658", @@ -3483,7 +3483,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1545653/drugs/1545658", @@ -3568,7 +3568,7 @@ "id": "1656339", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1656339/drugs/1656340", @@ -3620,7 +3620,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1656339/drugs/1656354", @@ -3738,7 +3738,7 @@ "id": "1992672", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1992672/drugs/1992810", @@ -3781,7 +3781,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/1992672/drugs/1992819", @@ -3866,7 +3866,7 @@ "id": "2627044", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2627044/drugs/2637859", @@ -3909,7 +3909,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2627044/drugs/2637859", @@ -3994,7 +3994,7 @@ "id": "2638675", "contained": [ { - "id": "#minimumDailyDose", + "id": "minimumDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2638675/drugs/2638683", @@ -4037,7 +4037,7 @@ ] }, { - "id": "#targetDailyDose", + "id": "targetDailyDose", "resourceType": "MedicationRequest", "medicationReference": { "reference": "medications/2638675/drugs/2638691", diff --git a/functions/models/src/helpers/fhirSchemaConverter.ts b/functions/models/src/helpers/fhirSchemaConverter.ts index e35745fe..213dbed2 100644 --- a/functions/models/src/helpers/fhirSchemaConverter.ts +++ b/functions/models/src/helpers/fhirSchemaConverter.ts @@ -33,12 +33,12 @@ export class FHIRSchemaConverter< // Methods decode(input: unknown) { - return this.schema.parse(removeNulls(input)) + return this.schema.parse(removeNullOrUndefinedValues(input)) } encode(input: FHIRResourceType): unknown { /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ - const returnValue = input.data as any + const returnValue = removeNullOrUndefinedValues(input.data) as any for (const key of this.nullProperties) { /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ @@ -49,14 +49,16 @@ export class FHIRSchemaConverter< } } -function removeNulls(value: unknown): unknown { +function removeNullOrUndefinedValues(value: unknown): unknown { if (Array.isArray(value)) { - return value.map(removeNulls).filter((v) => v !== null) + return value + .map(removeNullOrUndefinedValues) + .filter((v) => v !== null && v !== undefined) } else if (value !== null && typeof value === 'object') { return Object.fromEntries( Object.entries(value) - .filter(([, v]) => v !== null) - .map(([k, v]) => [k, removeNulls(v)]), + .filter(([, v]) => v !== null && v !== undefined) + .map(([k, v]) => [k, removeNullOrUndefinedValues(v)]), ) } else { return value diff --git a/functions/src/functions/deleteUser.test.ts b/functions/src/functions/deleteUser.test.ts index 585d2b32..5526d5a3 100644 --- a/functions/src/functions/deleteUser.test.ts +++ b/functions/src/functions/deleteUser.test.ts @@ -70,7 +70,14 @@ describeWithEmulators('function: deleteUser', (env) => { created: new Date('2020-01-01').toISOString(), start: new Date('2020-01-01').toISOString(), end: new Date('2020-01-01').toISOString(), - participant: [], + participant: [ + { + status: 'accepted', + actor: { + reference: `users/${userId}`, + }, + }, + ], }) const appointmentRef = env.collections.userAppointments(userId).doc() await appointmentRef.set(appointment) diff --git a/functions/src/functions/enrollUser.test.ts b/functions/src/functions/enrollUser.test.ts index 32d4955b..6e12f387 100644 --- a/functions/src/functions/enrollUser.test.ts +++ b/functions/src/functions/enrollUser.test.ts @@ -69,7 +69,14 @@ describeWithEmulators('function: enrollUser', (env) => { created: new Date('2023-12-24').toISOString(), start: new Date('2023-12-31').toISOString(), end: new Date('2024-01-01').toISOString(), - participant: [], + participant: [ + { + status: 'accepted', + actor: { + reference: `users/${invitationRef.id}`, + }, + }, + ], }) await env.collections @@ -185,7 +192,14 @@ describeWithEmulators('function: enrollUser', (env) => { created: new Date('2023-12-24').toISOString(), start: new Date('2023-12-31').toISOString(), end: new Date('2024-01-01').toISOString(), - participant: [], + participant: [ + { + status: 'accepted', + actor: { + reference: `users/${invitationRef.id}`, + }, + }, + ], }) await env.collections diff --git a/functions/src/functions/updateStaticData.test.ts b/functions/src/functions/updateStaticData.test.ts index b962f2ce..aadfaacb 100644 --- a/functions/src/functions/updateStaticData.test.ts +++ b/functions/src/functions/updateStaticData.test.ts @@ -43,7 +43,7 @@ describeWithEmulators('function: updateStaticData', (env) => { fs.readFileSync('data/medications.json', 'utf8'), ) for (const medication of medications.docs) { - expect(simplify(medication.data())).toStrictEqual( + expect(simplify(medication.data().data)).toStrictEqual( medicationsJson[medication.id], ) } diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts index 03d73ad2..fbddd60b 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts @@ -180,7 +180,7 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { }), FHIRMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan49_51, - frequencyPerDay: 2.3, + frequencyPerDay: 2, quantity: 0.5, }), ] @@ -220,7 +220,7 @@ describeWithEmulators('DataUpdateQuestionnaireResponseService', (env) => { sacubitrilValsartan?.dosageInstruction?.at(0) expect( sacubitrilValsartanDosageInstruction?.timing?.repeat?.frequency, - ).toBe(2.3) + ).toBe(2) expect(sacubitrilValsartanDosageInstruction?.doseAndRate?.length).toBe(1) const sacubitrilValsartanDoseAndRate = sacubitrilValsartanDosageInstruction?.doseAndRate?.at(0) @@ -401,6 +401,7 @@ const postAppointmentResponseAndroid = { resourceType: 'QuestionnaireResponse', questionnaire: 'http://spezi.health/fhir/questionnaire/engagehf-post-appointment', + status: 'completed', item: [ { linkId: 'lab.2160-0.exists', diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts index ea6e9433..4cd77131 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts @@ -164,7 +164,7 @@ describeWithEmulators('RegistrationQuestionnaireResponseService', (env) => { expect(benazepril).toBeDefined() expect(benazepril?.dosageInstruction?.length).toBe(1) const benazeprilDosageInstruction = benazepril?.dosageInstruction?.at(0) - expect(benazeprilDosageInstruction?.timing?.repeat?.frequency).toBe(2.3) + expect(benazeprilDosageInstruction?.timing?.repeat?.frequency).toBe(2) expect(benazeprilDosageInstruction?.doseAndRate?.length).toBe(1) const benazeprilDoseAndRate = benazeprilDosageInstruction?.doseAndRate?.at(0) @@ -360,6 +360,7 @@ const registrationResponseApple = { const registrationResponseAndroid = { resourceType: 'QuestionnaireResponse', questionnaire: 'http://spezi.health/fhir/questionnaire/engagehf-registration', + status: 'completed', item: [ { linkId: 'de981575-bd5b-4d84-95bb-35ed6c7f5923', @@ -591,7 +592,7 @@ const registrationResponseAndroid = { text: 'Intake frequency (per day):', answer: [ { - valueDecimal: 2.3, + valueDecimal: 2, }, ], }, @@ -681,7 +682,7 @@ const registrationResponseAndroid = { text: 'Intake frequency (per day):', answer: [ { - valueDecimal: 3.0, + valueDecimal: 3, }, ], }, diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts index e166069a..abaa1b36 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts @@ -196,9 +196,16 @@ export class RxNormService { }) } if (minimumDailyDose) { - const containedId = `#minimumDailyDose` + const containedId = 'minimumDailyDose' const containedDisplay = drugs[minimumDailyDose.drug].data.code?.coding?.at(0)?.display + extensions.push({ + url: FHIRExtensionUrl.minimumDailyDose, + valueReference: { + reference: '#' + containedId, + display: containedDisplay, + }, + }) containedResources.push( FHIRMedicationRequest.create({ id: containedId, @@ -225,22 +232,15 @@ export class RxNormService { quantity: minimumDailyDose.quantity, }).data, ) - extensions.push({ - url: FHIRExtensionUrl.minimumDailyDose, - valueReference: { - reference: containedId, - display: containedDisplay, - }, - }) } if (targetDailyDose) { - const containedId = `#targetDailyDose` + const containedId = `targetDailyDose` const containedDisplay = drugs[targetDailyDose.drug].data.code?.coding?.at(0)?.display extensions.push({ url: FHIRExtensionUrl.targetDailyDose, valueReference: { - reference: containedId, + reference: '#' + containedId, display: containedDisplay, }, }) From b9cf3da785d8a8fe0ab997c9435d6c0677fecb58 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 22:37:30 +0200 Subject: [PATCH 13/18] update --- .../src/services/recommendation/recommendationService.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/functions/src/services/recommendation/recommendationService.ts b/functions/src/services/recommendation/recommendationService.ts index 095985ee..ab9c7166 100644 --- a/functions/src/services/recommendation/recommendationService.ts +++ b/functions/src/services/recommendation/recommendationService.ts @@ -176,7 +176,9 @@ export class RecommendationService { output.recommendedMedication ? { reference: output.recommendedMedication, - display: recommendedMedication?.content.displayName, + ...(recommendedMedication && { + display: recommendedMedication.content.displayName, + }), } : undefined, displayInformation: { From 30f0449097fce4c9d7193d56359c4878d083c785 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 23:09:10 +0200 Subject: [PATCH 14/18] Make sure frequency is an integer in questionnaire responses --- functions/data/questionnaires.json | 30 +++++++++---------- .../questionnaireFactory.ts | 19 ++++++++++-- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/functions/data/questionnaires.json b/functions/data/questionnaires.json index f74b66d6..07243025 100644 --- a/functions/data/questionnaires.json +++ b/functions/data/questionnaires.json @@ -1446,7 +1446,7 @@ { "linkId": "medication.betablockers.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -1732,7 +1732,7 @@ { "linkId": "medication.rasi.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -2434,7 +2434,7 @@ { "linkId": "medication.mra.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -2616,7 +2616,7 @@ { "linkId": "medication.sglt2i.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -2846,7 +2846,7 @@ { "linkId": "medication.diuretics.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -3466,7 +3466,7 @@ { "linkId": "medication.betablockers.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -3760,7 +3760,7 @@ { "linkId": "medication.rasi.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -4470,7 +4470,7 @@ { "linkId": "medication.mra.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -4660,7 +4660,7 @@ { "linkId": "medication.sglt2i.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -4898,7 +4898,7 @@ { "linkId": "medication.diuretics.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -5518,7 +5518,7 @@ { "linkId": "medication.betablockers.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -5812,7 +5812,7 @@ { "linkId": "medication.rasi.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -6522,7 +6522,7 @@ { "linkId": "medication.mra.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -6712,7 +6712,7 @@ { "linkId": "medication.sglt2i.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { @@ -6950,7 +6950,7 @@ { "linkId": "medication.diuretics.frequency", "text": "Intake frequency (per day):", - "type": "decimal", + "type": "integer", "required": true }, { diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts index 11fa3fab..9fc12331 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts @@ -334,7 +334,7 @@ export abstract class QuestionnaireFactory { linkId: linkIds.description, text: 'Please enter which drug you are taking, how often you take it per day and how many pills/tablets you take per intake.\n\nDo not enter the total amount of pills/tablets you take per day.', }), - this.decimalItem({ + this.integerItem({ linkId: linkIds.frequency, text: 'Intake frequency (per day):', }), @@ -414,7 +414,6 @@ export abstract class QuestionnaireFactory { linkId: input.linkId, text: input.text, type: 'decimal', - // unit: input.unit, required: input.required ?? true, } } @@ -432,6 +431,22 @@ export abstract class QuestionnaireFactory { } } + protected integerItem(input: { + linkId: string + text: string + required?: boolean + unit?: string + minValue?: number + maxValue?: number + }): QuestionnaireItem { + return { + linkId: input.linkId, + text: input.text, + type: 'integer', + required: input.required ?? true, + } + } + protected pageItem(input: { linkId: string text: string From 5b0a199ce7382e276f08a521cd0a5adb1122f131 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Mon, 28 Jul 2025 23:12:55 +0200 Subject: [PATCH 15/18] Set frequency to be an integer --- .../dataUpdateQuestionnaireResponseService.test.ts | 6 +++--- .../questionnaireResponse/questionnaireResponseService.ts | 2 +- .../registrationQuestionnaireResponseService.test.ts | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts index fbddd60b..5cb285a3 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts @@ -319,7 +319,7 @@ const dataUpdateResponseApple = { }, ], }, - { linkId: 'medication.rasi.frequency', answer: [{ valueDecimal: 2 }] }, + { linkId: 'medication.rasi.frequency', answer: [{ valueInteger: 2 }] }, { linkId: 'medication.rasi.quantity', answer: [{ valueDecimal: 1.5 }] }, { answer: [ @@ -359,7 +359,7 @@ const dataUpdateResponseApple = { }, ], }, - { linkId: 'medication.sglt2i.frequency', answer: [{ valueDecimal: 2 }] }, + { linkId: 'medication.sglt2i.frequency', answer: [{ valueInteger: 2 }] }, { answer: [{ valueDecimal: 1.34 }], linkId: 'medication.sglt2i.quantity' }, { answer: [ @@ -644,7 +644,7 @@ const postAppointmentResponseAndroid = { text: 'Intake frequency (per day):', answer: [ { - valueDecimal: 3.0, + valueInteger: 3.0, }, ], }, diff --git a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts index 70b8bdc1..f9d82c69 100644 --- a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts @@ -179,7 +179,7 @@ export abstract class QuestionnaireResponseService { ?.answer?.at(0)?.valueDecimal const frequency = response .leafResponseItem(linkIds.frequency) - ?.answer?.at(0)?.valueDecimal + ?.answer?.at(0)?.valueInteger if ( drugCoding?.code === undefined || diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts index 4cd77131..4c036447 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts @@ -279,7 +279,7 @@ const registrationResponseApple = { }, ], }, - { linkId: 'medication.rasi.frequency', answer: [{ valueDecimal: 2 }] }, + { linkId: 'medication.rasi.frequency', answer: [{ valueInteger: 2 }] }, { linkId: 'medication.rasi.quantity', answer: [{ valueDecimal: 1.5 }] }, { answer: [ @@ -319,7 +319,7 @@ const registrationResponseApple = { }, ], }, - { linkId: 'medication.sglt2i.frequency', answer: [{ valueDecimal: 2 }] }, + { linkId: 'medication.sglt2i.frequency', answer: [{ valueInteger: 2 }] }, { answer: [{ valueDecimal: 1.34 }], linkId: 'medication.sglt2i.quantity' }, { answer: [ @@ -592,7 +592,7 @@ const registrationResponseAndroid = { text: 'Intake frequency (per day):', answer: [ { - valueDecimal: 2, + valueInteger: 2, }, ], }, @@ -682,7 +682,7 @@ const registrationResponseAndroid = { text: 'Intake frequency (per day):', answer: [ { - valueDecimal: 3, + valueInteger: 3, }, ], }, From 58e30365e9084fc81e37da0716c80519f37835d8 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Thu, 4 Sep 2025 19:21:35 +0200 Subject: [PATCH 16/18] lint:fix --- functions/models/src/codes/references.ts | 14 +- .../models/src/fhir/fhirAllergyIntolerance.ts | 20 +-- functions/models/src/fhir/fhirAppointment.ts | 34 ++-- functions/models/src/fhir/fhirConverters.ts | 32 ++-- functions/models/src/fhir/fhirMedication.ts | 50 +++--- .../models/src/fhir/fhirMedicationRequest.ts | 28 +-- functions/models/src/fhir/fhirObservation.ts | 56 +++--- .../models/src/fhir/fhirQuestionnaire.ts | 4 +- .../src/fhir/fhirQuestionnaireResponse.ts | 28 +-- functions/models/src/fhir/fhirResource.ts | 32 ++-- functions/models/src/functions/customSeed.ts | 8 +- .../src/functions/exportHealthSummary.ts | 2 +- .../models/src/functions/unregisterDevice.ts | 4 +- functions/models/src/helpers/dateConverter.ts | 26 +-- .../models/src/helpers/fhirSchemaConverter.ts | 36 ++-- functions/models/src/helpers/optionalish.ts | 16 +- .../models/src/helpers/schemaConverter.ts | 4 +- .../models/src/types/observationQuantity.ts | 6 +- .../src/types/userMedicationRecommendation.ts | 26 +-- functions/src/functions/deleteUser.test.ts | 26 +-- functions/src/functions/enrollUser.test.ts | 46 ++--- functions/src/functions/helpers.ts | 26 +-- .../onUserAppointmentWritten.test.ts | 4 +- .../src/functions/onUserAppointmentWritten.ts | 18 +- .../onUserMedicationRequestWritten.ts | 20 +-- .../onUserQuestionnaireResponseWritten.ts | 20 +-- functions/src/healthSummary/generate.ts | 10 +- functions/src/healthSummary/generateChart.ts | 6 +- functions/src/models/healthSummaryData.ts | 10 +- .../src/models/medicationRequestContext.ts | 22 +-- .../defaultContraindicationService.test.ts | 30 ++-- .../defaultContraindicationService.ts | 22 +-- .../src/services/database/collections.ts | 62 ++++--- .../services/database/databaseConverter.ts | 44 ++--- .../databaseHealthSummaryService.test.ts | 8 +- .../medication/databaseMedicationService.ts | 37 ++-- .../services/medication/medicationService.ts | 12 +- .../patient/databasePatientService.ts | 18 +- .../services/patient/patientService.mock.ts | 18 +- .../src/services/patient/patientService.ts | 28 +-- .../createKccqQuestionnaireResponse.ts | 4 +- ...UpdateQuestionnaireResponseService.test.ts | 92 +++++----- .../dataUpdateQuestionnaireResponseService.ts | 8 +- .../egfr/egfrCalculator.test.ts | 8 +- .../kccqQuestionnaireResponseService.ts | 4 +- .../questionnaireResponseService.ts | 20 +-- ...rationQuestionnaireResponseService.test.ts | 84 ++++----- ...egistrationQuestionnaireResponseService.ts | 8 +- .../recommendationService.test.ts | 52 +++--- .../recommendation/recommendationService.ts | 38 ++-- .../recommenders/diureticRecommender.test.ts | 4 +- .../recommenders/recommender.ts | 10 +- .../seeding/debugData/debugDataService.ts | 22 +-- .../src/services/seeding/seedingService.ts | 10 +- .../kccqQuestionnaireFactory.ts | 11 +- .../questionnaireFactory.ts | 166 +++++++++--------- .../registrationQuestionnaireFactory.ts | 2 +- .../seeding/staticData/rxNorm/rxNormApi.ts | 8 +- .../staticData/rxNorm/rxNormService.test.ts | 8 +- .../staticData/rxNorm/rxNormService.ts | 64 +++---- .../seeding/staticData/staticDataService.ts | 8 +- .../services/trigger/triggerService.test.ts | 6 +- .../src/services/trigger/triggerService.ts | 10 +- functions/src/tests/mocks/questionnaire.ts | 104 +++++------ .../src/tests/mocks/recommendationVitals.ts | 4 +- 65 files changed, 837 insertions(+), 831 deletions(-) diff --git a/functions/models/src/codes/references.ts b/functions/models/src/codes/references.ts index fcb6f595..e59df3f5 100644 --- a/functions/models/src/codes/references.ts +++ b/functions/models/src/codes/references.ts @@ -7,13 +7,13 @@ // export enum UserObservationCollection { - bodyWeight = 'bodyWeightObservations', - bloodPressure = 'bloodPressureObservations', - creatinine = 'creatinineObservations', - dryWeight = 'dryWeightObservations', - eGfr = 'eGfrObservations', - heartRate = 'heartRateObservations', - potassium = 'potassiumObservations', + bodyWeight = "bodyWeightObservations", + bloodPressure = "bloodPressureObservations", + creatinine = "creatinineObservations", + dryWeight = "dryWeightObservations", + eGfr = "eGfrObservations", + heartRate = "heartRateObservations", + potassium = "potassiumObservations", } export enum MedicationClassReference { diff --git a/functions/models/src/fhir/fhirAllergyIntolerance.ts b/functions/models/src/fhir/fhirAllergyIntolerance.ts index 6d5c49e8..46f43de7 100644 --- a/functions/models/src/fhir/fhirAllergyIntolerance.ts +++ b/functions/models/src/fhir/fhirAllergyIntolerance.ts @@ -6,22 +6,22 @@ // SPDX-License-Identifier: MIT // -import { type AllergyIntolerance } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' -import { CodingSystem } from '../codes/codes.js' -import { type MedicationReference } from '../codes/references.js' +import { type AllergyIntolerance } from "fhir/r4b.js"; +import { FHIRResource } from "./fhirResource.js"; +import { CodingSystem } from "../codes/codes.js"; +import { type MedicationReference } from "../codes/references.js"; export class FHIRAllergyIntolerance extends FHIRResource { // Static Functions static create(input: { - type?: AllergyIntolerance['type'] - criticality?: AllergyIntolerance['criticality'] - reference: MedicationReference - userId?: string + type?: AllergyIntolerance["type"]; + criticality?: AllergyIntolerance["criticality"]; + reference: MedicationReference; + userId?: string; }): FHIRAllergyIntolerance { return new FHIRAllergyIntolerance({ - resourceType: 'AllergyIntolerance', + resourceType: "AllergyIntolerance", patient: { reference: input.userId ? `users/${input.userId}` : undefined, }, @@ -41,6 +41,6 @@ export class FHIRAllergyIntolerance extends FHIRResource { // Computed Properties get rxNormCodes(): string[] { - return this.codes(this.data.code, { system: CodingSystem.rxNorm }) + return this.codes(this.data.code, { system: CodingSystem.rxNorm }); } } diff --git a/functions/models/src/fhir/fhirAppointment.ts b/functions/models/src/fhir/fhirAppointment.ts index 8d54b7e5..b7dddf60 100644 --- a/functions/models/src/fhir/fhirAppointment.ts +++ b/functions/models/src/fhir/fhirAppointment.ts @@ -6,24 +6,24 @@ // SPDX-License-Identifier: MIT // -import { type Appointment } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' -import { FHIRExtensionUrl } from '../codes/codes.js' -import { compactMap } from '../helpers/array.js' +import { type Appointment } from "fhir/r4b.js"; +import { FHIRResource } from "./fhirResource.js"; +import { FHIRExtensionUrl } from "../codes/codes.js"; +import { compactMap } from "../helpers/array.js"; export class FHIRAppointment extends FHIRResource { // Static Functions static create(input: { - userId: string - created: Date - status?: Appointment['status'] - start: Date - durationInMinutes: number + userId: string; + created: Date; + status?: Appointment["status"]; + start: Date; + durationInMinutes: number; }): FHIRAppointment { return new FHIRAppointment({ - resourceType: 'Appointment', - status: input.status ?? 'booked', + resourceType: "Appointment", + status: input.status ?? "booked", created: input.created.toISOString(), start: input.start.toISOString(), end: new Date( @@ -31,7 +31,7 @@ export class FHIRAppointment extends FHIRResource { ).toISOString(), participant: [ { - status: 'accepted', + status: "accepted", actor: { reference: `users/${input.userId}`, }, @@ -43,19 +43,19 @@ export class FHIRAppointment extends FHIRResource { // Computed Properties get startDate(): Date | undefined { - return this.data.start ? new Date(this.data.start) : undefined + return this.data.start ? new Date(this.data.start) : undefined; } set startDate(date: Date | undefined) { - this.data.start = date?.toISOString() + this.data.start = date?.toISOString(); } get endDate(): Date | undefined { - return this.data.end ? new Date(this.data.end) : undefined + return this.data.end ? new Date(this.data.end) : undefined; } set endDate(date: Date | undefined) { - this.data.end = date?.toISOString() + this.data.end = date?.toISOString(); } get providerNames(): string[] { @@ -64,4 +64,4 @@ export class FHIRAppointment extends FHIRResource { (extension) => extension.valueString, ); } -} \ No newline at end of file +} diff --git a/functions/models/src/fhir/fhirConverters.ts b/functions/models/src/fhir/fhirConverters.ts index 00aadb0c..4ce227a3 100644 --- a/functions/models/src/fhir/fhirConverters.ts +++ b/functions/models/src/fhir/fhirConverters.ts @@ -14,15 +14,15 @@ import { observationSchema, questionnaireSchema, questionnaireResponseSchema, -} from '@stanfordspezi/spezi-firebase-fhir' -import { FHIRAllergyIntolerance } from './fhirAllergyIntolerance.js' -import { FHIRAppointment } from './fhirAppointment.js' -import { FHIRMedication } from './fhirMedication.js' -import { FHIRMedicationRequest } from './fhirMedicationRequest.js' -import { FHIRObservation } from './fhirObservation.js' -import { FHIRQuestionnaire } from './fhirQuestionnaire.js' -import { FHIRQuestionnaireResponse } from './fhirQuestionnaireResponse.js' -import { FHIRSchemaConverter } from '../helpers/fhirSchemaConverter.js' +} from "@stanfordspezi/spezi-firebase-fhir"; +import { FHIRAllergyIntolerance } from "./fhirAllergyIntolerance.js"; +import { FHIRAppointment } from "./fhirAppointment.js"; +import { FHIRMedication } from "./fhirMedication.js"; +import { FHIRMedicationRequest } from "./fhirMedicationRequest.js"; +import { FHIRObservation } from "./fhirObservation.js"; +import { FHIRQuestionnaire } from "./fhirQuestionnaire.js"; +import { FHIRQuestionnaireResponse } from "./fhirQuestionnaireResponse.js"; +import { FHIRSchemaConverter } from "../helpers/fhirSchemaConverter.js"; export const fhirAllergyIntoleranceConverter = new FHIRSchemaConverter( @@ -32,21 +32,21 @@ export const fhirAllergyIntoleranceConverter = { nullProperties: [], }, - ) + ); export const fhirAppointmentConverter = new FHIRSchemaConverter( appointmentSchema.transform((data) => new FHIRAppointment(data)), { nullProperties: [], }, - ) + ); export const fhirMedicationConverter = new FHIRSchemaConverter( medicationSchema.transform((data) => new FHIRMedication(data)), { nullProperties: [], }, -) +); export const fhirMedicationRequestConverter = new FHIRSchemaConverter( @@ -56,7 +56,7 @@ export const fhirMedicationRequestConverter = { nullProperties: [], }, - ) + ); export const fhirObservationConverter = new FHIRSchemaConverter( @@ -64,7 +64,7 @@ export const fhirObservationConverter = { nullProperties: [], }, - ) + ); export const fhirQuestionnaireConverter = new FHIRSchemaConverter( @@ -72,7 +72,7 @@ export const fhirQuestionnaireConverter = { nullProperties: [], }, - ) + ); export const fhirQuestionnaireResponseConverter = new FHIRSchemaConverter( @@ -82,4 +82,4 @@ export const fhirQuestionnaireResponseConverter = { nullProperties: [], }, - ) + ); diff --git a/functions/models/src/fhir/fhirMedication.ts b/functions/models/src/fhir/fhirMedication.ts index 7b9d8c15..cf5092e3 100644 --- a/functions/models/src/fhir/fhirMedication.ts +++ b/functions/models/src/fhir/fhirMedication.ts @@ -10,11 +10,11 @@ import { type Medication, type MedicationRequest, type Reference, -} from 'fhir/r4b.js' -import { FHIRMedicationRequest } from './fhirMedicationRequest.js' -import { FHIRResource } from './fhirResource.js' -import { CodingSystem, FHIRExtensionUrl } from '../codes/codes.js' -import { QuantityUnit } from '../codes/quantityUnit.js' +} from "fhir/r4b.js"; +import { FHIRMedicationRequest } from "./fhirMedicationRequest.js"; +import { FHIRResource } from "./fhirResource.js"; +import { CodingSystem, FHIRExtensionUrl } from "../codes/codes.js"; +import { QuantityUnit } from "../codes/quantityUnit.js"; export class FHIRMedication extends FHIRResource { // Computed Properties @@ -25,7 +25,7 @@ export class FHIRMedication extends FHIRResource { this.data.code?.coding?.find( (coding) => coding.system === CodingSystem.rxNorm, )?.display - ) + ); } get brandNames(): string[] { @@ -42,44 +42,44 @@ export class FHIRMedication extends FHIRResource { get minimumDailyDoseRequest(): MedicationRequest | undefined { const reference = this.extensionsWithUrl( FHIRExtensionUrl.minimumDailyDose, - ).at(0)?.valueReference?.reference - if (!reference) return undefined - return this.containedResource(reference.substring(1)) + ).at(0)?.valueReference?.reference; + if (!reference) return undefined; + return this.containedResource(reference.substring(1)); } get minimumDailyDose(): number[] | undefined { - const request = this.minimumDailyDoseRequest - if (!request) return undefined - const requestResource = new FHIRMedicationRequest(request) + const request = this.minimumDailyDoseRequest; + if (!request) return undefined; + const requestResource = new FHIRMedicationRequest(request); return requestResource .extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) .map((extension) => extension.valueQuantity) .flatMap((quantity) => { - const value = QuantityUnit.mg.valueOf(quantity) - return value ? [value] : [] - }) + const value = QuantityUnit.mg.valueOf(quantity); + return value ? [value] : []; + }); } get targetDailyDoseRequest(): MedicationRequest | undefined { const reference = this.extensionsWithUrl( FHIRExtensionUrl.targetDailyDose, - ).at(0)?.valueReference?.reference - if (!reference) return undefined - return this.containedResource(reference.substring(1)) + ).at(0)?.valueReference?.reference; + if (!reference) return undefined; + return this.containedResource(reference.substring(1)); } get targetDailyDose(): number[] | undefined { - const request = this.targetDailyDoseRequest - if (!request) return undefined - const requestResource = new FHIRMedicationRequest(request) + const request = this.targetDailyDoseRequest; + if (!request) return undefined; + const requestResource = new FHIRMedicationRequest(request); const result = requestResource .extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) .map((extension) => extension.valueQuantity) .flatMap((quantity) => { - const value = QuantityUnit.mg.valueOf(quantity) - return value ? [value] : [] - }) - return result + const value = QuantityUnit.mg.valueOf(quantity); + return value ? [value] : []; + }); + return result; } get rxNormCode(): string | undefined { diff --git a/functions/models/src/fhir/fhirMedicationRequest.ts b/functions/models/src/fhir/fhirMedicationRequest.ts index 8b82aa0c..fea59fae 100644 --- a/functions/models/src/fhir/fhirMedicationRequest.ts +++ b/functions/models/src/fhir/fhirMedicationRequest.ts @@ -6,30 +6,30 @@ // SPDX-License-Identifier: MIT // -import { type Extension, type MedicationRequest } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' -import { QuantityUnit } from '../codes/quantityUnit.js' +import { type Extension, type MedicationRequest } from "fhir/r4b.js"; +import { FHIRResource } from "./fhirResource.js"; +import { QuantityUnit } from "../codes/quantityUnit.js"; export class FHIRMedicationRequest extends FHIRResource { // Static Functions static create(input: { - id?: string - medicationReference: string - medicationReferenceDisplay?: string - frequencyPerDay: number - quantity: number - extension?: Extension[] + id?: string; + medicationReference: string; + medicationReferenceDisplay?: string; + frequencyPerDay: number; + quantity: number; + extension?: Extension[]; }): FHIRMedicationRequest { return new FHIRMedicationRequest({ id: input.id, - resourceType: 'MedicationRequest', + resourceType: "MedicationRequest", medicationReference: { reference: input.medicationReference, display: input.medicationReferenceDisplay, }, - intent: 'plan', - status: 'draft', + intent: "plan", + status: "draft", subject: {}, extension: input.extension, dosageInstruction: [ @@ -38,7 +38,7 @@ export class FHIRMedicationRequest extends FHIRResource { repeat: { frequency: input.frequencyPerDay, period: 1, - periodUnit: 'd', + periodUnit: "d", }, }, doseAndRate: [ @@ -48,6 +48,6 @@ export class FHIRMedicationRequest extends FHIRResource { ], }, ], - }) + }); } } diff --git a/functions/models/src/fhir/fhirObservation.ts b/functions/models/src/fhir/fhirObservation.ts index c10950da..d0caf245 100644 --- a/functions/models/src/fhir/fhirObservation.ts +++ b/functions/models/src/fhir/fhirObservation.ts @@ -6,11 +6,11 @@ // SPDX-License-Identifier: MIT // -import { type Coding, type Observation, type Reference } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' -import { CodingSystem, LoincCode } from '../codes/codes.js' -import { QuantityUnit } from '../codes/quantityUnit.js' -import { type ObservationQuantity } from '../types/observationQuantity.js' +import { type Coding, type Observation, type Reference } from "fhir/r4b.js"; +import { FHIRResource } from "./fhirResource.js"; +import { CodingSystem, LoincCode } from "../codes/codes.js"; +import { QuantityUnit } from "../codes/quantityUnit.js"; +import { type ObservationQuantity } from "../types/observationQuantity.js"; export class FHIRObservation extends FHIRResource { // Static Functions @@ -40,9 +40,9 @@ export class FHIRObservation extends FHIRResource { diastolic: number; }): FHIRObservation { return new FHIRObservation({ - resourceType: 'Observation', + resourceType: "Observation", id: input.id, - status: 'final', + status: "final", code: { text: this.loincDisplay.get(LoincCode.bloodPressure), coding: [ @@ -94,21 +94,21 @@ export class FHIRObservation extends FHIRResource { }, ], effectiveDateTime: input.date.toISOString(), - }) + }); } static createSimple(input: { - id: string - date: Date - value: number - unit: QuantityUnit - code: LoincCode - derivedFrom?: Reference[] + id: string; + date: Date; + value: number; + unit: QuantityUnit; + code: LoincCode; + derivedFrom?: Reference[]; }): FHIRObservation { return new FHIRObservation({ - resourceType: 'Observation', + resourceType: "Observation", id: input.id, - status: 'final', + status: "final", code: { text: this.loincDisplay.get(input.code) ?? undefined, coding: [ @@ -208,24 +208,24 @@ export class FHIRObservation extends FHIRResource { private observationQuantities( options: { - unit: QuantityUnit - component?: Coding + unit: QuantityUnit; + component?: Coding; } & Coding, ): ObservationQuantity[] { - const result: ObservationQuantity[] = [] - if (!this.containsCoding(this.data.code, [options])) return result + const result: ObservationQuantity[] = []; + if (!this.containsCoding(this.data.code, [options])) return result; const date = this.data.effectiveDateTime ?? this.data.effectiveInstant ?? this.data.effectivePeriod?.start ?? - this.data.effectivePeriod?.end - if (!date) return result + this.data.effectivePeriod?.end; + if (!date) return result; if (options.component) { for (const component of this.data.component ?? []) { - if (!this.containsCoding(component.code, [options.component])) continue - const value = options.unit.valueOf(component.valueQuantity) - if (!value) continue + if (!this.containsCoding(component.code, [options.component])) continue; + const value = options.unit.valueOf(component.valueQuantity); + if (!value) continue; result.push({ date: new Date(date), value: value, @@ -233,9 +233,9 @@ export class FHIRObservation extends FHIRResource { }); } } else { - const value = options.unit.valueOf(this.data.valueQuantity) - if (!value) return result - result.push({ date: new Date(date), value: value, unit: options.unit }) + const value = options.unit.valueOf(this.data.valueQuantity); + if (!value) return result; + result.push({ date: new Date(date), value: value, unit: options.unit }); } return result; } diff --git a/functions/models/src/fhir/fhirQuestionnaire.ts b/functions/models/src/fhir/fhirQuestionnaire.ts index 0d52fee4..db5095c8 100644 --- a/functions/models/src/fhir/fhirQuestionnaire.ts +++ b/functions/models/src/fhir/fhirQuestionnaire.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { type Questionnaire } from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' +import { type Questionnaire } from "fhir/r4b.js"; +import { FHIRResource } from "./fhirResource.js"; export class FHIRQuestionnaire extends FHIRResource {} diff --git a/functions/models/src/fhir/fhirQuestionnaireResponse.ts b/functions/models/src/fhir/fhirQuestionnaireResponse.ts index 6d2f5e5e..b6e4f49e 100644 --- a/functions/models/src/fhir/fhirQuestionnaireResponse.ts +++ b/functions/models/src/fhir/fhirQuestionnaireResponse.ts @@ -9,24 +9,24 @@ import { type QuestionnaireResponse, type QuestionnaireResponseItem, -} from 'fhir/r4b.js' -import { FHIRResource } from './fhirResource.js' +} from "fhir/r4b.js"; +import { FHIRResource } from "./fhirResource.js"; export class FHIRQuestionnaireResponse extends FHIRResource { // Computed Properties get authoredDate(): Date | undefined { - return this.data.authored ? new Date(this.data.authored) : undefined + return this.data.authored ? new Date(this.data.authored) : undefined; } set authoredDate(date: Date | undefined) { - this.data.authored = date?.toISOString() + this.data.authored = date?.toISOString(); } // Methods - Response items from path responseItem(linkIdPath: string[]): QuestionnaireResponseItem | null { - const items = this.responseItems(linkIdPath) + const items = this.responseItems(linkIdPath); switch (items.length) { case 0: return null; @@ -38,9 +38,9 @@ export class FHIRQuestionnaireResponse extends FHIRResource { // Properties - data: ResourceType + data: ResourceType; // Constructor constructor(data: ResourceType) { - this.data = data + this.data = data; } // Methods @@ -30,11 +30,11 @@ export abstract class FHIRResource { codes(concept: CodeableConcept | undefined, filter: Coding): string[] { return ( concept?.coding?.flatMap((coding) => { - if (filter.system && coding.system !== filter.system) return [] - if (filter.version && coding.version !== filter.version) return [] - return coding.code ? [coding.code] : [] + if (filter.system && coding.system !== filter.system) return []; + if (filter.version && coding.version !== filter.version) return []; + return coding.code ? [coding.code] : []; }) ?? [] - ) + ); } containsCoding( @@ -45,26 +45,26 @@ export abstract class FHIRResource { (filterCoding) => concept?.coding?.some((coding) => { if (filterCoding.code && coding.code !== filterCoding.code) - return false + return false; if (filterCoding.system && coding.system !== filterCoding.system) - return false + return false; if (filterCoding.version && coding.version !== filterCoding.version) - return false - return true + return false; + return true; }) ?? false, - ) + ); } // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters containedResource(id: string): T | undefined { - return this.data.contained?.find((resource) => resource.id === id) as T + return this.data.contained?.find((resource) => resource.id === id) as T; } extensionsWithUrl(url: FHIRExtensionUrl): Extension[] { return ( this.data.extension?.filter( - (extension) => extension.url === url.toString(), + (extension) => extension.url === (url as string), ) ?? [] - ) + ); } } diff --git a/functions/models/src/functions/customSeed.ts b/functions/models/src/functions/customSeed.ts index 37c68613..ef70d05d 100644 --- a/functions/models/src/functions/customSeed.ts +++ b/functions/models/src/functions/customSeed.ts @@ -19,11 +19,11 @@ export const userSeedingOptionsSchema = z.object({ }), user: optionalish(z.lazy(() => userConverter.value.schema)), collections: optionalish(z.record(z.string(), z.record(z.string(), z.any()))), -}) -export type UserSeedingOptions = z.output +}); +export type UserSeedingOptions = z.output; export const customSeedingOptionsSchema = z.object({ users: userSeedingOptionsSchema.array(), firestore: optionalish(z.record(z.string(), z.record(z.string(), z.any()))), -}) -export type CustomSeedingOptions = z.output +}); +export type CustomSeedingOptions = z.output; diff --git a/functions/models/src/functions/exportHealthSummary.ts b/functions/models/src/functions/exportHealthSummary.ts index fbddd0b6..f858d9f4 100644 --- a/functions/models/src/functions/exportHealthSummary.ts +++ b/functions/models/src/functions/exportHealthSummary.ts @@ -22,7 +22,7 @@ export const exportHealthSummaryInputSchema = z.object({ .map((u) => `'${u.code}'`) .join(", "); context.addIssue({ - code: 'custom', + code: "custom", message: `Invalid weight unit. Must be one of the following: ${availableUnitsString}.`, }); return z.NEVER; diff --git a/functions/models/src/functions/unregisterDevice.ts b/functions/models/src/functions/unregisterDevice.ts index 75d0fd6e..9d78a068 100644 --- a/functions/models/src/functions/unregisterDevice.ts +++ b/functions/models/src/functions/unregisterDevice.ts @@ -12,7 +12,7 @@ import { UserDevicePlatform } from "../types/userDevice.js"; export const unregisterDeviceInputSchema = z.object({ notificationToken: z.string(), platform: z.enum(UserDevicePlatform), -}) -export type UnregisterDeviceInput = z.input +}); +export type UnregisterDeviceInput = z.input; export type UnregisterDeviceOutput = undefined; diff --git a/functions/models/src/helpers/dateConverter.ts b/functions/models/src/helpers/dateConverter.ts index beb37742..a527175e 100644 --- a/functions/models/src/helpers/dateConverter.ts +++ b/functions/models/src/helpers/dateConverter.ts @@ -15,24 +15,24 @@ export const dateConverter = new SchemaConverter({ const date = new Date(string); if (isNaN(date.getTime())) { context.addIssue({ - code: 'custom', - message: 'Invalid date', - }) - return z.NEVER + code: "custom", + message: "Invalid date", + }); + return z.NEVER; } return date; } catch (error) { context.addIssue({ - code: 'custom', + code: "custom", message: String(error), }); return z.NEVER; } }), encode: (object) => { - const offset = object.getTimezoneOffset() - const localDate = new Date(object.getTime() - offset * 60 * 1000) - return localDate.toISOString().split('T')[0] + const offset = object.getTimezoneOffset(); + const localDate = new Date(object.getTime() - offset * 60 * 1000); + return localDate.toISOString().split("T")[0]; }, }); @@ -42,15 +42,15 @@ export const dateTimeConverter = new SchemaConverter({ const date = new Date(string); if (isNaN(date.getTime())) { context.addIssue({ - code: 'custom', - message: 'Invalid date', - }) - return z.NEVER + code: "custom", + message: "Invalid date", + }); + return z.NEVER; } return date; } catch (error) { context.addIssue({ - code: 'custom', + code: "custom", message: String(error), }); return z.NEVER; diff --git a/functions/models/src/helpers/fhirSchemaConverter.ts b/functions/models/src/helpers/fhirSchemaConverter.ts index 213dbed2..abb61de2 100644 --- a/functions/models/src/helpers/fhirSchemaConverter.ts +++ b/functions/models/src/helpers/fhirSchemaConverter.ts @@ -6,61 +6,61 @@ // SPDX-License-Identifier: MIT // -import { type DomainResource } from 'fhir/r4b.js' -import { type ZodType } from 'zod' -import { type FHIRResource } from '../fhir/fhirResource.js' +import { type DomainResource } from "fhir/r4b.js"; +import { type ZodType } from "zod"; +import { type FHIRResource } from "../fhir/fhirResource.js"; export class FHIRSchemaConverter< FHIRResourceType extends FHIRResource, > { // Properties - readonly schema: ZodType - readonly nullProperties: string[] + readonly schema: ZodType; + readonly nullProperties: string[]; // Constructor constructor( schema: ZodType, options: { - nullProperties: string[] + nullProperties: string[]; }, ) { - this.schema = schema - this.nullProperties = options.nullProperties + this.schema = schema; + this.nullProperties = options.nullProperties; } // Methods decode(input: unknown) { - return this.schema.parse(removeNullOrUndefinedValues(input)) + return this.schema.parse(removeNullOrUndefinedValues(input)); } encode(input: FHIRResourceType): unknown { /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ - const returnValue = removeNullOrUndefinedValues(input.data) as any + const returnValue = removeNullOrUndefinedValues(input.data) as any; for (const key of this.nullProperties) { /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ - returnValue[key] = returnValue[key] ?? null + returnValue[key] = returnValue[key] ?? null; } - return returnValue + return returnValue; } } -function removeNullOrUndefinedValues(value: unknown): unknown { +const removeNullOrUndefinedValues = (value: unknown): unknown => { if (Array.isArray(value)) { return value .map(removeNullOrUndefinedValues) - .filter((v) => v !== null && v !== undefined) - } else if (value !== null && typeof value === 'object') { + .filter((v) => v !== null && v !== undefined); + } else if (value !== null && typeof value === "object") { return Object.fromEntries( Object.entries(value) .filter(([, v]) => v !== null && v !== undefined) .map(([k, v]) => [k, removeNullOrUndefinedValues(v)]), - ) + ); } else { - return value + return value; } -} +}; diff --git a/functions/models/src/helpers/optionalish.ts b/functions/models/src/helpers/optionalish.ts index 7c65f2d5..5ddbe339 100644 --- a/functions/models/src/helpers/optionalish.ts +++ b/functions/models/src/helpers/optionalish.ts @@ -6,19 +6,17 @@ // SPDX-License-Identifier: MIT // -import { z, type ZodType } from 'zod' +import { z, type ZodType } from "zod"; -export function optionalish(type: T) { - return type.or(z.null().transform(() => undefined)).optional() -} +export const optionalish = (type: T) => + type.or(z.null().transform(() => undefined)).optional(); -export function optionalishDefault( +export const optionalishDefault = ( type: T, defaultValue: z.output, -) { - return type +) => + type .or(z.null().transform(() => undefined)) .optional() - .transform((value) => value ?? defaultValue) -} + .transform((value) => value ?? defaultValue); diff --git a/functions/models/src/helpers/schemaConverter.ts b/functions/models/src/helpers/schemaConverter.ts index 813762a1..1d2c3369 100644 --- a/functions/models/src/helpers/schemaConverter.ts +++ b/functions/models/src/helpers/schemaConverter.ts @@ -6,8 +6,8 @@ // SPDX-License-Identifier: MIT // -import { type z, type ZodType } from 'zod' -import { type Lazy } from './lazy.js' +import { type z, type ZodType } from "zod"; +import { type Lazy } from "./lazy.js"; export class SchemaConverter { // Properties diff --git a/functions/models/src/types/observationQuantity.ts b/functions/models/src/types/observationQuantity.ts index 60d7de4b..2469eef9 100644 --- a/functions/models/src/types/observationQuantity.ts +++ b/functions/models/src/types/observationQuantity.ts @@ -9,7 +9,7 @@ import { type QuantityUnit } from "../codes/quantityUnit.js"; export interface ObservationQuantity { - date: Date - value: number - unit: QuantityUnit + date: Date; + value: number; + unit: QuantityUnit; } diff --git a/functions/models/src/types/userMedicationRecommendation.ts b/functions/models/src/types/userMedicationRecommendation.ts index 2e6f40fc..c643e3e2 100644 --- a/functions/models/src/types/userMedicationRecommendation.ts +++ b/functions/models/src/types/userMedicationRecommendation.ts @@ -6,12 +6,12 @@ // SPDX-License-Identifier: MIT // -import { type Reference } from 'fhir/r4b.js' -import { z } from 'zod' -import { localizedTextConverter } from './localizedText.js' -import { Lazy } from '../helpers/lazy.js' -import { optionalish } from '../helpers/optionalish.js' -import { SchemaConverter } from '../helpers/schemaConverter.js' +import { type Reference } from "fhir/r4b.js"; +import { z } from "zod"; +import { localizedTextConverter } from "./localizedText.js"; +import { Lazy } from "../helpers/lazy.js"; +import { optionalish } from "../helpers/optionalish.js"; +import { SchemaConverter } from "../helpers/schemaConverter.js"; export enum UserMedicationRecommendationType { improvementAvailable = "improvementAvailable", @@ -116,7 +116,7 @@ const referenceSchema = z.object({ reference: z.string().optional(), type: z.string().optional(), display: z.string().optional(), -}) +}); export const userMedicationRecommendationConverter = new Lazy( () => @@ -146,16 +146,16 @@ export const userMedicationRecommendationConverter = new Lazy( export class UserMedicationRecommendation { // Properties - readonly currentMedication: Reference[] - readonly recommendedMedication?: Reference - readonly displayInformation: UserMedicationRecommendationDisplayInformation + readonly currentMedication: Reference[]; + readonly recommendedMedication?: Reference; + readonly displayInformation: UserMedicationRecommendationDisplayInformation; // Constructor constructor(input: { - currentMedication: Reference[] - recommendedMedication?: Reference - displayInformation: UserMedicationRecommendationDisplayInformation + currentMedication: Reference[]; + recommendedMedication?: Reference; + displayInformation: UserMedicationRecommendationDisplayInformation; }) { this.currentMedication = input.currentMedication; this.recommendedMedication = input.recommendedMedication; diff --git a/functions/src/functions/deleteUser.test.ts b/functions/src/functions/deleteUser.test.ts index a19a1225..21d6bdcd 100644 --- a/functions/src/functions/deleteUser.test.ts +++ b/functions/src/functions/deleteUser.test.ts @@ -6,10 +6,10 @@ // SPDX-License-Identifier: MIT // -import { FHIRAppointment, UserType } from '@stanfordbdhg/engagehf-models' -import { deleteUser } from './deleteUser.js' -import { describeWithEmulators } from '../tests/functions/testEnvironment.js' -import { expectError } from '../tests/helpers.js' +import { FHIRAppointment, UserType } from "@stanfordbdhg/engagehf-models"; +import { deleteUser } from "./deleteUser.js"; +import { describeWithEmulators } from "../tests/functions/testEnvironment.js"; +import { expectError } from "../tests/helpers.js"; describeWithEmulators("function: deleteUser", (env) => { it("should not allow deleting user without claims", async () => { @@ -65,22 +65,22 @@ describeWithEmulators("function: deleteUser", (env) => { }); const appointment = new FHIRAppointment({ - resourceType: 'Appointment', - status: 'booked', - created: new Date('2020-01-01').toISOString(), - start: new Date('2020-01-01').toISOString(), - end: new Date('2020-01-01').toISOString(), + resourceType: "Appointment", + status: "booked", + created: new Date("2020-01-01").toISOString(), + start: new Date("2020-01-01").toISOString(), + end: new Date("2020-01-01").toISOString(), participant: [ { - status: 'accepted', + status: "accepted", actor: { reference: `users/${userId}`, }, }, ], - }) - const appointmentRef = env.collections.userAppointments(userId).doc() - await appointmentRef.set(appointment) + }); + const appointmentRef = env.collections.userAppointments(userId).doc(); + await appointmentRef.set(appointment); await env.call( deleteUser, diff --git a/functions/src/functions/enrollUser.test.ts b/functions/src/functions/enrollUser.test.ts index 144d124d..804b1d10 100644 --- a/functions/src/functions/enrollUser.test.ts +++ b/functions/src/functions/enrollUser.test.ts @@ -20,11 +20,11 @@ import { QuestionnaireReference, fhirAppointmentConverter, fhirObservationConverter, -} from '@stanfordbdhg/engagehf-models' -import { enrollUser } from './enrollUser.js' -import { QuestionnaireId } from '../services/seeding/staticData/questionnaireFactory/questionnaireLinkIds.js' -import { describeWithEmulators } from '../tests/functions/testEnvironment.js' -import { expectError } from '../tests/helpers.js' +} from "@stanfordbdhg/engagehf-models"; +import { enrollUser } from "./enrollUser.js"; +import { QuestionnaireId } from "../services/seeding/staticData/questionnaireFactory/questionnaireLinkIds.js"; +import { describeWithEmulators } from "../tests/functions/testEnvironment.js"; +import { expectError } from "../tests/helpers.js"; describeWithEmulators("function: enrollUser", (env) => { it("fails to enroll a user without an invitation code", async () => { @@ -64,20 +64,20 @@ describeWithEmulators("function: enrollUser", (env) => { await invitationRef.set(invitation); const expectedAppointment = new FHIRAppointment({ - resourceType: 'Appointment', - status: 'booked', - created: new Date('2023-12-24').toISOString(), - start: new Date('2023-12-31').toISOString(), - end: new Date('2024-01-01').toISOString(), + resourceType: "Appointment", + status: "booked", + created: new Date("2023-12-24").toISOString(), + start: new Date("2023-12-31").toISOString(), + end: new Date("2024-01-01").toISOString(), participant: [ { - status: 'accepted', + status: "accepted", actor: { reference: `users/${invitationRef.id}`, }, }, ], - }) + }); await env.collections .invitationAppointments(invitationRef.id) @@ -132,7 +132,7 @@ describeWithEmulators("function: enrollUser", (env) => { } else { expect(fhirAppointmentConverter.encode(actualAppointment)).toStrictEqual( fhirAppointmentConverter.encode(expectedAppointment), - ) + ); } const actualObservations = await env.collections @@ -145,7 +145,7 @@ describeWithEmulators("function: enrollUser", (env) => { } else { expect(fhirObservationConverter.encode(actualObservation)).toStrictEqual( fhirObservationConverter.encode(expectedObservation), - ) + ); } const userMessages = await env.collections.userMessages(authUser.uid).get(); @@ -187,20 +187,20 @@ describeWithEmulators("function: enrollUser", (env) => { await invitationRef.set(invitation); const expectedAppointment = new FHIRAppointment({ - resourceType: 'Appointment', - status: 'booked', - created: new Date('2023-12-24').toISOString(), - start: new Date('2023-12-31').toISOString(), - end: new Date('2024-01-01').toISOString(), + resourceType: "Appointment", + status: "booked", + created: new Date("2023-12-24").toISOString(), + start: new Date("2023-12-31").toISOString(), + end: new Date("2024-01-01").toISOString(), participant: [ { - status: 'accepted', + status: "accepted", actor: { reference: `users/${invitationRef.id}`, }, }, ], - }) + }); await env.collections .invitationAppointments(invitationRef.id) @@ -255,7 +255,7 @@ describeWithEmulators("function: enrollUser", (env) => { } else { expect(fhirAppointmentConverter.encode(actualAppointment)).toStrictEqual( fhirAppointmentConverter.encode(expectedAppointment), - ) + ); } const actualObservations = await env.collections @@ -268,7 +268,7 @@ describeWithEmulators("function: enrollUser", (env) => { } else { expect(fhirObservationConverter.encode(actualObservation)).toStrictEqual( fhirObservationConverter.encode(expectedObservation), - ) + ); } const userMessages = await env.collections.userMessages(authUser.uid).get(); diff --git a/functions/src/functions/helpers.ts b/functions/src/functions/helpers.ts index 24e565f1..09534b9f 100644 --- a/functions/src/functions/helpers.ts +++ b/functions/src/functions/helpers.ts @@ -16,8 +16,8 @@ import { onCall, onRequest, type Request, -} from 'firebase-functions/v2/https' -import { z, type ZodType } from 'zod' +} from "firebase-functions/v2/https"; +import { z, type ZodType } from "zod"; export const serviceAccount = `cloudfunctionsserviceaccount@${process.env.GCLOUD_PROJECT}.iam.gserviceaccount.com`; @@ -37,20 +37,20 @@ export function validatedOnCall( try { logger.debug( `onCall(${name}) from user '${request.auth?.uid}' with '${JSON.stringify(request.data)}'`, - ) - const validatedRequest = request as CallableRequest> - validatedRequest.data = schema.parse(request.data) - return await handler(validatedRequest) + ); + const validatedRequest = request as CallableRequest>; + validatedRequest.data = schema.parse(request.data); + return await handler(validatedRequest); } catch (error) { logger.debug( `onCall(${name}) from user '${request.auth?.uid}' failed with '${String(error)}'.`, ); if (error instanceof z.ZodError) { throw new https.HttpsError( - 'invalid-argument', - 'Invalid request data', + "invalid-argument", + "Invalid request data", error.issues, - ) + ); } throw error; } @@ -84,11 +84,11 @@ export function validatedOnRequest( logger.debug(`onRequest(${name}) failed with ${String(error)}.`); if (error instanceof z.ZodError) { response.status(400).send({ - code: 'invalid-argument', - message: 'Invalid request data', + code: "invalid-argument", + message: "Invalid request data", details: error.issues, - }) - return + }); + return; } throw error; } diff --git a/functions/src/functions/onUserAppointmentWritten.test.ts b/functions/src/functions/onUserAppointmentWritten.test.ts index db75d3c2..7e968acb 100644 --- a/functions/src/functions/onUserAppointmentWritten.test.ts +++ b/functions/src/functions/onUserAppointmentWritten.test.ts @@ -151,7 +151,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { const earlierAppointment = FHIRAppointment.create({ userId: patientId, created: now, - status: 'booked', + status: "booked", start: advanceDateByHours(now, 23), durationInMinutes: 60, }); @@ -210,7 +210,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { const appointment = FHIRAppointment.create({ userId: patientId, created: now, - status: 'booked', + status: "booked", start: advanceDateByHours(now, 23), durationInMinutes: 60, }); diff --git a/functions/src/functions/onUserAppointmentWritten.ts b/functions/src/functions/onUserAppointmentWritten.ts index f36181da..f629e3f8 100644 --- a/functions/src/functions/onUserAppointmentWritten.ts +++ b/functions/src/functions/onUserAppointmentWritten.ts @@ -6,11 +6,11 @@ // SPDX-License-Identifier: MIT // -import { fhirAppointmentConverter } from '@stanfordbdhg/engagehf-models' -import { onDocumentWritten } from 'firebase-functions/firestore' -import { Env } from '../env.js' -import { FHIRDatabaseConverter } from '../services/database/databaseConverter.js' -import { getServiceFactory } from '../services/factory/getServiceFactory.js' +import { fhirAppointmentConverter } from "@stanfordbdhg/engagehf-models"; +import { onDocumentWritten } from "firebase-functions/firestore"; +import { Env } from "../env.js"; +import { FHIRDatabaseConverter } from "../services/database/databaseConverter.js"; +import { getServiceFactory } from "../services/factory/getServiceFactory.js"; export const onUserAppointmentWritten = onDocumentWritten( { @@ -18,10 +18,10 @@ export const onUserAppointmentWritten = onDocumentWritten( secrets: Env.twilioSecretKeys, }, async (event) => { - const data = event.data?.after - const converter = new FHIRDatabaseConverter(fhirAppointmentConverter) - const factory = getServiceFactory() - const triggerService = factory.trigger() + const data = event.data?.after; + const converter = new FHIRDatabaseConverter(fhirAppointmentConverter); + const factory = getServiceFactory(); + const triggerService = factory.trigger(); await triggerService.userAppointmentWritten( event.params.userId, event.params.appointmentId, diff --git a/functions/src/functions/onUserMedicationRequestWritten.ts b/functions/src/functions/onUserMedicationRequestWritten.ts index 954cf54a..fa5a705c 100644 --- a/functions/src/functions/onUserMedicationRequestWritten.ts +++ b/functions/src/functions/onUserMedicationRequestWritten.ts @@ -6,11 +6,11 @@ // SPDX-License-Identifier: MIT // -import { fhirMedicationRequestConverter } from '@stanfordbdhg/engagehf-models' -import { onDocumentWritten } from 'firebase-functions/firestore' -import { Env } from '../env.js' -import { FHIRDatabaseConverter } from '../services/database/databaseConverter.js' -import { getServiceFactory } from '../services/factory/getServiceFactory.js' +import { fhirMedicationRequestConverter } from "@stanfordbdhg/engagehf-models"; +import { onDocumentWritten } from "firebase-functions/firestore"; +import { Env } from "../env.js"; +import { FHIRDatabaseConverter } from "../services/database/databaseConverter.js"; +import { getServiceFactory } from "../services/factory/getServiceFactory.js"; export const onUserMedicationRequestWritten = onDocumentWritten( { @@ -18,11 +18,11 @@ export const onUserMedicationRequestWritten = onDocumentWritten( secrets: Env.twilioSecretKeys, }, async (event) => { - const beforeData = event.data?.before - const afterData = event.data?.after - const converter = new FHIRDatabaseConverter(fhirMedicationRequestConverter) - const factory = getServiceFactory() - const triggerService = factory.trigger() + const beforeData = event.data?.before; + const afterData = event.data?.after; + const converter = new FHIRDatabaseConverter(fhirMedicationRequestConverter); + const factory = getServiceFactory(); + const triggerService = factory.trigger(); await triggerService.userMedicationRequestWritten( event.params.userId, event.params.medicationRequestId, diff --git a/functions/src/functions/onUserQuestionnaireResponseWritten.ts b/functions/src/functions/onUserQuestionnaireResponseWritten.ts index bf62789f..c2df1168 100644 --- a/functions/src/functions/onUserQuestionnaireResponseWritten.ts +++ b/functions/src/functions/onUserQuestionnaireResponseWritten.ts @@ -6,11 +6,11 @@ // SPDX-License-Identifier: MIT // -import { fhirQuestionnaireResponseConverter } from '@stanfordbdhg/engagehf-models' -import { onDocumentWritten } from 'firebase-functions/firestore' -import { Env } from '../env.js' -import { FHIRDatabaseConverter } from '../services/database/databaseConverter.js' -import { getServiceFactory } from '../services/factory/getServiceFactory.js' +import { fhirQuestionnaireResponseConverter } from "@stanfordbdhg/engagehf-models"; +import { onDocumentWritten } from "firebase-functions/firestore"; +import { Env } from "../env.js"; +import { FHIRDatabaseConverter } from "../services/database/databaseConverter.js"; +import { getServiceFactory } from "../services/factory/getServiceFactory.js"; export const onUserQuestionnaireResponseWritten = onDocumentWritten( { @@ -18,13 +18,13 @@ export const onUserQuestionnaireResponseWritten = onDocumentWritten( secrets: Env.twilioSecretKeys, }, async (event) => { - const beforeData = event.data?.before - const afterData = event.data?.after + const beforeData = event.data?.before; + const afterData = event.data?.after; const converter = new FHIRDatabaseConverter( fhirQuestionnaireResponseConverter, - ) - const factory = getServiceFactory() - const triggerService = factory.trigger() + ); + const factory = getServiceFactory(); + const triggerService = factory.trigger(); await triggerService.questionnaireResponseWritten( event.params.userId, event.params.questionnaireResponseId, diff --git a/functions/src/healthSummary/generate.ts b/functions/src/healthSummary/generate.ts index 864b9336..8f1938c1 100644 --- a/functions/src/healthSummary/generate.ts +++ b/functions/src/healthSummary/generate.ts @@ -102,11 +102,11 @@ class HealthSummaryPdfGenerator extends PdfGenerator { ), ); this.addText( - this.localizer.text('headerProvider', this.data.providerName ?? '---'), - ) - const appointment = this.data.nextAppointment - const date = appointment?.startDate - const providerNames = appointment?.providerNames ?? [] + this.localizer.text("headerProvider", this.data.providerName ?? "---"), + ); + const appointment = this.data.nextAppointment; + const date = appointment?.startDate; + const providerNames = appointment?.providerNames ?? []; const providerText = providerNames.length === 0 ? "" : providerNames.join(", ") + " "; this.addText( diff --git a/functions/src/healthSummary/generateChart.ts b/functions/src/healthSummary/generateChart.ts index 23a77240..50b27f41 100644 --- a/functions/src/healthSummary/generateChart.ts +++ b/functions/src/healthSummary/generateChart.ts @@ -6,9 +6,9 @@ // SPDX-License-Identifier: MIT // -import { type ObservationQuantity } from '@stanfordbdhg/engagehf-models' -import * as d3 from 'd3' -import { JSDOM } from 'jsdom' +import { type ObservationQuantity } from "@stanfordbdhg/engagehf-models"; +import * as d3 from "d3"; +import { JSDOM } from "jsdom"; export function generateChartSvg( data: ObservationQuantity[], diff --git a/functions/src/models/healthSummaryData.ts b/functions/src/models/healthSummaryData.ts index 143fd914..7bbbc01c 100644 --- a/functions/src/models/healthSummaryData.ts +++ b/functions/src/models/healthSummaryData.ts @@ -23,12 +23,12 @@ import { } from "../healthSummary/keyPointsMessage.js"; export interface HealthSummaryVitals { - systolicBloodPressure: ObservationQuantity[] - diastolicBloodPressure: ObservationQuantity[] - heartRate: ObservationQuantity[] - bodyWeight: ObservationQuantity[] + systolicBloodPressure: ObservationQuantity[]; + diastolicBloodPressure: ObservationQuantity[]; + heartRate: ObservationQuantity[]; + bodyWeight: ObservationQuantity[]; - dryWeight?: ObservationQuantity + dryWeight?: ObservationQuantity; } export class HealthSummaryData { diff --git a/functions/src/models/medicationRequestContext.ts b/functions/src/models/medicationRequestContext.ts index 98592189..098b974d 100644 --- a/functions/src/models/medicationRequestContext.ts +++ b/functions/src/models/medicationRequestContext.ts @@ -12,19 +12,19 @@ import { type FHIRMedication, type FHIRMedicationRequest, type MedicationClass, -} from '@stanfordbdhg/engagehf-models' -import { type Reference } from 'fhir/r4b.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Reference } from "fhir/r4b.js"; export interface MedicationRequestContext { - lastUpdate: Date - request: FHIRMedicationRequest - requestReference: Reference - drug: FHIRMedication - drugReference: Reference - medication: FHIRMedication - medicationReference: Reference - medicationClass: MedicationClass - medicationClassReference: Reference + lastUpdate: Date; + request: FHIRMedicationRequest; + requestReference: Reference; + drug: FHIRMedication; + drugReference: Reference; + medication: FHIRMedication; + medicationReference: Reference; + medicationClass: MedicationClass; + medicationClassReference: Reference; } export function medicationClassReference( diff --git a/functions/src/services/contraindication/defaultContraindicationService.test.ts b/functions/src/services/contraindication/defaultContraindicationService.test.ts index 3e8567b2..1d85a071 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.test.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.test.ts @@ -11,9 +11,9 @@ import { FHIRAllergyIntolerance, MedicationClassReference, MedicationReference, -} from '@stanfordbdhg/engagehf-models' -import { type AllergyIntolerance } from 'fhir/r4b.js' -import { logger } from 'firebase-functions' +} from "@stanfordbdhg/engagehf-models"; +import { type AllergyIntolerance } from "fhir/r4b.js"; +import { logger } from "firebase-functions"; import { ContraindicationCategory, type ContraindicationService, @@ -27,15 +27,15 @@ describe("DefaultContraindicationService", () => { function check( field: string, options: { - reference: MedicationReference - type?: AllergyIntolerance['type'] - criticality: AllergyIntolerance['criticality'] - category: ContraindicationCategory + reference: MedicationReference; + type?: AllergyIntolerance["type"]; + criticality: AllergyIntolerance["criticality"]; + category: ContraindicationCategory; }, ) { const contraindications = [ FHIRAllergyIntolerance.create({ - userId: 'testUser', + userId: "testUser", type: options.type, criticality: options.criticality, reference: options.reference, @@ -83,29 +83,29 @@ describe("DefaultContraindicationService", () => { check(fields[10], { reference: medicationReference, - type: 'allergy', - criticality: 'low', + type: "allergy", + criticality: "low", category: ContraindicationCategory.allergyIntolerance, }); check(fields[11], { reference: medicationReference, - type: 'allergy', - criticality: 'high', + type: "allergy", + criticality: "high", category: ContraindicationCategory.severeAllergyIntolerance, }); check(fields[12], { reference: medicationReference, - type: 'intolerance', - criticality: 'low', + type: "intolerance", + criticality: "low", category: ContraindicationCategory.clinicianListed, }); check(fields[14], { reference: medicationReference, type: undefined, // TODO: 'financial', - criticality: 'low', + criticality: "low", category: ContraindicationCategory.clinicianListed, }); } diff --git a/functions/src/services/contraindication/defaultContraindicationService.ts b/functions/src/services/contraindication/defaultContraindicationService.ts index 4dbd8d36..7e1ed229 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.ts @@ -10,9 +10,9 @@ import { type FHIRAllergyIntolerance, MedicationClassReference, MedicationReference, -} from '@stanfordbdhg/engagehf-models' -import { type AllergyIntolerance } from 'fhir/r4b.js' -import { logger } from 'firebase-functions' +} from "@stanfordbdhg/engagehf-models"; +import { type AllergyIntolerance } from "fhir/r4b.js"; +import { logger } from "firebase-functions"; import { ContraindicationCategory, type ContraindicationService, @@ -110,25 +110,25 @@ export class DefaultContraindicationService implements ContraindicationService { medicationReference: medicationReference, type: contraindication.data.type, criticality: contraindication.data.criticality, - }) - if (isRelevant(record)) category = Math.max(category, record.category) + }); + if (isRelevant(record)) category = Math.max(category, record.category); } } return category; } private record(input: { - medicationReference: MedicationReference - type?: AllergyIntolerance['type'] - criticality?: AllergyIntolerance['criticality'] + medicationReference: MedicationReference; + type?: AllergyIntolerance["type"]; + criticality?: AllergyIntolerance["criticality"]; }): ContraindicationRecord { const medicationClass = medicationClassReference(input.medicationReference); const medicationReferences = this.medicationReferenceIncludingDerivatives( input.medicationReference, ); switch (input.type) { - case 'allergy': - if (input.criticality === 'high') { + case "allergy": + if (input.criticality === "high") { return { category: ContraindicationCategory.severeAllergyIntolerance, medications: medicationReferences, @@ -149,7 +149,7 @@ export class DefaultContraindicationService implements ContraindicationService { ), }; } - case 'intolerance': + case "intolerance": switch (medicationClass) { case MedicationClassReference.angiotensinConvertingEnzymeInhibitors: case MedicationClassReference.angiotensinReceptorNeprilysinInhibitors: diff --git a/functions/src/services/database/collections.ts b/functions/src/services/database/collections.ts index 26c462f8..4b73489a 100644 --- a/functions/src/services/database/collections.ts +++ b/functions/src/services/database/collections.ts @@ -26,13 +26,13 @@ import { videoConverter, videoSectionConverter, type UserObservationCollection, -} from '@stanfordbdhg/engagehf-models' -import { type Firestore } from 'firebase-admin/firestore' +} from "@stanfordbdhg/engagehf-models"; +import { type Firestore } from "firebase-admin/firestore"; import { DatabaseConverter, FHIRDatabaseConverter, -} from './databaseConverter.js' -import { historyChangeItemConverter } from '../history/historyService.js' +} from "./databaseConverter.js"; +import { historyChangeItemConverter } from "../history/historyService.js"; export class CollectionsService { // Properties @@ -49,8 +49,8 @@ export class CollectionsService { get appointments() { return this.firestore - .collectionGroup('appointments') - .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)) + .collectionGroup("appointments") + .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)); } get devices() { @@ -75,16 +75,18 @@ export class CollectionsService { return this.firestore .collection("invitations") .doc(invitationId) - .collection('allergyIntolerances') - .withConverter(new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter)) + .collection("allergyIntolerances") + .withConverter( + new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter), + ); } invitationAppointments(invitationId: string) { return this.firestore .collection("invitations") .doc(invitationId) - .collection('appointments') - .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)) + .collection("appointments") + .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)); } invitationDevices(invitationId: string) { @@ -109,8 +111,8 @@ export class CollectionsService { return this.firestore .collection("invitations") .doc(invitationId) - .collection('medicationRequests') - .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)) + .collection("medicationRequests") + .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)); } invitationMessages(invitationId: string) { @@ -129,7 +131,7 @@ export class CollectionsService { .collection("invitations") .doc(invitationId) .collection(collection) - .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)) + .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)); } invitationQuestionnaireResponses(invitationId: string) { @@ -139,7 +141,7 @@ export class CollectionsService { .collection("questionnaireResponses") .withConverter( new FHIRDatabaseConverter(fhirQuestionnaireResponseConverter), - ) + ); } invitationSymptomScores(invitationId: string) { @@ -164,22 +166,22 @@ export class CollectionsService { get medications() { return this.firestore - .collection('medications') - .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)) + .collection("medications") + .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)); } medicationReference(reference: string) { return this.firestore .doc(reference) - .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)) + .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)); } drugs(medicationId: string) { return this.firestore .collection("medications") .doc(medicationId) - .collection('drugs') - .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)) + .collection("drugs") + .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)); } get organizations() { @@ -190,8 +192,8 @@ export class CollectionsService { get questionnaires() { return this.firestore - .collection('questionnaires') - .withConverter(new FHIRDatabaseConverter(fhirQuestionnaireConverter)) + .collection("questionnaires") + .withConverter(new FHIRDatabaseConverter(fhirQuestionnaireConverter)); } get users() { @@ -204,16 +206,18 @@ export class CollectionsService { return this.firestore .collection("users") .doc(userId) - .collection('allergyIntolerances') - .withConverter(new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter)) + .collection("allergyIntolerances") + .withConverter( + new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter), + ); } userAppointments(userId: string) { return this.firestore .collection("users") .doc(userId) - .collection('appointments') - .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)) + .collection("appointments") + .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)); } userDevices(userId: string) { @@ -238,8 +242,8 @@ export class CollectionsService { return this.firestore .collection("users") .doc(userId) - .collection('medicationRequests') - .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)) + .collection("medicationRequests") + .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)); } userMessages(userId: string) { @@ -255,7 +259,7 @@ export class CollectionsService { .collection("users") .doc(userId) .collection(collection) - .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)) + .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)); } userQuestionnaireResponses(userId: string) { @@ -265,7 +269,7 @@ export class CollectionsService { .collection("questionnaireResponses") .withConverter( new FHIRDatabaseConverter(fhirQuestionnaireResponseConverter), - ) + ); } userShareCodes(userId: string) { diff --git a/functions/src/services/database/databaseConverter.ts b/functions/src/services/database/databaseConverter.ts index 7e3e8504..d3174119 100644 --- a/functions/src/services/database/databaseConverter.ts +++ b/functions/src/services/database/databaseConverter.ts @@ -10,15 +10,15 @@ import { type FHIRResource, type FHIRSchemaConverter, type SchemaConverter, -} from '@stanfordbdhg/engagehf-models' -import { type DomainResource } from 'fhir/r4b' +} from "@stanfordbdhg/engagehf-models"; +import { type DomainResource } from "fhir/r4b"; import { type DocumentData, type DocumentSnapshot, type FirestoreDataConverter, -} from 'firebase-admin/firestore' -import { logger } from 'firebase-functions' -import { type ZodType, type z } from 'zod' +} from "firebase-admin/firestore"; +import { logger } from "firebase-functions"; +import { type ZodType, type z } from "zod"; export class DatabaseConverter implements FirestoreDataConverter> @@ -38,12 +38,12 @@ export class DatabaseConverter fromFirestore(snapshot: DocumentSnapshot): z.output { const data = snapshot.data(); try { - return this.converter.schema.parse(data) + return this.converter.schema.parse(data); } catch (error) { logger.error( `DatabaseDecoder: Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, - ) - throw error + ); + throw error; } } @@ -53,48 +53,48 @@ export class DatabaseConverter } catch (error) { logger.error( `DatabaseDecoder(${typeof modelObject}): Failed to encode object ${JSON.stringify(modelObject)} due to ${String(error)}.`, - ) - throw error + ); + throw error; } } } export class FHIRDatabaseConverter< C extends FHIRSchemaConverter>, -> implements FirestoreDataConverter> +> implements FirestoreDataConverter> { // Properties - private readonly converter: C + private readonly converter: C; // Constructor constructor(converter: C) { - this.converter = converter + this.converter = converter; } // Methods - fromFirestore(snapshot: DocumentSnapshot): z.output { - const data = snapshot.data() + fromFirestore(snapshot: DocumentSnapshot): z.output { + const data = snapshot.data(); try { - return this.converter.schema.parse(data) as z.output + return this.converter.schema.parse(data) as z.output; } catch (error) { logger.error( `DatabaseDecoder: Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, - ) - throw error + ); + throw error; } } - toFirestore(modelObject: z.output): DocumentData { + toFirestore(modelObject: z.output): DocumentData { try { - return this.converter.encode(modelObject) as DocumentData + return this.converter.encode(modelObject) as DocumentData; } catch (error) { logger.error( `DatabaseDecoder(${typeof modelObject}): Failed to encode object ${JSON.stringify(modelObject)} due to ${String(error)}.`, - ) - throw error + ); + throw error; } } } diff --git a/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts b/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts index 19030750..06de05c0 100644 --- a/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts +++ b/functions/src/services/healthSummary/databaseHealthSummaryService.test.ts @@ -25,12 +25,12 @@ describe("HealthSummaryService", () => { "mockUser", new Date(2024, 2, 2, 12, 30), QuantityUnit.lbs, - ) + ); console.log( - 'actualData:', + "actualData:", actualData.nextAppointment?.startDate?.toISOString(), - ) - const expectedData = await mockHealthSummaryData('mockUser') + ); + const expectedData = await mockHealthSummaryData("mockUser"); // TODO: Remove the next line to check whether medication optimizations also match the expected value. expectedData.recommendations = []; expect(actualData).toStrictEqual(expectedData); diff --git a/functions/src/services/medication/databaseMedicationService.ts b/functions/src/services/medication/databaseMedicationService.ts index 3d49267a..46752679 100644 --- a/functions/src/services/medication/databaseMedicationService.ts +++ b/functions/src/services/medication/databaseMedicationService.ts @@ -10,10 +10,10 @@ import { type FHIRMedication, type FHIRMedicationRequest, type MedicationClass, -} from '@stanfordbdhg/engagehf-models' -import { type Reference } from 'fhir/r4b.js' -import { type MedicationService } from './medicationService.js' -import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Reference } from "fhir/r4b.js"; +import { type MedicationService } from "./medicationService.js"; +import { type MedicationRequestContext } from "../../models/medicationRequestContext.js"; import { type Document, type DatabaseService, @@ -35,16 +35,17 @@ export class DatabaseMedicationService implements MedicationService { async getContext( request: Document, ): Promise { - const drugReference = request.content.data.medicationReference - if (drugReference === undefined) throw new Error('Drug reference not found') - const drug = (await this.getReference(drugReference))?.content + const drugReference = request.content.data.medicationReference; + if (drugReference === undefined) + throw new Error("Drug reference not found"); + const drug = (await this.getReference(drugReference))?.content; if (drug === undefined) - throw new Error(`Drug not found at ${drugReference.reference}`) + throw new Error(`Drug not found at ${drugReference.reference}`); const medicationReference: Reference = { - reference: drugReference.reference?.split('/').slice(0, 2).join('/'), - } - const medication = (await this.getReference(medicationReference))?.content - medicationReference.display = medication?.displayName + reference: drugReference.reference?.split("/").slice(0, 2).join("/"), + }; + const medication = (await this.getReference(medicationReference))?.content; + medicationReference.display = medication?.displayName; if (medication === undefined) throw new Error( `Medication not found at ${medicationReference.reference}`, @@ -128,20 +129,20 @@ export class DatabaseMedicationService implements MedicationService { async getClassReference( reference: Reference | undefined, ): Promise | undefined> { - const doc = reference?.reference - if (!doc) return undefined + const doc = reference?.reference; + if (!doc) return undefined; return this.databaseService.getDocument((collections) => collections.medicationClassReference(doc), - ) + ); } async getReference( reference: Reference | undefined, ): Promise | undefined> { - const doc = reference?.reference - if (!doc) return undefined + const doc = reference?.reference; + if (!doc) return undefined; return this.databaseService.getDocument((collections) => collections.medicationReference(doc), - ) + ); } } diff --git a/functions/src/services/medication/medicationService.ts b/functions/src/services/medication/medicationService.ts index 4ae6c50f..6a349e89 100644 --- a/functions/src/services/medication/medicationService.ts +++ b/functions/src/services/medication/medicationService.ts @@ -10,10 +10,10 @@ import { type FHIRMedication, type FHIRMedicationRequest, type MedicationClass, -} from '@stanfordbdhg/engagehf-models' -import { type Reference } from 'fhir/r4b.js' -import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' -import { type Document } from '../database/databaseService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Reference } from "fhir/r4b.js"; +import { type MedicationRequestContext } from "../../models/medicationRequestContext.js"; +import { type Document } from "../database/databaseService.js"; export interface MedicationService { // Medication Request Context @@ -50,9 +50,9 @@ export interface MedicationService { getClassReference( reference: Reference | undefined, - ): Promise | undefined> + ): Promise | undefined>; getReference( reference: Reference | undefined, - ): Promise | undefined> + ): Promise | undefined>; } diff --git a/functions/src/services/patient/databasePatientService.ts b/functions/src/services/patient/databasePatientService.ts index 6d32a210..cfba98a6 100644 --- a/functions/src/services/patient/databasePatientService.ts +++ b/functions/src/services/patient/databasePatientService.ts @@ -24,8 +24,8 @@ import { UserMedicationRecommendationType, UserObservationCollection, type UserShareCode, -} from '@stanfordbdhg/engagehf-models' -import { type Reference } from 'fhir/r4b.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Reference } from "fhir/r4b.js"; import { FieldValue, type QueryDocumentSnapshot, @@ -64,9 +64,9 @@ export class DatabasePatientService implements PatientService { ); return result.filter((appointment) => { - const start = appointment.content.startDate - return start && start >= fromDate && start < toDate - }) + const start = appointment.content.startDate; + return start && start >= fromDate && start < toDate; + }); } async getAppointments( @@ -137,7 +137,7 @@ export class DatabasePatientService implements PatientService { (doc) => doc.content.data.medicationReference?.reference === value.data.medicationReference?.reference, - ) + ); if (equivalentDoc === undefined) { diffs.push({ successor: value }); } else if ( @@ -335,9 +335,9 @@ export class DatabasePatientService implements PatientService { async createObservations( userId: string, values: Array<{ - observation: ObservationQuantity - loincCode: LoincCode - collection: UserObservationCollection + observation: ObservationQuantity; + loincCode: LoincCode; + collection: UserObservationCollection; }>, reference: Reference | null, ): Promise { diff --git a/functions/src/services/patient/patientService.mock.ts b/functions/src/services/patient/patientService.mock.ts index 8af9f23d..72d88a98 100644 --- a/functions/src/services/patient/patientService.mock.ts +++ b/functions/src/services/patient/patientService.mock.ts @@ -20,11 +20,11 @@ import { type UserMedicationRecommendation, type UserObservationCollection, type UserShareCode, -} from '@stanfordbdhg/engagehf-models' -import { type Reference } from 'fhir/r4b.js' -import { type PatientService } from './patientService.js' -import { mockQuestionnaireResponse } from '../../tests/mocks/questionnaireResponse.js' -import { type Document } from '../database/databaseService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Reference } from "fhir/r4b.js"; +import { type PatientService } from "./patientService.js"; +import { mockQuestionnaireResponse } from "../../tests/mocks/questionnaireResponse.js"; +import { type Document } from "../database/databaseService.js"; /* eslint-disable @typescript-eslint/require-await */ /* eslint-disable @typescript-eslint/no-unused-vars */ @@ -62,7 +62,7 @@ export class MockPatientService implements PatientService { path: `users/${userId}/appointments/123`, content: FHIRAppointment.create({ userId, - status: 'booked', + status: "booked", created: advanceDateByDays(this.startDate, -10), start: advanceDateByDays(this.startDate, 1), durationInMinutes: 60, @@ -302,9 +302,9 @@ export class MockPatientService implements PatientService { async createObservations( userId: string, values: Array<{ - observation: ObservationQuantity - loincCode: LoincCode - collection: UserObservationCollection + observation: ObservationQuantity; + loincCode: LoincCode; + collection: UserObservationCollection; }>, reference: Reference | null, ): Promise { diff --git a/functions/src/services/patient/patientService.ts b/functions/src/services/patient/patientService.ts index eb44b8e0..5efdab70 100644 --- a/functions/src/services/patient/patientService.ts +++ b/functions/src/services/patient/patientService.ts @@ -18,9 +18,9 @@ import { type UserShareCode, type UserObservationCollection, type LoincCode, -} from '@stanfordbdhg/engagehf-models' -import { type Reference } from 'fhir/r4b.js' -import { type Document } from '../database/databaseService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Reference } from "fhir/r4b.js"; +import { type Document } from "../database/databaseService.js"; export interface PatientService { // Appointments @@ -70,40 +70,40 @@ export interface PatientService { getBloodPressureObservations( userId: string, cutoffDate: Date, - ): Promise<[ObservationQuantity[], ObservationQuantity[]]> + ): Promise<[ObservationQuantity[], ObservationQuantity[]]>; getBodyWeightObservations( userId: string, unit: QuantityUnit, cutoffDate: Date, - ): Promise + ): Promise; getHeartRateObservations( userId: string, cutoffDate: Date, - ): Promise + ): Promise; getMostRecentCreatinineObservation( userId: string, - ): Promise + ): Promise; getMostRecentDryWeightObservation( userId: string, unit: QuantityUnit, - ): Promise + ): Promise; getMostRecentEstimatedGlomerularFiltrationRateObservation( userId: string, - ): Promise + ): Promise; getMostRecentPotassiumObservation( userId: string, - ): Promise + ): Promise; createObservations( userId: string, values: Array<{ - observation: ObservationQuantity - loincCode: LoincCode - collection: UserObservationCollection + observation: ObservationQuantity; + loincCode: LoincCode; + collection: UserObservationCollection; }>, reference: Reference | null, - ): Promise + ): Promise; // Questionnaire Responses diff --git a/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts b/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts index 57a92b16..1a776f67 100644 --- a/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts +++ b/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts @@ -34,9 +34,9 @@ export function createKccqQuestionnaireResponse( }; return new FHIRQuestionnaireResponse({ - resourceType: 'QuestionnaireResponse', + resourceType: "QuestionnaireResponse", id: input.questionnaireResponse, - status: 'completed', + status: "completed", questionnaire: input.questionnaire, authored: input.date.toISOString(), item: Object.entries(items).map((entry) => ({ diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts index 6bcaa02b..c721aade 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts @@ -86,23 +86,23 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const valsartan = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/69749/drugs/349201', - )?.data - expect(valsartan).toBeDefined() - expect(valsartan?.dosageInstruction?.length).toBe(1) - const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0) - expect(valsartanDosageInstruction?.timing?.repeat?.frequency).toBe(2) - expect(valsartanDosageInstruction?.doseAndRate?.length).toBe(1) - const valsartanDoseAndRate = valsartanDosageInstruction?.doseAndRate?.at(0) - expect(valsartanDoseAndRate?.doseQuantity?.value).toBe(1.5) + "medications/69749/drugs/349201", + )?.data; + expect(valsartan).toBeDefined(); + expect(valsartan?.dosageInstruction?.length).toBe(1); + const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0); + expect(valsartanDosageInstruction?.timing?.repeat?.frequency).toBe(2); + expect(valsartanDosageInstruction?.doseAndRate?.length).toBe(1); + const valsartanDoseAndRate = valsartanDosageInstruction?.doseAndRate?.at(0); + expect(valsartanDoseAndRate?.doseQuantity?.value).toBe(1.5); const bexagliflozin = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/2627044/drugs/2637859', - )?.data - expect(bexagliflozin).toBeDefined() - expect(bexagliflozin?.dosageInstruction?.length).toBe(1) + "medications/2627044/drugs/2637859", + )?.data; + expect(bexagliflozin).toBeDefined(); + expect(bexagliflozin?.dosageInstruction?.length).toBe(1); const bexagliflozinDosageInstruction = bexagliflozin?.dosageInstruction?.at(0); expect(bexagliflozinDosageInstruction?.timing?.repeat?.frequency).toBe(2); @@ -114,12 +114,12 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const furosemide = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === DrugReference.furosemide20, - )?.data - expect(furosemide).toBeDefined() - expect(furosemide?.dosageInstruction?.length).toBe(1) - const furosemideDosageInstruction = furosemide?.dosageInstruction?.at(0) - expect(furosemideDosageInstruction?.timing?.repeat?.frequency).toBe(4) - expect(furosemideDosageInstruction?.doseAndRate?.length).toBe(1) + )?.data; + expect(furosemide).toBeDefined(); + expect(furosemide?.dosageInstruction?.length).toBe(1); + const furosemideDosageInstruction = furosemide?.dosageInstruction?.at(0); + expect(furosemideDosageInstruction?.timing?.repeat?.frequency).toBe(4); + expect(furosemideDosageInstruction?.doseAndRate?.length).toBe(1); const furosemideDoseAndRate = furosemideDosageInstruction?.doseAndRate?.at(0); expect(furosemideDoseAndRate?.doseQuantity?.value).toBe(2); @@ -149,12 +149,12 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { .get(); expect(dryWeightDocs.size).toBe(0); - const appointments = await env.collections.userAppointments(userId).get() - expect(appointments.size).toBe(1) + const appointments = await env.collections.userAppointments(userId).get(); + expect(appointments.size).toBe(1); expect(appointments.docs[0].data().startDate?.toISOString()).toBe( - '2025-05-14T12:00:00.000Z', - ) - }) + "2025-05-14T12:00:00.000Z", + ); + }); it("should be able to extract the post appointment response from an Android device", async () => { await _updateStaticData(env.factory, { @@ -218,16 +218,16 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const sacubitrilValsartan = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/1656339/drugs/1656349', - )?.data - expect(sacubitrilValsartan).toBeDefined() - expect(sacubitrilValsartan?.dosageInstruction?.length).toBe(1) + "medications/1656339/drugs/1656349", + )?.data; + expect(sacubitrilValsartan).toBeDefined(); + expect(sacubitrilValsartan?.dosageInstruction?.length).toBe(1); const sacubitrilValsartanDosageInstruction = sacubitrilValsartan?.dosageInstruction?.at(0); expect( sacubitrilValsartanDosageInstruction?.timing?.repeat?.frequency, - ).toBe(2) - expect(sacubitrilValsartanDosageInstruction?.doseAndRate?.length).toBe(1) + ).toBe(2); + expect(sacubitrilValsartanDosageInstruction?.doseAndRate?.length).toBe(1); const sacubitrilValsartanDoseAndRate = sacubitrilValsartanDosageInstruction?.doseAndRate?.at(0); expect(sacubitrilValsartanDoseAndRate?.doseQuantity?.value).toBe(0.5); @@ -235,10 +235,10 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const empagliflozin = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/1545653/drugs/1545658', - )?.data - expect(empagliflozin).toBeDefined() - expect(empagliflozin?.dosageInstruction?.length).toBe(1) + "medications/1545653/drugs/1545658", + )?.data; + expect(empagliflozin).toBeDefined(); + expect(empagliflozin?.dosageInstruction?.length).toBe(1); const empagliflozinDosageInstruction = empagliflozin?.dosageInstruction?.at(0); expect(empagliflozinDosageInstruction?.timing?.repeat?.frequency).toBe(3); @@ -274,13 +274,13 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { dryWeightDocs.docs[0].data().dryWeight(QuantityUnit.lbs)?.value, ).toBe(150); - const appointments = await env.collections.userAppointments(userId).get() - expect(appointments.size).toBe(1) + const appointments = await env.collections.userAppointments(userId).get(); + expect(appointments.size).toBe(1); expect(appointments.docs[0].data().startDate?.toDateString()).toBe( - new Date('2025-07-12').toDateString(), - ) - }) -}) + new Date("2025-07-12").toDateString(), + ); + }); +}); const dataUpdateResponseApple = { authored: "2025-05-14T21:00:08.836575031+02:00", @@ -325,8 +325,8 @@ const dataUpdateResponseApple = { }, ], }, - { linkId: 'medication.rasi.frequency', answer: [{ valueInteger: 2 }] }, - { linkId: 'medication.rasi.quantity', answer: [{ valueDecimal: 1.5 }] }, + { linkId: "medication.rasi.frequency", answer: [{ valueInteger: 2 }] }, + { linkId: "medication.rasi.quantity", answer: [{ valueDecimal: 1.5 }] }, { answer: [ { @@ -365,8 +365,8 @@ const dataUpdateResponseApple = { }, ], }, - { linkId: 'medication.sglt2i.frequency', answer: [{ valueInteger: 2 }] }, - { answer: [{ valueDecimal: 1.34 }], linkId: 'medication.sglt2i.quantity' }, + { linkId: "medication.sglt2i.frequency", answer: [{ valueInteger: 2 }] }, + { answer: [{ valueDecimal: 1.34 }], linkId: "medication.sglt2i.quantity" }, { answer: [ { @@ -406,8 +406,8 @@ const dataUpdateResponseApple = { const postAppointmentResponseAndroid = { resourceType: "QuestionnaireResponse", questionnaire: - 'http://spezi.health/fhir/questionnaire/engagehf-post-appointment', - status: 'completed', + "http://spezi.health/fhir/questionnaire/engagehf-post-appointment", + status: "completed", item: [ { linkId: "lab.2160-0.exists", diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts index db0dd991..1428c059 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts @@ -59,12 +59,12 @@ export class DataUpdateQuestionnaireResponseService extends QuestionnaireRespons const urls = [ QuestionnaireLinkId.url(QuestionnaireId.dataUpdate), postAppointmentUrl, - ] - if (!urls.includes(response.content.data.questionnaire ?? '')) { + ]; + if (!urls.includes(response.content.data.questionnaire ?? "")) { logger.info( `${this.constructor.name}.handle(${userId}): Url ${response.content.data.questionnaire} is not a data update / post appointment questionnaire, skipping.`, - ) - return false + ); + return false; } let user: User | null; diff --git a/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts b/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts index 6b4eec37..da7f710b 100644 --- a/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts +++ b/functions/src/services/questionnaireResponse/egfr/egfrCalculator.test.ts @@ -18,10 +18,10 @@ describe("EgfrCalculator", () => { readCsv("src/tests/resources/egfr.csv", 547, (line, index) => { if (index === 0) return; // Skip header line - const sexAssignedAtBirth = z.enum(UserSex).parse(line[0]) - const age = z.number().parse(parseFloat(line[1])) - const creatinine = z.number().parse(parseFloat(line[2])) - const expectedValue = z.number().parse(parseFloat(line[3])) + const sexAssignedAtBirth = z.enum(UserSex).parse(line[0]); + const age = z.number().parse(parseFloat(line[1])); + const creatinine = z.number().parse(parseFloat(line[2])); + const expectedValue = z.number().parse(parseFloat(line[3])); const result = egfrCalculator.calculate({ sexAssignedAtBirth, diff --git a/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts index 76d4e094..58ece963 100644 --- a/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts @@ -53,8 +53,8 @@ export class KccqQuestionnaireResponseService extends QuestionnaireResponseServi response: Document, options: { isNew: boolean }, ): Promise { - const urls = [QuestionnaireLinkId.url(QuestionnaireId.kccq)] - if (!urls.includes(response.content.data.questionnaire ?? '')) return false + const urls = [QuestionnaireLinkId.url(QuestionnaireId.kccq)]; + if (!urls.includes(response.content.data.questionnaire ?? "")) return false; const symptomScore = this.symptomScore(response.content); if (symptomScore === null) return false; diff --git a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts index b0c5507e..efbe075b 100644 --- a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts @@ -83,8 +83,8 @@ export abstract class QuestionnaireResponseService { if (dateOfBirth === undefined) return null; const sexCode = response.leafResponseItem(linkIds.sex)?.answer?.at(0) - ?.valueCoding?.code - const sex = z.enum(UserSex).parse(sexCode) + ?.valueCoding?.code; + const sex = z.enum(UserSex).parse(sexCode); return { dateOfBirth: new Date(dateOfBirth), sex, @@ -100,7 +100,7 @@ export abstract class QuestionnaireResponseService { unit: QuantityUnit; }, ): ObservationQuantity | null { - const linkIds = QuestionnaireLinkId.labValue(options.code) + const linkIds = QuestionnaireLinkId.labValue(options.code); const dateAnswer = response .leafResponseItem(linkIds.dateTime) ?.answer?.at(0)?.valueDateTime; @@ -116,7 +116,7 @@ export abstract class QuestionnaireResponseService { value: decimalAnswer, unit: options.unit, date: new Date(dateAnswer), - } + }; } protected extractMedicationRequests(response: FHIRQuestionnaireResponse): { @@ -179,7 +179,7 @@ export abstract class QuestionnaireResponseService { ?.answer?.at(0)?.valueDecimal; const frequency = response .leafResponseItem(linkIds.frequency) - ?.answer?.at(0)?.valueInteger + ?.answer?.at(0)?.valueInteger; if ( drugCoding?.code === undefined || @@ -212,10 +212,10 @@ export abstract class QuestionnaireResponseService { response: Document; }): Promise { const observationValues: Array<{ - observation: ObservationQuantity - loincCode: LoincCode - collection: UserObservationCollection - }> = [] + observation: ObservationQuantity; + loincCode: LoincCode; + collection: UserObservationCollection; + }> = []; const creatinine = this.extractLabValue(input.response.content, { code: LoincCode.creatinine, @@ -321,7 +321,7 @@ export abstract class QuestionnaireResponseService { medicationClasses.length > 0 ? (doc) => { const referenceString = - doc.content.data.medicationReference?.reference + doc.content.data.medicationReference?.reference; if (referenceString === undefined) { logger.error( `Encountered medication request without reference at ${doc.path}: ${JSON.stringify(doc.content)}`, diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts index 6ba33c44..b0efd031 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts @@ -62,23 +62,23 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const valsartan = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/69749/drugs/349201', - )?.data - expect(valsartan).toBeDefined() - expect(valsartan?.dosageInstruction?.length).toBe(1) - const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0) - expect(valsartanDosageInstruction?.timing?.repeat?.frequency).toBe(2) - expect(valsartanDosageInstruction?.doseAndRate?.length).toBe(1) - const valsartanDoseAndRate = valsartanDosageInstruction?.doseAndRate?.at(0) - expect(valsartanDoseAndRate?.doseQuantity?.value).toBe(1.5) + "medications/69749/drugs/349201", + )?.data; + expect(valsartan).toBeDefined(); + expect(valsartan?.dosageInstruction?.length).toBe(1); + const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0); + expect(valsartanDosageInstruction?.timing?.repeat?.frequency).toBe(2); + expect(valsartanDosageInstruction?.doseAndRate?.length).toBe(1); + const valsartanDoseAndRate = valsartanDosageInstruction?.doseAndRate?.at(0); + expect(valsartanDoseAndRate?.doseQuantity?.value).toBe(1.5); const bexagliflozin = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/2627044/drugs/2637859', - )?.data - expect(bexagliflozin).toBeDefined() - expect(bexagliflozin?.dosageInstruction?.length).toBe(1) + "medications/2627044/drugs/2637859", + )?.data; + expect(bexagliflozin).toBeDefined(); + expect(bexagliflozin?.dosageInstruction?.length).toBe(1); const bexagliflozinDosageInstruction = bexagliflozin?.dosageInstruction?.at(0); expect(bexagliflozinDosageInstruction?.timing?.repeat?.frequency).toBe(2); @@ -112,12 +112,12 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { .get(); expect(dryWeightDocs.size).toBe(0); - const appointments = await env.collections.userAppointments(userId).get() - expect(appointments.size).toBe(1) + const appointments = await env.collections.userAppointments(userId).get(); + expect(appointments.size).toBe(1); expect(appointments.docs[0].data().startDate?.toISOString()).toBe( - '2025-05-14T12:00:00.000Z', - ) - }) + "2025-05-14T12:00:00.000Z", + ); + }); it("should be able to extract the registration response from an Android device", async () => { await _updateStaticData(env.factory, { @@ -159,13 +159,13 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const benazepril = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/18867/drugs/898719', - )?.data - expect(benazepril).toBeDefined() - expect(benazepril?.dosageInstruction?.length).toBe(1) - const benazeprilDosageInstruction = benazepril?.dosageInstruction?.at(0) - expect(benazeprilDosageInstruction?.timing?.repeat?.frequency).toBe(2) - expect(benazeprilDosageInstruction?.doseAndRate?.length).toBe(1) + "medications/18867/drugs/898719", + )?.data; + expect(benazepril).toBeDefined(); + expect(benazepril?.dosageInstruction?.length).toBe(1); + const benazeprilDosageInstruction = benazepril?.dosageInstruction?.at(0); + expect(benazeprilDosageInstruction?.timing?.repeat?.frequency).toBe(2); + expect(benazeprilDosageInstruction?.doseAndRate?.length).toBe(1); const benazeprilDoseAndRate = benazeprilDosageInstruction?.doseAndRate?.at(0); expect(benazeprilDoseAndRate?.doseQuantity?.value).toBe(0.5); @@ -173,10 +173,10 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const empagliflozin = medicationRequestsData.find( (req) => req.data.medicationReference?.reference === - 'medications/1545653/drugs/1545658', - )?.data - expect(empagliflozin).toBeDefined() - expect(empagliflozin?.dosageInstruction?.length).toBe(1) + "medications/1545653/drugs/1545658", + )?.data; + expect(empagliflozin).toBeDefined(); + expect(empagliflozin?.dosageInstruction?.length).toBe(1); const empagliflozinDosageInstruction = empagliflozin?.dosageInstruction?.at(0); expect(empagliflozinDosageInstruction?.timing?.repeat?.frequency).toBe(3); @@ -212,13 +212,13 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { dryWeightDocs.docs[0].data().dryWeight(QuantityUnit.lbs)?.value, ).toBe(150); - const appointments = await env.collections.userAppointments(userId).get() - expect(appointments.size).toBe(1) + const appointments = await env.collections.userAppointments(userId).get(); + expect(appointments.size).toBe(1); expect(appointments.docs[0].data().startDate?.toDateString()).toBe( - new Date('2025-07-12').toDateString(), - ) - }) -}) + new Date("2025-07-12").toDateString(), + ); + }); +}); const registrationResponseApple = { authored: "2025-05-14T21:00:08.836575031+02:00", @@ -279,8 +279,8 @@ const registrationResponseApple = { }, ], }, - { linkId: 'medication.rasi.frequency', answer: [{ valueInteger: 2 }] }, - { linkId: 'medication.rasi.quantity', answer: [{ valueDecimal: 1.5 }] }, + { linkId: "medication.rasi.frequency", answer: [{ valueInteger: 2 }] }, + { linkId: "medication.rasi.quantity", answer: [{ valueDecimal: 1.5 }] }, { answer: [ { @@ -319,8 +319,8 @@ const registrationResponseApple = { }, ], }, - { linkId: 'medication.sglt2i.frequency', answer: [{ valueInteger: 2 }] }, - { answer: [{ valueDecimal: 1.34 }], linkId: 'medication.sglt2i.quantity' }, + { linkId: "medication.sglt2i.frequency", answer: [{ valueInteger: 2 }] }, + { answer: [{ valueDecimal: 1.34 }], linkId: "medication.sglt2i.quantity" }, { answer: [ { @@ -358,9 +358,9 @@ const registrationResponseApple = { }; const registrationResponseAndroid = { - resourceType: 'QuestionnaireResponse', - questionnaire: 'http://spezi.health/fhir/questionnaire/engagehf-registration', - status: 'completed', + resourceType: "QuestionnaireResponse", + questionnaire: "http://spezi.health/fhir/questionnaire/engagehf-registration", + status: "completed", item: [ { linkId: "de981575-bd5b-4d84-95bb-35ed6c7f5923", diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts index c5c5bcf2..f8de5241 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts @@ -52,12 +52,12 @@ export class RegistrationQuestionnaireResponseService extends QuestionnaireRespo response: Document, options: { isNew: boolean }, ): Promise { - const urls = [QuestionnaireLinkId.url(QuestionnaireId.registration)] - if (!urls.includes(response.content.data.questionnaire ?? '')) { + const urls = [QuestionnaireLinkId.url(QuestionnaireId.registration)]; + if (!urls.includes(response.content.data.questionnaire ?? "")) { logger.info( `${this.constructor.name}.handle(${userId}): Url ${response.content.data.questionnaire} is not a registration questionnaire, skipping.`, - ) - return false + ); + return false; } const personalInfo = this.extractPersonalInfo(response.content); diff --git a/functions/src/services/recommendation/recommendationService.test.ts b/functions/src/services/recommendation/recommendationService.test.ts index c92fc3a0..3aa5ea1e 100644 --- a/functions/src/services/recommendation/recommendationService.test.ts +++ b/functions/src/services/recommendation/recommendationService.test.ts @@ -13,14 +13,14 @@ import { FHIRMedicationRequest, MedicationReference, UserMedicationRecommendationType, -} from '@stanfordbdhg/engagehf-models' -import { type AllergyIntolerance } from 'fhir/r4b.js' -import { type RecommendationService } from './recommendationService.js' -import { readCsv } from '../../tests/helpers/csv.js' -import { mockRecommendationVitals } from '../../tests/mocks/recommendationVitals.js' -import { setupMockFirebase } from '../../tests/setup.js' -import { getServiceFactory } from '../factory/getServiceFactory.js' -import { type MedicationService } from '../medication/medicationService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type AllergyIntolerance } from "fhir/r4b.js"; +import { type RecommendationService } from "./recommendationService.js"; +import { readCsv } from "../../tests/helpers/csv.js"; +import { mockRecommendationVitals } from "../../tests/mocks/recommendationVitals.js"; +import { setupMockFirebase } from "../../tests/setup.js"; +import { getServiceFactory } from "../factory/getServiceFactory.js"; +import { type MedicationService } from "../medication/medicationService.js"; describe("RecommendationService", () => { let medicationService: MedicationService; @@ -64,8 +64,8 @@ describe("RecommendationService", () => { value.split(",").flatMap((field) => getContraindications( field, - [0, 1, 2, 3].includes(index) ? 'allergy' - : [4, 5, 6, 7].includes(index) ? 'intolerance' + [0, 1, 2, 3].includes(index) ? "allergy" + : [4, 5, 6, 7].includes(index) ? "intolerance" : undefined, ), ), @@ -120,8 +120,8 @@ describe("RecommendationService", () => { expect(expected.recommendedMedication).toBeDefined(); expect(result[i].currentMedication.length).toBeGreaterThan(0); result[i].currentMedication.every((medication) => - (medication.reference ?? '').startsWith( - (expected.recommendedMedication ?? '') + '/drugs/', + (medication.reference ?? "").startsWith( + (expected.recommendedMedication ?? "") + "/drugs/", ), ); } else if (expected.recommendedMedication) { @@ -288,7 +288,7 @@ function getMedicationRequest( function getContraindications( field: string, - type: AllergyIntolerance['type'] | undefined, + type: AllergyIntolerance["type"] | undefined, ): FHIRAllergyIntolerance[] { switch (field.trim().toLowerCase().split(" ").join("")) { case "none": @@ -298,7 +298,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.bisoprolol, type, - criticality: 'low', + criticality: "low", }), ]; case "carvedilol": @@ -306,7 +306,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.carvedilol, type, - criticality: 'low', + criticality: "low", }), ]; case "dapagliflozin": @@ -314,7 +314,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.dapagliflozin, type, - criticality: 'low', + criticality: "low", }), ]; case "empagliflozin": @@ -322,7 +322,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.empagliflozin, type, - criticality: 'low', + criticality: "low", }), ]; case "eplerenone": @@ -330,7 +330,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.eplerenone, type, - criticality: 'low', + criticality: "low", }), ]; case "lisinopril": @@ -338,7 +338,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.lisinopril, type, - criticality: 'low', + criticality: "low", }), ]; case "lisinopril-anaphylaxis": @@ -346,7 +346,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.lisinopril, type, - criticality: 'high', + criticality: "high", }), ]; case "losartan": @@ -354,7 +354,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.losartan, type, - criticality: 'low', + criticality: "low", }), ]; case "metoprolol": @@ -362,7 +362,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.metoprololSuccinate, type, - criticality: 'high', + criticality: "high", }), ]; case "sacubitril-valsartan": @@ -370,7 +370,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.sacubitrilValsartan, type, - criticality: 'low', + criticality: "low", }), ]; case "sotagliflozin": @@ -378,7 +378,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.sotagliflozin, type, - criticality: 'low', + criticality: "low", }), ]; case "spironolactone": @@ -386,7 +386,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.spironolactone, type, - criticality: 'low', + criticality: "low", }), ]; case "valsartan": @@ -394,7 +394,7 @@ function getContraindications( FHIRAllergyIntolerance.create({ reference: MedicationReference.valsartan, type, - criticality: 'low', + criticality: "low", }), ]; default: diff --git a/functions/src/services/recommendation/recommendationService.ts b/functions/src/services/recommendation/recommendationService.ts index f6d03a21..3842b27c 100644 --- a/functions/src/services/recommendation/recommendationService.ts +++ b/functions/src/services/recommendation/recommendationService.ts @@ -15,18 +15,18 @@ import { UserMedicationRecommendation, type UserMedicationRecommendationDoseSchedule, UserMedicationRecommendationType, -} from '@stanfordbdhg/engagehf-models' -import { type Medication, type MedicationRequest } from 'fhir/r4b.js' -import { recommendationLocalization } from './recommendationService+localization.js' -import { BetaBlockerRecommender } from './recommenders/betaBlockerRecommender.js' -import { DiureticRecommender } from './recommenders/diureticRecommender.js' -import { MraRecommender } from './recommenders/mraRecommender.js' -import { RasiRecommender } from './recommenders/rasiRecommender.js' -import { type Recommender } from './recommenders/recommender.js' -import { Sglt2iRecommender } from './recommenders/sglt2iRecommender.js' -import { type MedicationRequestContext } from '../../models/medicationRequestContext.js' -import { type ContraindicationService } from '../contraindication/contraindicationService.js' -import { type MedicationService } from '../medication/medicationService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Medication, type MedicationRequest } from "fhir/r4b.js"; +import { recommendationLocalization } from "./recommendationService+localization.js"; +import { BetaBlockerRecommender } from "./recommenders/betaBlockerRecommender.js"; +import { DiureticRecommender } from "./recommenders/diureticRecommender.js"; +import { MraRecommender } from "./recommenders/mraRecommender.js"; +import { RasiRecommender } from "./recommenders/rasiRecommender.js"; +import { type Recommender } from "./recommenders/recommender.js"; +import { Sglt2iRecommender } from "./recommenders/sglt2iRecommender.js"; +import { type MedicationRequestContext } from "../../models/medicationRequestContext.js"; +import { type ContraindicationService } from "../contraindication/contraindicationService.js"; +import { type MedicationService } from "../medication/medicationService.js"; export interface RecommendationInput { requests: MedicationRequestContext[]; @@ -36,11 +36,11 @@ export interface RecommendationInput { } export interface RecommendationVitals { - systolicBloodPressure: ObservationQuantity[] - heartRate: ObservationQuantity[] - creatinine?: ObservationQuantity - estimatedGlomerularFiltrationRate?: ObservationQuantity - potassium?: ObservationQuantity + systolicBloodPressure: ObservationQuantity[]; + heartRate: ObservationQuantity[]; + creatinine?: ObservationQuantity; + estimatedGlomerularFiltrationRate?: ObservationQuantity; + potassium?: ObservationQuantity; } export interface RecommendationOutput { @@ -149,7 +149,7 @@ export class RecommendationService { const currentDailyDoseSchedule = output.currentMedication.flatMap( (context) => this.doseSchedule(context.request.data, context.drug.data), - ) + ); const targetDailyDoseRequest = medication?.targetDailyDoseRequest; const targetDailyDoseDrugReference = @@ -166,7 +166,7 @@ export class RecommendationService { targetDailyDoseRequest, targetDailyDoseDrugReference.data, ) - : [] + : []; return new UserMedicationRecommendation({ currentMedication: output.currentMedication.map( diff --git a/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts b/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts index 7a4ea2a2..e7a106f6 100644 --- a/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts @@ -65,7 +65,7 @@ describe("DiureticRecommender", () => { reference: DrugReference.furosemide20, }, drug: new FHIRMedication({ - resourceType: 'Medication', + resourceType: "Medication", code: { coding: [ { @@ -80,7 +80,7 @@ describe("DiureticRecommender", () => { reference: MedicationReference.furosemide, }, medication: new FHIRMedication({ - resourceType: 'Medication', + resourceType: "Medication", code: { coding: [ { diff --git a/functions/src/services/recommendation/recommenders/recommender.ts b/functions/src/services/recommendation/recommenders/recommender.ts index a3cc7a1b..e7122230 100644 --- a/functions/src/services/recommendation/recommenders/recommender.ts +++ b/functions/src/services/recommendation/recommenders/recommender.ts @@ -99,16 +99,16 @@ export abstract class Recommender { protected medianValue( observations: ObservationQuantity[], ): number | undefined { - if (observations.length < 3) return undefined - return median(observations.map((observation) => observation.value)) ?? 0 + if (observations.length < 3) return undefined; + return median(observations.map((observation) => observation.value)) ?? 0; } private currentDailyDose(contexts: MedicationRequestContext[]): number[] { const dailyDoses: number[] = []; for (const context of contexts) { - let numberOfTabletsPerDay = 0 + let numberOfTabletsPerDay = 0; for (const instruction of context.request.data.dosageInstruction ?? []) { - const intakesPerDay = instruction.timing?.repeat?.frequency ?? 0 + const intakesPerDay = instruction.timing?.repeat?.frequency ?? 0; for (const dose of instruction.doseAndRate ?? []) { const numberOfPills = dose.doseQuantity?.value; if (!numberOfPills) @@ -117,7 +117,7 @@ export abstract class Recommender { } } - const ingredients = context.drug.data.ingredient ?? [] + const ingredients = context.drug.data.ingredient ?? []; while (dailyDoses.length < ingredients.length) { dailyDoses.push(0); diff --git a/functions/src/services/seeding/debugData/debugDataService.ts b/functions/src/services/seeding/debugData/debugDataService.ts index 9c538bb7..fbe6a195 100644 --- a/functions/src/services/seeding/debugData/debugDataService.ts +++ b/functions/src/services/seeding/debugData/debugDataService.ts @@ -25,15 +25,15 @@ import { VideoReference, UserObservationCollection, fhirQuestionnaireConverter, -} from '@stanfordbdhg/engagehf-models' -import { type Auth } from 'firebase-admin/auth' -import { type CollectionReference } from 'firebase-admin/firestore' -import { type Storage } from 'firebase-admin/storage' -import { logger } from 'firebase-functions' -import { type CollectionsService } from '../../database/collections.js' -import { type DatabaseService } from '../../database/databaseService.js' -import { createKccqQuestionnaireResponse } from '../../questionnaireResponse/createKccqQuestionnaireResponse.js' -import { SeedingService } from '../seedingService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Auth } from "firebase-admin/auth"; +import { type CollectionReference } from "firebase-admin/firestore"; +import { type Storage } from "firebase-admin/storage"; +import { logger } from "firebase-functions"; +import { type CollectionsService } from "../../database/collections.js"; +import { type DatabaseService } from "../../database/databaseService.js"; +import { createKccqQuestionnaireResponse } from "../../questionnaireResponse/createKccqQuestionnaireResponse.js"; +import { SeedingService } from "../seedingService.js"; export class DebugDataService extends SeedingService { // Properties @@ -405,7 +405,7 @@ export class DebugDataService extends SeedingService { async seedUserQuestionnaireResponses(userId: string, date: Date) { const questionnaire = this.readJSONRecord( - '../questionnaires.json', + "../questionnaires.json", fhirQuestionnaireConverter.schema, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion )[QuestionnaireReference.kccq_en_US.split("/").at(-1)!]; @@ -460,7 +460,7 @@ export class DebugDataService extends SeedingService { const values = chunks(randomNumbers, 13).map((chunk, index) => createKccqQuestionnaireResponse({ - questionnaire: questionnaire.data.url ?? '', + questionnaire: questionnaire.data.url ?? "", questionnaireResponse: index.toString(), date: advanceDateByDays(date, -(index * 14) - 2), answer1a: Math.floor(1 + chunk[0] * 6), diff --git a/functions/src/services/seeding/seedingService.ts b/functions/src/services/seeding/seedingService.ts index c2be3423..dffbea95 100644 --- a/functions/src/services/seeding/seedingService.ts +++ b/functions/src/services/seeding/seedingService.ts @@ -6,11 +6,11 @@ // SPDX-License-Identifier: MIT // -import fs from 'fs' -import { CachingStrategy } from '@stanfordbdhg/engagehf-models' -import { type CollectionReference } from 'firebase-admin/firestore' -import { logger } from 'firebase-functions' -import { z, type ZodType } from 'zod' +import fs from "fs"; +import { CachingStrategy } from "@stanfordbdhg/engagehf-models"; +import { type CollectionReference } from "firebase-admin/firestore"; +import { logger } from "firebase-functions"; +import { z, type ZodType } from "zod"; export interface SeedingOptions { useIndicesAsKeys: boolean; diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts index 7ba6ad80..40e69416 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts @@ -6,10 +6,13 @@ // SPDX-License-Identifier: MIT // -import { type FHIRQuestionnaire } from '@stanfordbdhg/engagehf-models' -import { type QuestionnaireItem } from 'fhir/r4b.js' -import { QuestionnaireFactory } from './questionnaireFactory.js' -import { QuestionnaireId, QuestionnaireLinkId } from './questionnaireLinkIds.js' +import { type FHIRQuestionnaire } from "@stanfordbdhg/engagehf-models"; +import { type QuestionnaireItem } from "fhir/r4b.js"; +import { QuestionnaireFactory } from "./questionnaireFactory.js"; +import { + QuestionnaireId, + QuestionnaireLinkId, +} from "./questionnaireLinkIds.js"; export class KccqQuestionnaireFactory extends QuestionnaireFactory { create(): FHIRQuestionnaire { diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts index 0ef86134..5fdabc81 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts @@ -14,7 +14,7 @@ import { FHIRQuestionnaire, LoincCode, QuantityUnit, -} from '@stanfordbdhg/engagehf-models' +} from "@stanfordbdhg/engagehf-models"; import { type QuestionnaireItem, type QuestionnaireItemEnableWhen, @@ -22,7 +22,7 @@ import { type UsageContext, type Extension, type Questionnaire, -} from 'fhir/r4b.js' +} from "fhir/r4b.js"; import { medicationClassesForGroup, MedicationGroup, @@ -39,7 +39,7 @@ export abstract class QuestionnaireFactory { // Helper functions - ENGAGE-HF specific protected appointmentInputPages(): QuestionnaireItem[] { - const linkIds = QuestionnaireLinkId.appointment + const linkIds = QuestionnaireLinkId.appointment; return [ this.pageItem({ linkId: linkIds.page0, @@ -61,7 +61,7 @@ export abstract class QuestionnaireFactory { enableWhen: [ { question: linkIds.exists, - operator: '=', + operator: "=", answerBoolean: true, }, ], @@ -115,15 +115,15 @@ export abstract class QuestionnaireFactory { } protected labInputPagesForValue(input: { - loincCode: LoincCode - title: string - name: string - description: string - unit: QuantityUnit - minValue?: number - maxValue?: number + loincCode: LoincCode; + title: string; + name: string; + description: string; + unit: QuantityUnit; + minValue?: number; + maxValue?: number; }): QuestionnaireItem[] { - const linkIds = QuestionnaireLinkId.labValue(input.loincCode) + const linkIds = QuestionnaireLinkId.labValue(input.loincCode); return [ this.pageItem({ linkId: linkIds.page0, @@ -145,7 +145,7 @@ export abstract class QuestionnaireFactory { enableWhen: [ { question: linkIds.exists, - operator: '=', + operator: "=", answerBoolean: true, }, ], @@ -171,9 +171,9 @@ export abstract class QuestionnaireFactory { } protected medicationInputPages(input: { - medications: Record - drugs: Record> - isRegistration: boolean + medications: Record; + drugs: Record>; + isRegistration: boolean; }): QuestionnaireItem[] { return [ ...this.medicationInputPagesForMedicationGroup({ @@ -205,16 +205,16 @@ export abstract class QuestionnaireFactory { } protected medicationInputPagesForMedicationGroup(input: { - drugs: Record> - medications: Record - group: MedicationGroup - text: string - isRegistration: boolean + drugs: Record>; + medications: Record; + group: MedicationGroup; + text: string; + isRegistration: boolean; }): QuestionnaireItem[] { - const linkIds = QuestionnaireLinkId.medication(input.group) + const linkIds = QuestionnaireLinkId.medication(input.group); const medicationClasses = medicationClassesForGroup(input.group).map( - (medicationClass) => medicationClass.toString(), - ) + (medicationClass) => medicationClass as string, + ); const medicationIds = compactMap( Object.entries(input.medications), ([id, medication]) => @@ -241,7 +241,7 @@ export abstract class QuestionnaireFactory { if (medication.brandNames.length > 0) text += ` (${medication.brandNames.join(", ")})`; - text += `\n${drug.data.ingredient?.map((i) => i.strength?.numerator?.value ?? 0).join('/') ?? ''} mg ${drug.data.form?.text ?? ''}` + text += `\n${drug.data.ingredient?.map((i) => i.strength?.numerator?.value ?? 0).join("/") ?? ""} mg ${drug.data.form?.text ?? ""}`; answers.push({ id: `medications/${medicationId}/drugs/${drugId}`, medication, @@ -314,7 +314,7 @@ export abstract class QuestionnaireFactory { enableWhen: [ { question: linkIds.exists, - operator: '=', + operator: "=", answerCoding: input.isRegistration ? answerOptions.find( @@ -364,101 +364,101 @@ export abstract class QuestionnaireFactory { // Helper functions - Generic protected booleanItem(input: { - linkId: string - text: string - required?: boolean + linkId: string; + text: string; + required?: boolean; }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: 'boolean', + type: "boolean", required: input.required ?? true, }; } protected dateItem(input: { - linkId: string - text: string - required?: boolean + linkId: string; + text: string; + required?: boolean; }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: 'date', + type: "date", required: input.required ?? true, }; } protected dateTimeItem(input: { - linkId: string - text: string - required?: boolean + linkId: string; + text: string; + required?: boolean; }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: 'dateTime', + type: "dateTime", required: input.required ?? true, }; } protected decimalItem(input: { - linkId: string - text: string - required?: boolean - unit?: string - minValue?: number - maxValue?: number + linkId: string; + text: string; + required?: boolean; + unit?: string; + minValue?: number; + maxValue?: number; }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: 'decimal', + type: "decimal", required: input.required ?? true, }; } protected displayItem(input: { - linkId: string - text: string - required?: boolean + linkId: string; + text: string; + required?: boolean; }): QuestionnaireItem { return { linkId: input.linkId, - type: 'display', + type: "display", text: input.text, required: input.required ?? false, }; } protected integerItem(input: { - linkId: string - text: string - required?: boolean - unit?: string - minValue?: number - maxValue?: number + linkId: string; + text: string; + required?: boolean; + unit?: string; + minValue?: number; + maxValue?: number; }): QuestionnaireItem { return { linkId: input.linkId, text: input.text, - type: 'integer', + type: "integer", required: input.required ?? true, - } + }; } protected pageItem(input: { - linkId: string - text: string - item: QuestionnaireItem[] - enableWhen?: QuestionnaireItemEnableWhen[] - enableBehavior?: 'all' | 'any' - extension?: Extension[] - required?: boolean + linkId: string; + text: string; + item: QuestionnaireItem[]; + enableWhen?: QuestionnaireItemEnableWhen[]; + enableBehavior?: "all" | "any"; + extension?: Extension[]; + required?: boolean; }): QuestionnaireItem { return { linkId: input.linkId, - type: 'group', + type: "group", extension: [ ...(input.extension ?? []), { @@ -484,19 +484,19 @@ export abstract class QuestionnaireFactory { } protected questionnaire(input: { - id: QuestionnaireId - title: string - status?: Questionnaire['status'] - item: QuestionnaireItem[] - useContext?: UsageContext[] + id: QuestionnaireId; + title: string; + status?: Questionnaire["status"]; + item: QuestionnaireItem[]; + useContext?: UsageContext[]; }): FHIRQuestionnaire { return new FHIRQuestionnaire({ - resourceType: 'Questionnaire', + resourceType: "Questionnaire", id: input.id, title: input.title, - language: 'en-US', - status: input.status ?? 'active', - publisher: 'Stanford Biodesign Digital Health', + language: "en-US", + status: input.status ?? "active", + publisher: "Stanford Biodesign Digital Health", meta: { profile: [ "http://spezi.health/fhir/StructureDefinition/sdf-Questionnaire", @@ -522,10 +522,10 @@ export abstract class QuestionnaireFactory { } protected radioButtonItem(input: { - linkId: string - text: string - answerOption: QuestionnaireItemAnswerOption[] - required?: boolean + linkId: string; + text: string; + answerOption: QuestionnaireItemAnswerOption[]; + required?: boolean; }): QuestionnaireItem { return { extension: [ @@ -543,7 +543,7 @@ export abstract class QuestionnaireFactory { }, ], linkId: input.linkId, - type: 'choice', + type: "choice", text: input.text, required: input.required ?? true, answerOption: input.answerOption, @@ -553,10 +553,10 @@ export abstract class QuestionnaireFactory { protected valueSetAnswerOptions(input: { system: string; values: Array<{ - id?: string - code: string - display: string - }> + id?: string; + code: string; + display: string; + }>; }): QuestionnaireItemAnswerOption[] { return input.values.map((option) => ({ valueCoding: { diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts index 5cc91a35..ca50f61e 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts @@ -47,7 +47,7 @@ export class RegistrationQuestionnaireFactory extends QuestionnaireFactory { expect(carvedilol6_25).toBeDefined(); expect( carvedilol6_25.data.code?.coding?.find( - (coding) => coding.code === '200031', + (coding) => coding.code === "200031", ), - ).toBeDefined() + ).toBeDefined(); expect( carvedilol6_25.data.ingredient?.find((ingredient) => ingredient.itemCodeableConcept?.coding?.some( @@ -72,9 +72,9 @@ describe("RxNormService", () => { expect(carvedilol25).toBeDefined(); expect( carvedilol25.data.code?.coding?.find( - (coding) => coding.code === '200033', + (coding) => coding.code === "200033", ), - ).toBeDefined() + ).toBeDefined(); expect( carvedilol25.data.ingredient?.find((ingredient) => ingredient.itemCodeableConcept?.coding?.some( diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts index ec55522f..894f59c5 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts @@ -14,11 +14,11 @@ import { type MedicationClass, optionalish, QuantityUnit, -} from '@stanfordbdhg/engagehf-models' -import { type Extension, type FhirResource } from 'fhir/r4b.js' -import { logger } from 'firebase-functions' -import { z } from 'zod' -import { RxNormApi } from './rxNormApi.js' +} from "@stanfordbdhg/engagehf-models"; +import { type Extension, type FhirResource } from "fhir/r4b.js"; +import { logger } from "firebase-functions"; +import { z } from "zod"; +import { RxNormApi } from "./rxNormApi.js"; import { type RxNormConceptProperty, type RxTermInfo, @@ -44,7 +44,7 @@ export const medicationSpecificationSchema = z.object({ ingredients: optionalish(z.string().array()), drugs: optionalish(z.string().array()), fallbackTerms: optionalish(z.record(z.string(), rxTermInfo)), -}) +}); export type MedicationSpecification = z.output< typeof medicationSpecificationSchema @@ -136,9 +136,9 @@ export class RxNormService { drug.rxcui, ingredients, medication.fallbackTerms?.[drug.rxcui] ?? {}, - ) + ); if (fhirDrug.data.id) { - drugs[medication.code][fhirDrug.data.id] = fhirDrug + drugs[medication.code][fhirDrug.data.id] = fhirDrug; } } catch (error) { logger.error( @@ -186,29 +186,29 @@ export class RxNormService { targetDailyDose: MedicationDailyDoseSpecification | undefined, drugs: Record, ): FHIRMedication { - const containedResources: FhirResource[] = [] - const extensions: Extension[] = [] + const containedResources: FhirResource[] = []; + const extensions: Extension[] = []; if (medicationClassId) { - const localizedName = medicationClasses.get(medicationClassId)?.name + const localizedName = medicationClasses.get(medicationClassId)?.name; extensions.push({ url: FHIRExtensionUrl.medicationClass, valueReference: { reference: `medicationClasses/${medicationClassId}`, display: localizedName?.localize(), // TODO: What to do about localization here? Ignore? }, - }) + }); } if (minimumDailyDose) { - const containedId = 'minimumDailyDose' + const containedId = "minimumDailyDose"; const containedDisplay = - drugs[minimumDailyDose.drug].data.code?.coding?.at(0)?.display + drugs[minimumDailyDose.drug].data.code?.coding?.at(0)?.display; extensions.push({ url: FHIRExtensionUrl.minimumDailyDose, valueReference: { - reference: '#' + containedId, + reference: "#" + containedId, display: containedDisplay, }, - }) + }); containedResources.push( FHIRMedicationRequest.create({ id: containedId, @@ -218,35 +218,35 @@ export class RxNormService { ...(drugs[minimumDailyDose.drug].data.ingredient ?? []).map( (ingredient) => { const value = - QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0 + QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0; const quantity = QuantityUnit.mg.fhirQuantity( value * minimumDailyDose.quantity * minimumDailyDose.frequency, - ) + ); return { url: FHIRExtensionUrl.totalDailyDose, valueQuantity: quantity, - } + }; }, ), ], frequencyPerDay: minimumDailyDose.frequency, quantity: minimumDailyDose.quantity, }).data, - ) + ); } if (targetDailyDose) { - const containedId = `targetDailyDose` + const containedId = `targetDailyDose`; const containedDisplay = - drugs[targetDailyDose.drug].data.code?.coding?.at(0)?.display + drugs[targetDailyDose.drug].data.code?.coding?.at(0)?.display; extensions.push({ url: FHIRExtensionUrl.targetDailyDose, valueReference: { - reference: '#' + containedId, + reference: "#" + containedId, display: containedDisplay, }, - }) + }); containedResources.push( FHIRMedicationRequest.create({ id: containedId, @@ -256,32 +256,32 @@ export class RxNormService { ...(drugs[targetDailyDose.drug].data.ingredient ?? []).map( (ingredient) => { const value = - QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0 + QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0; const quantity = QuantityUnit.mg.fhirQuantity( value * targetDailyDose.quantity * targetDailyDose.frequency, - ) + ); return { url: FHIRExtensionUrl.totalDailyDose, valueQuantity: quantity, - } + }; }, ), ], frequencyPerDay: targetDailyDose.frequency, quantity: targetDailyDose.quantity, }).data, - ) + ); } for (const brandName of brandNames) { extensions.push({ url: FHIRExtensionUrl.brandName, valueString: brandName, - }) + }); } return new FHIRMedication({ - resourceType: 'Medication', + resourceType: "Medication", id: rxcui, contained: containedResources, extension: extensions, @@ -308,7 +308,7 @@ export class RxNormService { }, })) : undefined, - }) + }); } private async buildFHIRDrug( @@ -337,7 +337,7 @@ export class RxNormService { throw new Error(`Missing display name for RXCUI ${rxcui}.`); } return new FHIRMedication({ - resourceType: 'Medication', + resourceType: "Medication", id: rxcui, code: { coding: [ diff --git a/functions/src/services/seeding/staticData/staticDataService.ts b/functions/src/services/seeding/staticData/staticDataService.ts index 1245f21d..97057420 100644 --- a/functions/src/services/seeding/staticData/staticDataService.ts +++ b/functions/src/services/seeding/staticData/staticDataService.ts @@ -258,16 +258,16 @@ export class StaticDataService extends SeedingService { }, (result) => { this.writeJSON( - 'medications.json', + "medications.json", Object.fromEntries( Object.entries(result.medications).map(([key, value]) => [ key, value.data, ]), ), - ) + ); this.writeJSON( - 'drugs.json', + "drugs.json", Object.fromEntries( Object.entries(result.drugs).map(([key, value]) => [ key, @@ -279,7 +279,7 @@ export class StaticDataService extends SeedingService { ), ]), ), - ) + ); }, ); } diff --git a/functions/src/services/trigger/triggerService.test.ts b/functions/src/services/trigger/triggerService.test.ts index 34abf539..4d56f059 100644 --- a/functions/src/services/trigger/triggerService.test.ts +++ b/functions/src/services/trigger/triggerService.test.ts @@ -38,7 +38,7 @@ describeWithEmulators("TriggerService", (env) => { const appointment = FHIRAppointment.create({ userId: patientId, - status: 'proposed', + status: "proposed", created: advanceDateByDays(new Date(), -3), start: advanceDateByDays(new Date(), 1.01), durationInMinutes: 60, @@ -97,7 +97,7 @@ describeWithEmulators("TriggerService", (env) => { const appointment = FHIRAppointment.create({ userId: patientId, - status: 'proposed', + status: "proposed", created: advanceDateByDays(new Date(), -3), start: advanceDateByDays(new Date(), -1), durationInMinutes: 60, @@ -163,7 +163,7 @@ describeWithEmulators("TriggerService", (env) => { const appointment = FHIRAppointment.create({ userId: patientId, - status: 'proposed', + status: "proposed", created: advanceDateByDays(new Date(), -3), start: advanceDateByDays(new Date(), -1), durationInMinutes: 60, diff --git a/functions/src/services/trigger/triggerService.ts b/functions/src/services/trigger/triggerService.ts index 39fdb0e9..67fbfef8 100644 --- a/functions/src/services/trigger/triggerService.ts +++ b/functions/src/services/trigger/triggerService.ts @@ -195,8 +195,8 @@ export class TriggerService { const reminderRangeStart = advanceDateByHours(now, -24); const reminderRangeEnd = advanceDateByHours(now, 24); - const newStartDate = newData?.startDate - const newEndDate = newData?.endDate + const newStartDate = newData?.startDate; + const newEndDate = newData?.endDate; if ( newData === null || newStartDate === undefined || @@ -210,9 +210,9 @@ export class TriggerService { (message) => message.reference === `users/${userId}/appointments/${appointmentId}`, - ) + ); } else if (newStartDate > now && newStartDate < reminderRangeEnd) { - const userService = this.factory.user() + const userService = this.factory.user(); const message = UserMessage.createPreAppointment({ creationDate: now, reference: `users/${userId}/appointments/${appointmentId}`, @@ -405,7 +405,7 @@ export class TriggerService { // Drug const drugReference = - after?.data.medicationReference ?? before?.data.medicationReference + after?.data.medicationReference ?? before?.data.medicationReference; if (!drugReference?.reference) { logger.error( `TriggerService.userMedicationRequestWritten(${userId}, ${medicationRequestId}): Neither before nor after data contains a medication reference`, diff --git a/functions/src/tests/mocks/questionnaire.ts b/functions/src/tests/mocks/questionnaire.ts index fef0f746..71fcb891 100644 --- a/functions/src/tests/mocks/questionnaire.ts +++ b/functions/src/tests/mocks/questionnaire.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { FHIRQuestionnaire } from '@stanfordbdhg/engagehf-models' +import { FHIRQuestionnaire } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireId, QuestionnaireLinkId, @@ -14,27 +14,27 @@ import { export function mockQuestionnaire(): FHIRQuestionnaire { return new FHIRQuestionnaire({ - resourceType: 'Questionnaire', - title: 'KCCQ-12', - language: 'en-US', - status: 'draft', - publisher: 'Stanford Biodesign Digital Health', + resourceType: "Questionnaire", + title: "KCCQ-12", + language: "en-US", + status: "draft", + publisher: "Stanford Biodesign Digital Health", url: QuestionnaireLinkId.url(QuestionnaireId.kccq), item: [ { - linkId: '73490535-203f-44b2-d1b7-7c0a786c16f9', - type: 'display', - text: 'The following questions refer to your heart failure and how it may affect your life. Please read and complete the following questions. There are no right or wrong answers. Please mark the answer that best applies to you.\n\nThese results will be send to your care team.', + linkId: "73490535-203f-44b2-d1b7-7c0a786c16f9", + type: "display", + text: "The following questions refer to your heart failure and how it may affect your life. Please read and complete the following questions. There are no right or wrong answers. Please mark the answer that best applies to you.\n\nThese results will be send to your care team.", required: false, }, { - linkId: 'c0b3bef6-1e2d-4621-d82e-b73069574dc4', - type: 'group', + linkId: "c0b3bef6-1e2d-4621-d82e-b73069574dc4", + type: "group", item: [ { - linkId: 'a459b804-35bf-4792-f1eb-0b52c4e176e1', - type: 'choice', - text: 'Showering/bathing', + linkId: "a459b804-35bf-4792-f1eb-0b52c4e176e1", + type: "choice", + text: "Showering/bathing", required: true, answerOption: [ { @@ -89,9 +89,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: 'cf9c5031-1ed5-438a-fc7d-dc69234015a0', - type: 'choice', - text: 'Walking 1 block on level ground', + linkId: "cf9c5031-1ed5-438a-fc7d-dc69234015a0", + type: "choice", + text: "Walking 1 block on level ground", required: true, answerOption: [ { @@ -146,9 +146,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '1fad0f81-b2a9-4c8f-9a78-4b2a5d7aef07', - type: 'choice', - text: 'Hurrying or jogging (as if to catch a bus)', + linkId: "1fad0f81-b2a9-4c8f-9a78-4b2a5d7aef07", + type: "choice", + text: "Hurrying or jogging (as if to catch a bus)", required: true, answerOption: [ { @@ -207,9 +207,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { text: "Heart failure affects different people in different ways. Some feel shortness of breath while others feel fatigue. Please indicate how much you are limited by heart failure (shortness of breath or fatigue) in your ability to do the following activities over the past 2 weeks.", }, { - linkId: '692bda7d-a616-43d1-8dc6-8291f6460ab2', - type: 'choice', - text: 'Over the past 2 weeks, how many times did you have swelling in your feet, ankles or legs when you woke up in the morning?', + linkId: "692bda7d-a616-43d1-8dc6-8291f6460ab2", + type: "choice", + text: "Over the past 2 weeks, how many times did you have swelling in your feet, ankles or legs when you woke up in the morning?", required: true, answerOption: [ { @@ -255,9 +255,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: 'b1734b9e-1d16-4238-8556-5ae3fa0ba913', - type: 'choice', - text: 'Over the past 2 weeks, on average, how many times has fatigue limited your ability to do what you wanted', + linkId: "b1734b9e-1d16-4238-8556-5ae3fa0ba913", + type: "choice", + text: "Over the past 2 weeks, on average, how many times has fatigue limited your ability to do what you wanted", required: true, answerOption: [ { @@ -319,9 +319,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '57f37fb3-a0ad-4b1f-844e-3f67d9b76946', - type: 'choice', - text: 'Over the past 2 weeks, on average, how many times has shortness of breath limited your ability to do what you wanted', + linkId: "57f37fb3-a0ad-4b1f-844e-3f67d9b76946", + type: "choice", + text: "Over the past 2 weeks, on average, how many times has shortness of breath limited your ability to do what you wanted", required: true, answerOption: [ { @@ -383,9 +383,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '396164df-d045-4c56-d710-513297bdc6f2', - type: 'choice', - text: 'Over the past 2 weeks, on average, how many times have you been forced to sleep sitting up in a chair or with at least 3 pillows to prop you up because of shortness of breath?', + linkId: "396164df-d045-4c56-d710-513297bdc6f2", + type: "choice", + text: "Over the past 2 weeks, on average, how many times have you been forced to sleep sitting up in a chair or with at least 3 pillows to prop you up because of shortness of breath?", required: true, answerOption: [ { @@ -431,9 +431,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '75e3f62e-e37d-48a2-f4d9-af2db8922da0', - type: 'choice', - text: 'Over the past 2 weeks, how much has your heart failure limited your enjoyment of life?', + linkId: "75e3f62e-e37d-48a2-f4d9-af2db8922da0", + type: "choice", + text: "Over the past 2 weeks, how much has your heart failure limited your enjoyment of life?", required: true, answerOption: [ { @@ -479,9 +479,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: 'fce3a16e-c6d8-4bac-8ab5-8f4aee4adc08', - type: 'choice', - text: 'If you had to spend the rest of your life with your heart failure the way it is right now, how would you feel about this?', + linkId: "fce3a16e-c6d8-4bac-8ab5-8f4aee4adc08", + type: "choice", + text: "If you had to spend the rest of your life with your heart failure the way it is right now, how would you feel about this?", required: true, answerOption: [ { @@ -527,13 +527,13 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '8649bc8c-f908-487d-87a4-a97106b1a4c3', - type: 'group', + linkId: "8649bc8c-f908-487d-87a4-a97106b1a4c3", + type: "group", item: [ { - linkId: '8b022e69-127d-4447-8190-39ac645e60e1', - type: 'choice', - text: 'Hobbies, recreational activities', + linkId: "8b022e69-127d-4447-8190-39ac645e60e1", + type: "choice", + text: "Hobbies, recreational activities", required: true, answerOption: [ { @@ -587,9 +587,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '1eee7259-da1c-4cba-80a9-e67e684573a1', - type: 'choice', - text: 'Working or doing household chores', + linkId: "1eee7259-da1c-4cba-80a9-e67e684573a1", + type: "choice", + text: "Working or doing household chores", required: true, answerOption: [ { @@ -643,9 +643,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { ], }, { - linkId: '883a22a8-2f6e-4b41-84b7-0028ed543192', - type: 'choice', - text: 'Visiting family or friends out of your home', + linkId: "883a22a8-2f6e-4b41-84b7-0028ed543192", + type: "choice", + text: "Visiting family or friends out of your home", required: true, answerOption: [ { @@ -703,9 +703,9 @@ export function mockQuestionnaire(): FHIRQuestionnaire { text: "How much does your heart failure affect your lifestyle? Please indicate how your heart failure may have limited your participation in the following activities over the past 2 weeks.", }, { - linkId: '24108967-2ff3-40d0-c54f-a7b97bb84d05', - type: 'choice', - text: 'In the last two weeks, how much has your dizziness affected you?', + linkId: "24108967-2ff3-40d0-c54f-a7b97bb84d05", + type: "choice", + text: "In the last two weeks, how much has your dizziness affected you?", required: true, answerOption: [ { diff --git a/functions/src/tests/mocks/recommendationVitals.ts b/functions/src/tests/mocks/recommendationVitals.ts index 808cf11e..0b30bcbf 100644 --- a/functions/src/tests/mocks/recommendationVitals.ts +++ b/functions/src/tests/mocks/recommendationVitals.ts @@ -9,8 +9,8 @@ import { type ObservationQuantity, QuantityUnit, -} from '@stanfordbdhg/engagehf-models' -import { type RecommendationVitals } from '../../services/recommendation/recommendationService.js' +} from "@stanfordbdhg/engagehf-models"; +import { type RecommendationVitals } from "../../services/recommendation/recommendationService.js"; export function mockRecommendationVitals(options: { countBloodPressureBelow85: number; From 2e1de8609e8d3bcd2361a2ddbf34c1ebd0e4aaa7 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Thu, 4 Sep 2025 19:24:52 +0200 Subject: [PATCH 17/18] Set higher limit for firebase-admin version --- functions/package-lock.json | 2 +- functions/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/functions/package-lock.json b/functions/package-lock.json index eea24503..79ed1406 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -9,7 +9,7 @@ "@resvg/resvg-js": "^2.6.2", "@stanfordbdhg/engagehf-models": "file:models", "d3": "^7.9.0", - "firebase-admin": "^13.2", + "firebase-admin": "^13.4.0", "firebase-functions": "^6.3.2", "jsdom": "^24.1.0", "jspdf": "^3.0.2", diff --git a/functions/package.json b/functions/package.json index 3b92984f..ca76f70e 100644 --- a/functions/package.json +++ b/functions/package.json @@ -29,7 +29,7 @@ "@resvg/resvg-js": "^2.6.2", "@stanfordbdhg/engagehf-models": "file:models", "d3": "^7.9.0", - "firebase-admin": "^13.2", + "firebase-admin": "^13.4.0", "firebase-functions": "^6.3.2", "jsdom": "^24.1.0", "jspdf": "^3.0.2", From a539bb6dd2f755af6f9b063ccd57aa7fbde6f4d2 Mon Sep 17 00:00:00 2001 From: Paul Kraft Date: Thu, 4 Sep 2025 21:45:43 +0200 Subject: [PATCH 18/18] update --- README.md | 4 +- functions/models/package-lock.json | 2 +- functions/models/package.json | 2 +- .../models/src/fhir/fhirAllergyIntolerance.ts | 23 +++- functions/models/src/fhir/fhirAppointment.ts | 35 +++--- functions/models/src/fhir/fhirConverters.ts | 60 ++++------ functions/models/src/fhir/fhirMedication.ts | 35 ++++-- .../models/src/fhir/fhirMedicationRequest.ts | 23 +++- functions/models/src/fhir/fhirObservation.ts | 43 ++++--- .../models/src/fhir/fhirQuestionnaire.ts | 20 +++- .../src/fhir/fhirQuestionnaireResponse.ts | 110 +++--------------- functions/models/src/fhir/fhirResource.ts | 70 ----------- .../models/src/helpers/fhirSchemaConverter.ts | 23 ++-- functions/models/src/index.ts | 1 - functions/package-lock.json | 6 +- functions/package.json | 4 - .../src/functions/deleteInvitation.test.ts | 4 +- functions/src/functions/deleteUser.test.ts | 4 +- functions/src/functions/enrollUser.test.ts | 13 +-- .../onUserAppointmentWritten.test.ts | 14 +-- .../src/functions/onUserAppointmentWritten.ts | 4 +- ...onUserBodyWeightObservationWritten.test.ts | 16 +-- .../onUserMedicationRequestWritten.ts | 4 +- .../onUserQuestionnaireResponseWritten.ts | 4 +- .../src/functions/updateStaticData.test.ts | 2 +- functions/src/models/healthSummaryData.ts | 6 +- .../src/models/medicationRequestContext.ts | 10 +- .../contraindicationService.ts | 8 +- .../defaultContraindicationService.test.ts | 4 +- .../defaultContraindicationService.ts | 14 +-- .../src/services/database/collections.ts | 32 ++--- .../services/database/databaseConverter.ts | 21 ++-- .../healthSummaryService.mock.ts | 4 +- .../medication/databaseMedicationService.ts | 20 ++-- .../services/medication/medicationService.ts | 16 +-- .../patient/databasePatientService.ts | 66 +++++------ .../services/patient/patientService.mock.ts | 32 ++--- .../src/services/patient/patientService.ts | 26 ++--- .../createKccqQuestionnaireResponse.ts | 6 +- ...UpdateQuestionnaireResponseService.test.ts | 43 ++++--- .../dataUpdateQuestionnaireResponseService.ts | 10 +- .../kccqQuestionnaireResponseService.ts | 41 +++---- .../multiQuestionnaireResponseService.ts | 4 +- .../questionnaireResponseService.ts | 57 ++++----- ...rationQuestionnaireResponseService.test.ts | 25 ++-- ...egistrationQuestionnaireResponseService.ts | 8 +- .../recommendationService.test.ts | 80 ++++++------- .../recommendation/recommendationService.ts | 14 +-- .../betaBlockerRecommender.test.ts | 6 +- .../recommenders/diureticRecommender.test.ts | 10 +- .../recommenders/mraRecommender.test.ts | 6 +- .../recommenders/rasiRecommender.test.ts | 10 +- .../recommenders/recommender.ts | 4 +- .../recommenders/sglt2iRecommender.test.ts | 6 +- .../seeding/debugData/debugDataService.ts | 32 ++--- .../dataUpdateQuestionnaireFactory.ts | 10 +- .../kccqQuestionnaireFactory.ts | 4 +- .../questionnaireFactory.ts | 24 ++-- .../registrationQuestionnaireFactory.ts | 10 +- .../staticData/rxNorm/rxNormService.test.ts | 8 +- .../staticData/rxNorm/rxNormService.ts | 46 ++++---- .../seeding/staticData/staticDataService.ts | 30 ++--- .../services/trigger/triggerService.test.ts | 8 +- .../src/services/trigger/triggerService.ts | 18 +-- .../tests/mocks/contraindicationService.ts | 20 ++-- functions/src/tests/mocks/questionnaire.ts | 6 +- .../src/tests/mocks/questionnaireResponse.ts | 4 +- 67 files changed, 607 insertions(+), 728 deletions(-) delete mode 100644 functions/models/src/fhir/fhirResource.ts diff --git a/README.md b/README.md index 548edc35..563c5cf7 100644 --- a/README.md +++ b/README.md @@ -461,8 +461,8 @@ These are the output values of the recommendation algorithms. Depending on the t |Property|Type|Values|Comments| |-|-|-|-| -|currentMedication|optional Reference(FHIRMedicationRequest)|e.g. `{"reference":"users/123/medicationRequest/2"}`|Reference to the existing medication request, if applicable.| -|recommendedMedication|optional Reference(FHIRMedication)|e.g. `{"reference":"medications/2"}`|Reference to the recommended medication, if applicable. This should always direct to a medication, not a drug.| +|currentMedication|optional Reference(FhirMedicationRequest)|e.g. `{"reference":"users/123/medicationRequest/2"}`|Reference to the existing medication request, if applicable.| +|recommendedMedication|optional Reference(FhirMedication)|e.g. `{"reference":"medications/2"}`|Reference to the recommended medication, if applicable. This should always direct to a medication, not a drug.| |displayInformation|DisplayInformation|-|The information necessary for the client to display the medication recommendation.| ##### Medication Recommendation Type diff --git a/functions/models/package-lock.json b/functions/models/package-lock.json index 565528af..20f88727 100644 --- a/functions/models/package-lock.json +++ b/functions/models/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.5" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.8" }, "devDependencies": { "@stanfordspezi/spezi-web-configurations": "^0.6.0", diff --git a/functions/models/package.json b/functions/models/package.json index 7f650944..b870a784 100644 --- a/functions/models/package.json +++ b/functions/models/package.json @@ -22,7 +22,7 @@ ], "main": "lib/index.js", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.5" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.8" }, "devDependencies": { "@stanfordspezi/spezi-web-configurations": "^0.6.0", diff --git a/functions/models/src/fhir/fhirAllergyIntolerance.ts b/functions/models/src/fhir/fhirAllergyIntolerance.ts index 46f43de7..192e9fbb 100644 --- a/functions/models/src/fhir/fhirAllergyIntolerance.ts +++ b/functions/models/src/fhir/fhirAllergyIntolerance.ts @@ -6,12 +6,21 @@ // SPDX-License-Identifier: MIT // +import { + FhirAllergyIntolerance as BaseFhirAllergyIntolerance, + allergyIntoleranceSchema, +} from "@stanfordspezi/spezi-firebase-fhir"; import { type AllergyIntolerance } from "fhir/r4b.js"; -import { FHIRResource } from "./fhirResource.js"; import { CodingSystem } from "../codes/codes.js"; import { type MedicationReference } from "../codes/references.js"; -export class FHIRAllergyIntolerance extends FHIRResource { +export class FhirAllergyIntolerance extends BaseFhirAllergyIntolerance { + // Static Properties + + static readonly schema = allergyIntoleranceSchema.transform( + (value) => new FhirAllergyIntolerance(value), + ); + // Static Functions static create(input: { @@ -19,8 +28,8 @@ export class FHIRAllergyIntolerance extends FHIRResource { criticality?: AllergyIntolerance["criticality"]; reference: MedicationReference; userId?: string; - }): FHIRAllergyIntolerance { - return new FHIRAllergyIntolerance({ + }): FhirAllergyIntolerance { + return new FhirAllergyIntolerance({ resourceType: "AllergyIntolerance", patient: { reference: input.userId ? `users/${input.userId}` : undefined, @@ -38,9 +47,13 @@ export class FHIRAllergyIntolerance extends FHIRResource { }); } + static parse(value: unknown): FhirAllergyIntolerance { + return new FhirAllergyIntolerance(allergyIntoleranceSchema.parse(value)); + } + // Computed Properties get rxNormCodes(): string[] { - return this.codes(this.data.code, { system: CodingSystem.rxNorm }); + return this.codes(this.value.code, { system: CodingSystem.rxNorm }); } } diff --git a/functions/models/src/fhir/fhirAppointment.ts b/functions/models/src/fhir/fhirAppointment.ts index b7dddf60..eedc50ae 100644 --- a/functions/models/src/fhir/fhirAppointment.ts +++ b/functions/models/src/fhir/fhirAppointment.ts @@ -6,12 +6,21 @@ // SPDX-License-Identifier: MIT // +import { + appointmentSchema, + FhirAppointment as BaseFhirAppointment, +} from "@stanfordspezi/spezi-firebase-fhir"; import { type Appointment } from "fhir/r4b.js"; -import { FHIRResource } from "./fhirResource.js"; import { FHIRExtensionUrl } from "../codes/codes.js"; import { compactMap } from "../helpers/array.js"; -export class FHIRAppointment extends FHIRResource { +export class FhirAppointment extends BaseFhirAppointment { + // Static Properties + + static readonly schema = appointmentSchema.transform( + (value) => new FhirAppointment(value), + ); + // Static Functions static create(input: { @@ -20,8 +29,8 @@ export class FHIRAppointment extends FHIRResource { status?: Appointment["status"]; start: Date; durationInMinutes: number; - }): FHIRAppointment { - return new FHIRAppointment({ + }): FhirAppointment { + return new FhirAppointment({ resourceType: "Appointment", status: input.status ?? "booked", created: input.created.toISOString(), @@ -40,23 +49,11 @@ export class FHIRAppointment extends FHIRResource { }); } - // Computed Properties - - get startDate(): Date | undefined { - return this.data.start ? new Date(this.data.start) : undefined; - } - - set startDate(date: Date | undefined) { - this.data.start = date?.toISOString(); - } - - get endDate(): Date | undefined { - return this.data.end ? new Date(this.data.end) : undefined; + static parse(value: unknown): FhirAppointment { + return new FhirAppointment(appointmentSchema.parse(value)); } - set endDate(date: Date | undefined) { - this.data.end = date?.toISOString(); - } + // Computed Properties get providerNames(): string[] { return compactMap( diff --git a/functions/models/src/fhir/fhirConverters.ts b/functions/models/src/fhir/fhirConverters.ts index 4ce227a3..fb73e471 100644 --- a/functions/models/src/fhir/fhirConverters.ts +++ b/functions/models/src/fhir/fhirConverters.ts @@ -6,79 +6,65 @@ // SPDX-License-Identifier: MIT // -import { - allergyIntoleranceSchema, - appointmentSchema, - medicationSchema, - medicationRequestSchema, - observationSchema, - questionnaireSchema, - questionnaireResponseSchema, -} from "@stanfordspezi/spezi-firebase-fhir"; -import { FHIRAllergyIntolerance } from "./fhirAllergyIntolerance.js"; -import { FHIRAppointment } from "./fhirAppointment.js"; -import { FHIRMedication } from "./fhirMedication.js"; -import { FHIRMedicationRequest } from "./fhirMedicationRequest.js"; -import { FHIRObservation } from "./fhirObservation.js"; -import { FHIRQuestionnaire } from "./fhirQuestionnaire.js"; -import { FHIRQuestionnaireResponse } from "./fhirQuestionnaireResponse.js"; -import { FHIRSchemaConverter } from "../helpers/fhirSchemaConverter.js"; +import { FhirAllergyIntolerance } from "./fhirAllergyIntolerance.js"; +import { FhirAppointment } from "./fhirAppointment.js"; +import { FhirMedication } from "./fhirMedication.js"; +import { FhirMedicationRequest } from "./fhirMedicationRequest.js"; +import { FhirObservation } from "./fhirObservation.js"; +import { FhirQuestionnaire } from "./fhirQuestionnaire.js"; +import { FhirQuestionnaireResponse } from "./fhirQuestionnaireResponse.js"; +import { FhirSchemaConverter } from "../helpers/fhirSchemaConverter.js"; export const fhirAllergyIntoleranceConverter = - new FHIRSchemaConverter( - allergyIntoleranceSchema.transform( - (data) => new FHIRAllergyIntolerance(data), - ), + new FhirSchemaConverter( + (data) => FhirAllergyIntolerance.parse(data), { nullProperties: [], }, ); + export const fhirAppointmentConverter = - new FHIRSchemaConverter( - appointmentSchema.transform((data) => new FHIRAppointment(data)), + new FhirSchemaConverter( + (data) => FhirAppointment.parse(data), { nullProperties: [], }, ); -export const fhirMedicationConverter = new FHIRSchemaConverter( - medicationSchema.transform((data) => new FHIRMedication(data)), +export const fhirMedicationConverter = new FhirSchemaConverter( + (data) => FhirMedication.parse(data), { nullProperties: [], }, ); export const fhirMedicationRequestConverter = - new FHIRSchemaConverter( - medicationRequestSchema.transform( - (data) => new FHIRMedicationRequest(data), - ), + new FhirSchemaConverter( + (data) => FhirMedicationRequest.parse(data), { nullProperties: [], }, ); export const fhirObservationConverter = - new FHIRSchemaConverter( - observationSchema.transform((data) => new FHIRObservation(data)), + new FhirSchemaConverter( + (data) => FhirObservation.parse(data), { nullProperties: [], }, ); export const fhirQuestionnaireConverter = - new FHIRSchemaConverter( - questionnaireSchema.transform((data) => new FHIRQuestionnaire(data)), + new FhirSchemaConverter( + (data) => FhirQuestionnaire.parse(data), { nullProperties: [], }, ); export const fhirQuestionnaireResponseConverter = - new FHIRSchemaConverter( - questionnaireResponseSchema.transform( - (data) => new FHIRQuestionnaireResponse(data), - ), + new FhirSchemaConverter( + (data) => FhirQuestionnaireResponse.parse(data), { nullProperties: [], }, diff --git a/functions/models/src/fhir/fhirMedication.ts b/functions/models/src/fhir/fhirMedication.ts index cf5092e3..aec257e5 100644 --- a/functions/models/src/fhir/fhirMedication.ts +++ b/functions/models/src/fhir/fhirMedication.ts @@ -7,22 +7,33 @@ // import { - type Medication, - type MedicationRequest, - type Reference, -} from "fhir/r4b.js"; -import { FHIRMedicationRequest } from "./fhirMedicationRequest.js"; -import { FHIRResource } from "./fhirResource.js"; + FhirMedication as BaseFhirMedication, + medicationSchema, +} from "@stanfordspezi/spezi-firebase-fhir"; +import { type MedicationRequest, type Reference } from "fhir/r4b.js"; +import { FhirMedicationRequest } from "./fhirMedicationRequest.js"; import { CodingSystem, FHIRExtensionUrl } from "../codes/codes.js"; import { QuantityUnit } from "../codes/quantityUnit.js"; -export class FHIRMedication extends FHIRResource { +export class FhirMedication extends BaseFhirMedication { + // Static Properties + + static readonly schema = medicationSchema.transform( + (value) => new FhirMedication(value), + ); + + // Static Functions + + static parse(value: unknown): FhirMedication { + return new FhirMedication(medicationSchema.parse(value)); + } + // Computed Properties get displayName(): string | undefined { return ( - this.data.code?.text ?? - this.data.code?.coding?.find( + this.value.code?.text ?? + this.value.code?.coding?.find( (coding) => coding.system === CodingSystem.rxNorm, )?.display ); @@ -50,7 +61,7 @@ export class FHIRMedication extends FHIRResource { get minimumDailyDose(): number[] | undefined { const request = this.minimumDailyDoseRequest; if (!request) return undefined; - const requestResource = new FHIRMedicationRequest(request); + const requestResource = new FhirMedicationRequest(request); return requestResource .extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) .map((extension) => extension.valueQuantity) @@ -71,7 +82,7 @@ export class FHIRMedication extends FHIRResource { get targetDailyDose(): number[] | undefined { const request = this.targetDailyDoseRequest; if (!request) return undefined; - const requestResource = new FHIRMedicationRequest(request); + const requestResource = new FhirMedicationRequest(request); const result = requestResource .extensionsWithUrl(FHIRExtensionUrl.totalDailyDose) .map((extension) => extension.valueQuantity) @@ -83,7 +94,7 @@ export class FHIRMedication extends FHIRResource { } get rxNormCode(): string | undefined { - return this.data.code?.coding?.find( + return this.value.code?.coding?.find( (coding) => coding.system === CodingSystem.rxNorm, )?.code; } diff --git a/functions/models/src/fhir/fhirMedicationRequest.ts b/functions/models/src/fhir/fhirMedicationRequest.ts index fea59fae..1806fb5a 100644 --- a/functions/models/src/fhir/fhirMedicationRequest.ts +++ b/functions/models/src/fhir/fhirMedicationRequest.ts @@ -6,11 +6,20 @@ // SPDX-License-Identifier: MIT // -import { type Extension, type MedicationRequest } from "fhir/r4b.js"; -import { FHIRResource } from "./fhirResource.js"; +import { + FhirMedicationRequest as BaseFhirMedicationRequest, + medicationRequestSchema, +} from "@stanfordspezi/spezi-firebase-fhir"; +import { type Extension } from "fhir/r4b.js"; import { QuantityUnit } from "../codes/quantityUnit.js"; -export class FHIRMedicationRequest extends FHIRResource { +export class FhirMedicationRequest extends BaseFhirMedicationRequest { + // Static Properties + + static readonly schema = medicationRequestSchema.transform( + (value) => new FhirMedicationRequest(value), + ); + // Static Functions static create(input: { @@ -20,8 +29,8 @@ export class FHIRMedicationRequest extends FHIRResource { frequencyPerDay: number; quantity: number; extension?: Extension[]; - }): FHIRMedicationRequest { - return new FHIRMedicationRequest({ + }): FhirMedicationRequest { + return new FhirMedicationRequest({ id: input.id, resourceType: "MedicationRequest", medicationReference: { @@ -50,4 +59,8 @@ export class FHIRMedicationRequest extends FHIRResource { ], }); } + + static parse(value: unknown): FhirMedicationRequest { + return new FhirMedicationRequest(medicationRequestSchema.parse(value)); + } } diff --git a/functions/models/src/fhir/fhirObservation.ts b/functions/models/src/fhir/fhirObservation.ts index d0caf245..7d25f331 100644 --- a/functions/models/src/fhir/fhirObservation.ts +++ b/functions/models/src/fhir/fhirObservation.ts @@ -6,14 +6,21 @@ // SPDX-License-Identifier: MIT // -import { type Coding, type Observation, type Reference } from "fhir/r4b.js"; -import { FHIRResource } from "./fhirResource.js"; +import { + FhirObservation as BaseFhirObservation, + observationSchema, +} from "@stanfordspezi/spezi-firebase-fhir"; +import { type Coding, type Reference } from "fhir/r4b.js"; import { CodingSystem, LoincCode } from "../codes/codes.js"; import { QuantityUnit } from "../codes/quantityUnit.js"; import { type ObservationQuantity } from "../types/observationQuantity.js"; -export class FHIRObservation extends FHIRResource { - // Static Functions +export class FhirObservation extends BaseFhirObservation { + // Static Properties + + static readonly schema = observationSchema.transform( + (value) => new FhirObservation(value), + ); private static readonly loincDisplay = new Map([ [ @@ -33,13 +40,15 @@ export class FHIRObservation extends FHIRResource { [LoincCode.potassium, "Potassium [Moles/volume] in Blood"], ]); + // Static Functions + static createBloodPressure(input: { id: string; date: Date; systolic: number; diastolic: number; - }): FHIRObservation { - return new FHIRObservation({ + }): FhirObservation { + return new FhirObservation({ resourceType: "Observation", id: input.id, status: "final", @@ -104,8 +113,8 @@ export class FHIRObservation extends FHIRResource { unit: QuantityUnit; code: LoincCode; derivedFrom?: Reference[]; - }): FHIRObservation { - return new FHIRObservation({ + }): FhirObservation { + return new FhirObservation({ resourceType: "Observation", id: input.id, status: "final", @@ -130,6 +139,10 @@ export class FHIRObservation extends FHIRResource { }); } + static parse(value: unknown): FhirObservation { + return new FhirObservation(observationSchema.parse(value)); + } + // Computed Properties get systolicBloodPressure(): ObservationQuantity | undefined { @@ -213,16 +226,16 @@ export class FHIRObservation extends FHIRResource { } & Coding, ): ObservationQuantity[] { const result: ObservationQuantity[] = []; - if (!this.containsCoding(this.data.code, [options])) return result; + if (!this.containsCoding(this.value.code, [options])) return result; const date = - this.data.effectiveDateTime ?? - this.data.effectiveInstant ?? - this.data.effectivePeriod?.start ?? - this.data.effectivePeriod?.end; + this.value.effectiveDateTime ?? + this.value.effectiveInstant ?? + this.value.effectivePeriod?.start ?? + this.value.effectivePeriod?.end; if (!date) return result; if (options.component) { - for (const component of this.data.component ?? []) { + for (const component of this.value.component ?? []) { if (!this.containsCoding(component.code, [options.component])) continue; const value = options.unit.valueOf(component.valueQuantity); if (!value) continue; @@ -233,7 +246,7 @@ export class FHIRObservation extends FHIRResource { }); } } else { - const value = options.unit.valueOf(this.data.valueQuantity); + const value = options.unit.valueOf(this.value.valueQuantity); if (!value) return result; result.push({ date: new Date(date), value: value, unit: options.unit }); } diff --git a/functions/models/src/fhir/fhirQuestionnaire.ts b/functions/models/src/fhir/fhirQuestionnaire.ts index db5095c8..6e7db4c2 100644 --- a/functions/models/src/fhir/fhirQuestionnaire.ts +++ b/functions/models/src/fhir/fhirQuestionnaire.ts @@ -6,7 +6,21 @@ // SPDX-License-Identifier: MIT // -import { type Questionnaire } from "fhir/r4b.js"; -import { FHIRResource } from "./fhirResource.js"; +import { + FhirQuestionnaire as BaseFhirQuestionnaire, + questionnaireSchema, +} from "@stanfordspezi/spezi-firebase-fhir"; -export class FHIRQuestionnaire extends FHIRResource {} +export class FhirQuestionnaire extends BaseFhirQuestionnaire { + // Static Properties + + static readonly schema = questionnaireSchema.transform( + (value) => new FhirQuestionnaire(value), + ); + + // Static Functions + + static parse(value: unknown): FhirQuestionnaire { + return new FhirQuestionnaire(questionnaireSchema.parse(value)); + } +} diff --git a/functions/models/src/fhir/fhirQuestionnaireResponse.ts b/functions/models/src/fhir/fhirQuestionnaireResponse.ts index b6e4f49e..213c9f3b 100644 --- a/functions/models/src/fhir/fhirQuestionnaireResponse.ts +++ b/functions/models/src/fhir/fhirQuestionnaireResponse.ts @@ -7,106 +7,22 @@ // import { - type QuestionnaireResponse, - type QuestionnaireResponseItem, -} from "fhir/r4b.js"; -import { FHIRResource } from "./fhirResource.js"; + FhirQuestionnaireResponse as BaseFhirQuestionnaireResponse, + questionnaireResponseSchema, +} from "@stanfordspezi/spezi-firebase-fhir"; -export class FHIRQuestionnaireResponse extends FHIRResource { - // Computed Properties +export class FhirQuestionnaireResponse extends BaseFhirQuestionnaireResponse { + // Static Properties - get authoredDate(): Date | undefined { - return this.data.authored ? new Date(this.data.authored) : undefined; - } - - set authoredDate(date: Date | undefined) { - this.data.authored = date?.toISOString(); - } - - // Methods - Response items from path - - responseItem(linkIdPath: string[]): QuestionnaireResponseItem | null { - const items = this.responseItems(linkIdPath); - switch (items.length) { - case 0: - return null; - case 1: - return items[0]; - default: - throw new Error(`Unexpected number of response items found.`); - } - } - - responseItems(linkIdPath: string[]): QuestionnaireResponseItem[] { - const resultValue: QuestionnaireResponseItem[] = []; - for (const child of this.data.item ?? []) { - resultValue.push(...this.responseItemsRecursive(linkIdPath, child)); - } - return resultValue; - } - - private responseItemsRecursive( - linkIdPath: string[], - item: QuestionnaireResponseItem, - ): QuestionnaireResponseItem[] { - switch (linkIdPath.length) { - case 0: - break; - case 1: - if (item.linkId === linkIdPath[0]) { - return [item]; - } - break; - default: - if (item.linkId === linkIdPath[0]) { - const childLinkIds = linkIdPath.slice(1); - const resultValue: QuestionnaireResponseItem[] = []; - for (const child of item.item ?? []) { - resultValue.push( - ...this.responseItemsRecursive(childLinkIds, child), - ); - } - return resultValue; - } - break; - } - return []; - } - - // Methods - Response items from leaf link id + static readonly schema = questionnaireResponseSchema.transform( + (value) => new FhirQuestionnaireResponse(value), + ); - leafResponseItem(linkId: string): QuestionnaireResponseItem | null { - const items = this.leafResponseItems(linkId); - switch (items.length) { - case 0: - return null; - case 1: - return items[0]; - default: - throw new Error("Unexpected number of leaf response items found."); - } - } - - leafResponseItems(linkId: string): QuestionnaireResponseItem[] { - const items: QuestionnaireResponseItem[] = []; - for (const item of this.data.item ?? []) { - items.push(...this.leafResponseItemsRecursive(linkId, item)); - } - return items; - } + // Static Functions - private leafResponseItemsRecursive( - linkId: string, - item: QuestionnaireResponseItem, - ): QuestionnaireResponseItem[] { - const children = item.item ?? []; - if (children.length === 0 && item.linkId === linkId) { - return [item]; - } - const items: QuestionnaireResponseItem[] = []; - for (const child of item.item ?? []) { - items.push(...this.leafResponseItemsRecursive(linkId, child)); - } - return items; + static parse(value: unknown): FhirQuestionnaireResponse { + return new FhirQuestionnaireResponse( + questionnaireResponseSchema.parse(value), + ); } } diff --git a/functions/models/src/fhir/fhirResource.ts b/functions/models/src/fhir/fhirResource.ts deleted file mode 100644 index b17a4769..00000000 --- a/functions/models/src/fhir/fhirResource.ts +++ /dev/null @@ -1,70 +0,0 @@ -// -// This source file is part of the ENGAGE-HF project based on the Stanford Spezi Template Application project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import { - type CodeableConcept, - type Coding, - type DomainResource, - type Extension, -} from "fhir/r4b.js"; -import { type FHIRExtensionUrl } from "../codes/codes.js"; - -export abstract class FHIRResource { - // Properties - - data: ResourceType; - - // Constructor - - constructor(data: ResourceType) { - this.data = data; - } - - // Methods - - codes(concept: CodeableConcept | undefined, filter: Coding): string[] { - return ( - concept?.coding?.flatMap((coding) => { - if (filter.system && coding.system !== filter.system) return []; - if (filter.version && coding.version !== filter.version) return []; - return coding.code ? [coding.code] : []; - }) ?? [] - ); - } - - containsCoding( - concept: CodeableConcept | undefined, - filter: Coding[], - ): boolean { - return filter.some( - (filterCoding) => - concept?.coding?.some((coding) => { - if (filterCoding.code && coding.code !== filterCoding.code) - return false; - if (filterCoding.system && coding.system !== filterCoding.system) - return false; - if (filterCoding.version && coding.version !== filterCoding.version) - return false; - return true; - }) ?? false, - ); - } - - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters - containedResource(id: string): T | undefined { - return this.data.contained?.find((resource) => resource.id === id) as T; - } - - extensionsWithUrl(url: FHIRExtensionUrl): Extension[] { - return ( - this.data.extension?.filter( - (extension) => extension.url === (url as string), - ) ?? [] - ); - } -} diff --git a/functions/models/src/helpers/fhirSchemaConverter.ts b/functions/models/src/helpers/fhirSchemaConverter.ts index abb61de2..c5b6685e 100644 --- a/functions/models/src/helpers/fhirSchemaConverter.ts +++ b/functions/models/src/helpers/fhirSchemaConverter.ts @@ -6,39 +6,42 @@ // SPDX-License-Identifier: MIT // +import { type FhirDomainResource } from "@stanfordspezi/spezi-firebase-fhir"; import { type DomainResource } from "fhir/r4b.js"; -import { type ZodType } from "zod"; -import { type FHIRResource } from "../fhir/fhirResource.js"; -export class FHIRSchemaConverter< - FHIRResourceType extends FHIRResource, +export type GenericFhirSchemaConverter = FhirSchemaConverter< + FhirDomainResource +>; + +export class FhirSchemaConverter< + ResourceType extends FhirDomainResource, > { // Properties - readonly schema: ZodType; + readonly _decode: (value: unknown) => ResourceType; readonly nullProperties: string[]; // Constructor constructor( - schema: ZodType, + decode: (value: unknown) => ResourceType, options: { nullProperties: string[]; }, ) { - this.schema = schema; + this._decode = decode; this.nullProperties = options.nullProperties; } // Methods decode(input: unknown) { - return this.schema.parse(removeNullOrUndefinedValues(input)); + return this._decode(removeNullOrUndefinedValues(input)); } - encode(input: FHIRResourceType): unknown { + encode(input: ResourceType): unknown { /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ - const returnValue = removeNullOrUndefinedValues(input.data) as any; + const returnValue = removeNullOrUndefinedValues(input.value) as any; for (const key of this.nullProperties) { /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */ /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ diff --git a/functions/models/src/index.ts b/functions/models/src/index.ts index ca250e57..dc6d4bc7 100644 --- a/functions/models/src/index.ts +++ b/functions/models/src/index.ts @@ -17,7 +17,6 @@ export * from "./fhir/fhirMedicationRequest.js"; export * from "./fhir/fhirObservation.js"; export * from "./fhir/fhirQuestionnaire.js"; export * from "./fhir/fhirQuestionnaireResponse.js"; -export * from "./fhir/fhirResource.js"; export * from "./functions/createInvitation.js"; export * from "./functions/customSeed.js"; export * from "./functions/defaultSeed.js"; diff --git a/functions/package-lock.json b/functions/package-lock.json index 79ed1406..1b41d96e 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -35,16 +35,12 @@ }, "engines": { "node": "22" - }, - "peerDependencies": { - "@types/fhir": "^0.0.41", - "zod": "^4.0.5" } }, "models": { "name": "@stanfordbdhg/engagehf-models", "dependencies": { - "@stanfordspezi/spezi-firebase-fhir": "^0.1.5" + "@stanfordspezi/spezi-firebase-fhir": "^0.1.8" }, "devDependencies": { "@stanfordspezi/spezi-web-configurations": "^0.6.0", diff --git a/functions/package.json b/functions/package.json index ca76f70e..38584c2a 100644 --- a/functions/package.json +++ b/functions/package.json @@ -53,9 +53,5 @@ "ts-node": "^10.9", "typescript": "^5" }, - "peerDependencies": { - "zod": "^4.0.5", - "@types/fhir": "^0.0.41" - }, "private": true } diff --git a/functions/src/functions/deleteInvitation.test.ts b/functions/src/functions/deleteInvitation.test.ts index 2778e5f3..64e53133 100644 --- a/functions/src/functions/deleteInvitation.test.ts +++ b/functions/src/functions/deleteInvitation.test.ts @@ -7,7 +7,7 @@ // import { - FHIRAppointment, + FhirAppointment, Invitation, UserAuth, UserRegistration, @@ -42,7 +42,7 @@ describeWithEmulators("function: deleteInvitation", (env) => { const invitationRef = env.collections.invitations.doc(); await invitationRef.set(invitation); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: invitationRef.id, created: new Date(), start: new Date(), diff --git a/functions/src/functions/deleteUser.test.ts b/functions/src/functions/deleteUser.test.ts index 21d6bdcd..e96e2280 100644 --- a/functions/src/functions/deleteUser.test.ts +++ b/functions/src/functions/deleteUser.test.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { FHIRAppointment, UserType } from "@stanfordbdhg/engagehf-models"; +import { FhirAppointment, UserType } from "@stanfordbdhg/engagehf-models"; import { deleteUser } from "./deleteUser.js"; import { describeWithEmulators } from "../tests/functions/testEnvironment.js"; import { expectError } from "../tests/helpers.js"; @@ -64,7 +64,7 @@ describeWithEmulators("function: deleteUser", (env) => { organization: "stanford", }); - const appointment = new FHIRAppointment({ + const appointment = new FhirAppointment({ resourceType: "Appointment", status: "booked", created: new Date("2020-01-01").toISOString(), diff --git a/functions/src/functions/enrollUser.test.ts b/functions/src/functions/enrollUser.test.ts index 804b1d10..e942e9a4 100644 --- a/functions/src/functions/enrollUser.test.ts +++ b/functions/src/functions/enrollUser.test.ts @@ -7,8 +7,6 @@ // import { - FHIRAppointment, - FHIRObservation, Invitation, LoincCode, QuantityUnit, @@ -20,9 +18,10 @@ import { QuestionnaireReference, fhirAppointmentConverter, fhirObservationConverter, + FhirAppointment, + FhirObservation, } from "@stanfordbdhg/engagehf-models"; import { enrollUser } from "./enrollUser.js"; -import { QuestionnaireId } from "../services/seeding/staticData/questionnaireFactory/questionnaireLinkIds.js"; import { describeWithEmulators } from "../tests/functions/testEnvironment.js"; import { expectError } from "../tests/helpers.js"; @@ -63,7 +62,7 @@ describeWithEmulators("function: enrollUser", (env) => { const invitationRef = env.collections.invitations.doc(); await invitationRef.set(invitation); - const expectedAppointment = new FHIRAppointment({ + const expectedAppointment = new FhirAppointment({ resourceType: "Appointment", status: "booked", created: new Date("2023-12-24").toISOString(), @@ -84,7 +83,7 @@ describeWithEmulators("function: enrollUser", (env) => { .doc() .set(expectedAppointment); - const expectedObservation = FHIRObservation.createSimple({ + const expectedObservation = FhirObservation.createSimple({ id: "1", code: LoincCode.bodyWeight, value: 70, @@ -186,7 +185,7 @@ describeWithEmulators("function: enrollUser", (env) => { const invitationRef = env.collections.invitations.doc(); await invitationRef.set(invitation); - const expectedAppointment = new FHIRAppointment({ + const expectedAppointment = new FhirAppointment({ resourceType: "Appointment", status: "booked", created: new Date("2023-12-24").toISOString(), @@ -207,7 +206,7 @@ describeWithEmulators("function: enrollUser", (env) => { .doc() .set(expectedAppointment); - const expectedObservation = FHIRObservation.createSimple({ + const expectedObservation = FhirObservation.createSimple({ id: "1", code: LoincCode.bodyWeight, value: 70, diff --git a/functions/src/functions/onUserAppointmentWritten.test.ts b/functions/src/functions/onUserAppointmentWritten.test.ts index 7e968acb..32ae069b 100644 --- a/functions/src/functions/onUserAppointmentWritten.test.ts +++ b/functions/src/functions/onUserAppointmentWritten.test.ts @@ -9,7 +9,7 @@ import { UserMessageType, UserType, - FHIRAppointment, + FhirAppointment, advanceDateByHours, } from "@stanfordbdhg/engagehf-models"; import { type DocumentReference } from "firebase-admin/firestore"; @@ -95,7 +95,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { it("should create a message when a new and upcoming appointment is created", async () => { const now = new Date(); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: patientId, created: now, start: advanceDateByHours(now, 23), @@ -118,7 +118,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { it("should create a message when a new and upcoming appointment is updated", async () => { const now = new Date(); - const lateAppointment = FHIRAppointment.create({ + const lateAppointment = FhirAppointment.create({ userId: patientId, created: now, start: advanceDateByHours(now, 25), @@ -148,7 +148,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { const ownerMessages0 = await env.collections.userMessages(ownerId).get(); expect(ownerMessages0.docs).toHaveLength(0); - const earlierAppointment = FHIRAppointment.create({ + const earlierAppointment = FhirAppointment.create({ userId: patientId, created: now, status: "booked", @@ -169,7 +169,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { it("should complete the message when the appointment is updated to a future date", async () => { const now = new Date(); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: patientId, created: now, start: advanceDateByHours(now, 23), @@ -188,7 +188,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { await expectPreAppointmentMessage(ref); - const laterAppointment = FHIRAppointment.create({ + const laterAppointment = FhirAppointment.create({ userId: patientId, created: now, start: advanceDateByHours(now, 25), @@ -207,7 +207,7 @@ describeWithEmulators("onUserAppointmentWritten", (env) => { }); it("should complete the message when the appointment is deleted", async () => { const now = new Date(); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: patientId, created: now, status: "booked", diff --git a/functions/src/functions/onUserAppointmentWritten.ts b/functions/src/functions/onUserAppointmentWritten.ts index f629e3f8..eb5dce9d 100644 --- a/functions/src/functions/onUserAppointmentWritten.ts +++ b/functions/src/functions/onUserAppointmentWritten.ts @@ -9,7 +9,7 @@ import { fhirAppointmentConverter } from "@stanfordbdhg/engagehf-models"; import { onDocumentWritten } from "firebase-functions/firestore"; import { Env } from "../env.js"; -import { FHIRDatabaseConverter } from "../services/database/databaseConverter.js"; +import { FhirDatabaseConverter } from "../services/database/databaseConverter.js"; import { getServiceFactory } from "../services/factory/getServiceFactory.js"; export const onUserAppointmentWritten = onDocumentWritten( @@ -19,7 +19,7 @@ export const onUserAppointmentWritten = onDocumentWritten( }, async (event) => { const data = event.data?.after; - const converter = new FHIRDatabaseConverter(fhirAppointmentConverter); + const converter = new FhirDatabaseConverter(fhirAppointmentConverter); const factory = getServiceFactory(); const triggerService = factory.trigger(); await triggerService.userAppointmentWritten( diff --git a/functions/src/functions/onUserBodyWeightObservationWritten.test.ts b/functions/src/functions/onUserBodyWeightObservationWritten.test.ts index 6e70e3e8..35650e20 100644 --- a/functions/src/functions/onUserBodyWeightObservationWritten.test.ts +++ b/functions/src/functions/onUserBodyWeightObservationWritten.test.ts @@ -8,7 +8,7 @@ import { advanceDateByDays, - FHIRObservation, + FhirObservation, LoincCode, QuantityUnit, UserMessageType, @@ -26,7 +26,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { const date = new Date(); const observations = Array.from({ length: 10 }).map((_, i) => - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: i.toString(), date: advanceDateByDays(date, -i - 3), value: 100.0, @@ -59,7 +59,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { }); it("creates message for high body weight, keeps it when still high and completes when it lowers again", async () => { - const observation0 = FHIRObservation.createSimple({ + const observation0 = FhirObservation.createSimple({ id: "100", date: advanceDateByDays(date, -2), value: 120.0, @@ -85,7 +85,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { expect(message0.type).toBe(UserMessageType.weightGain); expect(message0.completionDate).toBeUndefined(); - const observation1 = FHIRObservation.createSimple({ + const observation1 = FhirObservation.createSimple({ id: "101", date: advanceDateByDays(date, -1), value: 120.0, @@ -114,7 +114,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { ); expect(message1.completionDate).toBeUndefined(); - const observation2 = FHIRObservation.createSimple({ + const observation2 = FhirObservation.createSimple({ id: "102", date: date, value: 100.0, @@ -157,7 +157,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { }); const observations = Array.from({ length: 10 }, (_, i) => - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: `observation-${i}`, code: LoincCode.bodyWeight, value: 200, @@ -194,7 +194,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { const ownerMessages0 = await env.collections.userMessages(ownerId).get(); expect(ownerMessages0.docs).toHaveLength(0); - const slightlyHigherWeight = FHIRObservation.createSimple({ + const slightlyHigherWeight = FhirObservation.createSimple({ id: "observation-10", code: LoincCode.bodyWeight, value: 207.5, @@ -234,7 +234,7 @@ describeWithEmulators("onUserBodyWeightObservationWritten", (env) => { expect(ownerMessage1?.type).toBe(UserMessageType.weightGain); expect(ownerMessage1?.completionDate).toBeUndefined(); - const actuallyHigherWeight = FHIRObservation.createSimple({ + const actuallyHigherWeight = FhirObservation.createSimple({ id: "observation-11", code: LoincCode.bodyWeight, value: 208, diff --git a/functions/src/functions/onUserMedicationRequestWritten.ts b/functions/src/functions/onUserMedicationRequestWritten.ts index fa5a705c..8ca2348a 100644 --- a/functions/src/functions/onUserMedicationRequestWritten.ts +++ b/functions/src/functions/onUserMedicationRequestWritten.ts @@ -9,7 +9,7 @@ import { fhirMedicationRequestConverter } from "@stanfordbdhg/engagehf-models"; import { onDocumentWritten } from "firebase-functions/firestore"; import { Env } from "../env.js"; -import { FHIRDatabaseConverter } from "../services/database/databaseConverter.js"; +import { FhirDatabaseConverter } from "../services/database/databaseConverter.js"; import { getServiceFactory } from "../services/factory/getServiceFactory.js"; export const onUserMedicationRequestWritten = onDocumentWritten( @@ -20,7 +20,7 @@ export const onUserMedicationRequestWritten = onDocumentWritten( async (event) => { const beforeData = event.data?.before; const afterData = event.data?.after; - const converter = new FHIRDatabaseConverter(fhirMedicationRequestConverter); + const converter = new FhirDatabaseConverter(fhirMedicationRequestConverter); const factory = getServiceFactory(); const triggerService = factory.trigger(); await triggerService.userMedicationRequestWritten( diff --git a/functions/src/functions/onUserQuestionnaireResponseWritten.ts b/functions/src/functions/onUserQuestionnaireResponseWritten.ts index c2df1168..f46b3b35 100644 --- a/functions/src/functions/onUserQuestionnaireResponseWritten.ts +++ b/functions/src/functions/onUserQuestionnaireResponseWritten.ts @@ -9,7 +9,7 @@ import { fhirQuestionnaireResponseConverter } from "@stanfordbdhg/engagehf-models"; import { onDocumentWritten } from "firebase-functions/firestore"; import { Env } from "../env.js"; -import { FHIRDatabaseConverter } from "../services/database/databaseConverter.js"; +import { FhirDatabaseConverter } from "../services/database/databaseConverter.js"; import { getServiceFactory } from "../services/factory/getServiceFactory.js"; export const onUserQuestionnaireResponseWritten = onDocumentWritten( @@ -20,7 +20,7 @@ export const onUserQuestionnaireResponseWritten = onDocumentWritten( async (event) => { const beforeData = event.data?.before; const afterData = event.data?.after; - const converter = new FHIRDatabaseConverter( + const converter = new FhirDatabaseConverter( fhirQuestionnaireResponseConverter, ); const factory = getServiceFactory(); diff --git a/functions/src/functions/updateStaticData.test.ts b/functions/src/functions/updateStaticData.test.ts index 380be37d..f81e7330 100644 --- a/functions/src/functions/updateStaticData.test.ts +++ b/functions/src/functions/updateStaticData.test.ts @@ -43,7 +43,7 @@ describeWithEmulators("function: updateStaticData", (env) => { fs.readFileSync("data/medications.json", "utf8"), ); for (const medication of medications.docs) { - expect(simplify(medication.data().data)).toStrictEqual( + expect(simplify(medication.data().value)).toStrictEqual( medicationsJson[medication.id], ); } diff --git a/functions/src/models/healthSummaryData.ts b/functions/src/models/healthSummaryData.ts index 7bbbc01c..b7e9aa95 100644 --- a/functions/src/models/healthSummaryData.ts +++ b/functions/src/models/healthSummaryData.ts @@ -10,7 +10,7 @@ import { advanceDateByDays, median, UserMedicationRecommendationType, - type FHIRAppointment, + type FhirAppointment, type ObservationQuantity, type SymptomScore, type UserMedicationRecommendation, @@ -37,7 +37,7 @@ export class HealthSummaryData { name?: string; dateOfBirth?: Date; providerName?: string; - nextAppointment?: FHIRAppointment; + nextAppointment?: FhirAppointment; recommendations: UserMedicationRecommendation[]; vitals: HealthSummaryVitals; symptomScores: SymptomScore[]; @@ -167,7 +167,7 @@ export class HealthSummaryData { name?: string; dateOfBirth?: Date; providerName?: string; - nextAppointment?: FHIRAppointment; + nextAppointment?: FhirAppointment; recommendations: UserMedicationRecommendation[]; vitals: HealthSummaryVitals; symptomScores: SymptomScore[]; diff --git a/functions/src/models/medicationRequestContext.ts b/functions/src/models/medicationRequestContext.ts index 098b974d..a3f6d4e5 100644 --- a/functions/src/models/medicationRequestContext.ts +++ b/functions/src/models/medicationRequestContext.ts @@ -9,19 +9,19 @@ import { MedicationClassReference, MedicationReference, - type FHIRMedication, - type FHIRMedicationRequest, + type FhirMedication, + type FhirMedicationRequest, type MedicationClass, } from "@stanfordbdhg/engagehf-models"; import { type Reference } from "fhir/r4b.js"; export interface MedicationRequestContext { lastUpdate: Date; - request: FHIRMedicationRequest; + request: FhirMedicationRequest; requestReference: Reference; - drug: FHIRMedication; + drug: FhirMedication; drugReference: Reference; - medication: FHIRMedication; + medication: FhirMedication; medicationReference: Reference; medicationClass: MedicationClass; medicationClassReference: Reference; diff --git a/functions/src/services/contraindication/contraindicationService.ts b/functions/src/services/contraindication/contraindicationService.ts index 08e6b1ac..6bb73ce2 100644 --- a/functions/src/services/contraindication/contraindicationService.ts +++ b/functions/src/services/contraindication/contraindicationService.ts @@ -7,7 +7,7 @@ // import { - type FHIRAllergyIntolerance, + type FhirAllergyIntolerance, type MedicationClassReference, type MedicationReference, } from "@stanfordbdhg/engagehf-models"; @@ -23,17 +23,17 @@ export interface ContraindicationService { // Methods checkMedication( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationReference: MedicationReference, ): ContraindicationCategory; checkMedicationClass( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationClassReference: MedicationClassReference, ): ContraindicationCategory; findEligibleMedication( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationReferences: MedicationReference[], ): MedicationReference | undefined; } diff --git a/functions/src/services/contraindication/defaultContraindicationService.test.ts b/functions/src/services/contraindication/defaultContraindicationService.test.ts index 1d85a071..14ca5a88 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.test.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.test.ts @@ -8,7 +8,7 @@ import fs from "fs"; import { - FHIRAllergyIntolerance, + FhirAllergyIntolerance, MedicationClassReference, MedicationReference, } from "@stanfordbdhg/engagehf-models"; @@ -34,7 +34,7 @@ describe("DefaultContraindicationService", () => { }, ) { const contraindications = [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ userId: "testUser", type: options.type, criticality: options.criticality, diff --git a/functions/src/services/contraindication/defaultContraindicationService.ts b/functions/src/services/contraindication/defaultContraindicationService.ts index 7e1ed229..d5e1c3a6 100644 --- a/functions/src/services/contraindication/defaultContraindicationService.ts +++ b/functions/src/services/contraindication/defaultContraindicationService.ts @@ -7,7 +7,7 @@ // import { - type FHIRAllergyIntolerance, + type FhirAllergyIntolerance, MedicationClassReference, MedicationReference, } from "@stanfordbdhg/engagehf-models"; @@ -47,7 +47,7 @@ export class DefaultContraindicationService implements ContraindicationService { // Methods checkMedication( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationReference: MedicationReference, ): ContraindicationCategory { const medicationClass = medicationClassReference(medicationReference); @@ -60,7 +60,7 @@ export class DefaultContraindicationService implements ContraindicationService { } checkMedicationClass( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationClassReference: MedicationClassReference, ): ContraindicationCategory { return this.checkAll(contraindications, (record) => @@ -69,7 +69,7 @@ export class DefaultContraindicationService implements ContraindicationService { } findEligibleMedication( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationReferences: MedicationReference[], ): MedicationReference | undefined { let availableMedications = medicationReferences; @@ -89,7 +89,7 @@ export class DefaultContraindicationService implements ContraindicationService { // Helpers private checkAll( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], isRelevant: (record: ContraindicationRecord) => boolean, ): ContraindicationCategory { let category = ContraindicationCategory.none; @@ -108,8 +108,8 @@ export class DefaultContraindicationService implements ContraindicationService { for (const medicationReference of medicationReferences) { const record = this.record({ medicationReference: medicationReference, - type: contraindication.data.type, - criticality: contraindication.data.criticality, + type: contraindication.value.type, + criticality: contraindication.value.criticality, }); if (isRelevant(record)) category = Math.max(category, record.category); } diff --git a/functions/src/services/database/collections.ts b/functions/src/services/database/collections.ts index 4b73489a..d138a64c 100644 --- a/functions/src/services/database/collections.ts +++ b/functions/src/services/database/collections.ts @@ -30,7 +30,7 @@ import { import { type Firestore } from "firebase-admin/firestore"; import { DatabaseConverter, - FHIRDatabaseConverter, + FhirDatabaseConverter, } from "./databaseConverter.js"; import { historyChangeItemConverter } from "../history/historyService.js"; @@ -50,7 +50,7 @@ export class CollectionsService { get appointments() { return this.firestore .collectionGroup("appointments") - .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)); + .withConverter(new FhirDatabaseConverter(fhirAppointmentConverter)); } get devices() { @@ -77,7 +77,7 @@ export class CollectionsService { .doc(invitationId) .collection("allergyIntolerances") .withConverter( - new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter), + new FhirDatabaseConverter(fhirAllergyIntoleranceConverter), ); } @@ -86,7 +86,7 @@ export class CollectionsService { .collection("invitations") .doc(invitationId) .collection("appointments") - .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)); + .withConverter(new FhirDatabaseConverter(fhirAppointmentConverter)); } invitationDevices(invitationId: string) { @@ -112,7 +112,7 @@ export class CollectionsService { .collection("invitations") .doc(invitationId) .collection("medicationRequests") - .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)); + .withConverter(new FhirDatabaseConverter(fhirMedicationRequestConverter)); } invitationMessages(invitationId: string) { @@ -131,7 +131,7 @@ export class CollectionsService { .collection("invitations") .doc(invitationId) .collection(collection) - .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)); + .withConverter(new FhirDatabaseConverter(fhirObservationConverter)); } invitationQuestionnaireResponses(invitationId: string) { @@ -140,7 +140,7 @@ export class CollectionsService { .doc(invitationId) .collection("questionnaireResponses") .withConverter( - new FHIRDatabaseConverter(fhirQuestionnaireResponseConverter), + new FhirDatabaseConverter(fhirQuestionnaireResponseConverter), ); } @@ -167,13 +167,13 @@ export class CollectionsService { get medications() { return this.firestore .collection("medications") - .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)); + .withConverter(new FhirDatabaseConverter(fhirMedicationConverter)); } medicationReference(reference: string) { return this.firestore .doc(reference) - .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)); + .withConverter(new FhirDatabaseConverter(fhirMedicationConverter)); } drugs(medicationId: string) { @@ -181,7 +181,7 @@ export class CollectionsService { .collection("medications") .doc(medicationId) .collection("drugs") - .withConverter(new FHIRDatabaseConverter(fhirMedicationConverter)); + .withConverter(new FhirDatabaseConverter(fhirMedicationConverter)); } get organizations() { @@ -193,7 +193,7 @@ export class CollectionsService { get questionnaires() { return this.firestore .collection("questionnaires") - .withConverter(new FHIRDatabaseConverter(fhirQuestionnaireConverter)); + .withConverter(new FhirDatabaseConverter(fhirQuestionnaireConverter)); } get users() { @@ -208,7 +208,7 @@ export class CollectionsService { .doc(userId) .collection("allergyIntolerances") .withConverter( - new FHIRDatabaseConverter(fhirAllergyIntoleranceConverter), + new FhirDatabaseConverter(fhirAllergyIntoleranceConverter), ); } @@ -217,7 +217,7 @@ export class CollectionsService { .collection("users") .doc(userId) .collection("appointments") - .withConverter(new FHIRDatabaseConverter(fhirAppointmentConverter)); + .withConverter(new FhirDatabaseConverter(fhirAppointmentConverter)); } userDevices(userId: string) { @@ -243,7 +243,7 @@ export class CollectionsService { .collection("users") .doc(userId) .collection("medicationRequests") - .withConverter(new FHIRDatabaseConverter(fhirMedicationRequestConverter)); + .withConverter(new FhirDatabaseConverter(fhirMedicationRequestConverter)); } userMessages(userId: string) { @@ -259,7 +259,7 @@ export class CollectionsService { .collection("users") .doc(userId) .collection(collection) - .withConverter(new FHIRDatabaseConverter(fhirObservationConverter)); + .withConverter(new FhirDatabaseConverter(fhirObservationConverter)); } userQuestionnaireResponses(userId: string) { @@ -268,7 +268,7 @@ export class CollectionsService { .doc(userId) .collection("questionnaireResponses") .withConverter( - new FHIRDatabaseConverter(fhirQuestionnaireResponseConverter), + new FhirDatabaseConverter(fhirQuestionnaireResponseConverter), ); } diff --git a/functions/src/services/database/databaseConverter.ts b/functions/src/services/database/databaseConverter.ts index d3174119..09a82bb8 100644 --- a/functions/src/services/database/databaseConverter.ts +++ b/functions/src/services/database/databaseConverter.ts @@ -7,11 +7,10 @@ // import { - type FHIRResource, - type FHIRSchemaConverter, + type GenericFhirSchemaConverter, + type FhirSchemaConverter, type SchemaConverter, } from "@stanfordbdhg/engagehf-models"; -import { type DomainResource } from "fhir/r4b"; import { type DocumentData, type DocumentSnapshot, @@ -59,9 +58,11 @@ export class DatabaseConverter } } -export class FHIRDatabaseConverter< - C extends FHIRSchemaConverter>, -> implements FirestoreDataConverter> +type FhirSchemaConverterResourceType = + C extends FhirSchemaConverter ? R : never; + +export class FhirDatabaseConverter + implements FirestoreDataConverter> { // Properties @@ -75,10 +76,12 @@ export class FHIRDatabaseConverter< // Methods - fromFirestore(snapshot: DocumentSnapshot): z.output { + fromFirestore( + snapshot: DocumentSnapshot, + ): FhirSchemaConverterResourceType { const data = snapshot.data(); try { - return this.converter.schema.parse(data) as z.output; + return this.converter.decode(data) as FhirSchemaConverterResourceType; } catch (error) { logger.error( `DatabaseDecoder: Failed to decode object ${JSON.stringify(data)} due to ${String(error)}.`, @@ -87,7 +90,7 @@ export class FHIRDatabaseConverter< } } - toFirestore(modelObject: z.output): DocumentData { + toFirestore(modelObject: FhirSchemaConverterResourceType): DocumentData { try { return this.converter.encode(modelObject) as DocumentData; } catch (error) { diff --git a/functions/src/services/healthSummary/healthSummaryService.mock.ts b/functions/src/services/healthSummary/healthSummaryService.mock.ts index be180be5..51f5631c 100644 --- a/functions/src/services/healthSummary/healthSummaryService.mock.ts +++ b/functions/src/services/healthSummary/healthSummaryService.mock.ts @@ -8,7 +8,7 @@ import { advanceDateByDays, - FHIRAppointment, + FhirAppointment, LocalizedText, type ObservationQuantity, QuantityUnit, @@ -35,7 +35,7 @@ export class MockHealthSummaryService implements HealthSummaryService { name: "John Doe", dateOfBirth: new Date("1970-01-02"), providerName: "Dr. XXX", - nextAppointment: FHIRAppointment.create({ + nextAppointment: FhirAppointment.create({ userId, created: advanceDateByDays(date, -10), start: advanceDateByDays(date, 1), diff --git a/functions/src/services/medication/databaseMedicationService.ts b/functions/src/services/medication/databaseMedicationService.ts index 46752679..71ad4482 100644 --- a/functions/src/services/medication/databaseMedicationService.ts +++ b/functions/src/services/medication/databaseMedicationService.ts @@ -7,8 +7,8 @@ // import { - type FHIRMedication, - type FHIRMedicationRequest, + type FhirMedication, + type FhirMedicationRequest, type MedicationClass, } from "@stanfordbdhg/engagehf-models"; import { type Reference } from "fhir/r4b.js"; @@ -33,9 +33,9 @@ export class DatabaseMedicationService implements MedicationService { // Methods - Medication Request Context async getContext( - request: Document, + request: Document, ): Promise { - const drugReference = request.content.data.medicationReference; + const drugReference = request.content.value.medicationReference; if (drugReference === undefined) throw new Error("Drug reference not found"); const drug = (await this.getReference(drugReference))?.content; @@ -91,7 +91,7 @@ export class DatabaseMedicationService implements MedicationService { // Methods - Medications - async getMedications(): Promise>> { + async getMedications(): Promise>> { return this.databaseService.getQuery( (collections) => collections.medications, ); @@ -99,7 +99,7 @@ export class DatabaseMedicationService implements MedicationService { async getMedication( medicationId: string, - ): Promise | undefined> { + ): Promise | undefined> { return this.databaseService.getDocument((collections) => collections.medications.doc(medicationId), ); @@ -109,7 +109,7 @@ export class DatabaseMedicationService implements MedicationService { async getDrugs( medicationId: string, - ): Promise>> { + ): Promise>> { return this.databaseService.getQuery((collections) => collections.drugs(medicationId), ); @@ -118,7 +118,7 @@ export class DatabaseMedicationService implements MedicationService { async getDrug( medicationId: string, drugId: string, - ): Promise | undefined> { + ): Promise | undefined> { return this.databaseService.getDocument((collections) => collections.drugs(medicationId).doc(drugId), ); @@ -138,10 +138,10 @@ export class DatabaseMedicationService implements MedicationService { async getReference( reference: Reference | undefined, - ): Promise | undefined> { + ): Promise | undefined> { const doc = reference?.reference; if (!doc) return undefined; - return this.databaseService.getDocument((collections) => + return this.databaseService.getDocument((collections) => collections.medicationReference(doc), ); } diff --git a/functions/src/services/medication/medicationService.ts b/functions/src/services/medication/medicationService.ts index 6a349e89..49aabd64 100644 --- a/functions/src/services/medication/medicationService.ts +++ b/functions/src/services/medication/medicationService.ts @@ -7,8 +7,8 @@ // import { - type FHIRMedication, - type FHIRMedicationRequest, + type FhirMedication, + type FhirMedicationRequest, type MedicationClass, } from "@stanfordbdhg/engagehf-models"; import { type Reference } from "fhir/r4b.js"; @@ -19,7 +19,7 @@ export interface MedicationService { // Medication Request Context getContext( - request: Document, + request: Document, ): Promise; // Medication Classes @@ -31,20 +31,20 @@ export interface MedicationService { // Medications - getMedications(): Promise>>; + getMedications(): Promise>>; getMedication( medicationId: string, - ): Promise | undefined>; + ): Promise | undefined>; // Drugs - getDrugs(medicationId: string): Promise>>; + getDrugs(medicationId: string): Promise>>; getDrug( medicationId: string, drugId: string, - ): Promise | undefined>; + ): Promise | undefined>; // References @@ -54,5 +54,5 @@ export interface MedicationService { getReference( reference: Reference | undefined, - ): Promise | undefined>; + ): Promise | undefined>; } diff --git a/functions/src/services/patient/databasePatientService.ts b/functions/src/services/patient/databasePatientService.ts index cfba98a6..296f2553 100644 --- a/functions/src/services/patient/databasePatientService.ts +++ b/functions/src/services/patient/databasePatientService.ts @@ -11,11 +11,11 @@ import { advanceDateByDays, advanceDateByMinutes, compactMap, - type FHIRAllergyIntolerance, - type FHIRAppointment, - type FHIRMedicationRequest, - FHIRObservation, - type FHIRQuestionnaireResponse, + type FhirAllergyIntolerance, + type FhirAppointment, + type FhirMedicationRequest, + FhirObservation, + type FhirQuestionnaireResponse, type LoincCode, type ObservationQuantity, QuantityUnit, @@ -55,8 +55,8 @@ export class DatabasePatientService implements PatientService { async getEveryAppoinment( fromDate: Date, toDate: Date, - ): Promise>> { - const result = await this.databaseService.getQuery( + ): Promise>> { + const result = await this.databaseService.getQuery( (collections) => collections.appointments .where("start", ">", advanceDateByDays(fromDate, -1).toISOString()) @@ -71,16 +71,16 @@ export class DatabasePatientService implements PatientService { async getAppointments( userId: string, - ): Promise>> { - return this.databaseService.getQuery((collections) => + ): Promise>> { + return this.databaseService.getQuery((collections) => collections.userAppointments(userId), ); } async getNextAppointment( userId: string, - ): Promise | undefined> { - const result = await this.databaseService.getQuery( + ): Promise | undefined> { + const result = await this.databaseService.getQuery( (collections) => collections .userAppointments(userId) @@ -93,7 +93,7 @@ export class DatabasePatientService implements PatientService { async createAppointment( userId: string, - appointment: FHIRAppointment, + appointment: FhirAppointment, ): Promise { await this.databaseService.runTransaction((collections, transaction) => { const ref = collections.userAppointments(userId).doc(); @@ -105,8 +105,8 @@ export class DatabasePatientService implements PatientService { async getContraindications( userId: string, - ): Promise>> { - return this.databaseService.getQuery( + ): Promise>> { + return this.databaseService.getQuery( (collections) => collections.userAllergyIntolerances(userId), ); } @@ -115,35 +115,35 @@ export class DatabasePatientService implements PatientService { async getMedicationRequests( userId: string, - ): Promise>> { - return this.databaseService.getQuery((collections) => + ): Promise>> { + return this.databaseService.getQuery((collections) => collections.userMedicationRequests(userId), ); } async replaceMedicationRequests( userId: string, - values: FHIRMedicationRequest[], - keepUnchanged?: (request: Document) => boolean, + values: FhirMedicationRequest[], + keepUnchanged?: (request: Document) => boolean, ): Promise { await this.databaseService.replaceCollection( (collections) => collections.userMedicationRequests(userId), (documents) => { - const diffs: Array> = []; + const diffs: Array> = []; for (const value of values) { // We are assuming here that there will only ever be a single medication request per medicationReference! const equivalentDoc = documents.find( (doc) => - doc.content.data.medicationReference?.reference === - value.data.medicationReference?.reference, + doc.content.value.medicationReference?.reference === + value.value.medicationReference?.reference, ); if (equivalentDoc === undefined) { diffs.push({ successor: value }); } else if ( !isDeepStrictEqual( - equivalentDoc.content.data.dosageInstruction, - value.data.dosageInstruction, + equivalentDoc.content.value.dosageInstruction, + value.value.dosageInstruction, ) ) { diffs.push({ predecessor: equivalentDoc, successor: value }); @@ -227,7 +227,7 @@ export class DatabasePatientService implements PatientService { userId: string, cutoffDate: Date, ): Promise<[ObservationQuantity[], ObservationQuantity[]]> { - const observations = await this.databaseService.getQuery( + const observations = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.bloodPressure) @@ -251,7 +251,7 @@ export class DatabasePatientService implements PatientService { unit: QuantityUnit, cutoffDate: Date, ): Promise { - const observations = await this.databaseService.getQuery( + const observations = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.bodyWeight) @@ -267,7 +267,7 @@ export class DatabasePatientService implements PatientService { userId: string, cutoffDate: Date, ): Promise { - const observations = await this.databaseService.getQuery( + const observations = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.heartRate) @@ -283,7 +283,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentCreatinineObservation( userId: string, ): Promise { - const result = await this.databaseService.getQuery( + const result = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.creatinine) @@ -296,7 +296,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentDryWeightObservation( userId: string, ): Promise { - const result = await this.databaseService.getQuery( + const result = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.dryWeight) @@ -309,7 +309,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentEstimatedGlomerularFiltrationRateObservation( userId: string, ): Promise { - const result = await this.databaseService.getQuery( + const result = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.eGfr) @@ -322,7 +322,7 @@ export class DatabasePatientService implements PatientService { async getMostRecentPotassiumObservation( userId: string, ): Promise { - const result = await this.databaseService.getQuery( + const result = await this.databaseService.getQuery( (collections) => collections .userObservations(userId, UserObservationCollection.potassium) @@ -346,7 +346,7 @@ export class DatabasePatientService implements PatientService { const ref = collections .userObservations(userId, value.collection) .doc(); - const fhirObservation = FHIRObservation.createSimple({ + const fhirObservation = FhirObservation.createSimple({ id: ref.id, date: value.observation.date, value: value.observation.value, @@ -363,8 +363,8 @@ export class DatabasePatientService implements PatientService { async getQuestionnaireResponses( userId: string, - ): Promise>> { - return this.databaseService.getQuery( + ): Promise>> { + return this.databaseService.getQuery( (collections) => collections.userQuestionnaireResponses(userId), ); } diff --git a/functions/src/services/patient/patientService.mock.ts b/functions/src/services/patient/patientService.mock.ts index 72d88a98..ae822b4c 100644 --- a/functions/src/services/patient/patientService.mock.ts +++ b/functions/src/services/patient/patientService.mock.ts @@ -9,10 +9,10 @@ import { advanceDateByDays, DrugReference, - type FHIRAllergyIntolerance, - FHIRAppointment, - FHIRMedicationRequest, - type FHIRQuestionnaireResponse, + type FhirAllergyIntolerance, + FhirAppointment, + FhirMedicationRequest, + type FhirQuestionnaireResponse, type LoincCode, type ObservationQuantity, QuantityUnit, @@ -45,22 +45,22 @@ export class MockPatientService implements PatientService { async getEveryAppoinment( fromDate: Date, toDate: Date, - ): Promise>> { + ): Promise>> { return []; } async getAppointments( userId: string, - ): Promise>> { + ): Promise>> { return []; } async getNextAppointment( userId: string, - ): Promise | undefined> { + ): Promise | undefined> { return { id: "123", lastUpdate: new Date(), path: `users/${userId}/appointments/123`, - content: FHIRAppointment.create({ + content: FhirAppointment.create({ userId, status: "booked", created: advanceDateByDays(this.startDate, -10), @@ -72,7 +72,7 @@ export class MockPatientService implements PatientService { async createAppointment( userId: string, - appointment: FHIRAppointment, + appointment: FhirAppointment, ): Promise { return; } @@ -81,7 +81,7 @@ export class MockPatientService implements PatientService { async getContraindications( userId: string, - ): Promise>> { + ): Promise>> { return []; } @@ -89,9 +89,9 @@ export class MockPatientService implements PatientService { async getMedicationRequests( userId: string, - ): Promise>> { - const values: FHIRMedicationRequest[] = [ - FHIRMedicationRequest.create({ + ): Promise>> { + const values: FhirMedicationRequest[] = [ + FhirMedicationRequest.create({ medicationReference: DrugReference.carvedilol3_125, frequencyPerDay: 1, quantity: 2, @@ -107,8 +107,8 @@ export class MockPatientService implements PatientService { async replaceMedicationRequests( userId: string, - values: FHIRMedicationRequest[], - keepUnchanged?: (request: Document) => boolean, + values: FhirMedicationRequest[], + keepUnchanged?: (request: Document) => boolean, ): Promise { return; } @@ -315,7 +315,7 @@ export class MockPatientService implements PatientService { async getQuestionnaireResponses( userId: string, - ): Promise>> { + ): Promise>> { return [mockQuestionnaireResponse()].map((value, index) => ({ id: index.toString(), lastUpdate: new Date(), diff --git a/functions/src/services/patient/patientService.ts b/functions/src/services/patient/patientService.ts index 5efdab70..a6b7f089 100644 --- a/functions/src/services/patient/patientService.ts +++ b/functions/src/services/patient/patientService.ts @@ -9,10 +9,10 @@ import { type ObservationQuantity, type QuantityUnit, - type FHIRAllergyIntolerance, - type FHIRAppointment, - type FHIRMedicationRequest, - type FHIRQuestionnaireResponse, + type FhirAllergyIntolerance, + type FhirAppointment, + type FhirMedicationRequest, + type FhirQuestionnaireResponse, type SymptomScore, type UserMedicationRecommendation, type UserShareCode, @@ -28,33 +28,33 @@ export interface PatientService { getEveryAppoinment( fromDate: Date, toDate: Date, - ): Promise>>; + ): Promise>>; - getAppointments(userId: string): Promise>>; + getAppointments(userId: string): Promise>>; getNextAppointment( userId: string, - ): Promise | undefined>; + ): Promise | undefined>; createAppointment( userId: string, - appointment: FHIRAppointment, + appointment: FhirAppointment, ): Promise; // Contraindications getContraindications( userId: string, - ): Promise>>; + ): Promise>>; // Medication Requests getMedicationRequests( userId: string, - ): Promise>>; + ): Promise>>; replaceMedicationRequests( userId: string, - values: FHIRMedicationRequest[], - keepUnchanged?: (request: Document) => boolean, + values: FhirMedicationRequest[], + keepUnchanged?: (request: Document) => boolean, ): Promise; getMedicationRecommendations( @@ -109,7 +109,7 @@ export interface PatientService { getQuestionnaireResponses( userId: string, - ): Promise>>; + ): Promise>>; getSymptomScores( userId: string, options?: { limit?: number }, diff --git a/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts b/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts index 1a776f67..48c52a7d 100644 --- a/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts +++ b/functions/src/services/questionnaireResponse/createKccqQuestionnaireResponse.ts @@ -7,14 +7,14 @@ // import { - FHIRQuestionnaireResponse, + FhirQuestionnaireResponse, type SymptomQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireLinkId } from "../seeding/staticData/questionnaireFactory/questionnaireLinkIds.js"; export function createKccqQuestionnaireResponse( input: SymptomQuestionnaireResponse, -): FHIRQuestionnaireResponse { +): FhirQuestionnaireResponse { const linkIds = QuestionnaireLinkId.kccq; const items: Record = { @@ -33,7 +33,7 @@ export function createKccqQuestionnaireResponse( [linkIds.question9]: input.answer9, }; - return new FHIRQuestionnaireResponse({ + return new FhirQuestionnaireResponse({ resourceType: "QuestionnaireResponse", id: input.questionnaireResponse, status: "completed", diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts index c721aade..a4391424 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.test.ts @@ -13,9 +13,10 @@ import { UserObservationCollection, UserType, QuantityUnit, - FHIRMedicationRequest, + FhirMedicationRequest, DrugReference, UserSex, + FhirQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { _defaultSeed } from "../../functions/defaultSeed.js"; import { onUserQuestionnaireResponseWritten } from "../../functions/onUserQuestionnaireResponseWritten.js"; @@ -38,17 +39,17 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { }); const previousMedicationRequests = [ - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ medicationReference: "medications/69749/drugs/349201", frequencyPerDay: 2, quantity: 3, }), - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ medicationReference: DrugReference.sotagliflozin200, frequencyPerDay: 5, quantity: 0.5, }), - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ medicationReference: DrugReference.furosemide20, frequencyPerDay: 4, quantity: 2, @@ -65,9 +66,7 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc(); await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.schema.parse( - dataUpdateResponseApple, - ), + data: FhirQuestionnaireResponse.parse(dataUpdateResponseApple), params: { userId, questionnaireResponseId: ref.id, @@ -85,9 +84,9 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const valsartan = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/69749/drugs/349201", - )?.data; + )?.value; expect(valsartan).toBeDefined(); expect(valsartan?.dosageInstruction?.length).toBe(1); const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0); @@ -98,9 +97,9 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const bexagliflozin = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/2627044/drugs/2637859", - )?.data; + )?.value; expect(bexagliflozin).toBeDefined(); expect(bexagliflozin?.dosageInstruction?.length).toBe(1); const bexagliflozinDosageInstruction = @@ -113,8 +112,8 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const furosemide = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === DrugReference.furosemide20, - )?.data; + req.value.medicationReference?.reference === DrugReference.furosemide20, + )?.value; expect(furosemide).toBeDefined(); expect(furosemide?.dosageInstruction?.length).toBe(1); const furosemideDosageInstruction = furosemide?.dosageInstruction?.at(0); @@ -171,17 +170,17 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { }); const previousMedicationRequests = [ - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ medicationReference: DrugReference.carvedilol25, frequencyPerDay: 4, quantity: 1, }), - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ medicationReference: DrugReference.bisoprolol5, frequencyPerDay: 7, quantity: 3, }), - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan49_51, frequencyPerDay: 2, quantity: 0.5, @@ -198,9 +197,7 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc(); await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.schema.parse( - postAppointmentResponseAndroid, - ), + data: FhirQuestionnaireResponse.parse(postAppointmentResponseAndroid), params: { userId, questionnaireResponseId: ref.id, @@ -217,9 +214,9 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const sacubitrilValsartan = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/1656339/drugs/1656349", - )?.data; + )?.value; expect(sacubitrilValsartan).toBeDefined(); expect(sacubitrilValsartan?.dosageInstruction?.length).toBe(1); const sacubitrilValsartanDosageInstruction = @@ -234,9 +231,9 @@ describeWithEmulators("DataUpdateQuestionnaireResponseService", (env) => { const empagliflozin = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/1545653/drugs/1545658", - )?.data; + )?.value; expect(empagliflozin).toBeDefined(); expect(empagliflozin?.dosageInstruction?.length).toBe(1); const empagliflozinDosageInstruction = diff --git a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts index 1428c059..304b1a1c 100644 --- a/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/dataUpdateQuestionnaireResponseService.ts @@ -9,7 +9,7 @@ import { type User, UserMessageType, - type FHIRQuestionnaireResponse, + type FhirQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { logger } from "firebase-functions/v2"; import { QuestionnaireResponseService } from "./questionnaireResponseService.js"; @@ -50,7 +50,7 @@ export class DataUpdateQuestionnaireResponseService extends QuestionnaireRespons async handle( userId: string, - response: Document, + response: Document, options: { isNew: boolean }, ): Promise { const postAppointmentUrl = QuestionnaireLinkId.url( @@ -60,9 +60,9 @@ export class DataUpdateQuestionnaireResponseService extends QuestionnaireRespons QuestionnaireLinkId.url(QuestionnaireId.dataUpdate), postAppointmentUrl, ]; - if (!urls.includes(response.content.data.questionnaire ?? "")) { + if (!urls.includes(response.content.value.questionnaire ?? "")) { logger.info( - `${this.constructor.name}.handle(${userId}): Url ${response.content.data.questionnaire} is not a data update / post appointment questionnaire, skipping.`, + `${this.constructor.name}.handle(${userId}): Url ${response.content.value.questionnaire} is not a data update / post appointment questionnaire, skipping.`, ); return false; } @@ -103,7 +103,7 @@ export class DataUpdateQuestionnaireResponseService extends QuestionnaireRespons if ( options.isNew && - response.content.data.questionnaire === postAppointmentUrl + response.content.value.questionnaire === postAppointmentUrl ) { logger.info( `${this.constructor.name}.handle(${userId}): About to complete post appointment questionnaire messages.`, diff --git a/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts index 58ece963..0c75e52d 100644 --- a/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/kccqQuestionnaireResponseService.ts @@ -10,7 +10,7 @@ import { SymptomScore, UserMessage, UserMessageType, - type FHIRQuestionnaireResponse, + type FhirQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireResponseService } from "./questionnaireResponseService.js"; import { type SymptomScoreCalculator } from "./symptomScore/symptomScoreCalculator.js"; @@ -50,11 +50,12 @@ export class KccqQuestionnaireResponseService extends QuestionnaireResponseServi async handle( userId: string, - response: Document, + response: Document, options: { isNew: boolean }, ): Promise { const urls = [QuestionnaireLinkId.url(QuestionnaireId.kccq)]; - if (!urls.includes(response.content.data.questionnaire ?? "")) return false; + if (!urls.includes(response.content.value.questionnaire ?? "")) + return false; const symptomScore = this.symptomScore(response.content); if (symptomScore === null) return false; @@ -105,24 +106,24 @@ export class KccqQuestionnaireResponseService extends QuestionnaireResponseServi // Helpers private symptomScore( - response: FHIRQuestionnaireResponse, + response: FhirQuestionnaireResponse, ): SymptomScore | null { const linkIds = QuestionnaireLinkId.kccq; const input = { - answer1a: this.singleIntCodingAnswer(linkIds.question1a, response), - answer1b: this.singleIntCodingAnswer(linkIds.question1b, response), - answer1c: this.singleIntCodingAnswer(linkIds.question1c, response), - answer2: this.singleIntCodingAnswer(linkIds.question2, response), - answer3: this.singleIntCodingAnswer(linkIds.question3, response), - answer4: this.singleIntCodingAnswer(linkIds.question4, response), - answer5: this.singleIntCodingAnswer(linkIds.question5, response), - answer6: this.singleIntCodingAnswer(linkIds.question6, response), - answer7: this.singleIntCodingAnswer(linkIds.question7, response), - answer8a: this.singleIntCodingAnswer(linkIds.question8a, response), - answer8b: this.singleIntCodingAnswer(linkIds.question8b, response), - answer8c: this.singleIntCodingAnswer(linkIds.question8c, response), - answer9: this.singleIntCodingAnswer(linkIds.question9, response), + answer1a: this.uniqueIntCodingAnswer(linkIds.question1a, response), + answer1b: this.uniqueIntCodingAnswer(linkIds.question1b, response), + answer1c: this.uniqueIntCodingAnswer(linkIds.question1c, response), + answer2: this.uniqueIntCodingAnswer(linkIds.question2, response), + answer3: this.uniqueIntCodingAnswer(linkIds.question3, response), + answer4: this.uniqueIntCodingAnswer(linkIds.question4, response), + answer5: this.uniqueIntCodingAnswer(linkIds.question5, response), + answer6: this.uniqueIntCodingAnswer(linkIds.question6, response), + answer7: this.uniqueIntCodingAnswer(linkIds.question7, response), + answer8a: this.uniqueIntCodingAnswer(linkIds.question8a, response), + answer8b: this.uniqueIntCodingAnswer(linkIds.question8b, response), + answer8c: this.uniqueIntCodingAnswer(linkIds.question8c, response), + answer9: this.uniqueIntCodingAnswer(linkIds.question9, response), }; return new SymptomScore({ @@ -131,11 +132,11 @@ export class KccqQuestionnaireResponseService extends QuestionnaireResponseServi }); } - private singleIntCodingAnswer( + private uniqueIntCodingAnswer( linkId: string, - response: FHIRQuestionnaireResponse, + response: FhirQuestionnaireResponse, ): number { - const answers = response.leafResponseItem(linkId)?.answer ?? []; + const answers = response.uniqueLeafResponseItem(linkId)?.answer ?? []; if (answers.length !== 1) { throw new Error( `Expected exactly one answer for leaf response item with linkId '${linkId}', but found ${answers.length}.`, diff --git a/functions/src/services/questionnaireResponse/multiQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/multiQuestionnaireResponseService.ts index 3ae30532..4ef95897 100644 --- a/functions/src/services/questionnaireResponse/multiQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/multiQuestionnaireResponseService.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { type FHIRQuestionnaireResponse } from "@stanfordbdhg/engagehf-models"; +import { type FhirQuestionnaireResponse } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireResponseService } from "./questionnaireResponseService.js"; import { type Document } from "../database/databaseService.js"; @@ -26,7 +26,7 @@ export class MultiQuestionnaireResponseService extends QuestionnaireResponseServ async handle( userId: string, - response: Document, + response: Document, options: { isNew: boolean }, ): Promise { for (const components of this.components) { diff --git a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts index a7a73ed3..a2f37e62 100644 --- a/functions/src/services/questionnaireResponse/questionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/questionnaireResponseService.ts @@ -8,13 +8,13 @@ import assert from "assert"; import { - FHIRMedicationRequest, + FhirMedicationRequest, LoincCode, type ObservationQuantity, - type FHIRQuestionnaireResponse, + type FhirQuestionnaireResponse, UserSex, QuantityUnit, - FHIRAppointment, + FhirAppointment, UserObservationCollection, MedicationReference, } from "@stanfordbdhg/engagehf-models"; @@ -42,7 +42,7 @@ export abstract class QuestionnaireResponseService { abstract handle( userId: string, - response: Document, + response: Document, options: { isNew: boolean }, ): Promise; @@ -50,21 +50,21 @@ export abstract class QuestionnaireResponseService { protected extractAppointment( userId: string, - response: FHIRQuestionnaireResponse, - ): FHIRAppointment | null { + response: FhirQuestionnaireResponse, + ): FhirAppointment | null { const linkIds = QuestionnaireLinkId.appointment; const exists = response - .leafResponseItem(linkIds.exists) + .uniqueLeafResponseItem(linkIds.exists) ?.answer?.at(0)?.valueBoolean; if (exists !== true) return null; const dateAnswer = response - .leafResponseItem(linkIds.dateTime) + .uniqueLeafResponseItem(linkIds.dateTime) ?.answer?.at(0)?.valueDateTime; if (dateAnswer === undefined) return null; - return FHIRAppointment.create({ + return FhirAppointment.create({ userId, created: new Date(), start: new Date(dateAnswer), @@ -73,17 +73,18 @@ export abstract class QuestionnaireResponseService { } protected extractPersonalInfo( - response: FHIRQuestionnaireResponse, + response: FhirQuestionnaireResponse, ): { dateOfBirth: Date; sex: UserSex } | null { const linkIds = QuestionnaireLinkId.personalInformation; try { const dateOfBirth = response - .leafResponseItem(linkIds.dateOfBirth) + .uniqueLeafResponseItem(linkIds.dateOfBirth) ?.answer?.at(0)?.valueDate; if (dateOfBirth === undefined) return null; - const sexCode = response.leafResponseItem(linkIds.sex)?.answer?.at(0) - ?.valueCoding?.code; + const sexCode = response + .uniqueLeafResponseItem(linkIds.sex) + ?.answer?.at(0)?.valueCoding?.code; const sex = z.enum(UserSex).parse(sexCode); return { dateOfBirth: new Date(dateOfBirth), @@ -94,7 +95,7 @@ export abstract class QuestionnaireResponseService { } protected extractLabValue( - response: FHIRQuestionnaireResponse, + response: FhirQuestionnaireResponse, options: { code: LoincCode; unit: QuantityUnit; @@ -102,12 +103,12 @@ export abstract class QuestionnaireResponseService { ): ObservationQuantity | null { const linkIds = QuestionnaireLinkId.labValue(options.code); const dateAnswer = response - .leafResponseItem(linkIds.dateTime) + .uniqueLeafResponseItem(linkIds.dateTime) ?.answer?.at(0)?.valueDateTime; if (dateAnswer === undefined) return null; const decimalAnswer = response - .leafResponseItem(linkIds.number) + .uniqueLeafResponseItem(linkIds.number) ?.answer?.at(0)?.valueDecimal; if (decimalAnswer === undefined) return null; @@ -119,16 +120,16 @@ export abstract class QuestionnaireResponseService { }; } - protected extractMedicationRequests(response: FHIRQuestionnaireResponse): { - requests: FHIRMedicationRequest[]; + protected extractMedicationRequests(response: FhirQuestionnaireResponse): { + requests: FhirMedicationRequest[]; keepUnchanged: MedicationGroup[]; } { - const requests: FHIRMedicationRequest[] = []; + const requests: FhirMedicationRequest[] = []; const keepUnchanged: MedicationGroup[] = []; for (const medicationGroup of Object.values(MedicationGroup)) { const linkIds = QuestionnaireLinkId.medication(medicationGroup); const existsCoding = response - .leafResponseItem(linkIds.exists) + .uniqueLeafResponseItem(linkIds.exists) ?.answer?.at(0)?.valueCoding; if (existsCoding === undefined) { @@ -172,13 +173,13 @@ export abstract class QuestionnaireResponseService { } const drugCoding = response - .leafResponseItem(linkIds.drug) + .uniqueLeafResponseItem(linkIds.drug) ?.answer?.at(0)?.valueCoding; const quantity = response - .leafResponseItem(linkIds.quantity) + .uniqueLeafResponseItem(linkIds.quantity) ?.answer?.at(0)?.valueDecimal; const frequency = response - .leafResponseItem(linkIds.frequency) + .uniqueLeafResponseItem(linkIds.frequency) ?.answer?.at(0)?.valueInteger; if ( @@ -190,7 +191,7 @@ export abstract class QuestionnaireResponseService { `Missing medication group: ${medicationGroup} - drug, quantity or frequency.`, ); - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: drugCoding.code, medicationReferenceDisplay: drugCoding.display?.replace(/\s+/g, " "), frequencyPerDay: frequency, @@ -209,7 +210,7 @@ export abstract class QuestionnaireResponseService { egfrCalculator: EgfrCalculator; dateOfBirth: Date | null; sex: UserSex | null; - response: Document; + response: Document; }): Promise { const observationValues: Array<{ observation: ObservationQuantity; @@ -291,7 +292,7 @@ export abstract class QuestionnaireResponseService { input.userId, observationValues, { - type: input.response.content.data.resourceType, + type: input.response.content.value.resourceType, reference: input.response.path, }, ); @@ -304,7 +305,7 @@ export abstract class QuestionnaireResponseService { protected async handleMedicationRequests(input: { userId: string; patientService: PatientService; - response: Document; + response: Document; }): Promise { const medicationExtraction = this.extractMedicationRequests( input.response.content, @@ -321,7 +322,7 @@ export abstract class QuestionnaireResponseService { medicationClasses.length > 0 ? (doc) => { const referenceString = - doc.content.data.medicationReference?.reference; + doc.content.value.medicationReference?.reference; if (referenceString === undefined) { logger.error( `Encountered medication request without reference at ${doc.path}: ${JSON.stringify(doc.content)}`, diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts index fcd98df3..5389cd7a 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.test.ts @@ -14,6 +14,7 @@ import { UserSex, UserType, QuantityUnit, + FhirQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { _defaultSeed } from "../../functions/defaultSeed.js"; import { onUserQuestionnaireResponseWritten } from "../../functions/onUserQuestionnaireResponseWritten.js"; @@ -35,9 +36,7 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc(); await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.schema.parse( - registrationResponseApple, - ), + data: FhirQuestionnaireResponse.parse(registrationResponseApple), params: { userId, questionnaireResponseId: ref.id, @@ -63,9 +62,9 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const valsartan = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/69749/drugs/349201", - )?.data; + )?.value; expect(valsartan).toBeDefined(); expect(valsartan?.dosageInstruction?.length).toBe(1); const valsartanDosageInstruction = valsartan?.dosageInstruction?.at(0); @@ -76,9 +75,9 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const bexagliflozin = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/2627044/drugs/2637859", - )?.data; + )?.value; expect(bexagliflozin).toBeDefined(); expect(bexagliflozin?.dosageInstruction?.length).toBe(1); const bexagliflozinDosageInstruction = @@ -135,9 +134,7 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const ref = env.collections.userQuestionnaireResponses(userId).doc(); await env.setWithTrigger(onUserQuestionnaireResponseWritten, { ref, - data: fhirQuestionnaireResponseConverter.schema.parse( - registrationResponseAndroid, - ), + data: FhirQuestionnaireResponse.parse(registrationResponseAndroid), params: { userId, questionnaireResponseId: ref.id, @@ -162,9 +159,9 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const benazepril = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/18867/drugs/898719", - )?.data; + )?.value; expect(benazepril).toBeDefined(); expect(benazepril?.dosageInstruction?.length).toBe(1); const benazeprilDosageInstruction = benazepril?.dosageInstruction?.at(0); @@ -176,9 +173,9 @@ describeWithEmulators("RegistrationQuestionnaireResponseService", (env) => { const empagliflozin = medicationRequestsData.find( (req) => - req.data.medicationReference?.reference === + req.value.medicationReference?.reference === "medications/1545653/drugs/1545658", - )?.data; + )?.value; expect(empagliflozin).toBeDefined(); expect(empagliflozin?.dosageInstruction?.length).toBe(1); const empagliflozinDosageInstruction = diff --git a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts index f8de5241..de68062d 100644 --- a/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts +++ b/functions/src/services/questionnaireResponse/registrationQuestionnaireResponseService.ts @@ -8,7 +8,7 @@ import { UserMessageType, - type FHIRQuestionnaireResponse, + type FhirQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { logger } from "firebase-functions/v2"; import { QuestionnaireResponseService } from "./questionnaireResponseService.js"; @@ -49,13 +49,13 @@ export class RegistrationQuestionnaireResponseService extends QuestionnaireRespo async handle( userId: string, - response: Document, + response: Document, options: { isNew: boolean }, ): Promise { const urls = [QuestionnaireLinkId.url(QuestionnaireId.registration)]; - if (!urls.includes(response.content.data.questionnaire ?? "")) { + if (!urls.includes(response.content.value.questionnaire ?? "")) { logger.info( - `${this.constructor.name}.handle(${userId}): Url ${response.content.data.questionnaire} is not a registration questionnaire, skipping.`, + `${this.constructor.name}.handle(${userId}): Url ${response.content.value.questionnaire} is not a registration questionnaire, skipping.`, ); return false; } diff --git a/functions/src/services/recommendation/recommendationService.test.ts b/functions/src/services/recommendation/recommendationService.test.ts index 3aa5ea1e..3b17c5b9 100644 --- a/functions/src/services/recommendation/recommendationService.test.ts +++ b/functions/src/services/recommendation/recommendationService.test.ts @@ -9,8 +9,8 @@ import { CachingStrategy, DrugReference, - FHIRAllergyIntolerance, - FHIRMedicationRequest, + FhirAllergyIntolerance, + FhirMedicationRequest, MedicationReference, UserMedicationRecommendationType, } from "@stanfordbdhg/engagehf-models"; @@ -138,145 +138,145 @@ describe("RecommendationService", () => { function getMedicationRequest( value: string, -): FHIRMedicationRequest | undefined { +): FhirMedicationRequest | undefined { switch (value.trim().toLowerCase()) { case "none": return undefined; case "bisoprolol 2.5mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.bisoprolol5, frequencyPerDay: 1, quantity: 0.5, }); case "bisoprolol 10mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.bisoprolol5, frequencyPerDay: 2, quantity: 1, }); case "carvedilol 6.25 daily (3.125 bid)": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.carvedilol3_125, frequencyPerDay: 2, quantity: 1, }); case "carvedilol 50mg daily (25mg twice daily)": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.carvedilol25, frequencyPerDay: 2, quantity: 1, }); case "carvedilol 50mg daily": case "carvedilol 50mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.carvedilol25, frequencyPerDay: 1, quantity: 2, }); case "dapagliflozin 5mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.dapagliflozin5, frequencyPerDay: 1, quantity: 1, }); case "dapagliflozin 10mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.dapagliflozin5, frequencyPerDay: 1, quantity: 2, }); case "empagliflozin 5mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.empagliflozin10, frequencyPerDay: 1, quantity: 0.5, }); case "empagliflozin 10mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.empagliflozin10, frequencyPerDay: 1, quantity: 1, }); case "eplerenone 25mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.eplerenone25, frequencyPerDay: 1, quantity: 1, }); case "eplerenone 50mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.eplerenone25, frequencyPerDay: 1, quantity: 2, }); case "lisinopril 5mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.lisinopril5, frequencyPerDay: 1, quantity: 1, }); case "lisinopril 40mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.lisinopril5, frequencyPerDay: 4, quantity: 2, }); case "losartan 25mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.losartan25, frequencyPerDay: 1, quantity: 1, }); case "losartan 150mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.losartan100, frequencyPerDay: 1, quantity: 1.5, }); case "metoprolol 12.5mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.metoprololSuccinate25Tablet, frequencyPerDay: 1, quantity: 0.5, }); case "metoprolol 200mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.metoprololSuccinate25Tablet, frequencyPerDay: 2, quantity: 4, }); case "spironolactone 12.5 daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.spironolactone25, frequencyPerDay: 1, quantity: 0.5, }); case "spironolactone 25mg daily": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.spironolactone25, frequencyPerDay: 1, quantity: 1, }); case "sacubitril-valsartan 100mg daily (24-26mg twice daily)": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan24_26, frequencyPerDay: 2, quantity: 1, }); case "sacubitril-valsartan 200mg daily (49-51mg twice daily)": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan49_51, frequencyPerDay: 2, quantity: 1, }); case "sacubitril-valsartan 400mg daily (97-103mg twice daily)": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan97_103, frequencyPerDay: 1, quantity: 2, }); case "valsartan 40mg": - return FHIRMedicationRequest.create({ + return FhirMedicationRequest.create({ medicationReference: DrugReference.valsartan40, frequencyPerDay: 1, quantity: 1, @@ -289,13 +289,13 @@ function getMedicationRequest( function getContraindications( field: string, type: AllergyIntolerance["type"] | undefined, -): FHIRAllergyIntolerance[] { +): FhirAllergyIntolerance[] { switch (field.trim().toLowerCase().split(" ").join("")) { case "none": return []; case "bisoprolol": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.bisoprolol, type, criticality: "low", @@ -303,7 +303,7 @@ function getContraindications( ]; case "carvedilol": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.carvedilol, type, criticality: "low", @@ -311,7 +311,7 @@ function getContraindications( ]; case "dapagliflozin": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.dapagliflozin, type, criticality: "low", @@ -319,7 +319,7 @@ function getContraindications( ]; case "empagliflozin": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.empagliflozin, type, criticality: "low", @@ -327,7 +327,7 @@ function getContraindications( ]; case "eplerenone": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.eplerenone, type, criticality: "low", @@ -335,7 +335,7 @@ function getContraindications( ]; case "lisinopril": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.lisinopril, type, criticality: "low", @@ -343,7 +343,7 @@ function getContraindications( ]; case "lisinopril-anaphylaxis": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.lisinopril, type, criticality: "high", @@ -351,7 +351,7 @@ function getContraindications( ]; case "losartan": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.losartan, type, criticality: "low", @@ -359,7 +359,7 @@ function getContraindications( ]; case "metoprolol": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.metoprololSuccinate, type, criticality: "high", @@ -367,7 +367,7 @@ function getContraindications( ]; case "sacubitril-valsartan": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.sacubitrilValsartan, type, criticality: "low", @@ -375,7 +375,7 @@ function getContraindications( ]; case "sotagliflozin": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.sotagliflozin, type, criticality: "low", @@ -383,7 +383,7 @@ function getContraindications( ]; case "spironolactone": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.spironolactone, type, criticality: "low", @@ -391,7 +391,7 @@ function getContraindications( ]; case "valsartan": return [ - FHIRAllergyIntolerance.create({ + FhirAllergyIntolerance.create({ reference: MedicationReference.valsartan, type, criticality: "low", diff --git a/functions/src/services/recommendation/recommendationService.ts b/functions/src/services/recommendation/recommendationService.ts index 3842b27c..800909cf 100644 --- a/functions/src/services/recommendation/recommendationService.ts +++ b/functions/src/services/recommendation/recommendationService.ts @@ -7,8 +7,8 @@ // import { - type FHIRAllergyIntolerance, - type FHIRMedication, + type FhirAllergyIntolerance, + type FhirMedication, LocalizedText, type MedicationReference, type ObservationQuantity, @@ -30,7 +30,7 @@ import { type MedicationService } from "../medication/medicationService.js"; export interface RecommendationInput { requests: MedicationRequestContext[]; - contraindications: FHIRAllergyIntolerance[]; + contraindications: FhirAllergyIntolerance[]; vitals: RecommendationVitals; latestDizzinessScore?: number; } @@ -143,12 +143,12 @@ export class RecommendationService { minimumDailyDoseRequest && minimumDailyDoseDrugReference ? this.doseSchedule( minimumDailyDoseRequest, - minimumDailyDoseDrugReference.data, + minimumDailyDoseDrugReference.value, ) : []; const currentDailyDoseSchedule = output.currentMedication.flatMap( - (context) => this.doseSchedule(context.request.data, context.drug.data), + (context) => this.doseSchedule(context.request.value, context.drug.value), ); const targetDailyDoseRequest = medication?.targetDailyDoseRequest; @@ -164,7 +164,7 @@ export class RecommendationService { targetDailyDoseRequest && targetDailyDoseDrugReference ? this.doseSchedule( targetDailyDoseRequest, - targetDailyDoseDrugReference.data, + targetDailyDoseDrugReference.value, ) : []; @@ -227,7 +227,7 @@ export class RecommendationService { private recommendationDescription( output: RecommendationOutput, - recommendedMedication: FHIRMedication | undefined, + recommendedMedication: FhirMedication | undefined, ): LocalizedText { switch (output.type) { case UserMedicationRecommendationType.improvementAvailable: { diff --git a/functions/src/services/recommendation/recommenders/betaBlockerRecommender.test.ts b/functions/src/services/recommendation/recommenders/betaBlockerRecommender.test.ts index 3e4364dc..a35d4d5c 100644 --- a/functions/src/services/recommendation/recommenders/betaBlockerRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/betaBlockerRecommender.test.ts @@ -9,7 +9,7 @@ import { CachingStrategy, DrugReference, - FHIRMedicationRequest, + FhirMedicationRequest, type MedicationClassReference, MedicationReference, SymptomScore, @@ -194,7 +194,7 @@ describe("BetaBlockerRecommender", () => { describe("Existing treatment: Bisoprolol", () => { let contextBelowTarget: MedicationRequestContext; beforeAll(async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.bisoprolol5, frequencyPerDay: 1, quantity: 1, @@ -208,7 +208,7 @@ describe("BetaBlockerRecommender", () => { }); it("states that it hit target dose", async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.bisoprolol5, frequencyPerDay: 1, quantity: 2, diff --git a/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts b/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts index e7a106f6..3deb31f1 100644 --- a/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/diureticRecommender.test.ts @@ -10,8 +10,8 @@ import { CodingSystem, DrugReference, FHIRExtensionUrl, - FHIRMedication, - FHIRMedicationRequest, + FhirMedication, + FhirMedicationRequest, LocalizedText, MedicationClass, MedicationClassReference, @@ -55,7 +55,7 @@ describe("DiureticRecommender", () => { reference: "users/mockPatient/medicationRequests/mockMedicationRequest", }, - request: FHIRMedicationRequest.create({ + request: FhirMedicationRequest.create({ medicationReference: DrugReference.furosemide20, medicationReferenceDisplay: "Furosemide 20mg Oral Tablet", frequencyPerDay: 1, @@ -64,7 +64,7 @@ describe("DiureticRecommender", () => { drugReference: { reference: DrugReference.furosemide20, }, - drug: new FHIRMedication({ + drug: new FhirMedication({ resourceType: "Medication", code: { coding: [ @@ -79,7 +79,7 @@ describe("DiureticRecommender", () => { medicationReference: { reference: MedicationReference.furosemide, }, - medication: new FHIRMedication({ + medication: new FhirMedication({ resourceType: "Medication", code: { coding: [ diff --git a/functions/src/services/recommendation/recommenders/mraRecommender.test.ts b/functions/src/services/recommendation/recommenders/mraRecommender.test.ts index dc72f8e9..3bf2e0b2 100644 --- a/functions/src/services/recommendation/recommenders/mraRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/mraRecommender.test.ts @@ -9,7 +9,7 @@ import { CachingStrategy, DrugReference, - FHIRMedicationRequest, + FhirMedicationRequest, type MedicationClassReference, MedicationReference, QuantityUnit, @@ -162,7 +162,7 @@ describe("MraRecommender", () => { describe("Existing treatment: Eplerenone", () => { let contextBelowTarget: MedicationRequestContext; beforeAll(async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.eplerenone25, frequencyPerDay: 1, quantity: 1, @@ -176,7 +176,7 @@ describe("MraRecommender", () => { }); it("states that target dose is reached", async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.eplerenone25, frequencyPerDay: 2, quantity: 1, diff --git a/functions/src/services/recommendation/recommenders/rasiRecommender.test.ts b/functions/src/services/recommendation/recommenders/rasiRecommender.test.ts index 5759d622..827a6316 100644 --- a/functions/src/services/recommendation/recommenders/rasiRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/rasiRecommender.test.ts @@ -9,7 +9,7 @@ import { CachingStrategy, DrugReference, - FHIRMedicationRequest, + FhirMedicationRequest, MedicationClassReference, MedicationReference, QuantityUnit, @@ -259,7 +259,7 @@ describe("RasiRecommender", () => { describe("On perindopril (ACEI/ARB)", () => { let contextBelowTarget: MedicationRequestContext; beforeAll(async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.perindopril4, frequencyPerDay: 1, quantity: 1, @@ -284,7 +284,7 @@ describe("RasiRecommender", () => { }); it("detects target dose reached", async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.perindopril4, frequencyPerDay: 2, quantity: 2, @@ -524,7 +524,7 @@ describe("RasiRecommender", () => { describe("On sacubitril/valsartan", () => { let contextBelowTarget: MedicationRequestContext; beforeAll(async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan49_51, frequencyPerDay: 1, quantity: 1, @@ -538,7 +538,7 @@ describe("RasiRecommender", () => { }); it("detects target dose reached", async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.sacubitrilValsartan49_51, frequencyPerDay: 2, quantity: 2, diff --git a/functions/src/services/recommendation/recommenders/recommender.ts b/functions/src/services/recommendation/recommenders/recommender.ts index e7122230..016fec1f 100644 --- a/functions/src/services/recommendation/recommenders/recommender.ts +++ b/functions/src/services/recommendation/recommenders/recommender.ts @@ -107,7 +107,7 @@ export abstract class Recommender { const dailyDoses: number[] = []; for (const context of contexts) { let numberOfTabletsPerDay = 0; - for (const instruction of context.request.data.dosageInstruction ?? []) { + for (const instruction of context.request.value.dosageInstruction ?? []) { const intakesPerDay = instruction.timing?.repeat?.frequency ?? 0; for (const dose of instruction.doseAndRate ?? []) { const numberOfPills = dose.doseQuantity?.value; @@ -117,7 +117,7 @@ export abstract class Recommender { } } - const ingredients = context.drug.data.ingredient ?? []; + const ingredients = context.drug.value.ingredient ?? []; while (dailyDoses.length < ingredients.length) { dailyDoses.push(0); diff --git a/functions/src/services/recommendation/recommenders/sglt2iRecommender.test.ts b/functions/src/services/recommendation/recommenders/sglt2iRecommender.test.ts index 9788e333..c241266b 100644 --- a/functions/src/services/recommendation/recommenders/sglt2iRecommender.test.ts +++ b/functions/src/services/recommendation/recommenders/sglt2iRecommender.test.ts @@ -9,7 +9,7 @@ import { CachingStrategy, DrugReference, - FHIRMedicationRequest, + FhirMedicationRequest, type MedicationClassReference, MedicationReference, QuantityUnit, @@ -181,7 +181,7 @@ describe("Sglt2iRecommender", () => { describe("On Sotagliflozin", () => { let contextBelowTarget: MedicationRequestContext; beforeAll(async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.sotagliflozin200, frequencyPerDay: 1, quantity: 1, @@ -195,7 +195,7 @@ describe("Sglt2iRecommender", () => { }); it("detects target dose", async () => { - const request = FHIRMedicationRequest.create({ + const request = FhirMedicationRequest.create({ medicationReference: DrugReference.sotagliflozin200, frequencyPerDay: 2, quantity: 1, diff --git a/functions/src/services/seeding/debugData/debugDataService.ts b/functions/src/services/seeding/debugData/debugDataService.ts index fbe6a195..4ac2ef62 100644 --- a/functions/src/services/seeding/debugData/debugDataService.ts +++ b/functions/src/services/seeding/debugData/debugDataService.ts @@ -11,9 +11,9 @@ import { chunks, type CustomSeedingOptions, DrugReference, - FHIRAppointment, - FHIRMedicationRequest, - FHIRObservation, + FhirAppointment, + FhirMedicationRequest, + FhirObservation, invitationConverter, LoincCode, MedicationReference, @@ -24,7 +24,7 @@ import { userSeedingOptionsSchema, VideoReference, UserObservationCollection, - fhirQuestionnaireConverter, + FhirQuestionnaire, } from "@stanfordbdhg/engagehf-models"; import { type Auth } from "firebase-admin/auth"; import { type CollectionReference } from "firebase-admin/firestore"; @@ -102,7 +102,7 @@ export class DebugDataService extends SeedingService { async seedUserAppointments(userId: string, date: Date) { const values = [ - FHIRAppointment.create({ + FhirAppointment.create({ userId, created: advanceDateByDays(date, -2), start: advanceDateByDays(date, 2), @@ -118,7 +118,7 @@ export class DebugDataService extends SeedingService { async seedUserMedicationRequests(userId: string) { const values = [ - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ frequencyPerDay: 2, medicationReference: DrugReference.eplerenone25, quantity: 2, @@ -222,7 +222,7 @@ export class DebugDataService extends SeedingService { ].map((n) => n / 100); const values = randomNumbers.map((number, index) => - FHIRObservation.createBloodPressure({ + FhirObservation.createBloodPressure({ id: index.toString(), date: advanceDateByDays(date, -index - 2), systolic: 80 + number * 70, @@ -258,7 +258,7 @@ export class DebugDataService extends SeedingService { ].map((n) => n / 100); const values = [ - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: "0", date: advanceDateByDays(date, -2), value: 70, @@ -266,7 +266,7 @@ export class DebugDataService extends SeedingService { code: LoincCode.bodyWeight, }), ...randomNumbers.map((number, index) => - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: (index + 1).toString(), date: advanceDateByDays(date, -index - 3), value: 150 + number * 20, @@ -287,7 +287,7 @@ export class DebugDataService extends SeedingService { async seedUserCreatinineObservations(userId: string, date: Date) { const values = [ - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: "0", date: advanceDateByDays(date, -2), value: 1.2, @@ -308,7 +308,7 @@ export class DebugDataService extends SeedingService { async seedUserDryWeightObservations(userId: string, date: Date) { const values = [ - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: "0", date: advanceDateByDays(date, -2), value: 71.5, @@ -329,7 +329,7 @@ export class DebugDataService extends SeedingService { async seedUserEgfrObservations(userId: string, date: Date) { const values = [ - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: "0", date: advanceDateByDays(date, -2), value: 60, @@ -363,7 +363,7 @@ export class DebugDataService extends SeedingService { ].map((n) => n / 100); const values = randomNumbers.map((number, index) => - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: index.toString(), date: advanceDateByDays(date, -index - 2), value: 60 + number * 40, @@ -384,7 +384,7 @@ export class DebugDataService extends SeedingService { async seedUserPotassiumObservations(userId: string, date: Date) { const values = [ - FHIRObservation.createSimple({ + FhirObservation.createSimple({ id: "0", date: advanceDateByDays(date, -2), value: 4.2, @@ -406,7 +406,7 @@ export class DebugDataService extends SeedingService { async seedUserQuestionnaireResponses(userId: string, date: Date) { const questionnaire = this.readJSONRecord( "../questionnaires.json", - fhirQuestionnaireConverter.schema, + FhirQuestionnaire.schema, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion )[QuestionnaireReference.kccq_en_US.split("/").at(-1)!]; @@ -460,7 +460,7 @@ export class DebugDataService extends SeedingService { const values = chunks(randomNumbers, 13).map((chunk, index) => createKccqQuestionnaireResponse({ - questionnaire: questionnaire.data.url ?? "", + questionnaire: questionnaire.value.url ?? "", questionnaireResponse: index.toString(), date: advanceDateByDays(date, -(index * 14) - 2), answer1a: Math.floor(1 + chunk[0] * 6), diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/dataUpdateQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/dataUpdateQuestionnaireFactory.ts index 513f3f97..12006f9f 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/dataUpdateQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/dataUpdateQuestionnaireFactory.ts @@ -7,22 +7,22 @@ // import { - type FHIRMedication, - type FHIRQuestionnaire, + type FhirMedication, + type FhirQuestionnaire, } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireFactory } from "./questionnaireFactory.js"; import { QuestionnaireId } from "./questionnaireLinkIds.js"; interface DataUpdateQuestionnaireFactoryInput { - medications: Record; - drugs: Record>; + medications: Record; + drugs: Record>; isPostAppointment: boolean; } export class DataUpdateQuestionnaireFactory extends QuestionnaireFactory { // Methods - create(input: DataUpdateQuestionnaireFactoryInput): FHIRQuestionnaire { + create(input: DataUpdateQuestionnaireFactoryInput): FhirQuestionnaire { return this.questionnaire({ id: input.isPostAppointment ? diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts index 40e69416..48323b00 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/kccqQuestionnaireFactory.ts @@ -6,7 +6,7 @@ // SPDX-License-Identifier: MIT // -import { type FHIRQuestionnaire } from "@stanfordbdhg/engagehf-models"; +import { type FhirQuestionnaire } from "@stanfordbdhg/engagehf-models"; import { type QuestionnaireItem } from "fhir/r4b.js"; import { QuestionnaireFactory } from "./questionnaireFactory.js"; import { @@ -15,7 +15,7 @@ import { } from "./questionnaireLinkIds.js"; export class KccqQuestionnaireFactory extends QuestionnaireFactory { - create(): FHIRQuestionnaire { + create(): FhirQuestionnaire { return this.questionnaire({ id: QuestionnaireId.kccq, title: "KCCQ-12", diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts index 5fdabc81..7fa35bcb 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/questionnaireFactory.ts @@ -10,8 +10,8 @@ import { CodingSystem, compactMap, FHIRExtensionUrl, - type FHIRMedication, - FHIRQuestionnaire, + type FhirMedication, + FhirQuestionnaire, LoincCode, QuantityUnit, } from "@stanfordbdhg/engagehf-models"; @@ -34,7 +34,7 @@ import { export abstract class QuestionnaireFactory { // Abstract functions - abstract create(input: Input): FHIRQuestionnaire; + abstract create(input: Input): FhirQuestionnaire; // Helper functions - ENGAGE-HF specific @@ -171,8 +171,8 @@ export abstract class QuestionnaireFactory { } protected medicationInputPages(input: { - medications: Record; - drugs: Record>; + medications: Record; + drugs: Record>; isRegistration: boolean; }): QuestionnaireItem[] { return [ @@ -205,8 +205,8 @@ export abstract class QuestionnaireFactory { } protected medicationInputPagesForMedicationGroup(input: { - drugs: Record>; - medications: Record; + drugs: Record>; + medications: Record; group: MedicationGroup; text: string; isRegistration: boolean; @@ -228,8 +228,8 @@ export abstract class QuestionnaireFactory { ); const answers: Array<{ id: string; - medication: FHIRMedication; - drug: FHIRMedication; + medication: FhirMedication; + drug: FhirMedication; text: string; }> = []; for (const medicationId of medicationIds) { @@ -241,7 +241,7 @@ export abstract class QuestionnaireFactory { if (medication.brandNames.length > 0) text += ` (${medication.brandNames.join(", ")})`; - text += `\n${drug.data.ingredient?.map((i) => i.strength?.numerator?.value ?? 0).join("/") ?? ""} mg ${drug.data.form?.text ?? ""}`; + text += `\n${drug.value.ingredient?.map((i) => i.strength?.numerator?.value ?? 0).join("/") ?? ""} mg ${drug.value.form?.text ?? ""}`; answers.push({ id: `medications/${medicationId}/drugs/${drugId}`, medication, @@ -489,8 +489,8 @@ export abstract class QuestionnaireFactory { status?: Questionnaire["status"]; item: QuestionnaireItem[]; useContext?: UsageContext[]; - }): FHIRQuestionnaire { - return new FHIRQuestionnaire({ + }): FhirQuestionnaire { + return new FhirQuestionnaire({ resourceType: "Questionnaire", id: input.id, title: input.title, diff --git a/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts b/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts index ca50f61e..5592adca 100644 --- a/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts +++ b/functions/src/services/seeding/staticData/questionnaireFactory/registrationQuestionnaireFactory.ts @@ -8,8 +8,8 @@ import { UserSex, - type FHIRMedication, - type FHIRQuestionnaire, + type FhirMedication, + type FhirQuestionnaire, } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireFactory } from "./questionnaireFactory.js"; import { @@ -18,12 +18,12 @@ import { } from "./questionnaireLinkIds.js"; interface RegistrationQuestionnaireFactoryInput { - medications: Record; - drugs: Record>; + medications: Record; + drugs: Record>; } export class RegistrationQuestionnaireFactory extends QuestionnaireFactory { - create(input: RegistrationQuestionnaireFactoryInput): FHIRQuestionnaire { + create(input: RegistrationQuestionnaireFactoryInput): FhirQuestionnaire { return this.questionnaire({ id: QuestionnaireId.registration, title: "Registration Survey", diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.test.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.test.ts index ecc5c632..9998b4d6 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.test.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.test.ts @@ -56,12 +56,12 @@ describe("RxNormService", () => { const carvedilol6_25 = result.drugs["20352"]["200031"]; expect(carvedilol6_25).toBeDefined(); expect( - carvedilol6_25.data.code?.coding?.find( + carvedilol6_25.value.code?.coding?.find( (coding) => coding.code === "200031", ), ).toBeDefined(); expect( - carvedilol6_25.data.ingredient?.find((ingredient) => + carvedilol6_25.value.ingredient?.find((ingredient) => ingredient.itemCodeableConcept?.coding?.some( (coding) => coding.code === "20352", ), @@ -71,12 +71,12 @@ describe("RxNormService", () => { const carvedilol25 = result.drugs["20352"]["200033"]; expect(carvedilol25).toBeDefined(); expect( - carvedilol25.data.code?.coding?.find( + carvedilol25.value.code?.coding?.find( (coding) => coding.code === "200033", ), ).toBeDefined(); expect( - carvedilol25.data.ingredient?.find((ingredient) => + carvedilol25.value.ingredient?.find((ingredient) => ingredient.itemCodeableConcept?.coding?.some( (coding) => coding.code === "20352", ), diff --git a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts index 894f59c5..aea75df7 100644 --- a/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts +++ b/functions/src/services/seeding/staticData/rxNorm/rxNormService.ts @@ -9,8 +9,8 @@ import { CodingSystem, FHIRExtensionUrl, - FHIRMedication, - FHIRMedicationRequest, + FhirMedication, + FhirMedicationRequest, type MedicationClass, optionalish, QuantityUnit, @@ -70,11 +70,11 @@ export class RxNormService { medicationClasses: Map, specification: MedicationClassSpecification[], ): Promise<{ - medications: Record; - drugs: Record>; + medications: Record; + drugs: Record>; }> { - const medications: Record = {}; - const drugs: Record> = {}; + const medications: Record = {}; + const drugs: Record> = {}; for (const medicationClass of specification) { logger.debug(`Processing medication class ${medicationClass.key}...`); @@ -137,8 +137,8 @@ export class RxNormService { ingredients, medication.fallbackTerms?.[drug.rxcui] ?? {}, ); - if (fhirDrug.data.id) { - drugs[medication.code][fhirDrug.data.id] = fhirDrug; + if (fhirDrug.value.id) { + drugs[medication.code][fhirDrug.value.id] = fhirDrug; } } catch (error) { logger.error( @@ -155,7 +155,7 @@ export class RxNormService { throw error; } - const fhirMedication = this.buildFHIRMedication( + const fhirMedication = this.buildFhirMedication( medication.code, medicationName, medication.brandNames, @@ -175,7 +175,7 @@ export class RxNormService { // Helpers - Build - private buildFHIRMedication( + private buildFhirMedication( rxcui: string, name: string, brandNames: string[], @@ -184,8 +184,8 @@ export class RxNormService { ingredients: Array<{ rxcui: string; name: string }>, minimumDailyDose: MedicationDailyDoseSpecification | undefined, targetDailyDose: MedicationDailyDoseSpecification | undefined, - drugs: Record, - ): FHIRMedication { + drugs: Record, + ): FhirMedication { const containedResources: FhirResource[] = []; const extensions: Extension[] = []; if (medicationClassId) { @@ -201,7 +201,7 @@ export class RxNormService { if (minimumDailyDose) { const containedId = "minimumDailyDose"; const containedDisplay = - drugs[minimumDailyDose.drug].data.code?.coding?.at(0)?.display; + drugs[minimumDailyDose.drug].value.code?.coding?.at(0)?.display; extensions.push({ url: FHIRExtensionUrl.minimumDailyDose, valueReference: { @@ -210,12 +210,12 @@ export class RxNormService { }, }); containedResources.push( - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ id: containedId, medicationReference: `medications/${rxcui}/drugs/${minimumDailyDose.drug}`, medicationReferenceDisplay: containedDisplay, extension: [ - ...(drugs[minimumDailyDose.drug].data.ingredient ?? []).map( + ...(drugs[minimumDailyDose.drug].value.ingredient ?? []).map( (ingredient) => { const value = QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0; @@ -233,13 +233,13 @@ export class RxNormService { ], frequencyPerDay: minimumDailyDose.frequency, quantity: minimumDailyDose.quantity, - }).data, + }).value, ); } if (targetDailyDose) { const containedId = `targetDailyDose`; const containedDisplay = - drugs[targetDailyDose.drug].data.code?.coding?.at(0)?.display; + drugs[targetDailyDose.drug].value.code?.coding?.at(0)?.display; extensions.push({ url: FHIRExtensionUrl.targetDailyDose, valueReference: { @@ -248,12 +248,12 @@ export class RxNormService { }, }); containedResources.push( - FHIRMedicationRequest.create({ + FhirMedicationRequest.create({ id: containedId, medicationReference: `medications/${rxcui}/drugs/${targetDailyDose.drug}`, medicationReferenceDisplay: containedDisplay, extension: [ - ...(drugs[targetDailyDose.drug].data.ingredient ?? []).map( + ...(drugs[targetDailyDose.drug].value.ingredient ?? []).map( (ingredient) => { const value = QuantityUnit.mg.valueOf(ingredient.strength?.numerator) ?? 0; @@ -269,7 +269,7 @@ export class RxNormService { ], frequencyPerDay: targetDailyDose.frequency, quantity: targetDailyDose.quantity, - }).data, + }).value, ); } @@ -280,7 +280,7 @@ export class RxNormService { }); } - return new FHIRMedication({ + return new FhirMedication({ resourceType: "Medication", id: rxcui, contained: containedResources, @@ -315,7 +315,7 @@ export class RxNormService { rxcui: string, ingredients: Array<{ rxcui: string; name: string }>, fallbackTerms: RxTermInfo | undefined, - ): Promise { + ): Promise { let rxTermInfo = await this.api.getAllRxTermInfo(rxcui); if (rxTermInfo === undefined || Object.entries(rxTermInfo).length === 0) { logger.warn( @@ -336,7 +336,7 @@ export class RxNormService { if (!display) { throw new Error(`Missing display name for RXCUI ${rxcui}.`); } - return new FHIRMedication({ + return new FhirMedication({ resourceType: "Medication", id: rxcui, code: { diff --git a/functions/src/services/seeding/staticData/staticDataService.ts b/functions/src/services/seeding/staticData/staticDataService.ts index 97057420..e3b74cbc 100644 --- a/functions/src/services/seeding/staticData/staticDataService.ts +++ b/functions/src/services/seeding/staticData/staticDataService.ts @@ -8,10 +8,8 @@ import { CachingStrategy, - type FHIRMedication, - fhirMedicationConverter, - type FHIRQuestionnaire, - fhirQuestionnaireConverter, + FhirMedication, + FhirQuestionnaire, localizedTextConverter, type MedicationClass, medicationClassConverter, @@ -162,29 +160,25 @@ export class StaticDataService extends SeedingService { private async retrieveQuestionnaires( strategy: CachingStrategy, - ): Promise> { + ): Promise> { const questionnairesFile = "questionnaires.json"; return this.cache( strategy, - () => - this.readJSONRecord( - questionnairesFile, - fhirQuestionnaireConverter.schema, - ), + () => this.readJSONRecord(questionnairesFile, FhirQuestionnaire.schema), async () => this.generateQuestionnaires(), (result) => this.writeJSON( "questionnaires.json", Object.fromEntries( - Object.entries(result).map(([key, value]) => [key, value.data]), + Object.entries(result).map(([key, value]) => [key, value.value]), ), ), ); } private async generateQuestionnaires(): Promise< - Record + Record > { const { medications, drugs } = await this.retrieveMedicationsInformation( CachingStrategy.expectCache, @@ -220,8 +214,8 @@ export class StaticDataService extends SeedingService { private async retrieveMedicationsInformation( strategy: CachingStrategy, ): Promise<{ - medications: Record; - drugs: Record>; + medications: Record; + drugs: Record>; }> { const medicationsFile = "medications.json"; const drugsFile = "drugs.json"; @@ -231,11 +225,11 @@ export class StaticDataService extends SeedingService { () => ({ medications: this.readJSONRecord( medicationsFile, - fhirMedicationConverter.schema, + FhirMedication.schema, ), drugs: this.readJSONRecord( drugsFile, - z.record(z.string(), fhirMedicationConverter.schema), + z.record(z.string(), FhirMedication.schema), ), }), async () => { @@ -262,7 +256,7 @@ export class StaticDataService extends SeedingService { Object.fromEntries( Object.entries(result.medications).map(([key, value]) => [ key, - value.data, + value.value, ]), ), ); @@ -274,7 +268,7 @@ export class StaticDataService extends SeedingService { Object.fromEntries( Object.entries(value).map(([drugKey, drugValue]) => [ drugKey, - drugValue.data, + drugValue.value, ]), ), ]), diff --git a/functions/src/services/trigger/triggerService.test.ts b/functions/src/services/trigger/triggerService.test.ts index 4d56f059..0e113db3 100644 --- a/functions/src/services/trigger/triggerService.test.ts +++ b/functions/src/services/trigger/triggerService.test.ts @@ -8,7 +8,7 @@ import { advanceDateByDays, - FHIRAppointment, + FhirAppointment, UserMessage, UserMessageType, UserType, @@ -36,7 +36,7 @@ describeWithEmulators("TriggerService", (env) => { clinician: clinicianId, }); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: patientId, status: "proposed", created: advanceDateByDays(new Date(), -3), @@ -95,7 +95,7 @@ describeWithEmulators("TriggerService", (env) => { clinician: clinicianId, }); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: patientId, status: "proposed", created: advanceDateByDays(new Date(), -3), @@ -161,7 +161,7 @@ describeWithEmulators("TriggerService", (env) => { selfManaged: true, }); - const appointment = FHIRAppointment.create({ + const appointment = FhirAppointment.create({ userId: patientId, status: "proposed", created: advanceDateByDays(new Date(), -3), diff --git a/functions/src/services/trigger/triggerService.ts b/functions/src/services/trigger/triggerService.ts index 67fbfef8..6c5633ee 100644 --- a/functions/src/services/trigger/triggerService.ts +++ b/functions/src/services/trigger/triggerService.ts @@ -8,8 +8,7 @@ import { advanceDateByDays, - type FHIRMedicationRequest, - type FHIRQuestionnaireResponse, + type FhirMedicationRequest, median, QuantityUnit, QuestionnaireReference, @@ -26,7 +25,8 @@ import { Invitation, UserRegistration, advanceDateByHours, - type FHIRAppointment, + type FhirAppointment, + type FhirQuestionnaireResponse, } from "@stanfordbdhg/engagehf-models"; import { logger } from "firebase-functions"; import { _updateStaticData } from "../../functions/updateStaticData.js"; @@ -82,8 +82,8 @@ export class TriggerService { async questionnaireResponseWritten( userId: string, questionnaireResponseId: string, - beforeData: FHIRQuestionnaireResponse | undefined, - afterData: FHIRQuestionnaireResponse | undefined, + beforeData: FhirQuestionnaireResponse | undefined, + afterData: FhirQuestionnaireResponse | undefined, ) { logger.debug( `questionnaireResponseWritten(${userId}, ${questionnaireResponseId}): beforeData: ${beforeData !== undefined ? "exists" : "undefined"}, afterData: ${afterData !== undefined ? "exists" : "undefined"}`, @@ -187,7 +187,7 @@ export class TriggerService { async userAppointmentWritten( userId: string, appointmentId: string, - newData: FHIRAppointment | null, + newData: FhirAppointment | null, ): Promise { try { const now = new Date(); @@ -391,8 +391,8 @@ export class TriggerService { async userMedicationRequestWritten( userId: string, medicationRequestId: string, - before: FHIRMedicationRequest | undefined, - after: FHIRMedicationRequest | undefined, + before: FhirMedicationRequest | undefined, + after: FhirMedicationRequest | undefined, ): Promise { try { await this.updateRecommendationsForUser(userId); @@ -405,7 +405,7 @@ export class TriggerService { // Drug const drugReference = - after?.data.medicationReference ?? before?.data.medicationReference; + after?.value.medicationReference ?? before?.value.medicationReference; if (!drugReference?.reference) { logger.error( `TriggerService.userMedicationRequestWritten(${userId}, ${medicationRequestId}): Neither before nor after data contains a medication reference`, diff --git a/functions/src/tests/mocks/contraindicationService.ts b/functions/src/tests/mocks/contraindicationService.ts index 6405f867..5d83dfa4 100644 --- a/functions/src/tests/mocks/contraindicationService.ts +++ b/functions/src/tests/mocks/contraindicationService.ts @@ -7,7 +7,7 @@ // import { - type FHIRAllergyIntolerance, + type FhirAllergyIntolerance, type MedicationClassReference, type MedicationReference, } from "@stanfordbdhg/engagehf-models"; @@ -20,15 +20,15 @@ export class MockContraindicationService implements ContraindicationService { // Properties private readonly _checkMedication: ( - allergies: FHIRAllergyIntolerance[], + allergies: FhirAllergyIntolerance[], medication: MedicationReference, ) => ContraindicationCategory; private readonly _checkMedicationClass: ( - allergies: FHIRAllergyIntolerance[], + allergies: FhirAllergyIntolerance[], medicationClass: MedicationClassReference, ) => ContraindicationCategory; private readonly _findEligibleMedication: ( - allergies: FHIRAllergyIntolerance[], + allergies: FhirAllergyIntolerance[], medicationReferences: MedicationReference[], ) => MedicationReference | undefined; @@ -36,15 +36,15 @@ export class MockContraindicationService implements ContraindicationService { constructor( checkMedication: ( - allergies: FHIRAllergyIntolerance[], + allergies: FhirAllergyIntolerance[], medication: MedicationReference, ) => ContraindicationCategory, checkMedicationClass: ( - allergies: FHIRAllergyIntolerance[], + allergies: FhirAllergyIntolerance[], medicationClass: MedicationClassReference, ) => ContraindicationCategory, findEligibleMedication: ( - allergies: FHIRAllergyIntolerance[], + allergies: FhirAllergyIntolerance[], medicationReferences: MedicationReference[], ) => MedicationReference | undefined, ) { @@ -56,14 +56,14 @@ export class MockContraindicationService implements ContraindicationService { // Methods checkMedication( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationReference: MedicationReference, ): ContraindicationCategory { return this._checkMedication(contraindications, medicationReference); } checkMedicationClass( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationClassReference: MedicationClassReference, ): ContraindicationCategory { return this._checkMedicationClass( @@ -73,7 +73,7 @@ export class MockContraindicationService implements ContraindicationService { } findEligibleMedication( - contraindications: FHIRAllergyIntolerance[], + contraindications: FhirAllergyIntolerance[], medicationReferences: MedicationReference[], ): MedicationReference | undefined { return this._findEligibleMedication( diff --git a/functions/src/tests/mocks/questionnaire.ts b/functions/src/tests/mocks/questionnaire.ts index 71fcb891..84c79509 100644 --- a/functions/src/tests/mocks/questionnaire.ts +++ b/functions/src/tests/mocks/questionnaire.ts @@ -6,14 +6,14 @@ // SPDX-License-Identifier: MIT // -import { FHIRQuestionnaire } from "@stanfordbdhg/engagehf-models"; +import { FhirQuestionnaire } from "@stanfordbdhg/engagehf-models"; import { QuestionnaireId, QuestionnaireLinkId, } from "../../services/seeding/staticData/questionnaireFactory/questionnaireLinkIds.js"; -export function mockQuestionnaire(): FHIRQuestionnaire { - return new FHIRQuestionnaire({ +export function mockQuestionnaire(): FhirQuestionnaire { + return new FhirQuestionnaire({ resourceType: "Questionnaire", title: "KCCQ-12", language: "en-US", diff --git a/functions/src/tests/mocks/questionnaireResponse.ts b/functions/src/tests/mocks/questionnaireResponse.ts index 2820adf1..799d4a71 100644 --- a/functions/src/tests/mocks/questionnaireResponse.ts +++ b/functions/src/tests/mocks/questionnaireResponse.ts @@ -6,14 +6,14 @@ // SPDX-License-Identifier: MIT // -import { type FHIRQuestionnaireResponse } from "@stanfordbdhg/engagehf-models"; +import { type FhirQuestionnaireResponse } from "@stanfordbdhg/engagehf-models"; import { createKccqQuestionnaireResponse } from "../../services/questionnaireResponse/createKccqQuestionnaireResponse.js"; import { QuestionnaireId, QuestionnaireLinkId, } from "../../services/seeding/staticData/questionnaireFactory/questionnaireLinkIds.js"; -export function mockQuestionnaireResponse(): FHIRQuestionnaireResponse { +export function mockQuestionnaireResponse(): FhirQuestionnaireResponse { return createKccqQuestionnaireResponse({ questionnaire: QuestionnaireLinkId.url(QuestionnaireId.kccq), questionnaireResponse: "60193B69-B0F7-4708-8CCE-F3CB2936628D",