...
LoginActivity
DashboardActivity
NewPatientActivity
SearchPatientActivity
PatientDetailsActivity
EditPatientActivity
1. LoginActivity
It shoudl should NOT have AppHeadershow 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;
...