PROJECT: HealthBook


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

  • Code contributed: Functional code

  • Major enhancement: added the ability to add/delete MedicalHistory

    • What it does: This allows the user to add/delete medical history for a certain patient in the HealthBook.

    • Justification: This feature enables the user to have knowledge of the medical history which contains allergy and condition of a patient.

    • Highlights: This enhancement is an essential feature for HealthBook. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing storage and model.

    • Credits: giamjuxian for the Phone part inside add-medical-history and delete-medical-history commands.

  • Major enhancement: added the ability to filter doctors/patients

    • What it does: This allow the user to filter doctors/patients in the HealthBook.

    • Justification: This feature enables the user to have a clear view of patients and doctors.

  • Other contributions:

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 medical condition or allergy to patient: add-medical-history

Add a condition or allergy to the patient’s medical history. This will then be displayed on the users information page.
Format: add-medical-history n/NAME [al/ALLERGIES] [c/CONDITIONS]

Allergies and conditions should only contain alphanumeric characters and spaces, and they should not be blank.

Examples:

  • add-medical-history n/John Doe al/penicillin,milk c/subhealthy,hyperglycemia

  • add-medical-history n/John Doe al/penicillin,milk

  • add-medical-history n/John Doe c/subhealthy

  • Either allergy or condition must be provided.

  • Duplicated allergy or condition is not allowed.

  • Allergies and conditions should only contain alphanumeric characters and spaces, and they should not be blank.

After adding the condition/allergy, all commands that requires the allergy/condition are non-case sensitive.

Deleting medical condition or allergy to patient: delete-medical-history

Delete a condition or allergy to the patient’s medical history. This will then be removed on the patient’s information page.
Format: delete-medical-history n/NAME [al/ALLERGIES] [c/CONDITIONS]

Examples:

  • delete-medical-history n/John Doe al/penicillin,milk c/subhealthy,hyperglycemia

  • delete-medical-history n/John Doe al/penicillin,milk

  • delete-medical-history n/John Doe c/subhealthy

  • Either allergy or condition must be provided.

  • Input allergy or condition must exist in the HealthBook.

  • Allergy and condition is NOT case sensitive (EGG and egg are treated as the same).

  • Allergies and conditions should only contain alphanumeric characters and spaces, and they should not be blank.

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.

Add Medical History Feature

Current Implementation

The add medical history feature is facilitated by AddMedicalHistoryCommand and AddMedicalHistoryCommandParser. This command is implemented such that it is able to add Allergy AND/OR Condition to MedicalHistory object for a specific Patient specified by name.

AddMedicalHistorySequenceDiagram
Figure 1. Add Medical History Sequence Diagram

Step 1. The user types in add-medical-history in the command box followed by the parameter n/John Doe al/penicillin,milk c/subhealthy,hyperglycemia

For multiple inputs in the same field, use comma , to separate. You can only omit either ALLERGY parameter or CONDITION parameter. Allergies and conditions should only contain alphanumeric characters and spaces, and they should not be blank.

Step 2. Upon hitting enter, the allergies AND/OR conditions of MedicalHistory will get added

Exception will be thrown if inputs for both field are blank.

Design Consideration

Aspect: The way to model MedicalHistory
  • Alternative 1 (Current choice): Model Allergy and Condition as classes. AddMedicalHistoryCommand contains ArrayLists of Allergy and Condition.

  • Alternative 2 : Treat allergy and condition as Strings. AddMedicalHistoryCommand contains two ArrayLists of String.

Delete Medical History Feature

Current Implementation

The delete medical history feature is facilitated by DeleteMedicalHistoryCommand and DeleteMedicalHistoryCommandParser. This command is implemented such that it is able to delete Allergy AND/OR Condition from MedicalHistory object for a specific Patient specified by name.

DeleteMedicalHistorySequenceDiagram
Figure 2. Delete Medical History Sequence Diagram

Step 1. The user types in delete-medical-history in the command box followed by the parameter n/John Doe al/penicillin,milk c/subhealthy,hyperglycemia

For multiple inputs in the same field, use comma , to separate. You can only omit either ALLERGY parameter or CONDITION parameter. Allergies and conditions should only contain alphanumeric characters and spaces, and they should not be blank.

Step 2. Upon hitting enter, the Allergy AND/OR Condition of MedicalHistory will get deleted

Exception will be thrown if inputs for both field are blank. Exception will be thrown if given input is not in the original medical history.
Aspect: The way to model MedicalHistory
  • Alternative 1 (Current choice): Model Allergy and Condition as classes. AddMedicalHistoryCommand contains ArrayLists of Allergy and Condition.

  • Alternative 2 : Treat allergy and condition as Strings. AddMedicalHistoryCommand contains two ArrayLists of String.