By: Team CS2103-AY1819S1-T10-2 Since: Aug 2018

1. Introduction

HealthBook is for clinic receptionist who prefer to use a desktop app for managing doctors and patients information and appointments. HealthBook 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). If you can type fast, HealthBook can help you maintain a clean and concise information management of your doctors and patients more efficiently compared traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest healthbook.jar link: https://github.com/CS2103-AY1819S1-T10-2/main/releases.

  3. Copy the file to the folder you want to use as the home folder for your HealthBook.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • list : lists all patients and doctors

    • register-patientn/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : registers a patient named John Doe to the HealthBook.

    • delete-patientn/John Doe : deletes patient named John Doe

    • exit : exits the app

  7. Refer to Section 3, “Features” for details of each command.

3. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in register-patient n/NAME, NAME is a parameter which can be used as register-patient n/John Doe.

  • Items in square brackets are optional e.g n/NAME [al/ALLERGIES] [c/CONDITION] can be used as n/John Doe al/milk c/healthy or as n/John Doe al/milk.

  • Parameters can be in any order e.g. if the command specifies n/NAME p/PHONE_NUMBER p/PHONE_NUMBER n/NAME is also acceptable.

3.2. Registering a patient: register-patient

Registers a patient to the HealthBook. Patient is automatically tagged as a "Patient".
Format: register-patient n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS

Examples:

  • register-patient n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01

After registering the patient, all commands that requires the patient’s name are non-case sensitive for convenience.

3.3. Registering a doctor: register-doctor

Registers a doctor to the HealthBook. Doctor is automatically tagged as a "Doctor".
Format: register-doctor n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS

Login to Google Calendar is mandatory. If no login is done, the application will not be able to proceed. Please ensure login is done before proceeding back to the HealthBook.

Examples:

  • register-doctor n/Mary Jane p/98765432 e/maryj@example.com a/John street, block 123, #01-01

After registering the doctor, all commands that requires the doctor’s name are non-case sensitive.

3.4. Deleting a patient: delete-patient

Deletes a patient from the HealthBook by name and phone.
Format: delete-patient n/NAME [p/PHONE]

Parameter p/PHONE is only needed when there are duplicate names in HealthBook, so phone number is needed to differentiate them.

Examples:

  • delete-patient n/Jane Doe

  • delete-patient n/John Doe p/98264293

3.5. Deleting a doctor: delete-doctor

Deletes a doctor from the HealthBook by name and phone.
Format: delete-doctor n/NAME [p/PHONE]

Parameter p/PHONE is only needed when there are duplicate names in HealthBook, so phone number is needed to differentiate them.

Examples:

  • delete-doctor n/Amanda Jane

  • delete-doctor n/Mary Jane p/94726274

3.6. Viewing a patient: view-patient

Views a landing page of a patient on the HealthBook. This will display all information of the patient onto the HealthBook including their medical history, upcoming appointment and their past appointments.
Format: view-patient n/NAME [p/PHONE]

Parameter p/PHONE is only needed when there are duplicate names in HealthBook, so phone number is needed to differentiate them.
  • Views the patient and loads the information page of the patient with the specified NAME and/or PHONE.

  • The name/phone refers to the name/phone that the patient is registered under.

  • The name/phone must have been registered into the HealthBook.

Examples:

  • view-patient n/John Doe

  • view-patient n/Jane Doe p/93726273

3.7. Viewing a doctor: view-doctor

Views a landing page of a doctor on the HealthBook. This will display the doctor’s upcoming appointments.
Format: view-doctor n/NAME [p/PHONE]

Parameter p/PHONE is only needed when there are duplicate names in HealthBook, so phone number is needed to differentiate them.
  • Views the doctor’s upcoming appointments with the specified NAME and/or PHONE.

  • The name/phone refers to the name/phone that the doctor is registered under.

  • The name/phone must have been registered into the HealthBook.

Examples:

  • view-doctor n/Amanda Jane p/93726272

  • view-doctor n/Mary Jane

3.8. Listing all patients and doctors : list

Shows a list of all patients and doctors in the HealthBook.
Format: list

3.9. Filtering patients from list : filter-patient

Shows a list of all patients in the HealthBook.
Format: filter-patient

list command has to be called after filter-patient is called before proceeding with other command operations

3.10. Filtering doctors from list : filter-doctor

Shows a list of all doctors in the HealthBook.
Format: filter-doctor

list command has to be called after filter-doctor is called before proceeding with other command operations

3.11. Booking an appointment: add-appointment

Book a doctor’s appointment for the patient. An ID of this appointment will be generated.
Format: add-appointment np/PATIENT_NAME [pp/PATIENT_PHONE] nd/DOCTOR_NAME [pd/DOCTOR_PHONE] d/DATE_TIME

Parameter p/PHONE is only needed when there are duplicate names in HealthBook, so phone number is needed to differentiate them.
  • Date and time should be in the format yyyy-MM-dd HH:mm

Examples:

  • add-appointment np/Jane Doe pp/92937272 nd/Amanda Jane pd/94827284 d/2018-12-12 13:00

  • add-appointment np/John Doe nd/Mary Jane d/2018-10-17 15:00

3.12. Deleting an appointment delete-appointment

Delete a doctor’s appointment for the patient by its ID.
Format: delete-appointment APPOINTMENT_ID

  • Only able to delete upcoming appointments

Examples:

  • delete-appointment 10001

3.13. Completing an appointment complete-appointment

Complete an appointment that has already passed.
Format: complete-appointment APPOINTMENT_ID

  • Only able to complete past appointments

  • Not allowed to complete future appointments

Examples:

  • complete-appointment 10001

3.14. 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

  • Each prescription is tied to an appointment.

  • There cannot be a duplicate of drug name for that particular appointment.

  • Drug that patient is allergic to cannot be added

After adding the prescription, all commands that requires the prescription’s medicine name are non-case sensitive.

3.15. 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

3.16. 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.

3.17. 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.

3.18. 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/

3.19. Listing entered commands : history

Lists all the commands that you have entered in reverse chronological order.
Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

3.20. Clearing all entries : clear

Clears all entries from the HealthBook.
Format: clear

3.21. Exiting the program : exit

Exits the program.
Format: exit

3.22. Saving the data

HealthBook data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

3.23. Tab to autocomplete commands

In the command box, user can type the first few characters of the command and tab to autocomplete it.

3.24. Non case sensitive parameters

All alphanumeric parameters for commands are not case sensitive except for Address and Email.

3.25. Remind patient on their upcoming appointment [coming soon in v2.0]

Remind a patient on their upcoming appointment. This will send a message to the patient via an external platform to inform them about their appointment.

3.26. Remind all patient on their upcoming appointment [coming soon in v2.0]

Remind all patient will upcoming appointment this week. This will send a message to the patient via an external platform to inform them about their upcoming appointment.

4. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous HealthBook folder.

5. Command Summary

  • Register patient register-patient n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS
    e.g. register-patient n/John Doe p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665

  • Register doctor register-patient n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS
    e.g. register-doctor n/Mary Jane p/12224444 e/maryjane@example.com a/12, Clementi Rd, 1234665

  • Delete patient : delete-patient n/NAME [p/PHONE]
    e.g. delete-patient n/John Doe p/84729292

  • Delete doctor : delete-doctor n/NAME [p/PHONE]
    e.g. delete-doctor n/Mary Jane

  • View patient : view-patient n/NAME [p/PHONE]
    e.g. view-patient n/John Doe p/84729292

  • View doctor : view-doctor n/NAME [p/PHONE]
    e.g. view-doctor n/Mary Jane

  • List : list

  • Filter patients : filter-patient

  • Filter doctors : filter-doctor

  • Book appointment : add-appointment np/PATIENT_NAME [pp/PATIENT_PHONE] nd/DOCTOR_NAME [pd/PATIENT_PHONE] d/DATE_TIME
    e.g. add-appointment np/John Doe nd/Mary Jane pd/93736272 d/2018-10-17 15:00

  • Delete appointment : delete-appointment APPOINTMENT_ID
    e.g. delete-appointment 10001

  • Complete appointment : complete-appointment APPOINTMENT_ID
    e.g. complete-appointment 10001

  • Add prescriptions : add-prescription APPOINTMENT_ID pn/MEDICINE_NAME pd/DOSAGE pc/CONSUMPTION_PER_DAY
    e.g. add-prescription 10001 pn/Paracetamol pd/2 pc/3

  • Delete prescriptions : delete-prescription APPOINTMENT_ID pn/MEDICINE_NAME
    e.g. delete-prescription 10001 pn/Paracetamol

  • Add allergies or conditions : add-medical-history n/NAME [al/ALLERGIES] [c/CONDITIONS] e.g. add-medical-history n/John Doe al/penicillin,milk c/subhealthy,hyperglycemia

  • Delete allergies or conditions : delete-medical-history n/NAME [al/ALLERGIES] [c/CONDITIONS] e.g. delete-medical-history n/John Doe al/penicillin,milk c/subhealthy,hyperglycemia

  • Remark : remark n/NAME [p/PHONE] r/REMARK
    e.g remark n/John Doe p/84729292 r/Has chronic heart disease

  • History : history

  • Clear : clear

  • Exit : exit