Tasks and Task List
Status: In Progress
Technical Complexity: Manual: Medium Engine/Rule-Driven: Hard / Complex FHIR/Drools/Java/React
Summary:
Task Lists are like Checklists for an individual Patient. These can help with communication accross providers, shift changes, and specialties; and, can leverage CDS rules/reminders to generate suggested tasks to help ensure a patient gets ideal care (e.g. “due for mammogram”).
History: In 2023 we created designs and UI patterns for Tasks and Task Lists as part of the ANC DAK / SMART Guidelines project. This work needs to be actualized: from the frontend, to the backend storage, to actually leveraging a CDS engine.
MVP: Getting started with manual task creation is a great first step!
Handy Links:
Technical Approach Discussion: https://talk.openmrs.org/t/data-design-for-task-list-feature/47283
Comparison w Sticky Note Discussion:
Designs:
Tasks in OpenMRS Styleguide: https://zpl.io/9NlKZle
Tasks Designs in Zeplin: https://zpl.io/PrL9YL6
Tasks in O3 UI Patterns (Zeroheight):
Task Item: https://zeroheight.com/23a080e38/p/08fdc5-task-item
Task Management: https://zeroheight.com/23a080e38/p/6226bc-task-management
1. Problem & User Stories
Currently, there is no structured task management within the OpenMRS clinician user experience. In the past many implementers have used the Sticky Note as a simple free-text way for staff to leave reminders and task ideas; or, users could add such text to visit notes in forms or the Visit Note text box, but action requests / tasks are unlikely to be dug-up/found by subsequent staff.
Many sites have requested a more structured Task List. This will allow:
Allows for more organized task tracking per-patient, so it’s clear what has been done vs not done
Give a UI for showing more advanced CDS-based task suggestions (e.g. “It has been 1 year since last diabetic foot exam → task gets triggered by CDS engine to show “Perform Annual Diabetic Foot Exam”, for example).
Example Use Cases:
Custom Content Examples:
Notes/Reminders for “The Next Clinician”:
I’m an OPD clinician seeing a patient, and I’ll be on vacation next time they come to the clinic. I want to leave a task behind for my replacement to remember to re-order a drug for this patient, or perhaps to ask the patient about how a referral went to a specialist.
Remind the next Mental Health counsellor to do a PHQ-9 follow-up/re-assessment.
Shift Change: Notes for the next shift, e.g. due for dressing change; flag “review nutrition complications, maybe have doctor modify food intake prescription” because previous nurse i.d.'d concerns about nutrition.
Cross-Specialty/Department Communication: Ask the Psychiatrist who next sees the patient to do the prescription because that’s out of my scope.
CDS Content Examples: The WHO’s ANC DAK contains a bunch of examples of decision support rules that should trigger in a pregnant woman’s chart given certain inputs. Most up-to-date file is here under “Annex B: Decision Support Logic”. See especially the sheet named “Check Symptoms” for examples. A screenshot is here:
Screenshot of sample CDS rules for pregnant patients, per the WHO ANC DAK.
Types/Levels of Tasks:
Simplest: Custom Tasks (PRIORITY): On-the-Fly, Manually-Created Tasks (This is what MSF wants the most, though no use cases provided)
Medium: System Tasks: Pre-Configured Tasks: Choosing from a list of sample/common tasks from a “Task Library” so I don’t have to type the whole task (e.g. “Refer to [Specialty ABC]”
Complex/Hard: CDS-Powered / Rule-Driven: Tasks that only show up based on some logic being triggered (e.g. female + positive HCG test → triggers “Refer to MCH Clinic” etc)
Sub-Tasks: Mini-tasks within a bigger set/task.
e.g. from MSF: General task for “Give this drug”; then sub tasks include tasks required to make that happen, e.g.: Get it ordered; Nursing tasks around when to give it; follow-up requirements. (Grace note: I suppose many common blood thinners fall into a category like this, where they need careful lab monitoring so as to make sure the doseage is not making the blood too thin; however, this is a slightly unusual example.)
e.g. from Pelvic Physio example: Many pelvic physio tasks require multiple training steps before the task can be correctly performed. E.g. a pregnant patient should be trained first on pelvic relaxation before kegels, because of the concern around too much tension. In this example, the order of the sub-tasks matters as well as the fact that they are together. So in total it could look something like:
Task: Assign Pelvic Floor Exercises
Sub-Task #1: Train in pelvic relaxation
Sub-Task #2: Train in kegels (pelvic tension)
Here are some more examples, though admittedly GPT-generated. But these are reasonable and show a good example of how much per-site or per-department configuration people are likely to need/want!
2. Designs
Thorough design work has already been done for Tasks by Sonder Design UX experts as part of the ANC DAK project funded by Digital Square in ~2023. The resources that resulted from research and design time are available at:
Tasks in OpenMRS Styleguide: https://zpl.io/9NlKZle
Tasks Designs in Zeplin: https://zpl.io/PrL9YL6
Tasks in O3 UI Patterns (Zeroheight):
Task Item: https://zeroheight.com/23a080e38/p/08fdc5-task-item
Task Management: https://zeroheight.com/23a080e38/p/6226bc-task-management
3. Technical Considerations & Dependencies
Ideally this should integrate with the existing FHIR-compliant data model, potentially leveraging Care Plans or Tasks resources to ensure interoperability. This addresses the current gap in structured task management within OpenMRS while maintaining platform consistency.
Back in ~2023 under the ANC DAK project, there was initial prototype work done just in the frontend (not currently included in the RefApp today), but overall, these designs were not fully implemented because the project ended before data model design or a rule-engine were completed.
Past frontend work: _____ (Contact: Hadijah)
Past backend work (goal was to use fhir tasks): ____ (Contact: Mozzy)
Overall Requirements from MSF
Category | Requirement | Description |
|---|---|---|
Task Creation | Create new task | I would like to create tasks for self. |
Task Creation | Assign task | I would like to assign to colleagues (nurses, residents, or other doctors). |
Task Creation | Set priority | I would like to set priority levels (high, medium, low) with color coding. |
Task Creation | Set due date | I would like to assign due dates and deadlines. |
Task Details | Add description | I would like to write Task title + notes. |
Task Management | Edit/reassign | I would like to change ownership of tasks. |
Subtasks Creation | Create subtasks | I would like to create a subtask under a main patient task. |
Subtasks Creation | Multiple subtasks | I would like to add multiple subtasks to a single main task. |
Subtasks Creation | Set due date | I would like to set due dates for subtasks, independent of the main task. |
Task Management | Time critical icons | Highlight with icons soon overdue and overdue tasks. |
Subtasks Creation | Independent tracking | I would like to track completion of each subtask separately. |
Subtask Management | Set priority | I would like to set priority levels (high, medium, low) for each subtask. |
Subtask Management | Audit trail | I would like to see who completed which subtask and when. |
Collaboration | Shared visibility | All providers in the care team can see patient tasks. |
Collaboration | Role-based access | Only authorized staff can view/act on certain tasks. |
Others | Expand/ collapse | I would like to see subtasks displayed under main task in collapsible view. |
Phases and Timeline for MSF & Madiro in Q4 2025
Phase | Timeline | Owner(s) |
FHIR Data Model & API | Weeks 1-4 | Madiro (Brandon) |
Frontend Development | Weeks 1-4 | Madiro (Brandon) |
Testing and Documentation | Weeks 3-6 | MSF (Lime Team) |
Revisions and Validation | Weeks 3-6 | Madiro (Brandon) |
Sign-off | Weeks 6-7 | MSF (Lime Team) |
Community Merge | Weeks 7-8 | Madiro (Brandon) + Community |
Time Estimate: 40 hours