Team Management Module Redesign - TMM-2.x.x
The team management module currently available doesnot provide hierarchical management of different roles comprising a team. Moreover, current module doesnot have the best UI. To make module provide a full flash team management in Healthcare (especially community driven healthcare), there are major changes required in design and UI of existing TMM.1.x.x. There are few changes required to make team members and patient mapping. A usecase for such scenario is when Field Workers are required to followup certain patients and there is a 1-1 relationship between patients and workers.
Source code can be found in repository here
Complete plan and tickets can be found here
Complete diagram
Team Hierarchy:
The module should allow maintaining hierarchical team structure where each role/level can own its own team as well.
The reporting chain should allow multiple reporting line up and down the hierarchy i.e.
A role can report to different roles depending on implementation settings. i.e. a role Vaccinator can report to Research Associate in one setting and may report to Town Health Officer in other settings.
Similarly, one supervisor can have multiple reporting lines down the hirerarchy. Module should also allow levels where sub teams are not applicable.
The hierarchy modifications should be logged as well to find out the changes in reporting lines at any point of time.
One should be able to see the hierarchy in chart form i.e. an organogram/tree of reporting lines.
The ORM mapping for hierarchy management could be represented by following diagram:
The UI would provide following functions
The section '# Members' , 'Reported By' and 'View Teams' refers to components which are explained below
The component should be protected by following privileges
View Hierarchy
Add Hierarchy
Edit Hierarchy
Void Hierarchy
View Team Hierarchy Log
Team
Module should allow management of team based on supervisor, location or program or any other dimension. Program is not part of current redesign. The architecture of team component should be flexible enough to keep provision of adding new dimension in future. Following are features current team component includes
Filter teams list by id, name, location, supervisor.
Allow paging as teams can grow
Each team MUST have a supervisor
Each team can be mapped to multiple locations. These locations help in filtering assignable locations to team members when created
Complete log of activities happened in team should be managed as well
The ORM mapping for hierarchy management could be representing by following diagram:
The UI would provide following functions
Supervisor, Supervisor Role, Location, # of direct subordinates refer to entities defined later in document.
Should be protected by following permissions
View Team
Edit Team
Add Team
Void Team
Add Team Member
Edit Team Member
View Team Log
Team Members
Module should allow team members to join any team in different capacity and also allow them to own a team provided that their role allows owning a team.
Each Member should have a team role which might be reporting to other parent role
Each member should be allowed to own or build up a team if their role allows it. This means that different other team members would be joining his team and leaving as well
Each member should be allowed to join a team which means that he would be reporting to person owning the team
A member can handover his team to other team team members which means that members of his team would be reporting to new supervisor
A member can be mapped on different locations (under location of his supervisor`s)
A member should be allowed to own patients to provide provider-patient ownership, data entry and reporting
All activities in team should be logged
The ORM mapping for hierarchy management could be representing by following diagram:
The UI would provide following functions
Should be protected by following privileges
VIEW_TEAM_MEMBERS
EDIT_TEAM_MEMBERS
ADD_TEAM_MEMBERS
VOID_TEAM_MEMBERS
TRANSFER_TEAM
MANAGE_TEAM_MEMBER_PATIENTS
Adding new member should provide following functionality