Background of the project
At the moment, the medical staff is facing problems of time management, while trying to keep track
of patients or to discuss their diagnostics. This is why, the main goal of the our project is to provide
tools for medical professionals and researchers that can aid them in diagnostic and analytics processes
through the use of online platforms.
We are delighted that our work is contributing to a better medical system and we aim to create an unique health platform for University College Hospital and its patients.
Our client is Dr. Navin Ramachandran, representing University College Hospital and the P.E.A.C.H(Platform for Enhanced Analytics and Computational Healthcare) Project. During development, we were kindly sponsored by Microsoft to make sure that we have all the resources to accomplish the full potential of the project.
The features we had to implement are a crucial part of a healthcare platform and we believe their impact will be valuable for both our client and the people using them. Currently, our team is working on the implementation of three different components for the PEACH web platform:
- the login and role based access control system for managing user authentication and permissions on the website;
- an internal messaging system for communication enhancement;
- the collaborative document editing which allows real-time online collaboration between doctors.
One of the first steps in the development of our project was to collect the requirements for our future platform. The main way to accomplish our task was to set up several meetings with our client, Dr. Navin Ramachandran, and to gather as much information as possible about the features that the final product should have. After understanding the main concepts of the new platform, we iterated various MoSCoW analysis versions, which were defined after more discussions with our main client.
Apart from discussing with our client, we also focused a lot on conducting online research, as this was the main method to find out what tools we can use and what requirements are feasible. We certainly identified tools to use (see Research page) and understood exactly what we can achieve in the given time. This helped us in presenting real facts and examples to Dr. Navin when establishing the requirements list and their priorities.
To better understand the needs of the potential users for our tools, we proceeded with creating various personas, storyboards and use cases for our project, which will be presented shortly. They were really helpful in figuring out how users might use our tools and why, which was highly valuable in coming up with our requirements list and agreeing on it with the client.
Finally, a last method to clearly gather all the requirements was to get feedback on our work from different people, from friends and colleagues to TAs and supervisors of the project. Since they might benefit from using the PEACH platform in the future and since healthcare is something that everyone cares about, they provided us with clear and specific views about what they would like / not like to see when using it.
1. An admin should be able to create roles and accounts for users.
2. Users can log in according to their roles (administrator, senior clinician, junior clinician, clerical, patient).
3. Once logged in, users can access the internal messaging system (chat) or the collaborative editing tool (for the patient notes).
4. The messaging system is available for medical staff and patients.
5. The collaborative editing tool is available for all medical staff in order to write notes in real-time on the patients' health condition.
6. Medical staff can access all the pads for all patients.
MoSCoW requirement list
Authentication - RBAC
|A1||Good security||Must Have||Functional/Non-functional|
|A2||Registration started by admin and sent by email invitation||Must Have||Functional|
|A3||Only admins can start a new registration||Must Have||Functional|
|A4||Integration with RBAC / ABAC||Must Have||Functional|
|A5||Forgotten password||Must Have||Functional|
|A6||Provide users with specific role||Must Have||Functional|
|A7||Admins can change roles if necessary||Must Have||Functional|
|A8||Roles provide different permissions and page flow on the website||Must Have||Functional|
|A9||Support for different roles in different apps||Must Have||Functional|
|A10||Change password in or other features in an user dashboard||Should Have||Functional|
|A11||Users can request registration or role change||Should Have||Functional|
|A12||Blockchain like authentication / IOTA technology for authentication, etc.||Could Have||Functional|
|A13||Simple registration option where user can directly sign-up||Won't Have||Functional|
|IM1||Functional text messaging system between clinicians and patients||Must Have||Functional|
|IM2||Functional text messaging system among clinicians||Must Have||Functional|
|IM3||Group chat inside the web app||Must Have||Functional|
|IM4||Storing history in a database||Must Have||Functional|
|IM5||Different access permissions||Must Have||Functional|
|IM6||Access to patient records inside chat||Should Have||Functional/Non-functional|
|IM7||Sending images and files||Should Have||Functional|
|IM8||Real time||Should Have||Functional|
|IM9||Offline access to messages||Should Have||Functional|
|IM10||Scalable to store terabytes.||Should have||Functional|
|IM12||Integration with the ChatBot||Could Have||Functional/Non-functional|
|IM13||Flexibility for creating mobile apps||Could Have||Functional|
|IM14||Messaging between patients||Won't Have||Functional|
|CE1||Multiple users must be able to edit the data simultaneously||Must Have||Functional|
|CE2||The entered text must update in real time for all users||Must Have||Functional|
|CE3||The input field must be available as a component that can be embedded on any form||Must Have||Functional|
|CE4||A submit button which stores the input in a DV_PARSABLE data type field in openEHR||Must Have||Functional|
|CE5||Text formatting||Should Have||Functional|
|CE6||Input should be saved with formatting||Should Have||Functional/Non-functional|
|CE7||When a form is reopened, the previously entered text should be reloaded||Should Have||Functional|
|CE8||Marker indicating the cursor position of other concurrent users||Could Have||Functional|
|CE9||No need to see the previous editing history||Won't Have||Functional/Non-functional|
|1.||2.||3.||4.||5.||6.||Application||Authentication System||Authentication System||Messaging System||Messaging System||Document Editing Tool||Document Editing Tool|
|Name||Logging In||Forgot password||Sending Direct Message||Sending Group Message||Changing User Details||Writing text|
|Description||This is where the users are entering details and log in onto the platform||This is the case when users starts the process of setting up a new password when he forgot the old one||This is how a user can send a direct message to someone else (either text or file)||This is how a user can send a group message (either text or file)||This is how users can set their color highlight preferences||This happens when a user is writing text within a document|
|Primary Actor||User (App in browser)||User (App in browser)||User (App in browser)||User (App in browser)||User (App in browser)||User (App in browser)|
|Precondition||User reaching the login page||User not remembering password and reaching login page||User logged in and using the messaging tool||User logged in and using the messaging tool||User logged in and using the doc editing tool||User logged in and using the doc editing tool|
|Trigger||User entering his details and submitting them||User click the “Forgot Password button”||User creates a new direct chat or enters an existing one||User creates a new group chat or enters an existing one||User enters a pad and clicks the customization menu||User enters a pad and starts writing|
|Basic Flow||User opens the web platform. If he is not authenticated, he is redirected to the login page where he enters his details and submits them. Then, the server validates them and allows his access to the tools on the platform||User reaches the login page but he does not remember his password. He clicks the specific button and is redirected to a page where he has to enter his email. If email is matching a current account, an email with a reset link is sent. When he access the link from his email, he is provided access to a page where he can reset the password. After submitting the new details, he can use his password again||User opens the chat and enters (creates) a direct chat with another user. He inputs a test message (or a file) and clicks the send button. The message is sent and appears for both users||User opens the chat and enters (creates) a group chat with another user. He inputs a test message (or a file) and clicks the send button. The message is sent and appears for all group users||User opens the doc editing tool. He then opens the customization tab, where he can set the colors in which his text is highlighted to be differentiated from other text. Color change appears for all users.||User opens the editing tool and starts writing. Everything he does appears in real time for others. He can also change text options (font, colour, etc.) and others can see it also in real time.|
|Alternate Flows||* User inserts wrong details - error message
* User does not remember his password - see user case 2
* User exits the app
|* User does not receive email - he has to try again
* User exits the app
|* User does not send a message
* File size is too large
|* User does not send a message
* File size is too large
|* User does not set a colour
* User writes without a predefined colour
|* User does not input anything
* User writes without modifying text