@medplum/react 4.3.3 → 4.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,6 +72,7 @@ import { Schedule } from '@medplum/fhirtypes';
72
72
  import { SearchParameter } from '@medplum/fhirtypes';
73
73
  import { SearchRequest } from '@medplum/core';
74
74
  import { ServiceRequest } from '@medplum/fhirtypes';
75
+ import { Signature } from '@medplum/fhirtypes';
75
76
  import { Slot } from '@medplum/fhirtypes';
76
77
  import { StructureDefinition } from '@medplum/fhirtypes';
77
78
  import { Subscription } from '@medplum/fhirtypes';
@@ -378,7 +379,7 @@ export declare function buildFieldNameString(key: string): string;
378
379
 
379
380
  export declare function buildInitialResponse(questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse): QuestionnaireResponse;
380
381
 
381
- export declare function buildInitialResponseItem(item: QuestionnaireItem, questionnaireResponseItem?: QuestionnaireResponseItem[]): QuestionnaireResponseItem;
382
+ export declare function buildInitialResponseItem(item: QuestionnaireItem): QuestionnaireResponseItem;
382
383
 
383
384
  export declare function CalendarInput(props: CalendarInputProps): JSX.Element;
384
385
 
@@ -624,7 +625,17 @@ export declare interface ErrorBoundaryState {
624
625
  readonly lastLocation: string;
625
626
  }
626
627
 
627
- export declare function evaluateCalculatedExpressionsInQuestionnaire(items: QuestionnaireItem[], response: QuestionnaireResponse | undefined): QuestionnaireResponseItem[];
628
+ /**
629
+ * Evaluates the calculated expressions in a questionnaire.
630
+ * Updates response item answers in place with the calculated values.
631
+ *
632
+ * See: https://build.fhir.org/ig/HL7/sdc/StructureDefinition-sdc-questionnaire-calculatedExpression.html
633
+ *
634
+ * @param items - The questionnaire items to evaluate.
635
+ * @param response - The questionnaire response to evaluate against.
636
+ * @param responseItems - The response items to update.
637
+ */
638
+ export declare function evaluateCalculatedExpressionsInQuestionnaire(items: QuestionnaireItem[], response: QuestionnaireResponse, responseItems?: QuestionnaireResponseItem[] | undefined): void;
628
639
 
629
640
  /**
630
641
  * Creates a Blob object from the JSON object given and downloads the object.
@@ -699,20 +710,6 @@ export declare function getItemInitialValue(initial: QuestionnaireItemInitial |
699
710
 
700
711
  export declare function getNewMultiSelectValues(selected: string[], propertyName: string, item: QuestionnaireItem): QuestionnaireResponseItemAnswer[];
701
712
 
702
- /**
703
- * Returns the number of pages in the questionnaire.
704
- *
705
- * By default, a questionnaire is represented as a simple single page questionnaire,
706
- * so the default return value is 1.
707
- *
708
- * If the questionnaire has a page extension on the first item, then the number of pages
709
- * is the number of top level items in the questionnaire.
710
- *
711
- * @param questionnaire - The questionnaire to get the number of pages for.
712
- * @returns The number of pages in the questionnaire. Default is 1.
713
- */
714
- export declare function getNumberOfPages(questionnaire: Questionnaire): number;
715
-
716
713
  /**
717
714
  * Returns a string representing the operation.
718
715
  * @param op - The operation code.
@@ -722,7 +719,7 @@ export declare function getOpString(op: Operator): string;
722
719
 
723
720
  /**
724
721
  * Returns the reference filter for the given questionnaire item.
725
- * @see https://build.fhir.org/ig/HL7/fhir-extensions//StructureDefinition-questionnaire-referenceFilter-definitions.html
722
+ * @see https://build.fhir.org/ig/HL7/fhir-extensions/StructureDefinition-questionnaire-referenceFilter-definitions.html
726
723
  * @param item - The questionnaire item to get the reference filter for.
727
724
  * @param subject - Optional subject reference.
728
725
  * @param encounter - Optional encounter reference.
@@ -837,8 +834,19 @@ export declare function isAuxClick(e: MouseEvent_2): boolean;
837
834
  */
838
835
  export declare function isCheckboxCell(el: Element): boolean;
839
836
 
837
+ /**
838
+ * Returns true if the item is a choice question.
839
+ * @param item - The questionnaire item to check.
840
+ * @returns True if the item is a choice question, false otherwise.
841
+ */
840
842
  export declare function isChoiceQuestion(item: QuestionnaireItem): boolean;
841
843
 
844
+ /**
845
+ * Returns true if the questionnaire item is enabled based on the enableWhen conditions or expression.
846
+ * @param item - The questionnaire item to check.
847
+ * @param questionnaireResponse - The questionnaire response to check against.
848
+ * @returns True if the question is enabled, false otherwise.
849
+ */
842
850
  export declare function isQuestionEnabled(item: QuestionnaireItem, questionnaireResponse: QuestionnaireResponse | undefined): boolean;
843
851
 
844
852
  export declare function isSortDescending(definition: SearchRequest): boolean;
@@ -921,8 +929,6 @@ export declare const MemoizedFhirPathTable: MemoExoticComponent<typeof FhirPathT
921
929
  */
922
930
  export declare const MemoizedSearchControl: typeof SearchControl;
923
931
 
924
- export declare function mergeUpdatedItems(mergedItems: QuestionnaireResponseItem[], updatedItems: QuestionnaireResponseItem[]): QuestionnaireResponseItem[];
925
-
926
932
  export declare function MoneyDisplay(props: MoneyDisplayProps): JSX.Element | null;
927
933
 
928
934
  export declare interface MoneyDisplayProps {
@@ -1062,6 +1068,22 @@ export declare interface QuantityInputProps extends ComplexTypeInputProps<Quanti
1062
1068
  readonly disableWheel?: boolean;
1063
1069
  }
1064
1070
 
1071
+ export declare const QUESTIONNAIRE_CALCULATED_EXPRESSION_URL = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-calculatedExpression";
1072
+
1073
+ export declare const QUESTIONNAIRE_ENABLED_WHEN_EXPRESSION_URL = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression";
1074
+
1075
+ export declare const QUESTIONNAIRE_ITEM_CONTROL_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl";
1076
+
1077
+ export declare const QUESTIONNAIRE_REFERENCE_FILTER_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceFilter";
1078
+
1079
+ export declare const QUESTIONNAIRE_REFERENCE_RESOURCE_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource";
1080
+
1081
+ export declare const QUESTIONNAIRE_SIGNATURE_REQUIRED_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-signatureRequired";
1082
+
1083
+ export declare const QUESTIONNAIRE_SIGNATURE_RESPONSE_URL = "http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature";
1084
+
1085
+ export declare const QUESTIONNAIRE_VALIDATION_ERROR_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-validationError";
1086
+
1065
1087
  export declare function QuestionnaireBuilder(props: QuestionnaireBuilderProps): JSX.Element | null;
1066
1088
 
1067
1089
  export declare interface QuestionnaireBuilderProps {
@@ -1072,10 +1094,67 @@ export declare interface QuestionnaireBuilderProps {
1072
1094
 
1073
1095
  export declare function QuestionnaireForm(props: QuestionnaireFormProps): JSX.Element | null;
1074
1096
 
1075
- export declare const QuestionnaireFormContext: Context< {
1076
- subject?: Reference;
1077
- encounter?: Reference<Encounter>;
1078
- }>;
1097
+ export declare interface QuestionnaireFormLoadedState {
1098
+ /** Not loading */
1099
+ readonly loading: false;
1100
+ /** The loaded questionnaire */
1101
+ questionnaire: Questionnaire;
1102
+ /** The current draft questionnaire response */
1103
+ questionnaireResponse: QuestionnaireResponse;
1104
+ /** Optional questionnaire subject */
1105
+ subject?: Reference;
1106
+ /** Optional questionnaire encounter */
1107
+ encounter?: Reference<Encounter>;
1108
+ /** The top level items for the current page */
1109
+ items: QuestionnaireItem[];
1110
+ /** The response items for the current page */
1111
+ responseItems: QuestionnaireResponseItem[];
1112
+ /**
1113
+ * Adds a new group item to the current context.
1114
+ * @param context - The current context of the questionnaire response items.
1115
+ * @param item - The questionnaire item that is being added to the group.
1116
+ */
1117
+ onAddGroup: (context: QuestionnaireResponseItem[], item: QuestionnaireItem) => void;
1118
+ /**
1119
+ * Adds an answer to a repeating item.
1120
+ * @param context - The current context of the questionnaire response items.
1121
+ * @param item - The questionnaire item that is being answered.
1122
+ */
1123
+ onAddAnswer: (context: QuestionnaireResponseItem[], item: QuestionnaireItem) => void;
1124
+ /**
1125
+ * Changes an answer value.
1126
+ * @param context - The current context of the questionnaire response items.
1127
+ * @param item - The questionnaire item that is being answered.
1128
+ * @param answer - The answer(s) provided by the user for the questionnaire item.
1129
+ */
1130
+ onChangeAnswer: (context: QuestionnaireResponseItem[], item: QuestionnaireItem, answer: QuestionnaireResponseItemAnswer[]) => void;
1131
+ /**
1132
+ * Sets or updates the signature for the questionnaire response.
1133
+ * @param signature - The signature to set, or undefined to clear the signature.
1134
+ */
1135
+ onChangeSignature: (signature: Signature | undefined) => void;
1136
+ }
1137
+
1138
+ export declare interface QuestionnaireFormLoadingState {
1139
+ /** Currently loading data such as the Questionnaire or the QuestionnaireResponse default value */
1140
+ readonly loading: true;
1141
+ }
1142
+
1143
+ export declare interface QuestionnaireFormPage {
1144
+ readonly linkId: string;
1145
+ readonly title: string;
1146
+ readonly group: QuestionnaireItem & {
1147
+ type: 'group';
1148
+ };
1149
+ }
1150
+
1151
+ export declare interface QuestionnaireFormPaginationState extends QuestionnaireFormLoadedState {
1152
+ readonly pagination: true;
1153
+ pages: QuestionnaireFormPage[];
1154
+ activePage: number;
1155
+ onNextPage: () => void;
1156
+ onPrevPage: () => void;
1157
+ }
1079
1158
 
1080
1159
  export declare interface QuestionnaireFormProps {
1081
1160
  readonly questionnaire: Questionnaire | Reference<Questionnaire>;
@@ -1090,6 +1169,12 @@ export declare interface QuestionnaireFormProps {
1090
1169
  readonly onSubmit?: (response: QuestionnaireResponse) => void;
1091
1170
  }
1092
1171
 
1172
+ export declare interface QuestionnaireFormSinglePageState extends QuestionnaireFormLoadedState {
1173
+ readonly pagination: false;
1174
+ }
1175
+
1176
+ export declare type QuestionnaireFormState = QuestionnaireFormLoadingState | QuestionnaireFormSinglePageState | QuestionnaireFormPaginationState;
1177
+
1093
1178
  export declare const QuestionnaireItemType: {
1094
1179
  readonly group: "group";
1095
1180
  readonly display: "display";
@@ -1542,6 +1627,16 @@ export declare function setQuestionnaireItemReferenceTargetTypes(item: Questionn
1542
1627
  */
1543
1628
  export declare function setSort(definition: SearchRequest, sort: string, desc?: boolean): SearchRequest;
1544
1629
 
1630
+ export declare function SignatureInput(props: SignatureInputProps): JSX.Element;
1631
+
1632
+ export declare interface SignatureInputProps extends PaperProps {
1633
+ readonly width?: number;
1634
+ readonly height?: number;
1635
+ readonly defaultValue?: Signature;
1636
+ readonly who?: Reference<ProfileResource>;
1637
+ readonly onChange: ((value: Signature | undefined) => void) | undefined;
1638
+ }
1639
+
1545
1640
  /**
1546
1641
  * The SignInForm component allows users to sign in to Medplum.
1547
1642
  *
@@ -1612,6 +1707,7 @@ export declare interface ThreadChatProps {
1612
1707
  readonly title?: string;
1613
1708
  readonly onMessageSent?: (message: Communication) => void;
1614
1709
  readonly inputDisabled?: boolean;
1710
+ readonly excludeHeader?: boolean;
1615
1711
  readonly onError?: (err: Error) => void;
1616
1712
  }
1617
1713
 
@@ -1684,6 +1780,18 @@ export declare function useMedplumProfile(): ProfileResource | undefined;
1684
1780
  */
1685
1781
  export declare function usePrevious<T>(value: T): T | undefined;
1686
1782
 
1783
+ export declare function useQuestionnaireForm(props: UseQuestionnaireFormProps): Readonly<QuestionnaireFormState>;
1784
+
1785
+ export declare interface UseQuestionnaireFormProps {
1786
+ readonly questionnaire: Questionnaire | Reference<Questionnaire>;
1787
+ readonly defaultValue?: QuestionnaireResponse | Reference<QuestionnaireResponse>;
1788
+ readonly subject?: Reference;
1789
+ readonly encounter?: Reference<Encounter>;
1790
+ readonly source?: QuestionnaireResponse['source'];
1791
+ readonly disablePagination?: boolean;
1792
+ readonly onChange?: (response: QuestionnaireResponse) => void;
1793
+ }
1794
+
1687
1795
  /**
1688
1796
  * React Hook to use a FHIR reference.
1689
1797
  * Handles the complexity of resolving references and caching resources.
@@ -72,6 +72,7 @@ import { Schedule } from '@medplum/fhirtypes';
72
72
  import { SearchParameter } from '@medplum/fhirtypes';
73
73
  import { SearchRequest } from '@medplum/core';
74
74
  import { ServiceRequest } from '@medplum/fhirtypes';
75
+ import { Signature } from '@medplum/fhirtypes';
75
76
  import { Slot } from '@medplum/fhirtypes';
76
77
  import { StructureDefinition } from '@medplum/fhirtypes';
77
78
  import { Subscription } from '@medplum/fhirtypes';
@@ -378,7 +379,7 @@ export declare function buildFieldNameString(key: string): string;
378
379
 
379
380
  export declare function buildInitialResponse(questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse): QuestionnaireResponse;
380
381
 
381
- export declare function buildInitialResponseItem(item: QuestionnaireItem, questionnaireResponseItem?: QuestionnaireResponseItem[]): QuestionnaireResponseItem;
382
+ export declare function buildInitialResponseItem(item: QuestionnaireItem): QuestionnaireResponseItem;
382
383
 
383
384
  export declare function CalendarInput(props: CalendarInputProps): JSX.Element;
384
385
 
@@ -624,7 +625,17 @@ export declare interface ErrorBoundaryState {
624
625
  readonly lastLocation: string;
625
626
  }
626
627
 
627
- export declare function evaluateCalculatedExpressionsInQuestionnaire(items: QuestionnaireItem[], response: QuestionnaireResponse | undefined): QuestionnaireResponseItem[];
628
+ /**
629
+ * Evaluates the calculated expressions in a questionnaire.
630
+ * Updates response item answers in place with the calculated values.
631
+ *
632
+ * See: https://build.fhir.org/ig/HL7/sdc/StructureDefinition-sdc-questionnaire-calculatedExpression.html
633
+ *
634
+ * @param items - The questionnaire items to evaluate.
635
+ * @param response - The questionnaire response to evaluate against.
636
+ * @param responseItems - The response items to update.
637
+ */
638
+ export declare function evaluateCalculatedExpressionsInQuestionnaire(items: QuestionnaireItem[], response: QuestionnaireResponse, responseItems?: QuestionnaireResponseItem[] | undefined): void;
628
639
 
629
640
  /**
630
641
  * Creates a Blob object from the JSON object given and downloads the object.
@@ -699,20 +710,6 @@ export declare function getItemInitialValue(initial: QuestionnaireItemInitial |
699
710
 
700
711
  export declare function getNewMultiSelectValues(selected: string[], propertyName: string, item: QuestionnaireItem): QuestionnaireResponseItemAnswer[];
701
712
 
702
- /**
703
- * Returns the number of pages in the questionnaire.
704
- *
705
- * By default, a questionnaire is represented as a simple single page questionnaire,
706
- * so the default return value is 1.
707
- *
708
- * If the questionnaire has a page extension on the first item, then the number of pages
709
- * is the number of top level items in the questionnaire.
710
- *
711
- * @param questionnaire - The questionnaire to get the number of pages for.
712
- * @returns The number of pages in the questionnaire. Default is 1.
713
- */
714
- export declare function getNumberOfPages(questionnaire: Questionnaire): number;
715
-
716
713
  /**
717
714
  * Returns a string representing the operation.
718
715
  * @param op - The operation code.
@@ -722,7 +719,7 @@ export declare function getOpString(op: Operator): string;
722
719
 
723
720
  /**
724
721
  * Returns the reference filter for the given questionnaire item.
725
- * @see https://build.fhir.org/ig/HL7/fhir-extensions//StructureDefinition-questionnaire-referenceFilter-definitions.html
722
+ * @see https://build.fhir.org/ig/HL7/fhir-extensions/StructureDefinition-questionnaire-referenceFilter-definitions.html
726
723
  * @param item - The questionnaire item to get the reference filter for.
727
724
  * @param subject - Optional subject reference.
728
725
  * @param encounter - Optional encounter reference.
@@ -837,8 +834,19 @@ export declare function isAuxClick(e: MouseEvent_2): boolean;
837
834
  */
838
835
  export declare function isCheckboxCell(el: Element): boolean;
839
836
 
837
+ /**
838
+ * Returns true if the item is a choice question.
839
+ * @param item - The questionnaire item to check.
840
+ * @returns True if the item is a choice question, false otherwise.
841
+ */
840
842
  export declare function isChoiceQuestion(item: QuestionnaireItem): boolean;
841
843
 
844
+ /**
845
+ * Returns true if the questionnaire item is enabled based on the enableWhen conditions or expression.
846
+ * @param item - The questionnaire item to check.
847
+ * @param questionnaireResponse - The questionnaire response to check against.
848
+ * @returns True if the question is enabled, false otherwise.
849
+ */
842
850
  export declare function isQuestionEnabled(item: QuestionnaireItem, questionnaireResponse: QuestionnaireResponse | undefined): boolean;
843
851
 
844
852
  export declare function isSortDescending(definition: SearchRequest): boolean;
@@ -921,8 +929,6 @@ export declare const MemoizedFhirPathTable: MemoExoticComponent<typeof FhirPathT
921
929
  */
922
930
  export declare const MemoizedSearchControl: typeof SearchControl;
923
931
 
924
- export declare function mergeUpdatedItems(mergedItems: QuestionnaireResponseItem[], updatedItems: QuestionnaireResponseItem[]): QuestionnaireResponseItem[];
925
-
926
932
  export declare function MoneyDisplay(props: MoneyDisplayProps): JSX.Element | null;
927
933
 
928
934
  export declare interface MoneyDisplayProps {
@@ -1062,6 +1068,22 @@ export declare interface QuantityInputProps extends ComplexTypeInputProps<Quanti
1062
1068
  readonly disableWheel?: boolean;
1063
1069
  }
1064
1070
 
1071
+ export declare const QUESTIONNAIRE_CALCULATED_EXPRESSION_URL = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-calculatedExpression";
1072
+
1073
+ export declare const QUESTIONNAIRE_ENABLED_WHEN_EXPRESSION_URL = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression";
1074
+
1075
+ export declare const QUESTIONNAIRE_ITEM_CONTROL_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl";
1076
+
1077
+ export declare const QUESTIONNAIRE_REFERENCE_FILTER_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceFilter";
1078
+
1079
+ export declare const QUESTIONNAIRE_REFERENCE_RESOURCE_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource";
1080
+
1081
+ export declare const QUESTIONNAIRE_SIGNATURE_REQUIRED_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-signatureRequired";
1082
+
1083
+ export declare const QUESTIONNAIRE_SIGNATURE_RESPONSE_URL = "http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature";
1084
+
1085
+ export declare const QUESTIONNAIRE_VALIDATION_ERROR_URL = "http://hl7.org/fhir/StructureDefinition/questionnaire-validationError";
1086
+
1065
1087
  export declare function QuestionnaireBuilder(props: QuestionnaireBuilderProps): JSX.Element | null;
1066
1088
 
1067
1089
  export declare interface QuestionnaireBuilderProps {
@@ -1072,10 +1094,67 @@ export declare interface QuestionnaireBuilderProps {
1072
1094
 
1073
1095
  export declare function QuestionnaireForm(props: QuestionnaireFormProps): JSX.Element | null;
1074
1096
 
1075
- export declare const QuestionnaireFormContext: Context< {
1076
- subject?: Reference;
1077
- encounter?: Reference<Encounter>;
1078
- }>;
1097
+ export declare interface QuestionnaireFormLoadedState {
1098
+ /** Not loading */
1099
+ readonly loading: false;
1100
+ /** The loaded questionnaire */
1101
+ questionnaire: Questionnaire;
1102
+ /** The current draft questionnaire response */
1103
+ questionnaireResponse: QuestionnaireResponse;
1104
+ /** Optional questionnaire subject */
1105
+ subject?: Reference;
1106
+ /** Optional questionnaire encounter */
1107
+ encounter?: Reference<Encounter>;
1108
+ /** The top level items for the current page */
1109
+ items: QuestionnaireItem[];
1110
+ /** The response items for the current page */
1111
+ responseItems: QuestionnaireResponseItem[];
1112
+ /**
1113
+ * Adds a new group item to the current context.
1114
+ * @param context - The current context of the questionnaire response items.
1115
+ * @param item - The questionnaire item that is being added to the group.
1116
+ */
1117
+ onAddGroup: (context: QuestionnaireResponseItem[], item: QuestionnaireItem) => void;
1118
+ /**
1119
+ * Adds an answer to a repeating item.
1120
+ * @param context - The current context of the questionnaire response items.
1121
+ * @param item - The questionnaire item that is being answered.
1122
+ */
1123
+ onAddAnswer: (context: QuestionnaireResponseItem[], item: QuestionnaireItem) => void;
1124
+ /**
1125
+ * Changes an answer value.
1126
+ * @param context - The current context of the questionnaire response items.
1127
+ * @param item - The questionnaire item that is being answered.
1128
+ * @param answer - The answer(s) provided by the user for the questionnaire item.
1129
+ */
1130
+ onChangeAnswer: (context: QuestionnaireResponseItem[], item: QuestionnaireItem, answer: QuestionnaireResponseItemAnswer[]) => void;
1131
+ /**
1132
+ * Sets or updates the signature for the questionnaire response.
1133
+ * @param signature - The signature to set, or undefined to clear the signature.
1134
+ */
1135
+ onChangeSignature: (signature: Signature | undefined) => void;
1136
+ }
1137
+
1138
+ export declare interface QuestionnaireFormLoadingState {
1139
+ /** Currently loading data such as the Questionnaire or the QuestionnaireResponse default value */
1140
+ readonly loading: true;
1141
+ }
1142
+
1143
+ export declare interface QuestionnaireFormPage {
1144
+ readonly linkId: string;
1145
+ readonly title: string;
1146
+ readonly group: QuestionnaireItem & {
1147
+ type: 'group';
1148
+ };
1149
+ }
1150
+
1151
+ export declare interface QuestionnaireFormPaginationState extends QuestionnaireFormLoadedState {
1152
+ readonly pagination: true;
1153
+ pages: QuestionnaireFormPage[];
1154
+ activePage: number;
1155
+ onNextPage: () => void;
1156
+ onPrevPage: () => void;
1157
+ }
1079
1158
 
1080
1159
  export declare interface QuestionnaireFormProps {
1081
1160
  readonly questionnaire: Questionnaire | Reference<Questionnaire>;
@@ -1090,6 +1169,12 @@ export declare interface QuestionnaireFormProps {
1090
1169
  readonly onSubmit?: (response: QuestionnaireResponse) => void;
1091
1170
  }
1092
1171
 
1172
+ export declare interface QuestionnaireFormSinglePageState extends QuestionnaireFormLoadedState {
1173
+ readonly pagination: false;
1174
+ }
1175
+
1176
+ export declare type QuestionnaireFormState = QuestionnaireFormLoadingState | QuestionnaireFormSinglePageState | QuestionnaireFormPaginationState;
1177
+
1093
1178
  export declare const QuestionnaireItemType: {
1094
1179
  readonly group: "group";
1095
1180
  readonly display: "display";
@@ -1542,6 +1627,16 @@ export declare function setQuestionnaireItemReferenceTargetTypes(item: Questionn
1542
1627
  */
1543
1628
  export declare function setSort(definition: SearchRequest, sort: string, desc?: boolean): SearchRequest;
1544
1629
 
1630
+ export declare function SignatureInput(props: SignatureInputProps): JSX.Element;
1631
+
1632
+ export declare interface SignatureInputProps extends PaperProps {
1633
+ readonly width?: number;
1634
+ readonly height?: number;
1635
+ readonly defaultValue?: Signature;
1636
+ readonly who?: Reference<ProfileResource>;
1637
+ readonly onChange: ((value: Signature | undefined) => void) | undefined;
1638
+ }
1639
+
1545
1640
  /**
1546
1641
  * The SignInForm component allows users to sign in to Medplum.
1547
1642
  *
@@ -1612,6 +1707,7 @@ export declare interface ThreadChatProps {
1612
1707
  readonly title?: string;
1613
1708
  readonly onMessageSent?: (message: Communication) => void;
1614
1709
  readonly inputDisabled?: boolean;
1710
+ readonly excludeHeader?: boolean;
1615
1711
  readonly onError?: (err: Error) => void;
1616
1712
  }
1617
1713
 
@@ -1684,6 +1780,18 @@ export declare function useMedplumProfile(): ProfileResource | undefined;
1684
1780
  */
1685
1781
  export declare function usePrevious<T>(value: T): T | undefined;
1686
1782
 
1783
+ export declare function useQuestionnaireForm(props: UseQuestionnaireFormProps): Readonly<QuestionnaireFormState>;
1784
+
1785
+ export declare interface UseQuestionnaireFormProps {
1786
+ readonly questionnaire: Questionnaire | Reference<Questionnaire>;
1787
+ readonly defaultValue?: QuestionnaireResponse | Reference<QuestionnaireResponse>;
1788
+ readonly subject?: Reference;
1789
+ readonly encounter?: Reference<Encounter>;
1790
+ readonly source?: QuestionnaireResponse['source'];
1791
+ readonly disablePagination?: boolean;
1792
+ readonly onChange?: (response: QuestionnaireResponse) => void;
1793
+ }
1794
+
1687
1795
  /**
1688
1796
  * React Hook to use a FHIR reference.
1689
1797
  * Handles the complexity of resolving references and caching resources.