Release overview · Backend + Frontend
CARE 3.1
You can now configure CARE at every level: forms, terminology, automation and care coordination.
care · ENG-737-backup · care_fe · 3.1/base · October 2026
What’s inside
Six themes, one release
01
Configurable forms
Scoped, versioned forms, a studio and a new form engine
02
Automation
A rules engine, a no-code rule editor and expiring tags
03
Care coordination
Referrals end to end, workspaces and encounter dashboards
04
Clinical records
Immunization programs, procedures and observations
05
Platform
careui, accessibility, an App Store and staff profiles
06
Registry
Disease and program registries, filled automatically
02
01 · Configurable forms
Every questionnaire now has a scope
instance
Shared by every facility
facility
Owned by one facility
facility_organization
Owned by a department
user
Personal to one user, within a facility
Slugs are unique per scope
Two facilities can each have their own triage form.
Shared through organizations
Access follows the organization tree, both facility and geographic.
Patient forms stay global
Questionnaires about a patient are only allowed at instance level.
03
01 · Configurable forms
Each change to the questions creates a new revision
revision 1
Frozen snapshot
revision 2
Frozen snapshot
revision 3 · current
The live questionnaire
Hash detects change
A SHA-256 of the questions decides when to bump. Editing the title or description does not.
Old versions are kept
The previous version is copied to a snapshot row that points to the latest one.
Responses show the form they used
Each response stores its revision and is shown with that version’s questions.
04
01 · Configurable forms · Studio
Build forms in a visual studio
Outline
Search the question tree and reorder questions
Canvas · live preview
The form as clinicians will see it, while you edit
Inspector
Question type, options, visibility rules, validation and automations
Manage
Scoped to an organization, clone, import and export, revision history
Automations
Condition and instruction editors built from the backend’s list of available fields and instructions
Admin actions
Reusable action configurations, managed in Admin
05
01 · Configurable forms · Studio
Authoring, question by question
Every question type
Text, numbers, choices, dates, quantities and groups
Coded answers
Attach terminology codes to questions and options
Show-if rules
Show a question only when earlier answers match
Import and move
Import from a JSON file or URL; move questions around
Checks before saving
Problems are listed so you can fix them first
Edit or preview
Toggle to the live form, on desktop or mobile
06
01 · Configurable forms · Filling
Filling forms without losing work
One shared renderer
Show-if rules, repeating answers and groups, validation, and groups that plugins register
Drafts at two levels
Local autosave with a restore bar, plus server drafts. Drafts survive session expiry and are separated by user.
Several forms per session
Submission errors point to the right field. Action results appear as notifications.
11 structured clinical inputs
Allergy
Diagnosis
Symptom
Prescription
Medication statement
Service request
Charge item
Appointment
Encounter
Files
Time of death
07
01 · Configurable forms · Filling
Filling, beyond the basics
Repeat anything
Repeating answers and repeating groups of questions
Notes on answers
Add a note to any question while filling
Plugin question groups
Plugins add their own groups, like a dental chart
Scribe built in
Scribe actions are available while you fill
History alongside
Open the patient’s clinical history without leaving
Find responses
Filter submitted forms by author and author role
08
01 · Configurable forms
Questionnaires for locations, devices and facilities
New subjects
Location
Device
Facility
Referral
Patient (as before)
In the app, facility, location and device pages each get a form picker and a list of their own responses.
POST questionnaire/{id}/submit_resource
One submission saves:
resource_responses
The answers, with the questionnaire revision they used
resource_observation
Coded observations about the resource, with interpretation and ranges
09
01 · Configurable forms
Value sets facilities can customize
Scoped and inherited
The same four scopes as questionnaires. A child value set adds to its parent’s codes, or turns that off with disable_composition.
A version for each user
Each user picks which version a slug resolves to in each facility. Forms keep referring to the slug.
Faster pickers
Favourites and recent picks for each user. You can expand by slug and preview a search before saving.
set_slug_preference · expand_slug · preview_search · favourites · recent_views
10
01 · Configurable forms · Terminology
A value set editor that shows its work
Build on a parent
Start from an existing set, then add or remove codes
Rules and filters
Include codes by system, concept or filter
Live preview
See the expanded codes before you save
Verify a code
Check whether a code belongs to the set
Share with departments
Choose which organizations can use each set
Pick your version
Choose which variant you see while filling a form
11
02 · Automation · New action engine
When a condition is true, CARE takes the action.
Admins write rules: a condition on patient, encounter, appointment or questionnaire data, and the steps to run when it is true.
12
02 · Automation
Three steps: context, condition, instructions
1 · context
Where the rule runs
Appointment, Patient, Encounter, or a questionnaire submission
2 · condition
A sandboxed expression
Fields like age and gender are fetched only when the expression uses them, and cached
3 · instructions
What CARE does
Tag the patient or encounter, set encounter priority, show a message
Instance or facility level
Rules are merged per context and cached for 24 h
Permission checks per step
Each instruction checks the user’s permissions before it runs
Edited in the studio
The studio builds its rule editor from the contexts, fields and instructions endpoints. Results appear as notifications.
13
02 · Automation · Rule editor
Writing a rule, without code
Pick a context
Patient, encounter, appointment or a form submission
Build conditions
Rows of field, operator and value, or an expression
Warnings as you go
Problems in a condition are flagged while you build it
Only what fits
Only instructions that work in that context are offered
Smart parameters
Pickers for tags and other inputs, with sensible defaults
See what happened
After submit, each rule’s outcome shows as a notification
14
02 · Automation
Tags that remove themselves
A tag config can set how long a tag lasts. When the time is up, an hourly job removes the tag. A “Fasting” tag no longer stays on a patient for weeks.
expiry_offset
Days, hours, minutes or seconds
autoset_expiry
Sets the expiry automatically when the tag is added
modification_allowed
Whether users can change the expiry for a single tag
Taggable resources: 12
Patient · Encounter · Location · Account · Service request · Activity definition · Charge item · Charge item definition · Token booking · Prescription · Request order · Delivery order
15
03 · Care coordination · New
Referrals between teams
referral_availability
A directory of who accepts referrals
- Targets: a department, a facility, a geographic organization or an outside entity
- Types: consultation or lab
- A care team that receives the referrals, and a public flag
- Request and response questionnaires
referral
One request for one patient
- Linked to the patient, and to an encounter if there is one
- Assignees, plus an “assigned to me” inbox
- A discussion thread built on notes
- Attached records, and each questionnaire answer saved with a snapshot of its form
16
03 · Care coordination
Referrals from request to appointment
1 · send
Pick a destination, fill the request form, attach records
2 · triage
Filter the list, assign members, discuss in a thread
3 · respond
A dedicated respond page, response form, uploads
4 · book
Book an appointment directly from the referral
Where it shows up
Patient Referrals tab, encounter Referrals tab and widget, patient appointments
Shared records
Attached records show in place, with access checks for the receiving team
Statuses
pending → in progress → completed, or cancelled or rejected. Responses can be voided.
17
03 · Care coordination · Referrals
Setting up who receives referrals
Facility settings
List the services that accept referrals
Organizations too
Organizations publish availability and get an inbox
Default care team
Who is assigned to new referrals automatically
Forms per service
Map request and response questionnaires
Facility inbox
All of a facility’s referrals in one filtered list
Public or private
Control who can find and refer to each service
18
03 · Care coordination
Workspaces and team-aware schedules
Workspaces
Layouts for each role, defined by a JSON template.
- Same four scopes as forms, shared through organizations
- Draft, active or archived
- A saved default workspace for each user
Schedules with teams
A schedule can now list the organizations and care team behind it, not only one practitioner.
- Organizations must belong to the schedule’s facility
- The care team uses the same member format as encounters
19
03 · Care coordination · Encounters
Encounter workspaces made of widgets
Vitals
Form responses
Service requests
Referrals
Pick your workspace
A switcher loads the layouts defined by the backend’s workspace templates
Compact header
Appointment actions in the header. The section picker keeps the selected encounter.
Pick up drafts
Forms in progress show on the encounter, so you can continue where you stopped.
20
04 · Clinical records · New
Immunization, from policy to dose
immunization/policy
Policy
A schedule template made of nested groups and doses. Each dose sets earliest, due and overdue dates, in days.
Set at instance or facility level.
…/recommendation
Recommendation
What a patient is due for: series, dose number, target diseases and forecast status.
Grouped in the same tree as the policy.
…/record
Record
The dose given: product, site, route, quantity, location and who gave it.
Records whether the patient or another source reported it, and subpotent doses.
In the app: an Immunizations tab on the encounter, a dose record sheet, and “Apply policy”, which builds the full schedule from the date of birth.
21
04 · Clinical records · Immunization
Design schedules in the app
Template editor
Nested groups and doses, with offsets in days
Vaccine picker
Choose vaccines and diseases from coded lists
Outline view
See the whole schedule at a glance
Clear ownership
Instance or facility policies, with edit rights
Apply in one step
Creates the patient’s full schedule, all or nothing
In clinical history
Immunizations get their own history tab
22
04 · Clinical records
Procedure history and standalone observations
Procedures
A coded record of past and current procedures for each patient and encounter.
status
outcome
body site
reason
occurrence
primary source
Standalone observations
Observations no longer need a questionnaire response or a diagnostic report. A single vital or score can be recorded on its own.
Errored questionnaire responses now also mark their observations as entered in error.
23
05 · Platform · Interface
Rebuilt on careui
New UI foundation
24 Radix packages replaced by Base UI. Figtree and Geist Mono variable fonts, plus Lexical rich text.
One sidebar everywhere
The same sidebar for facility, service, location, organization and patient pages, with pinning, hover previews and mobile navigation.
Header slots and command menus
Page actions sit in the workspace header. Command dialogs open as drawers on mobile.
Polish: phone input with country flags, primary-colour focus rings, table spacing, search on the service list, and a wider encounter creation sheet.
24
05 · Platform · Accessibility
CARE that adapts to you
Colour vision themes
Light
Red–green friendly
Blue–green friendly
More contrast
Stronger text, borders and controls
Font size
From small to larger, app-wide
Less motion
Follow the system, or reduce animation
Saved to you
Applies instantly and follows your account
25
05 · Platform · New
An App Store for CARE
Find, install and configure plugins from inside CARE.
Browse and search published apps, with tags and publishers
Verified publishers are marked
One-click install, or guided manual setup
Health checks show whether an app’s backend responds
26
05 · Platform
Structured staff profiles
Qualifications
Degree, registration number and issuing body. Degrees are checked against a list each deployment sets: MBBS, MD, MS, BDS and B.Sc. Nursing by default.
Languages
ISO 639-3 language codes, a CEFR level from A1 to C2, and a preferred flag. Useful for matching staff to patients.
Removed fields (breaking)
- skills
- home_facility
- weekly_working_hours
- qualification (free text)
- doctor_experience_commenced_on
- doctor_medical_council_registration
- video_connect_link · verified
27
05 · Platform
Permissions and other changes
New permission sets
Referral, workspace, immunization, value set and questionnaire, each with its own authz module.
Finer access control
Purchase returns and supply deliveries have separate permissions. File uploads and diagnostic reports have stricter checks.
Location tree flags
has_beds and has_sub_locations stay in sync, so the UI knows what to show before it loads the children.
Filters
Users by qualification and language; questionnaire responses; questionnaires and value sets
Inventory
Request orders now return clearer errors
28
06 · Registry
Registry
Disease and program registries that join patients automatically, through rules and forms.
Configure at any level
Instance-wide programs, or registries that belong to a single facility.
Added by rules
A patient is added automatically when they meet the registry’s criteria.
Added by forms
Submitting a form can add the patient to a registry.
29
Configurable at every level.
CARE is open source. Review the branch, try it on staging, and share feedback before 3.1 ships.
ohcnetwork/care · ENG-737-backup · ohcnetwork/care_fe · 3.1/base