New to the Project? Check out the O3 Developer Documentation
An interactive walkthrough system for O3 that provides guided tours and tutorials to help users learn the system. Built with React Joyride, it features multiple pre-configured tutorials covering essential workflows like patient registration, chart navigation, recording vitals and biometrics, and more.
- Interactive Guided Tours: Step-by-step walkthroughs using spotlight highlighting and tooltips
- Auto-progression: Automatically advance to next step when target elements appear
- Multiple Tutorials: 8 pre-configured tutorials covering core OpenMRS workflows
- Configurable: Customize tutorials through OpenMRS configuration system
- Smart Waiting: Automatically waits for elements to load before proceeding
- Interactive Elements: Support for clickable elements during tutorials
- Basic Overview - Introduction to main dashboard and navigation
- Registering a Patient - Complete patient registration workflow
- Patient Chart - Navigate and understand patient chart features
- Finding a Patient - Search functionality and advanced filters
- Patient Lists - Create and manage patient lists
- Recording Vitals - Capture patient vitals and biometrics
- Starting a Patient Visit - Begin a patient encounter
- Demo Tutorial - Development and testing features
- Node.js (v22 or higher)
- Yarn package manager
yarn # install dependencies
yarn start # start development server
Enable tutorials by setting showTutorial: true
in your OpenMRS configuration. Customize tutorial content through the tutorialData
configuration array.
Each tutorial step supports the following properties:
target
: CSS selector for the element to highlighttitle
: Optional step titlecontent
: Step description textplacement
: Tooltip placement (top
,bottom
,left
,right
,center
)spotlightClicks
: Allow clicking on highlighted elementsdisableOverlay
: Disable the dark overlay
hideBackButton
: Hide the back navigation buttonhideNextButton
: Hide the next navigation buttonhideFooter
: Hide the entire footerhideCloseButton
: Hide the close button
Automatically advance when target elements appear:
{
target: '[data-extension-id="some-target"]',
content: 'Click this button to continue',
spotlightClicks: true,
hideNextButton: true,
data: {
autoNextOn: '[data-extension-id="next-element"]'
}
}
The step will automatically proceed when the autoNextOn
selector matches an element on the page.