SRS 2
SRS 2
SRS 2
EMR
Prepared by
Electronic Medical Records
1. Introduction
The (SRS) provides an overview of the entire SRS with purpose, scope, definitions, acronyms,
abbreviations, references and overview of the SRS. The aim of this document is to gather and
analyze and give an in-depth insight of the complete Electronic Medical Records system by
defining the problem statement in detail.
i. Purpose
The purpose of the document is to
1. Collect and analyze all assorted ideas that have come up to define the system, its
requirements with respect to consumers.
2. Provide a detailed overview of our software product, its parameters and goals.
3. Describe the project's target audience and its user interface, hardware and software
requirements.
4. Defines how our client, team and audience see the product and its functionality.
5. Helps any designer and developer to assist in software development lifecycle (SDLC)
processes.
ii. Scope
The scope of this project is to develop a system that allows companies, organizations, or
individuals (called clients) manage users, patients, medications, locations, vendors, services and
contacts.
Mainly the system will include clients information along with all users registered under the
client, groups that is a collections of clients with the access to the same functions, and functions
that are system actions which are distributed to client groups and managed by super admin user
iiii. Overview
- Section 2: General description and main functions of the project and user characteristics
and system users are also discussed.
- Section 3: Requirements
- Gives the functional requirements, data requirements and assumptions made while
designing the EMR.
- Gives the user viewpoint of the product.
- Gives the specific requirements of the product.
- Discusses the external interface requirements and gives detailed description of
functional requirements.
- Section 4: Analysis is for diagrams to support the development of the software.
2. General Description
i. Product Functions
The main function the system will perform is to help healthcare organizations, individuals, or
businesses (referred to as “clients”) manage and patient health and other information as a SaaS.
7. Registration includes basic fields; additional information provided in the database guide.
8. Formatting, auth configuration like verifying identity using one time code, max three tries
of verifying identity in 15 mins, captcha implementation on every new attempt and other
important features for auth.
Client user registration
1. Sign up as a New user
2. Sign up as an Existing user
3. Add a new user by an Existing user
4. Add an existing user by an Existing user
1. The system must allow a person to register as a client by directing him/her to register
page
2. The registration process contains 3 steps:
a. Enter Email: Email conditions mentioned below should be checked
b. One Time Code
i. The user can enter a new email address if the code was not received. If
Send Code Again is clicked, the previous screen should be loaded
(Entering Email Screen) so the user can enter a different email address
ii. The user has 3 tries to enter the code or 15 minutes to enter a code.
iii. Fail: An history entry is made on the SA user overview page. Save the IP
address for multiple sign in attempts. Redirect the user to the login page.
Show a toast message to contact support for assistance.
iv. Password: the information page is loaded.
c. Information page: This page is broken up into 3 parts:
i. User information: The top 3 fields should be saved to SA user overview
page (First name - last name - phone number)
ii. Client information: The middle radio buttons determine client group.All
the client groups that have been enabled by super admin for sign up must
be available.
iii. Password: Saved as the user's password that is used for login.
3. The user that creates the new client becomes the creator of the client and considered as a
client admin.
Email Conditions:
1. The field should be checked for proper formatting. The formatting should follow these
rules.
2. Errors should appear below the field in red text.
3. Continue button should remain inactive until a proper email address is entered.
4. After the continue button is clicked, the CAPTCHA should load. The CAPTCHA should
pass before sending any one time passcode.
5. On successful CAPTCHA, the one time code page is loaded. CAPTCHA is disabled on
the development URL for testing purposes.
End Process Results:
From user side:
1. A new SA user overview page is created with a timeline history of the sign up process.
2. A new client overview page is created with a reference to the user.
3. The client overview page should show the user with the title "client admin".
1. This process describes a user that already exists in the system and will sign up again.
2. A user can sign up for one client group per email.
3. Register process for an existing user is as follow:
A. Enter Email: The email address should be checked to see if the user previously
signed up with the same email. As this process for existing users (email exists in
the database) the check result must be that the email exists. And email conditions
must be checked.
B. One Time Code: All the steps in 1) Sign up as a new user for one time code
should be repeated.
C. Information Page: This page is broken up into 3 parts:
I. User Information: The top 3 fields should be saved to the SA user
overview page (First name - last name - phone number). First name, last
name, contact information, profile pictures, etc... should be kept separately
and contained within each client.
II. Client Information: The middle radio buttons that represent client groups
should be available all for selection except the one that the user has signed
up with before and he is the creator of that client group.
III. Password: The set password part of the information page should be hidden
since the user already has a password set.
4. If the user signed up with the same email for all available client groups one by one and
there is only one option left for him/her or there are no client groups options left. Here is
the process that should be taken:
- When the page loads that has only one client group left to sign up a warning
message appears to warn the user that he has only one client group left to sign up
with this email.
- If the user signs up with the last client group option left and then tries to sign up
again a message appears that this email has signed up with all available client
groups and directs him/her to the login page.
1. A timeline entry should be made on the users existing SA user overview page. a new
history entry should be made "Signed up. OTP sent to [email address]" and timestamped.
1. This process describes the existing user (already registered with a client) adds another
existing user. The "Add new user" form should ask for email, first name, last name.
2. As the existing user completes the "Add new user" form, the user is added to the client's
users with a "Pending" status.
3. The new user receives an email with a link. The link should state "You have been added
as a user to [client name]", [link], "If you are unaware of this, you can ignore this email."
4. The user will not receive a link to set password as he/she already are registered in the
system.
5. The link should should
1. Change the user's pending status to active
2. Add a timeline entry on the SA user overview for the status change. The client
table should show the new status of active from pending.
2. Login
When a user logs in, the system should go through these checks in this order:
1. User enters email and password successfully. If login is unsuccessful after the 3rd
attempt, the user's account is inactivated
2. Check system status in SA user overview. Should be active. If inactive, contact support.
3. Client level checks
1. Check for active clients. A user can have associations with 1 or more clients. If all
clients have inactive status, contact support
2. Check the user status for the active clients.
3. If the user has 2 or more client associations with active status, the client selection
page should be presented.
4. If the user has an active user status with 1 active client, skip the client selection
page (Explained in the following C section) and continue to step 4.
4. Load dashboard
3. Dashboard Selection
1. A selection screen will be presented to the user if a user is associated with 2 or more
active clients.
2. After login, a page loads with the clients he/her is associated with and the user will select
the client to log into. After the selection is made, the dashboard should load.
5. Password
1. The system must allow the user to reset the password from the profile page by clicking on
password and requesting a change.
2. A link is sent to the user’s email. The user clicks the link then the user is allowed to
change his or her password.
3. The user must first enter the current password then 2 new fields for the new password,
then repeat the new password.
System Functions
General Overview
1. Basic Flow: Functions represent more like role policies or permissions that will be
assigned to client admin or client user in the following manner
a. Super Admin would assign functions to client group
b. Client group would be linked with 1 or more than one client admin
c. Client admin can further either assign functions to client users or create a user
Deployment
1. Deploying a function means granting a function to a client group. When a function is
deployed by super admin, it becomes available for a new or existing client group.
2. To activate a function for a client group, the super admin navigates to the clients page.
3. Select a client group from the list and a client group details page is displayed from where
he can choose the new function he wants to grant.
4. If a new function is added to a client group, all the client admins should be notified about
the new function.
System administrator is a type of user group that has irrevocable administrative permissions that
should not be used in the day-to-day administration of the organization.
Super admin is a special user that has the most access to the application. All other users are
considered standard users and belong to different client groups and user groups.
Summary
Client Admin
Client admin is the administrator for the client. A summary of functions performed by Client
Admin:
1. Client admin has the same functions as the client group that the client belongs to. These
functions are set by super admin.
2. Client admin does not create functions. A request for functions can be made to the system
by contacting support.
3. Client Admin can view the list of granted functions from the Functions Page.
4. Clicking on any function will open the function details page. This page will show
a. information about the function
b. sub-functions
c. timeline (inside right-pane)
d. users and user groups with access to the function
5. Functions (or sub-function to an existing function) can be granted / added to a user group.
In this situation, the client admin should be notified through email and notifications in the
system.
6. Client admin should be able to report a bug regarding any function.
Client Users
All users (except super admin) belong to clients. A client can have a user in these ways: A
person:
1. Signs up for an account with their email addresses. The user that signs up becomes the
client admin for the client.
2. Is added by another user of a client.
Summary
1. Perform basic user functions( Register, Login, Reset Password, Update Profile) Explained
below.
2. Perform functions that client admin grants to them.
3. Report a bug on a function. Reported bugs are tracked on the function details page for
super admin.
3. Requirements
i. External Interface Requirements
User Interfaces
The user interface for the software shall be compatible with any modern web browser such as
Chrome, Firefox, Opera, Brave, or Edge by which users can access to the system. The same
applies for the mobile version.
Hardware Interfaces
All clients and users shall be responsible for hardware issues since the application requires
internet access.
Software Interfaces
No 3rd party software is used till now
Communications Interfaces
No communication Interfaces will be integrated in the system now. A chat-bot will be integrated
in the future for customer support.
4. Function Examples
1. Users
a. Level 1
2. Add user
a. This process describes adding a new user by an existing user. Example: User Bob
is a user with client ABC. User Steve is new to the system. Steve's email address
will be added which makes him a new user.
b. The existing user (already registered with a client) adds the new user by email.
The "Add new user" form should ask for email, first name, last name.
c. The new user is added to the client's users with a "Pending" status.
d. On the back end, a new SA user overview page should be created when the email
is sent.
i. The user's information should be saved: First name, last name, and email
address.
ii. A timeline entry should be added
e. The new user receives an email with a link. The link should open a page called the
"Set password" page. Here the user should enter a password.
f. After successfully entering a password
i. The user should be redirected to the login page.
ii. A toast message should inform the user that their password has been
successfully saved and they can log in
iii. The system must allow client user to logout
3. Manage users (CRUD operations)
a. Client Admin can navigate to Users page through the dashboard.
b. Users page contains List of Users, List of User Groups.
i. There must be a FAB in the bottom right. When clicked two options
appear: Add user and Add user group.
c. If the client admin is the same one who created the account for the client there
will be no users except himself/herself in the list and highlighted as a client
admin.(Note: Client admin can add user if granted this function)
d. Clicking on any user will open CA user overview
e. Client admin can add/remove users
f. Client admin can manage the status of the user. Active/Inactive if not active the
user will not be able to login in his/her account.Client admin is not privileged to
edit any of other user's information.
g. Client admin can add/remove functions for a user
h. Removing any user by the client admin will remove the user from any user group
he/she is a member of.
4. Manage user group (CRUD operations)
a. Client admin can view all user groups.
b. Clicking on any of the user groups will open the user group overview.
c. There should be a sample user group shown to the client admin if there are no user
groups created yet.
d. Client admin can create a new user group.
e. Client admin can update details of each user group such as names of user groups.
f. Client admin can add/remove user groups.
g. Client admin can add/remove users from user groups.
h. Client admin can add/remove functions from the user group.
c. Client groups
1. A client group is a collection of clients with access to the same system functions.
2. Client groups would be listed on registration page if set by super admin.
3. Client group can't be deleted if it's already assigned to any client.
4. Client Admin possesses only the permissions assigned to their client group.
5. Client Group includes basic fields, and additional information is provided in the database
guide.
6. Super admin
a. Manages client groups and the client group functions.
b. Creates the client group and selects the functions and forms which he/her wants to
be associated with the group.
c. Can update the functions granted to a group.
d. Can change the client group of any client and can also change any permission.
e. Can create/modify/delete new client groups.
f. Can assign different functions as permissions to client groups.
1. Clients
1. A client is a company, organization, or individual that manages users, locations, and other
person's health information
2. Information (such as users, patients, locations, etc.) generated by the client admin should
be contained within the client. Any client can’t access information of another client.
3. The system must allow the super admin to access client’s overview page which shows
client details
1. Name
2. Assets,
3. Type(group type),
4. Status (Active - Inactive - Hidden)
5. Timeline Link: If the user clicks this tab, the timeline contents will load in the info
content space.
6. Address
7. Timezone
8. Creation date
9. Phone
a. Client's can have up to 5 phone numbers.
b. If 1 phone is provided, it is primary. If more than 1, a phone number must be set
as primary.
10. Email
a. Clients can have up to 3 email addresses.
b. If 1 email is provided, it is primary. If more than 1, an email address must be set
as primary.
2. Client Status
1. Client status is a higher priority than user status. If a client status changes from active to
inactive, all users will not be able to log in to the client until the client status changes
back to active.
2. Client status will affect all of the users of the client. Only system administrator can access
and modify client status.
Status
1. Active
a. After the client has the first user with active status, the client status will
automatically change to active.
b. Client status should automatically change to active after the first user status is
changed to active. Users are added with a pending status. The pending status is
changed to active after the user clicks the verification email link and the user's
email is verified.
c. The first user for all clients should be the client admin.
d. A user that logs in to a client with Active status has full read-write permissions
based on the user's title
2. Inactive
a. All client users will not have access to the website when client status is changed
to inactive. Only Super Admin can change a client's status.
b. All client users will be redirected to another page when logging in if client status
is inactive.
c. Client status comes before user status. This means user can not log in if client
status is inactive
3. Hidden
a. Clients with hidden status will not be shown on the client's main list.
4. Read
a. A user that belongs to a client with read status can’t make any updates. The user
can only view / read the existing information. If the user of the client wants to
make updates or changes, the client status must be changed to active by client
admin.
v. Non-Functional Requirements
a. Performance
Approaches How can we do speed optimization:
Brotli is a newer compression algorithm that can achieve higher compression ratios than GZIP.
Typically, Brotli can reduce file sizes by 20-30% compared to GZIP. This means that a 1MB file
could be compressed to 700-800KB with Brotli, while it would be compressed to 800-900KB
with GZIP.
Here is a table comparing the compression ratios of Brotli and GZIP for different file types:
Images
● All Images are powered with lazy loading
● All Images must in optimized size and in webP format
● Separate image versions for mobile and desktop versions.
There are around 300+ Images that are being used. I need to compress images in webp extension
which is modern and low size file type. I need to change all these 300+ pictures in term of
compression and file type.
I also need to implement lazy loading in images so that not all images are loaded once rather than
load only those images that are in viewport area. View Port is the visible web page not the web
page which is hidden and gets visible upon scrolling.
Also, we need to change image sizes for galleries. We must different versions like thumbnail
large images, thumbnail images should be loaded in sliders but large images only loaded when
use navigate through the images. It would required to work in backend as well.
DOM
We need to optimize Dom Manipulation. VUE uses virtual DOM called vNode to auto update
Dom based on states changes. We need to rerender the components only when it would be
required otherwise it would Kept our Dom Busy and will effect user experience
Cache
Make sure all static resources are properly cached so that if user visit the website again, browser
won’t send new requests to server to fetch assets again. Mark every asset with unique IDs
because if you updated an asset in server with same name, browser won’t fetch it because
browser would see that the asset is already in cache with same name so we need to assign
separate unique IDs along with asset name. Typically it’s auto done using Web Pack and we need
to write necessary configuration.
loading times. To streamline this process, we should create sprites for all SVG images so that a
single HTTP request can retrieve all necessary SVG assets.
If there are 100 svg files, browser make 100 separate requests to server causing high page
loading speed. Using Sprite, we compress all Svgs at once and same it as single svg file and then
at browser, we use any svg file from that compressed file.
Assets Minification
Assets should be minified properly which is not good in terms of website performance and
securities. Look at the code in a website resources in browser, it’s clearly readable and it also
increase the file size. So, we would build this by implementing custom web pack configuration.
Web Pack is responsible for building website for different environments.
Encryption
All the keys, tokents, auth info would be encrypted before saving into local storage, cookies,
sessions and cache.
b. Reliability
The system should be available and responsive when needed, and should not experience frequent
failures or crashes.
c. Availability
The system may be available 98 percent of the time and not being down.
d. Security
3.5.4.1 Data Transfer
The system shall use secure sockets that include any confidential client information.
The system shall automatically log out all clients after a period of inactivity.
The system shall not leave any cookies on the client's computer the user’s password.
The system shall not leave any cookies on the client’s computer containing any of the user’s
confidential information.
4. Analysis Models
i. Sequence Diagrams
a. Register Sequence Diagram