The React Form Engine provides powerful features that allow users to build forms of arbitrary complexity. These include:
Ability to reference existing schemas
Ability to validate fields using JavaScript expressions
Ability to render fields conditionally
Ability to perform calculations in fields using
calculateExpressions
Ability to reuse data submitted in previous encounters using
historicalExpressions
Ability to request lab orders via forms
Ability to define expression helpers for use in calculations and conditional logic
Ability to load locale-specific form labels from the backend
Ability to inject data from external data sources
Ability to provide contextual information or guidance when hovering over or interacting with interface elements (Tooltip).
Ability to grey out all options if a particular option is selected.
Ability to render default answer sets, if a question concept lacks a provided list of answers and is categorized as "question" type.
Ability to create an identifier of a given type for the patient upon encounter submission if a question in the form schema is of type patient identifier.
Ability to register patients offline
Support for type control
Support for "doesNotMatchExpression" to aid developers in validating fields against regular expressions.
Support default values for encounter location, encounter Datetime and encounter provider
Ability to render select options directly from the concept setMembers ("select-concept-answers rendering")
Support for Conditional Required Validation
Support for Conditional Answer Options
Ability to render labels instead of UUIDs for multiCheckbox field answers
Ability to link concept representation with questions
Support for language internationalization (French, Khmer, and Spanish language translations)
Workspace promptBeforeClosing functionality to prompts users with a message/action before closing the workspace.
Styling for Required Fields in Form Submission
Red Asterisk Addition for Required Form Labels
Ability to launch workspace from form (e.g lab order or drug order)
Support for Using String Values in Markdown Inputs
Concept Representation Association Support for Questions
JSON Schema Import Capability for Form Builder
“DisallowDecimals” validator feature
Morisky Medication Adherence Scale Functionality
Conditional Disabling of multiCheckbox Options
Standard Schema Template
Work is ongoing to achieve feature parity with the Angular form engine, and most existing functionality already works out of the box.
Supported rendering types
text
select
date
number
checkbox
radio
encounter-location
textarea
group
repeating
drug
file
problem
ui-select-extended
content-switcher
toggle
field-set
Learn more about what each rendering type does in the field types reference.
Supported expression helpers
The React Form Engine defines various expression helpers that can be leveraged to perform arbitrary calculations and support conditional logic. Read more about expression helpers in the expression helpers reference. The expression helpers currently supported include the following:
isEmpty
today
includes
isDateBefore
useFieldValue
calcBMI
calcEDD
calcBSA
calcHeightForAgeZscore
calcBMIForAgeZscore
calcWeightForHeightZscore
arrayContains
arrayContainsAny
calcMonthsOnART
calcAgeBasedOnDate
formatDate
calcGravida
calcTimeDifference
doesNotMatchExpression
hideWhenExpression
failsWhenExpression
historicalExpression