import {z} from 'zod' export type IndicatorEnum = 'info' | 'warning' | 'critical'; export type TargetEnum = 'problem-list-item' | 'encounter-diagnosis'; export type CodingContext = {target?: TargetEnum | undefined}; export type Coding = {code?: string | undefined, display?: string | undefined, system?: string | undefined, context?: CodingContext | undefined}; export type Source = {label: string, url?: string | undefined, icon?: string | undefined, topic?: Coding | undefined}; export type SelectionBehaviorEnum = 'any' | 'at-most-one'; export type Link = {label: string, url: string, type: string, app_context?: string | undefined}; export type SectionType = 'text' | 'footer' | 'subsection'; export type SubSection = {label: string, text: string}; export type DocSection = {type: SectionType, paragraphs?: Array | undefined, subsections?: Array | undefined, subtitle: string}; export type ActionEnum = 'create' | 'update' | 'delete'; export type ValueSet = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, compose?: string | undefined, contact?: Array | undefined, copyright?: string | undefined, _copyright?: string | undefined, date?: string | undefined, _date?: string | undefined, description?: string | undefined, _description?: string | undefined, expansion?: string | undefined, experimental?: boolean | undefined, _experimental?: string | undefined, identifier?: Array | undefined, immutable?: boolean | undefined, _immutable?: string | undefined, jurisdiction?: Array | undefined, name?: string | undefined, _name?: string | undefined, publisher?: string | undefined, _publisher?: string | undefined, purpose?: string | undefined, _purpose?: string | undefined, status?: string | undefined, _status?: string | undefined, title?: string | undefined, _title?: string | undefined, url?: string | undefined, _url?: string | undefined, useContext?: Array | undefined, version?: string | undefined, _version?: string | undefined}; export type Observation = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, basedOn?: Array | undefined, bodySite?: string | undefined, category?: Array | undefined, code: string, component?: Array | undefined, dataAbsentReason?: string | undefined, derivedFrom?: Array | undefined, device?: string | undefined, effectiveDateTime?: string | undefined, _effectiveDateTime?: string | undefined, effectiveInstant?: string | undefined, _effectiveInstant?: string | undefined, effectivePeriod?: string | undefined, effectiveTiming?: string | undefined, encounter?: string | undefined, focus?: Array | undefined, hasMember?: Array | undefined, identifier?: Array | undefined, interpretation?: Array | undefined, issued?: string | undefined, _issued?: string | undefined, method?: string | undefined, note?: Array | undefined, partOf?: Array | undefined, performer?: Array | undefined, referenceRange?: Array | undefined, specimen?: string | undefined, status?: string | undefined, _status?: string | undefined, subject?: string | undefined, valueBoolean?: boolean | undefined, _valueBoolean?: string | undefined, valueCodeableConcept?: string | undefined, valueDateTime?: string | undefined, _valueDateTime?: string | undefined, valueInteger?: number | undefined, _valueInteger?: string | undefined, valuePeriod?: string | undefined, valueQuantity?: number | undefined, valueRange?: number | undefined, valueRatio?: string | undefined, valueSampledData?: string | undefined, valueString?: string | undefined, _valueString?: string | undefined, valueTime?: string | undefined, _valueTime?: string | undefined}; export type Condition = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, abatementAge?: number | undefined, abatementDateTime?: string | undefined, _abatementDateTime?: string | undefined, abatementPeriod?: string | undefined, abatementRange?: number | undefined, abatementString?: string | undefined, _abatementString?: string | undefined, asserter?: string | undefined, bodySite?: Array | undefined, category?: Array | undefined, clinicalStatus?: string | undefined, code?: string | undefined, encounter?: string | undefined, evidence?: Array | undefined, identifier?: Array | undefined, note?: Array | undefined, onsetAge?: number | undefined, onsetDateTime?: string | undefined, _onsetDateTime?: string | undefined, onsetPeriod?: string | undefined, onsetRange?: number | undefined, onsetString?: string | undefined, _onsetString?: string | undefined, recordedDate?: string | undefined, _recordedDate?: string | undefined, recorder?: string | undefined, severity?: string | undefined, stage?: Array | undefined, subject: string, verificationStatus?: string | undefined}; export type ServiceRequest = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, asNeededBoolean?: boolean | undefined, _asNeededBoolean?: string | undefined, asNeededCodeableConcept?: string | undefined, authoredOn?: string | undefined, _authoredOn?: string | undefined, basedOn?: Array | undefined, bodySite?: Array | undefined, category?: Array | undefined, code?: string | undefined, doNotPerform?: boolean | undefined, _doNotPerform?: string | undefined, encounter?: string | undefined, identifier?: Array | undefined, instantiatesCanonical?: Array | undefined, _instantiatesCanonical?: Array | undefined, instantiatesUri?: Array | undefined, _instantiatesUri?: Array | undefined, insurance?: Array | undefined, intent?: string | undefined, _intent?: string | undefined, locationCode?: Array | undefined, locationReference?: Array | undefined, note?: Array | undefined, occurrenceDateTime?: string | undefined, _occurrenceDateTime?: string | undefined, occurrencePeriod?: string | undefined, occurrenceTiming?: string | undefined, orderDetail?: Array | undefined, patientInstruction?: string | undefined, _patientInstruction?: string | undefined, performer?: Array | undefined, performerType?: string | undefined, priority?: string | undefined, _priority?: string | undefined, quantityQuantity?: number | undefined, quantityRange?: number | undefined, quantityRatio?: string | undefined, reasonCode?: Array | undefined, reasonReference?: Array | undefined, relevantHistory?: Array | undefined, replaces?: Array | undefined, requester?: string | undefined, requisition?: number | undefined, specimen?: Array | undefined, status?: string | undefined, _status?: string | undefined, subject: string, supportingInfo?: Array | undefined}; export type Immunization = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, doseQuantity?: number | undefined, education?: Array | undefined, encounter?: string | undefined, expirationDate?: string | undefined, _expirationDate?: string | undefined, fundingSource?: string | undefined, identifier?: Array | undefined, isSubpotent?: boolean | undefined, _isSubpotent?: string | undefined, location?: string | undefined, lotNumber?: string | undefined, _lotNumber?: string | undefined, manufacturer?: string | undefined, note?: Array | undefined, occurrenceDateTime?: string | undefined, _occurrenceDateTime?: string | undefined, occurrenceString?: string | undefined, _occurrenceString?: string | undefined, patient: string, performer?: Array | undefined, primarySource?: boolean | undefined, _primarySource?: string | undefined, programEligibility?: Array | undefined, protocolApplied?: Array | undefined, reaction?: Array | undefined, reasonCode?: Array | undefined, reasonReference?: Array | undefined, recorded?: string | undefined, _recorded?: string | undefined, reportOrigin?: string | undefined, route?: string | undefined, site?: string | undefined, status?: string | undefined, _status?: string | undefined, statusReason?: string | undefined, subpotentReason?: Array | undefined, vaccineCode: string}; export type AllergyIntolerance = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, asserter?: string | undefined, category?: Array | undefined, _category?: Array | undefined, clinicalStatus?: string | undefined, code?: string | undefined, criticality?: string | undefined, _criticality?: string | undefined, encounter?: string | undefined, identifier?: Array | undefined, lastOccurrence?: string | undefined, _lastOccurrence?: string | undefined, note?: Array | undefined, onsetAge?: number | undefined, onsetDateTime?: string | undefined, _onsetDateTime?: string | undefined, onsetPeriod?: string | undefined, onsetRange?: number | undefined, onsetString?: string | undefined, _onsetString?: string | undefined, patient: string, reaction?: Array | undefined, recordedDate?: string | undefined, _recordedDate?: string | undefined, recorder?: string | undefined, type?: string | undefined, _type?: string | undefined, verificationStatus?: string | undefined}; export type Communication = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, about?: Array | undefined, basedOn?: Array | undefined, category?: Array | undefined, encounter?: string | undefined, identifier?: Array | undefined, inResponseTo?: Array | undefined, instantiatesCanonical?: Array | undefined, _instantiatesCanonical?: Array | undefined, instantiatesUri?: Array | undefined, _instantiatesUri?: Array | undefined, medium?: Array | undefined, note?: Array | undefined, partOf?: Array | undefined, payload?: Array | undefined, priority?: string | undefined, _priority?: string | undefined, reasonCode?: Array | undefined, reasonReference?: Array | undefined, received?: string | undefined, _received?: string | undefined, recipient?: Array | undefined, sender?: string | undefined, sent?: string | undefined, _sent?: string | undefined, status?: string | undefined, _status?: string | undefined, statusReason?: string | undefined, subject?: string | undefined, topic?: string | undefined}; export type Endpoint = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, address?: string | undefined, _address?: string | undefined, connectionType: string, contact?: Array | undefined, header?: Array | undefined, _header?: Array | undefined, identifier?: Array | undefined, managingOrganization?: string | undefined, name?: string | undefined, _name?: string | undefined, payloadMimeType?: Array | undefined, _payloadMimeType?: Array | undefined, payloadType: Array, period?: string | undefined, status?: string | undefined, _status?: string | undefined}; export type DocumentReference = {resource_type?: string | undefined, fhir_comments?: (string | Array) | undefined, id?: string | undefined, _id?: string | undefined, implicitRules?: string | undefined, _implicitRules?: string | undefined, language?: string | undefined, _language?: string | undefined, meta?: string | undefined, contained?: Array | undefined, extension?: Array | undefined, modifierExtension?: Array | undefined, text?: string | undefined, authenticator?: string | undefined, author?: Array | undefined, category?: Array | undefined, content: Array, context: unknown, custodian?: string | undefined, date?: string | undefined, _date?: string | undefined, description?: string | undefined, _description?: string | undefined, docStatus?: string | undefined, _docStatus?: string | undefined, identifier?: Array | undefined, masterIdentifier?: number | undefined, relatesTo?: Array | undefined, securityLabel?: Array | undefined, status?: string | undefined, _status?: string | undefined, subject?: string | undefined, type?: string | undefined}; export type Action = {type: ActionEnum, description: string, resource?: (ValueSet | Observation | Condition | ServiceRequest | Immunization | AllergyIntolerance | Communication | Endpoint | DocumentReference) | undefined, resourceId?: string | undefined}; export type Suggestion = {label: string, is_recommended: boolean, actions?: Array | undefined}; export type DefinitionAPIModel = {quality_program?: string | undefined, name: string, indicator: IndicatorEnum, source: Source, selection_behavior: SelectionBehaviorEnum, closing_codes?: Array | undefined, description?: string | undefined, practice_id?: string | undefined, override_reasons?: Array | undefined, links?: Array | undefined, start_date: string, end_date: string, additional_documentation?: Array | undefined, external_id?: string | undefined, suggestions: Array}; export type CreateApiCaregapsApiQualityProgramDefinitionArgs = {quality_program: string, body: DefinitionAPIModel}; export type CreateApiCaregapsApiQualityProgramDefinitionOptions = {baseUrl?: string | undefined, OAuth2PasswordBearer?: string | undefined, fetch?: typeof fetch | undefined}; export const indicatorEnum = z.enum(["info", "warning", "critical"]); export const targetEnum = z.enum(["problem-list-item", "encounter-diagnosis"]); export const codingContext = z.object({target: targetEnum.optional()}); export const coding = z.object({code: z.string().optional(), display: z.string().optional(), system: z.string().optional(), context: codingContext.optional()}); export const source = z.object({label: z.string(), url: z.string().optional(), icon: z.string().optional(), topic: coding.optional()}); export const selectionBehaviorEnum = z.enum(["any", "at-most-one"]); export const link = z.object({label: z.string(), url: z.string(), type: z.string(), app_context: z.string().optional()}); export const sectionType = z.enum(["text", "footer", "subsection"]); export const subSection = z.object({label: z.string(), text: z.string()}); export const docSection = z.object({type: sectionType, paragraphs: z.array(z.string()).optional(), subsections: z.array(subSection).optional(), subtitle: z.string()}); export const actionEnum = z.enum(["create", "update", "delete"]); export const valueSet = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), compose: z.string().optional(), contact: z.array(z.string()).optional(), copyright: z.string().optional(), _copyright: z.string().optional(), date: z.string().optional(), _date: z.string().optional(), description: z.string().optional(), _description: z.string().optional(), expansion: z.string().optional(), experimental: z.boolean().optional(), _experimental: z.string().optional(), identifier: z.array(z.number().int()).optional(), immutable: z.boolean().optional(), _immutable: z.string().optional(), jurisdiction: z.array(z.string()).optional(), name: z.string().optional(), _name: z.string().optional(), publisher: z.string().optional(), _publisher: z.string().optional(), purpose: z.string().optional(), _purpose: z.string().optional(), status: z.string().optional(), _status: z.string().optional(), title: z.string().optional(), _title: z.string().optional(), url: z.string().optional(), _url: z.string().optional(), useContext: z.array(z.string()).optional(), version: z.string().optional(), _version: z.string().optional()}); export const observation = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), basedOn: z.array(z.string()).optional(), bodySite: z.string().optional(), category: z.array(z.string()).optional(), code: z.string(), component: z.array(z.string()).optional(), dataAbsentReason: z.string().optional(), derivedFrom: z.array(z.string()).optional(), device: z.string().optional(), effectiveDateTime: z.string().optional(), _effectiveDateTime: z.string().optional(), effectiveInstant: z.string().optional(), _effectiveInstant: z.string().optional(), effectivePeriod: z.string().optional(), effectiveTiming: z.string().optional(), encounter: z.string().optional(), focus: z.array(z.string()).optional(), hasMember: z.array(z.string()).optional(), identifier: z.array(z.number().int()).optional(), interpretation: z.array(z.string()).optional(), issued: z.string().optional(), _issued: z.string().optional(), method: z.string().optional(), note: z.array(z.string()).optional(), partOf: z.array(z.string()).optional(), performer: z.array(z.string()).optional(), referenceRange: z.array(z.string()).optional(), specimen: z.string().optional(), status: z.string().optional(), _status: z.string().optional(), subject: z.string().optional(), valueBoolean: z.boolean().optional(), _valueBoolean: z.string().optional(), valueCodeableConcept: z.string().optional(), valueDateTime: z.string().optional(), _valueDateTime: z.string().optional(), valueInteger: z.number().int().optional(), _valueInteger: z.string().optional(), valuePeriod: z.string().optional(), valueQuantity: z.number().int().optional(), valueRange: z.number().int().optional(), valueRatio: z.string().optional(), valueSampledData: z.string().optional(), valueString: z.string().optional(), _valueString: z.string().optional(), valueTime: z.string().optional(), _valueTime: z.string().optional()}); export const condition = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), abatementAge: z.number().int().optional(), abatementDateTime: z.string().optional(), _abatementDateTime: z.string().optional(), abatementPeriod: z.string().optional(), abatementRange: z.number().int().optional(), abatementString: z.string().optional(), _abatementString: z.string().optional(), asserter: z.string().optional(), bodySite: z.array(z.string()).optional(), category: z.array(z.string()).optional(), clinicalStatus: z.string().optional(), code: z.string().optional(), encounter: z.string().optional(), evidence: z.array(z.string()).optional(), identifier: z.array(z.number().int()).optional(), note: z.array(z.string()).optional(), onsetAge: z.number().int().optional(), onsetDateTime: z.string().optional(), _onsetDateTime: z.string().optional(), onsetPeriod: z.string().optional(), onsetRange: z.number().int().optional(), onsetString: z.string().optional(), _onsetString: z.string().optional(), recordedDate: z.string().optional(), _recordedDate: z.string().optional(), recorder: z.string().optional(), severity: z.string().optional(), stage: z.array(z.string()).optional(), subject: z.string(), verificationStatus: z.string().optional()}); export const serviceRequest = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), asNeededBoolean: z.boolean().optional(), _asNeededBoolean: z.string().optional(), asNeededCodeableConcept: z.string().optional(), authoredOn: z.string().optional(), _authoredOn: z.string().optional(), basedOn: z.array(z.string()).optional(), bodySite: z.array(z.string()).optional(), category: z.array(z.string()).optional(), code: z.string().optional(), doNotPerform: z.boolean().optional(), _doNotPerform: z.string().optional(), encounter: z.string().optional(), identifier: z.array(z.number().int()).optional(), instantiatesCanonical: z.array(z.string()).optional(), _instantiatesCanonical: z.array(z.string()).optional(), instantiatesUri: z.array(z.string()).optional(), _instantiatesUri: z.array(z.string()).optional(), insurance: z.array(z.string()).optional(), intent: z.string().optional(), _intent: z.string().optional(), locationCode: z.array(z.string()).optional(), locationReference: z.array(z.string()).optional(), note: z.array(z.string()).optional(), occurrenceDateTime: z.string().optional(), _occurrenceDateTime: z.string().optional(), occurrencePeriod: z.string().optional(), occurrenceTiming: z.string().optional(), orderDetail: z.array(z.string()).optional(), patientInstruction: z.string().optional(), _patientInstruction: z.string().optional(), performer: z.array(z.string()).optional(), performerType: z.string().optional(), priority: z.string().optional(), _priority: z.string().optional(), quantityQuantity: z.number().int().optional(), quantityRange: z.number().int().optional(), quantityRatio: z.string().optional(), reasonCode: z.array(z.string()).optional(), reasonReference: z.array(z.string()).optional(), relevantHistory: z.array(z.string()).optional(), replaces: z.array(z.string()).optional(), requester: z.string().optional(), requisition: z.number().int().optional(), specimen: z.array(z.string()).optional(), status: z.string().optional(), _status: z.string().optional(), subject: z.string(), supportingInfo: z.array(z.string()).optional()}); export const immunization = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), doseQuantity: z.number().int().optional(), education: z.array(z.string()).optional(), encounter: z.string().optional(), expirationDate: z.string().optional(), _expirationDate: z.string().optional(), fundingSource: z.string().optional(), identifier: z.array(z.number().int()).optional(), isSubpotent: z.boolean().optional(), _isSubpotent: z.string().optional(), location: z.string().optional(), lotNumber: z.string().optional(), _lotNumber: z.string().optional(), manufacturer: z.string().optional(), note: z.array(z.string()).optional(), occurrenceDateTime: z.string().optional(), _occurrenceDateTime: z.string().optional(), occurrenceString: z.string().optional(), _occurrenceString: z.string().optional(), patient: z.string(), performer: z.array(z.string()).optional(), primarySource: z.boolean().optional(), _primarySource: z.string().optional(), programEligibility: z.array(z.string()).optional(), protocolApplied: z.array(z.string()).optional(), reaction: z.array(z.string()).optional(), reasonCode: z.array(z.string()).optional(), reasonReference: z.array(z.string()).optional(), recorded: z.string().optional(), _recorded: z.string().optional(), reportOrigin: z.string().optional(), route: z.string().optional(), site: z.string().optional(), status: z.string().optional(), _status: z.string().optional(), statusReason: z.string().optional(), subpotentReason: z.array(z.string()).optional(), vaccineCode: z.string()}); export const allergyIntolerance = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), asserter: z.string().optional(), category: z.array(z.string()).optional(), _category: z.array(z.string()).optional(), clinicalStatus: z.string().optional(), code: z.string().optional(), criticality: z.string().optional(), _criticality: z.string().optional(), encounter: z.string().optional(), identifier: z.array(z.number().int()).optional(), lastOccurrence: z.string().optional(), _lastOccurrence: z.string().optional(), note: z.array(z.string()).optional(), onsetAge: z.number().int().optional(), onsetDateTime: z.string().optional(), _onsetDateTime: z.string().optional(), onsetPeriod: z.string().optional(), onsetRange: z.number().int().optional(), onsetString: z.string().optional(), _onsetString: z.string().optional(), patient: z.string(), reaction: z.array(z.string()).optional(), recordedDate: z.string().optional(), _recordedDate: z.string().optional(), recorder: z.string().optional(), type: z.string().optional(), _type: z.string().optional(), verificationStatus: z.string().optional()}); export const communication = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), about: z.array(z.string()).optional(), basedOn: z.array(z.string()).optional(), category: z.array(z.string()).optional(), encounter: z.string().optional(), identifier: z.array(z.number().int()).optional(), inResponseTo: z.array(z.string()).optional(), instantiatesCanonical: z.array(z.string()).optional(), _instantiatesCanonical: z.array(z.string()).optional(), instantiatesUri: z.array(z.string()).optional(), _instantiatesUri: z.array(z.string()).optional(), medium: z.array(z.string()).optional(), note: z.array(z.string()).optional(), partOf: z.array(z.string()).optional(), payload: z.array(z.string()).optional(), priority: z.string().optional(), _priority: z.string().optional(), reasonCode: z.array(z.string()).optional(), reasonReference: z.array(z.string()).optional(), received: z.string().optional(), _received: z.string().optional(), recipient: z.array(z.string()).optional(), sender: z.string().optional(), sent: z.string().optional(), _sent: z.string().optional(), status: z.string().optional(), _status: z.string().optional(), statusReason: z.string().optional(), subject: z.string().optional(), topic: z.string().optional()}); export const endpoint = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), address: z.string().min(1).max(65536).optional(), _address: z.string().optional(), connectionType: z.string(), contact: z.array(z.string()).optional(), header: z.array(z.string()).optional(), _header: z.array(z.string()).optional(), identifier: z.array(z.number().int()).optional(), managingOrganization: z.string().optional(), name: z.string().optional(), _name: z.string().optional(), payloadMimeType: z.array(z.string()).optional(), _payloadMimeType: z.array(z.string()).optional(), payloadType: z.array(z.string()), period: z.string().optional(), status: z.string().optional(), _status: z.string().optional()}); export const documentReference = z.object({resource_type: z.string().optional(), fhir_comments: z.union([z.string(), z.array(z.string())]).optional(), id: z.string().min(1).max(64).optional(), _id: z.string().optional(), implicitRules: z.string().optional(), _implicitRules: z.string().optional(), language: z.string().optional(), _language: z.string().optional(), meta: z.string().optional(), contained: z.array(z.string()).optional(), extension: z.array(z.string()).optional(), modifierExtension: z.array(z.string()).optional(), text: z.string().optional(), authenticator: z.string().optional(), author: z.array(z.string()).optional(), category: z.array(z.string()).optional(), content: z.array(z.string()), context: z.unknown(), custodian: z.string().optional(), date: z.string().optional(), _date: z.string().optional(), description: z.string().optional(), _description: z.string().optional(), docStatus: z.string().optional(), _docStatus: z.string().optional(), identifier: z.array(z.number().int()).optional(), masterIdentifier: z.number().int().optional(), relatesTo: z.array(z.string()).optional(), securityLabel: z.array(z.string()).optional(), status: z.string().optional(), _status: z.string().optional(), subject: z.string().optional(), type: z.string().optional()}); export const action = z.object({type: actionEnum, description: z.string(), resource: z.union([valueSet, observation, condition, serviceRequest, immunization, allergyIntolerance, communication, endpoint, documentReference]).optional(), resourceId: z.string().optional()}); export const existingSuggestion = z.object({label: z.string(), is_recommended: z.boolean(), actions: z.array(action).optional(), uuid: z.string()}); export const definitionAPI = z.object({quality_program: z.string().optional(), name: z.string(), indicator: indicatorEnum, source: source, selection_behavior: selectionBehaviorEnum, closing_codes: z.array(coding).optional(), description: z.string().optional(), practice_id: z.string().optional(), override_reasons: z.array(coding).optional(), links: z.array(link).optional(), start_date: z.string(), end_date: z.string(), additional_documentation: z.array(docSection).optional(), external_id: z.string().optional(), suggestions: z.array(existingSuggestion), id: z.string()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Create a new definition. * * POST /caregaps/api/{quality_program}/definition/ */ export const createApiCaregapsApiQualityProgramDefinition = async (args: CreateApiCaregapsApiQualityProgramDefinitionArgs, options?: CreateApiCaregapsApiQualityProgramDefinitionOptions) => { const {baseUrl = "https://sandbox.elationemr.com", fetch: fetchFn = fetch, OAuth2PasswordBearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (OAuth2PasswordBearer !== undefined) headers.set('authorization', `Bearer ${OAuth2PasswordBearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/caregaps/api/${encodeURIComponent(String(args.quality_program))}/definition/${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(definitionAPI, await res.json()) };