Catalyst Form Builder - Functional Requirements
Catalyst Form Builder - Order Entry Screen Designer
Functional Requirements Document
Version: 1.0
Date: November 2025
Status: Draft
Jira Story: OGC-113
Parent Epic: OGC-70 - Catalyst
1. Executive Summary
Catalyst Form Builder extends the Catalyst data assistant to include visual form design capabilities for creating custom order entry screens. This feature replaces the current approach of manually editing FHIR Questionnaire JSON with a user-friendly drag-and-drop builder, while maintaining full FHIR compliance under the hood.
1.1 Problem Statement
Currently, OpenELIS Global order entry screen customization requires:
Manually writing or pasting FHIR Questionnaire JSON
Specialized technical knowledge beyond typical admin capabilities
Limited layout options
No visual preview during development
1.2 Target Users
System Administrators - Full form creation and management capabilities
Lab Managers with "Order Entry Screen Management" permission - Form creation for their lab units
1.3 Core Capabilities
Visual drag-and-drop form builder with pre-built workflow blocks
LLM-assisted form design through natural language
Integration with OpenELIS data dictionary and test catalog
Conditional logic configuration without coding
Multi-column layouts, sections, tabs, and collapsible areas
Live preview with device toggle (desktop/tablet/mobile)
Draft → Review → Publish workflow with version control
Export/import for initializer and cross-instance sharing
2. Form Scope & Application
2.1 Supported Order Types
Lab test orders (routine, STAT)
Panel orders
Referral orders
Program-specific orders (HIV, TB, EID, etc.)
Environmental sample orders
Product testing orders
2.2 Form Assignment
Forms can be assigned at three levels:
Scope | Description |
|---|---|
All Test Units | Form available system-wide |
Specific Test Unit | Form only for a particular lab section |
Project/Notebook | Form only within a specific project |
2.3 Multiple Forms per Context
User sees form selection after clicking "Order Entry"
"Remember my selection" checkbox (stored per user)
Collapsed form selector at top for switching
Admins set default per lab unit
3. User Interface Components
3.1 Form Builder Main Interface
Three-panel design:
Left Panel - Component Library:
Workflow Blocks (pre-built complex components)
Basic Fields
Selection Fields
Lookup Fields
Layout Elements
Center Panel - Form Canvas:
Visual form representation
Drag-and-drop placement
Click to select and configure
Right Panel - Properties Inspector:
Field label, help text
Required toggle
Conditional visibility rules
Validation rules
Data dictionary mapping
3.2 Preview Panel
Device selector: Desktop | Tablet | Mobile
Sample data toggle
Test conditional logic
Role preview
4. Pre-built Workflow Blocks
Block | Description |
|---|---|
Patient Block | Search + create + display patient info |
Provider Block | Search + validation |
Sample Block | Type, collection date, container, multi-sample |
Test Selection Block | Catalog search, favorites, LOINC display |
Panel Selection Block | Browser, included tests, individual removal |
Referral Out Block | Lab selector, reason, documentation |
Program Block | Selector with conditional logic triggers |
Billing Block | Payment tracking (if enabled) |
Contact Tracing Block | Contact info (if enabled) |
Barcode/Label Block | Generation and printing modal |
5. Field Types
Text Fields
Text Input, Text Area, Restricted Text
Numeric Fields
Number, Range, Calculated
Date/Time Fields
Date, Time, DateTime
Selection Fields
Dropdown, Multi-Select, Radio, Checkbox, Toggle
Lookup Fields
Patient, Provider, Organization, Test, Dictionary
Special Fields
File Upload, Signature, Barcode Scanner
6. Layout Elements
Section - Groups fields with header, collapsible
Column Layout - 2 or 3 columns
Tabs - Tabbed interface grouping
Repeating Sections - Multiple samples, contacts
7. Conditional Logic
Show/hide fields based on values
Change required fields based on context
Program-specific visibility
Filter tests by program/sample type
Visual condition builder (no coding)
8. Validation Rules
Field-Level
Required, Format (regex), Range, Length
Cross-Field
Field A required if Field B has value
At least one of multiple fields required
Form-Level
At least one sample/test required
Patient must be selected
9. LLM Assistance
Generate forms from natural language descriptions
Suggest field types and validations
Configure conditional logic via prompts
Troubleshoot form issues
Convert FHIR Questionnaire JSON to visual format
10. Workflow & Versioning
State | Description |
|---|---|
Draft | Work in progress |
In Review | Ready for review |
Published | Active and available |
Archived | No longer available |
Last 5 versions retained
One-click rollback
Historical orders retain original form context
Version number + last edited info displayed
11. Import/Export
Export includes:
Form definition (FHIR Questionnaire)
Layout configuration
Conditional logic
Referenced dictionary entries
Tests/panels identified by LOINC
Initializer Integration
Forms placed in initializer directory
Loaded on new deployment
Cross-Instance Sharing
Export/import JSON files
Dependency validation on import
12. Admin UI Modernization
New section: Admin → General Configurations → Order Entry Form Management
Replaces:
Order Entry Configuration (toggle table)
Program Entry (JSON paste)
Features:
Form list with status, assignment, version
Filter by status, assignment, creator
Search by name/description
Actions: Create, Duplicate, Edit, Archive, Export
13. Phased Implementation
Phase 1 (MVP)
Visual builder with basic fields
Essential blocks (Patient, Provider, Sample, Test)
Draft/Publish workflow
Basic preview
Phase 2
Additional blocks (Panel, Referral, Program, Barcode)
Conditional logic builder
Preview enhancements
Phase 3
Remaining blocks
Review workflow
Versioning (5 versions)
Import/export
LLM integration
Phase 4
FHIR import/conversion
Repeating sections
Calculated fields
Tabs layout
14. Technical Notes
Carbon Design System for React
FHIR Questionnaire R4 compliance
JSON-based form storage
Drag-and-drop library for canvas
Document End - Full requirements available in linked document