Yurij Gapon's profile

Clinic Management System - Project case study

Clinic Management System
A Case Study
The Challenge

A client – network of Dental Clinics – has a lot of processes besides the treatment of patients. Their operation used to largely rely on shared spreadsheets. This was an ineffective, time consuming approach. Client wanted to automate what is possible, reduce the effort spent on the organizational processes and let their employees do the actual work.
Main problem areas:

- Task management. Every role in the business has a number of recurring tasks they need to complete. Tasks are a thousand of things like equipment maintenance, premises cleaning and disinfection, supplies restocking, marketing, patients call ups, making pay checks, appraising staff, etc. Tasks completion is one of the main KPIs for the employees.

- Work scheduling. Many employees have dynamic responsibilities, meaning their role and physical location may change from day to day.

- Accounting and Reporting. There is a data consolidation need for tallying up the payroll, tracking profits and losses, estimating budgets.

- Human Resource. Looking after the staff and onboarding new staff.

- Stock management. Making sure every clinic has necessary supplies on time and within budgets.

The development of the tools for handling those areas was spiced up by processes evolving at the same time. That was partially happening because of the questions raised during the design, development and testing phases. So the business was learning itself as were we. Being a busy medical people our users were not able to spend much time in design and approval process. They preferred to approve a rough mockup or a prototype and go straight for implementation.
My Role and Approach

My responsibilities on this project were:
- Research
- Requirements Analysis
- UX design
- Project Management

Means for solving aforementioned problems were delivered continuously. The typical cycle would look like following:
- Research is done through user interviews.
- Next the use cases of the current scope are documented. Use cases include the scenario, therefore UI drafting becomes possible.
- I make wireframes.
- During the use case and wireframe production a number of additional questions normally arise.
- Client/users provide their answers on those questions and feedback on wireframes.
- A mockup then is produced based on the feedback.
- Sometimes an interactive prototype is desirable to communicate the concept more clearly.
- The requirements are added to the use cases.
- Client gets the final look and gives the approval.
- Use cases with requirements are linked to actionable tasks for the development team.
- Developers deliver the work, which is then tested internally.
- Client gets the possibility to test the functionality before the release. - - Or at least to watch a video demo and give their feedback or green light the release.
- Release and real testing.
- Repeat the cycle.

The tools I use:
- Miro. For quick wireframes, diagrams, notes.
- Figma. For interactive prototypes and high fidelity mockups.
Google Spreadsheets. For requirements specifications.
Solution

It's beautiful. On the inside.

Function over form was the way for this project. From the outset stake holders picked a tech stack, including a front-end frame work based on Material Design. It has its pros and cons. We learned to work with its limitations. The big advantage was that my mockups were quickly translated into tangible interfaces without spending time on pixel perfect and involving a dedicated UI designer. The real brilliance of the system is in the intricate details under the hood.
Roles and Permissions
Before addressing bigger objectives a basic problem had to be solved. Future users told us the same person can perform various roles in various locations, such as participating in surgery in the morning and working at the HQ in the afternoon. They can have unlimited rights in one location, but restricted access in the other one.
There is an unlimited number of variations of user types. But in order think through the functionality they were simplified to following Personas:
   ADMIN: a person, who is almighty, is trained in all tools
   NURSE: a very basic access user, uses a limited set of tools
   PRACTICE MANAGER: a supervisor over the Nurse, has a bigger arsenal of tools
   HR: user who requires very specific functions
   ACCOUNTANT: user who requires very specific functions

My proposal for user management was following:
Every function in the system should get it's permission setting
Provide a role configurator where admins are able to build any type of role and cherry pick the permissions
Every user gets at least one or a few Role + Location setting, which define the exact permissions user can afford at each place or globally.
This wasn't an easy thing to implement. The UI had to be dynamically changing depending on which location user accesses. But eventually we got it right.
Tasks
Task Management was the main goal of the upcoming product. Employees showed us that most of the tasks they face are recurring - they must be performed daily, weekly, monthly or in a different custom pattern, such as specific days of the week or every other week, etc. To satisfy this need a Task template was designed. It produces children tasks for the right people at the right time. It is smart to not create tasks when location is closed, or staff is away; it follows other intricate conditions too. There are a few special types of tasks, such as HR to onboard a new employee; or the ones where employees are able to recharge the Due Date for in order to keep up with their training renewal process, certifications, etc.

One of the objectives behind task tracking was to have an effective employee appraisal. So we designed a process which allows managers to asses the quality of completed tasks through periodic automated random selection or in a manual fashion. Based on quality and completion rate and quantity of missed tasks the system calculates a performance score for every employee, which comes handy for managers. Managers themselves are assessed based not only by their tasks, but also by the performance of their subordinates.
Schedules
Every user is able to work multiple roles at multiple virtual locations simultaneously, or frequently change their physical location. So we have designed a Rota, which makes an order out of this. The system automatically schedules employees shifts based on default settings, leaving a room for manual adjustments of course. Employees’ task load, possible performance outcomes and pay check rely on the placement in schedule. Thus it is a very important piece of the puzzle. It is packed with various useful behaviors. E.g. Employees might be asked to cover a role or location they are not normally responsible for and have no access to. In such case the system automatically grants them with a relevant temporary access and loosens the performance tracking.

The integral part of the work schedule is the possibility to book holidays, track leaves and absences. Again, a flexible way is available for admins to set up multi level approval chains for every role. Employee’s holiday allowance is managed automatically. There is a ton of invisible functionality such as updating employee's assessment in case of retrospective changes of their leaves and shifts, i.e. cancelling penalties for overdue tasks in case if person is marked sick in the past, etc.
Accounting
Accountants and HR staff have to be supplied with necessary information about the employees, and clinic performance. The solution is simple - all of the working records are combined into reports. Below is an example of a clickable Figma prototype for one of such reports.

Showcasing an interactive prototype:
Stock orders
Clinical and office staff have to watch their stock of supplies is maintained. They have to regularly refill it. They have budgets and have ordering rules. So we have provided them with a journal to track the stock. Head quarter people are able to configure what is ordered and where. Every location have their own approval chain and budgets.

There are plenty of other smaller functions such as
- Integration with accounting service Xero for tracking budgets, profits and losses.
- Reports for government audit
- Marketing page integration with Google Data Studio
- Integration with a training tool for automated completion of tasks which are linked to certifications.
Outcomes
Overall the system turned out to be more complex than anyone expected in the beginning. But the team handled it very well. The product is in use since mid 2020 and is in active development still. This was my biggest project so far and I'm proud of being a part of it/

🟢 170+ employees of 39 roles adopted the system and use it daily.
🟢 1400+ tasks are created daily on average. Most of them are successfully completed.
🟢 8000+ hours spent by the design and development team.
🟢 User feedback is mostly positive. Client finds big benefits in using this product.


What I learned
Great flexibility comes at the expense of complexity. Some of the functions client requested are like Legos - they allow to build a great variety of things, but it takes time to figure out how to do it. This won't be the best approach for many products. Some would be better of with more specific and streamlined functions.

Another insight - is the acceptance that business is doing its business and the contractors have to adjust to that. One can clearly see this in the example of working with medical staff. They ain't got the time to participate in frequent meetings, planning sessions, etc. Instead the design and development team have to imagine walking in their shoes. Try, learn from feedback and mistakes, try again.
Clinic Management System - Project case study
Published:

Clinic Management System - Project case study

Published: