import type { QuestionnaireItem, QuestionnaireItemEnableWhen, QuestionnaireResponseItemAnswer } from 'fhir/r4'; /** * EnableWhenExpressions interface * * @property singleExpressions - Key-value pair of non-repeat group enableWhen expressions `Record` * @property repeatExpressions - Key-value pair of repeat group enableWhen expressions `Record` */ export interface EnableWhenExpressions { singleExpressions: Record; repeatExpressions: Record; } export interface EnableWhenSingleExpression { expression: string; isEnabled?: boolean; } export interface EnableWhenRepeatExpression { expression: string; parentLinkId: string; enabledIndexes: boolean[]; } /** * EnableWhenItems interface * * @property singleItems - Key-value pair of non-repeat group enableWhen items `Record` * @property repeatItems - Key-value pair of repeat group enableWhen items `Record` */ export interface EnableWhenItems { singleItems: Record; repeatItems: Record; } export interface EnableWhenSingleItemProperties { linked: EnableWhenSingleLinkedItem[]; isEnabled: boolean; enableBehavior?: QuestionnaireItem['enableBehavior']; } export interface EnableWhenRepeatItemProperties { linked: EnableWhenRepeatLinkedItem[]; parentLinkId: string; enabledIndexes: boolean[]; enableBehavior?: QuestionnaireItem['enableBehavior']; } export interface EnableWhenSingleLinkedItem { enableWhen: QuestionnaireItemEnableWhen; answer?: QuestionnaireResponseItemAnswer[]; } export interface EnableWhenRepeatLinkedItem { enableWhen: QuestionnaireItemEnableWhen; parentLinkId: string; answers: QuestionnaireResponseItemAnswer[]; }