Overview
HealthBook is for clinic receptionist who prefer to use a desktop app for managing doctors and patients information and appointments. It is optimized for receptionist who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Summary of contributions
-
Major enhancement: added the ability to add/delete a prescription of an appointment
-
What it does: allows the user (receptionist) to add/delete a prescription to add more relevant details to the appointment.
-
Justification: This allows the receptionist to keep a record of the prescription related to the appointment to have more information about the visit and patient’s conditions. It will also be useful in the event where patients forgets/is unsure about the prescription and this can be easily accessed.
-
Highlights: This enhancement value adds to the HealthBook and is one of the major features of a medical appointment. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required creating of new models and interaction with all components of the code.
-
-
Minor enhancement:
-
Added remark command that adds an unconstrained information snippet to each contact for each person’s place card for a quick view of the person’s details.
-
Made parameters non-case sensitive for all commands i.e
view-patient n/john doe
will view the patientJohn Doe
-
-
Code contributed: Functional code
-
Other contributions:
-
Implementation of new features:
-
Enhancements to existing features:
-
Removed case-sensitivity for parameters for all commands (Pull requests #125)
-
-
Documentation:
-
Community:
-
{you can add/remove categories in the list above}
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Adding remark to patient : remark
Adds a remark to the patient/doctor’s information. Input will override current remark. If input is empty, previous remark will be deleted.
Format: remark n/NAME [p/PHONE] r/REMARK
Parameter p/PHONE is only needed when there are duplicate names in HealthBook, so phone number is needed to differentiate them.
|
Examples:
-
remark n/John Doe r/Has chronic heart disease
-
remark n/Amanda Jane p/84739294 r/
Adding prescriptions to a patient’s appointment: add-prescription
Adds a prescription to the patient’s appointment with details of medicine name, dosage and number of times to consume
in a day.
Format: add-prescription APPOINTMENT_ID pn/MEDICINE_NAME pd/DOSAGE pc/CONSUMPTION_PER_DAY
Examples:
-
add-prescription 10001 pn/Paracetamol pd/2 pc/3
After adding the prescription, all commands that requires the prescription’s medicine name are non-case sensitive. |
Deleting prescriptions of a patient’s appointment: delete-prescription
Delete a prescription of the patient’s appointment by appointment ID and medicine name.
Format: delete-prescription APPOINTMENT_ID pn/MEDICINE_NAME
Examples:
-
delete-prescription 10001 pn/Paracetamol
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
Remark Feature
Current Implementation
Remark command allows user to input any information into a Person object with no restrictions. If an input is empty, the previous existing remark is deleted. This command can only be called after person is created.
Step 1. The user types in remark
in the command box followed by the parameters appointment_id r/some remark
Step 2. Upon hitting enter, the new remark will be visible in the Doctor/Patient’s contact. If input was empty, the previous remark will be deleted.
Add Prescription Feature
Current Implementation
The add prescription feature is facilitated by AddPrescriptionCommand
and AddPrescriptionCommandParser
This command is implemented such that it is able to add a Prescription
object for a specific Appointment
specified by appointment id.
Since Appointment
currently only stores Doctor
and Patient
as String
, thus appointment with the updated prescription will be updated for both
Doctor
and Patient
only if the appointment is upcoming and only updated for Patient
if the appointment is completed.
Step 1. The user types add-prescription
in the command box followed by the parameters APPOINTMENT_ID pn/MEDICINE_NAME pd/DOSAGE pc/CONSUMPTION_PER_DAY
.
Step 2. Upon hitting enter, the Prescription
will be created and added to the Appointment
.
Exception will be thrown if a medicine of the same name already exists in appointment regardless of dosage and consumption per day. Exception will be thrown if medicine that the patient is allergic to is added to the appointment. |
Prescription can be added to both upcoming and completed appointments |
Design considerations
Aspect: How to model Prescription
-
Alternative 1 (Current choice) : prescription is modelled by a
Prescription
object with 3 attributesmedicineName
,dosage
andconsumptionPerDay
-
Alternative 2 :
Prescription
object stores attributesmedicineName
as aString
anddosage
,consumptionPerDay
asint
.
Delete Prescription Feature
Current Implementation
The delete prescription is facilitated by DeletePrescriptionCommand
and DeletePrescriptionCommandParser
.
This command is implemented such that it is able to delete a Prescription object for a specific `Appointment
specified by appointment id.
Step 1. The user types delete-prescription
in the command box followed by the parameters APPOINTMENT_ID pn/MEDICINE_NAME
.
Step 2. Upon hitting enter, the Prescription
will be deleted from the Appointment
.
Exception will be thrown if medicine to be deleted does not exist in appointment. |
Prescription can be deleted from both upcoming and completed appointments |
Appendix A: Use Cases
(For all use cases below, the System is the HealthBook
and the Actor is the receptionist
, unless specified otherwise)
Use case: Register Doctor
MSS
-
User requests to register a Doctor into the HealthBook
-
User enters relevant details specified by command
-
HealthBook brings user to google log in page
-
User enters google login details
-
User closes google page and reopens HealthBook
-
HealthBook registers the doctor.
Use case ends.
Extensions
2a. User enters wrong format for command.
-
2a1. HealthBook shows an error message.
Use case resumes at step 2
2b. User enters a duplicate persons.
-
2b1. HealthBook shows an error message.
Use case resumes at step 2
3a. User closes google page without logging in.
-
3a1. HealthBook will become unresponsive
-
3a2. User closes and reopens Healthbook
Use case restarts from step 1
Use case: Register Patient
MSS
-
User requests to register a Patient into the HealthBook
-
User enters relevant details specified by command
-
HealthBook registers the patient.
Use case ends.
Extensions
2a. User enters wrong format for command.
-
2a1. Healthbook shows an error message.
Use case resumes at step 2
2b. User enters a duplicate persons.
-
2b1. Healthbook shows an error message.
Use case resumes at step 2
Use case: Delete Doctor/Patient
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to delete a specific person in the list
-
HealthBook deletes the person
Use case ends.
Extensions
-
2a. The list is empty.
Use case ends
-
3a. User enters a name that belongs to multiple contacts with different phone numbers
-
3a1. Healthbook shows an error message that prompts user to enter phone parameter.
Use case resumes at step 2
-
-
3b. User enters an invalid name and/or phone
-
3b1. Healthbook shows an error message.
Use case resumes at step 2
-
Use case: View person
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to view a specific person in list
-
HealthBook shows the person
Use case ends
Extensions
-
2a. The list is empty.
Use case ends
-
3a. User enters a name that belongs to multiple contacts with different phone numbers
-
3a1. Healthbook shows an error message that prompts user to enter phone parameter.
Use case resumes at step 2
-
-
3b. User enters an invalid name and/or phone
-
3b1. Healthbook shows an error message.
Use case resumes at step 2
-
Use case: List persons
MSS
-
User requests to list persons
-
HealthBook shows list of persons.
Use case ends.
Use case: Filter Doctor/Patient
MSS
-
User requests to filter doctors/patients
-
HealthBook shows list of doctors/patients
Use case ends.
Use case: Add Appointment
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to add an appointment to the HealthBook for a specific Doctor and Patient
-
HealthBook adds the person
Use case ends.
Extensions
-
3a. The given Doctor and/or Patient name is has a duplicate contact with a different phone number.
-
3a1. HealthBook shows an error and prompts user to input a phone number to differentiate.
Use case resumes at step 2
-
-
3b. User enters an invalid name and/or phone
-
3b1. Healthbook shows an error message.
Use case resumes at step 2
-
Use case: Delete Appointment
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to delete an appointment in the HealthBook for a specific appointmentId
-
HealthBook deletes the appointment
Use case ends.
Extensions
-
3a. The given Id is invalid.
-
3a1. HealthBook shows an error message.
Use case resumes at step 2.
-
Use case: Complete Appointment
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to complete a specific appointment in the list
-
HealthBook completes the appointment
Extensions
-
2a. The list is empty.
Use case ends.
-
3a. The given Id is invalid.
-
3a1. HealthBook shows an error message.
Use case resumes at step 2.
-
Use case: Add Prescription
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to add a specific prescription to a specific appointment in the list
-
HealthBook adds the prescription
Extensions
-
3a. The given Id is invalid.
-
3a1. HealthBook shows an error message.
Use case resumes at step 2.
-
-
3b. The given prescription’s medicine name already exists in HealthBook
-
3b1. HealthBook shows an error message.
Use case resumes at step 2.
-
-
3c. The given patient is allergic to the given prescription’s medicine name.
-
3c1. HealthBook shows an error message.
Use case resumes at step 2.
-
Use case: Delete Prescription
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to delete a specific prescription from a specific appointment
-
HealthBook deletes the prescription
Use case ends.
Extensions
-
2a. The list is empty.
Use case ends.
-
3a. The given id is invalid.
-
3a1. HealthBook shows an error message.
Use case resumes at step 2.
-
-
3b. The given prescription is invalid.
-
3b1. HealthBook shows an error message.
Use case resumes at step 2.
-
Use case: Add Medical History
MSS
-
User requests to list persons/filter-patients
-
HealthBook shows a list of persons/patients
-
User requests to add medical history to a specific person in the list
-
HealthBook adds the medical history of the patient.
Extensions
-
3a. The given Patient name has a duplicate contact with a different phone number.
-
3a1. HealthBook shows an error and prompts user to input a phone number to differentiate.
Use case resumes at step 2.
-
-
3b. User enters an invalid name and/or phone
-
3b1. Healthbook shows an error message.
Use case resumes at step 2.
-
-
3c. User enters a duplicate allergy/condition
-
3c1. HealthBook shows an error message.
Use case resumes at step 2.
-
Use case: Delete Medical History
MSS
-
User requests to list persons/filter-patients
-
HealthBook shows a list of persons/patients
-
User requests to delete medical history of a specific person in the list
-
HealthBook deletes the medical history of the patient.
Extensions
-
3a. The given Patient name has a duplicate contact with a different phone number.
-
3a1. HealthBook shows an error and prompts user to input a phone number to differentiate.
Use case resumes at step 2.
-
-
3b. User enters an invalid name and/or phone
-
3b1. Healthbook shows an error message.
Use case resumes at step 2.
-
-
3c. User enters an invalid allergy/ condition
-
3c1. HealthBook shows an error message.
Use case resumes at step 2.
-
Use case: Remark person
MSS
-
User requests to list persons
-
HealthBook shows a list of persons
-
User requests to add/delete a remark to a specific person in the list
-
HealthBook adds/deletes the remark.
Use case ends.
Extensions
-
3a. The given Person name has a duplicate contact with a different phone number.
-
3a1. HealthBook shows an error and prompts user to input a phone number to differentiate.
Use case resumes at step 2.
-
-
3b. User enters an invalid name and/or phone
-
3b1. Healthbook shows an error message.
Use case resumes at step 2.
-