UNPKG

@claudebernard/medication-request-editor-element

Version:

An element providing some custom stuff.

166 lines (157 loc) 4.55 kB
import { Bundle } from 'fhir/r5.js'; import { CSSResult } from 'lit'; import { LitElement } from 'lit'; import { Medication } from 'fhir/r5'; import { MedicationRequest } from 'fhir/r5'; import { TemplateResult } from 'lit-html'; declare interface ButtonsPreferences { changeProduct: SectionPreferences; } declare interface DosageInstructionFormValues { dose: { min: number | null; max: number | null; intakeUnit: { value: string; label: string; } | null; }; timing: { ma: boolean; mi: boolean; ap: boolean; so: boolean; co: boolean; nu: boolean; }; frequency: { min: number | null; max: number | null; every: number | null; periodUnit: { value: string; label: string; } | null; }; duration: { min: number | null; max: number | null; periodUnit: { value: string; label: string; } | null; }; maximum: { value: number | null; intakeUnit: { value: string; label: string; } | null; periodUnit: { value: string; label: string; } | null; }; dayOfWeek: { mon: boolean; tue: boolean; wed: boolean; thu: boolean; fri: boolean; sat: boolean; sun: boolean; }; } declare interface FormPreferences { maximumDosage: SectionPreferences; } /** * Interface pour représenter un médicament extrait d'un Bundle FHIR */ declare interface MedicationInfo { medication: Medication; medicationRequest: MedicationRequest | null; idPrescription: string; } export declare class MedicationRequestEditor extends LitElement { medication: MedicationInfo | null; patientProfile: Bundle | null; apiUrl: string; apiKey: string | undefined; actionsVisibility: boolean; preferences: UserPreferences; selectHeader: { value: string; label: string; }; formValues: DosageInstructionFormValues; usualPosologiesOptions: Array<{ value: string; label: string; subText?: string; category?: string; categoryColor?: string; categoryPosition?: string; }>; selectedPosology: MedicationRequest | null; selectedDosageIndex: number; private listUsualPosologies; private intakeUnits; private fieldErrors; private touchedFields; private frequencyUnitSelect; private showHeaderSelectSlot; updated(changedProperties: Map<string, unknown>): void; private get customPosology(); private getSelectedDosage; private getAdditionalInstructionText; private setMedicationRequest; private updateCustomPosology; private runValidation; private resetValidation; private handleFieldBlur; private fieldClass; private focusFirstError; private renderSectionMessages; private getMedicationRequestById; private handleDosageInstructionClick; private setSelectedPosologyAndDosage; private handlePosologyChange; validateEdition(): void; private patchFormSection; private convertIfNeeded; private handleDoseIntakeUnitChange; private handleMaximumIntakeUnitChange; private handleTimingCheckboxChange; private handleCompoundCheckboxChange; private handleFrequencyPeriodUnitChange; private handleDayOfWeekCheckboxChange; private isExactTimingSelection; private get isMsActive(); private get isMmsActive(); private patchNumberField; private handleFrequencyFieldChange; private getIntakeUnitStep; private get intakeUnitOptions(); private handleCommentPosologyChange; private handleCommentDosageChange; private get posologySelectOptions(); private get activePosologyOption(); private getBasicPosologies; private getUsualPosologiesOptions; closeModal(): void; changeProductClicked(): void; private renderDosageViewers; private renderPosologyPanel; private renderFormPanel; render(): TemplateResult<1>; static styles: CSSResult; } declare interface SectionPreferences { display: boolean; } declare interface UserPreferences { form: FormPreferences; buttons?: ButtonsPreferences; } export { }