import type { Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4'; import type { Tabs } from '../interfaces/tab.interface'; import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces/enableWhen.interface'; /** * Represents an item within a questionnaire that can be re-populated with updated data from the patient record. * * @property qItem - QuestionnaireItem definition for this item * * @property sectionItemText - Top-level group item.text this item belongs to * * @property parentItemText - Immediate parent item.text * @property isInGrid - Whether this item is part of a grid * * // For non-repeating items: * @property serverQRItem - QuestionnaireResponseItem from server (optional) * @property currentQRItem - Current QuestionnaireResponseItem in form (optional) * * // For repeating groups: * @property serverQRItems - Array of QuestionnaireResponseItems from server (optional) * @property currentQRItems - Array of current QuestionnaireResponseItems in form (optional) * * Use serverQRItem/currentQRItem for single items, and serverQRItems/currentQRItems for repeat groups. */ export interface ItemToRepopulate { qItem: QuestionnaireItem | null; sectionItemText: string | null; parentItemText: string | null; isInGrid: boolean; serverQRItem?: QuestionnaireResponseItem; currentQRItem?: QuestionnaireResponseItem; serverQRItems?: QuestionnaireResponseItem[]; currentQRItems?: QuestionnaireResponseItem[]; } interface getItemsToRepopulateParams { sourceQuestionnaire: Questionnaire; tabs: Tabs; populatedResponse: QuestionnaireResponse; updatableResponse: QuestionnaireResponse; enableWhenIsActivated: boolean; enableWhenItems: EnableWhenItems; enableWhenExpressions: EnableWhenExpressions; } /** * Compare latest data from the server with the current QuestionnaireResponse and decide items to re-populate * * @author Sean Fong */ export declare function generateItemsToRepopulate(populatedResponse: QuestionnaireResponse): Record; export declare function getItemsToRepopulate(params: getItemsToRepopulateParams): Record; export {};