Open Hospital App (MVP)
AppHeader layout | OpenHospital logo | Facility’s Name | |
Breadcrumb | navigation menu | ||
Activity layout | First Tab | Activity |
Components
AppHeader
PatientDataForm
PatientSearchItem
First Tab
...
LoginActivity
DashboardActivity
NewPatientActivity
SearchPatientActivity
PatientDetailsActivity
EditPatientActivity
...
...
OpenHospital logo
...
Facility’s Name
...
Breadcrumb
...
navigation menu
...
Activity layout
...
First Tab
...
Activity
1. LoginActivity
It shoudl should NOT have show AppHeader
It should NOT show FirstTab
It should validate the username input;
username input is REQUIRED;
It should validate the password input;
password input is REQUIRED;
It should toggle the password visibility;
It should have a login and resetPassword mode;
login mode should have username and password input fields, and a "submit" button;
resetPassword mode should have an username input field and a "submit" button;
It should have a link that toggles the central panel to the resetPassword mode;
It should have a "back" button that toggles the central panel to the login mode;
It should reset the activity state to login mode after submitting the resetPassword's username input;
...
It should contain the OpenHospital logo on the left;
It should contain the Facility’s name;
It should contain the Breadcrumb navigator;
It should be child of a component with access to the user credentials;
It should have a navigation menu at the bottom-right corner;
It should have one button for each <enabled actions> expected for the user credentials;
3. DashboardActivity
It should NOT show FirstTab
It should have the AppHeader;
It should have access to the user credentials;
It should present the <enabled actions> expected for the user credentials;
MPV (New Patient and Search Patient credentials only)
It should have an action button that takes to NewPatientActivity;
It should have an action button that takes to SearchPatientActivity;
Future
it should be a composition of the <enabled actions>
...
5. NewPatientActivity
It should NOT show FirstTab
It should have the AppHeader;
It should have access to the user credentials;
It should have a PatientDataForm as a child component;
It should NOT populate the props' data field;
It should pass the "submit" button wording;
It should pass the callback function for performing the API call;
...
It should receive a patient object as prop;
It should show id, previousCode, name, profilePicture, age, lastUpdateDate, lastVisitDate
It should receive the routePrefix as prop, add the id and use it to redirect;
7. SearchPatientActivity
It should NOT show FirstTab
It should present patient's id and previousCode as main search params;
It should present name and taxNumber as secondary search params;
It should validate the name input;
name input is NOT required;
name input should contain only alphabetic characters;
It should validate surname input;
taxNumber input is NOT required;
It should toogle the results display between grid and table;
It should display the results in a grid or table according to the toggle;
Each grid item should contain a PatientSearchItem;
It should pass the patient object to the PatientSearchItem or to table;
8. PatientDetailsActivity
It should show FirstTab
It should have the AppHeader;
It should have access to the user credentials;
It should display the patient's information;
It should use the id from the URL's queryParams as key for retrieving the patient data;
It should prioritize getting data from the Redux store;
It should perform an API call as an alternative for retrieving the patient's data
It should display the patient's summary information as the first tab;
It should provide Edit button and pass the patient object for EditPatientActivity
9. EditPatientActivity
It should NOT show FirstTab
It should have the AppHeader;
It should have access to the user credentials;
It should have a PatientDataForm as a child component;
It should populate the props' data field;
It should pass the "submit" button wording;
It should pass the callback function for performing the API call;
...