User Guide
Healthcare Xpress is a desktop app for managing patients that require home-visits and nurses, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Healthcare Xpress can get your contact management tasks done faster than traditional GUI apps.
Quick start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest healthcarexpress.jar.
-
Copy the file to the folder you want to use as the home folder for your Healthcare Xpress Record System.
-
Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

-
Type the command in the command box and press Enter to execute it. e.g. typing
helpand pressing Enter will open the help window.
Some example commands you can try:-
list: Lists all contacts. -
addc/N n/Jane p/98723432 e/jason@example.com g/F t/Asthma: Adds a nurse namedJaneto the Healthcare Xpress book. -
addc/P n/John p/98765432 e/john@example.com g/M a/Bishan street, block 123, #01-01 t/Asthma ds/2022-12-12,3: Adds a patient namedJohnto Healthcare Xpress book. -
assignid/1 id/3 dsi/1: Assigns the first dateslot of the patient with id of 3 to the nurse with id of 1. -
deleteid/3: Deletes the nurse of patient with an id of 3. -
clear: Deletes all contacts. -
exit: Exits the app.
-
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. inadd n/NAME,NAMEis a parameter which can be used asadd n/John Doe. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]can be used asn/John Doe t/friendor asn/John Doe. -
Items with
… after them can be used multiple times including zero times.
e.g.[t/TAG]…can be used as ` ` (i.e. 0 times),t/friend,t/friend t/familyetc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable. -
If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678, onlyp/56785678will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp.
Additional information:
-
HomeVisits are the visits to the patient’s home that the nurse has to attend to. They are displayed in the format
Date and Time : [UID] Patient Uid. They cannot be added using the add command. Instead, they can only be added using the assign command. -
HomeVisit DateSlots refer to home visit date slots of the patient. They are displayed in the format
[ ][ ] Date and Time.-
The first bracket indicates if this date slot has been assigned to a nurse. (Blank
[ ]- not assigned,[A]- assigned). -
The second bracket indicates if this date slot has passed and visited. (Blank
[ ]- the date slot has not passed,[V]- the date slot has passed and been automatically marked as visited,[FV]- the date slot has passed but the nurse failed to visit).
-
Viewing help : help
Opens the help dialog, where help info for each command can be viewed.
Format: help

Tips:
- You may look at the bottom of the miniature Healthcare Xpress to see summary of code use.

Adding a nurse or patient: add
- Adds a patient to the Healthcare Xpress Record System.
Format: add c/P n/NAME p/PHONE_NUMBER e/EMAIL g/GENDER a/ADDRESS [t/TAG]… [ds/DATE_AND_SLOT]…
Tips:
-
A patient can have any number of tags (including 0).
-
A patient can have any number of home-visit date and slot (including 0).
-
Date and slot need to be in the format of
yyyy-MM-dd,SLOT_NUMBER, eg2022-11-11,2. -
The slot timing is fixed and slots are only from 10am to 4pm.
-
Slot 1: 10am, Slot 2: 12pm, Slot 3: 2pm, Slot 4: 4pm. The
SLOT_NUMBERcan only be from 1 to 4. -
To add a patient, type
c/Pspecifically.
Examples:
add c/P n/John p/98765432 e/john@example.com g/M a/Bishan street, block 123, #01-01 t/asthma ds/2022-12-12,4add c/P n/Jackson g/M t/heartDisease a/Bishan Street 32, Singapore 291038 #04-11 p/9019390 e/jackson@gmail.com ds/2022-11-11,3 ds/2022-12-12,3

- Adds a nurse to the Healthcare Xpress Record System
Format: add c/N n/NAME p/PHONE_NUMBER e/EMAIL g/GENDER a/ADDRESS [t/TAG]… [ud/UNAVAILABLE_DATE]…
Tips:
-
A nurse can have any number of tags (including 0).
-
A nurse can have any number of unavailable dates (including 0).
-
Unavailable dates must be in
yyyy-MM-ddformat, eg2022-11-11. -
You may type it in any order.
-
To add a nurse, type
c/Nspecifically.
Examples:
add c/N n/Jason p/98723432 e/jason@example.com g/M a/Blk 855 Woodlands Street 83, Singapore 730855, block 123, #01-01 t/asthma ud/2022-11-11add c/N n/Lily g/F p/92091883 e/lily@gmail.com ud/2022-11-11 a/Woodland Street 21 Block 211 #01-02 t/heartDiseaseSpecialist

Listing nurses or patients : list
Shows a list of specified nurses or patients, or all nurses and patients if no specifications were provided.
Format: list [c/CATEGORY] [t/TAG] [g/GENDER] [a/ADDRESS]
ADDRESS: Non-exact address matching (e.g. Searching for an returns Ang Mo Kio, Woodlands)
CATEGORY: Only accepts N for NURSES or P for PATIENTS. (case-insensitive)
GENDER: Only accepts M for MALE or F for FEMALE. (case-insensitive)
TAG: Exact, case-sensitive tag matching (e.g. Searching for dia does not return DIABETIC)
Examples:
-
list c/P t/DIABETIC g/M- Lists all the male diabetic patients enrolled in the database. -
list c/P a/Bugis t/heartDisease- Lists all the patients tagged with heart disease in the Bugis region. -
list c/N- Lists all the nurses enrolled in the database.

Editing a person : edit
Edits an existing person in the Healthcare Xpress Record System.
Format: edit id/ID [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]… [ds/DATE_AND_SLOT]… [dsi/DATE_AND_SLOT_INDEX]… [ud/UNAVAILABLE_DATE]… [udi/UNAVAILABLE_DATE]…
- Edits the person with the specified
ID. - The ID refers to the unique ID number shown in the displayed person list.
- The ID must be a positive integer 1, 2, 3, …
- At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
- You can remove all the person’s tags by typing
t/without specifying any tags after it. - The
DATE_AND_SLOT_INDEXis the index of the date and slot list of a patient starting from 1. - When editing date and slot, there are 4 options:
- To delete all the existing date and slot of a patient: you can type
ds/ordsi/ords/ dsi/without specifying a date and slot or its index after it. - To delete a specific date and slot of a patient: you can type
ds/ dsi/TO_BE_DELETED_DATE_AND_TIME_INDEXordsi/TO_BE_DELETED_DATE_AND_TIME_INDEX. The to be deleted date and slot index is the index of the specific date and slot you want to delete. - To add a new date and slot of a patient: you can type
ds/NEW_DATE_AND_SLOT dsi/ords/NEW_DATE_AND_SLOT. - To change a specific date and slot of a patient: you can type
ds/UPDATE_DATE_AND_SLOT dsi/TO_BE_UPDATED_DATE_AND_SLOT_INDEX. The date and slot at this index in the list will be updated to the new date and slot given by you.
- To delete all the existing date and slot of a patient: you can type
- You can only use
ds/anddsi/for patients. Nurses do not have any home-visit dates and slots. - The unavailable date works similar to the date and time edit, only using different indicators
ud/andudi/to indicate the date and the index. - The unavailable date is only applicable to nurses.
Caution:
-
When changing a date slot in the existing list, if the old date slot is assigned, it will be deassigned and the new date slot will be in “not assigned status”.
-
When changing an unavailable date in the existing list or adding a new unavailable date in the existing list from a nurse, the date slot assigned to that nurse will be checked against the unavailable date. If the date slot is on the same day with the unavailable date, it will auto deassign that date slot from the nurse.
Examples:
-
edit id/1 p/91234567 e/johndoe@example.comEdits the phone number and email address of the nurse/patient with id 1 to be91234567andjohndoe@example.comrespectively. -
edit id/2 n/Betsy Crower t/Edits the name of the nurse/patient with id 2 to beBetsy Crowerand clears all existing tags. -
edit id/2 dsi/1 ds/2022-12-11,1Change the first date and time of the patient with id 2 to2022-12-11,1. -
edit id/1 e/bsy@gmail.com ud/2022-12-10 p/9029901Change the email tobsy@gmail.comand phone to9029901and add unavailable date2022-12-10to the nurse with id 1.

Locating patients or nurses by name: find
Finds patients or nurses in the database whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g
hanswill matchHans - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans - Only the name is searched.
- Only full words will be matched e.g.
Hanwill not matchHans - Persons matching at least one keyword will be returned (i.e.
ORsearch). e.g.Hans Bowill returnHans Gruber,Bo Yang
Examples:
-
find JohnreturnsjohnandJohn Doe -
find alex davidreturnsAlex Yeoh,David Li
-
find JasonreturnsJason

Deleting a nurse or a patient : delete
Deletes the specified nurse or patient from the record system.
Format: delete id/ID
- Deletes the nurse or patient with the specified
ID. - The ID refers to the unique ID number shown in the displayed person list.
- The ID must be a positive integer 1, 2, 3, …
Examples:
-
listfollowed bydelete id/2deletes the nurse/patient with an id of 2. -
delete id/10deletes the nurse/patient with an id of 10.

Assigning a patient’s homevisit date slot to a nurse : assign
Assigns a specific patient’s date slot(s) to a nurse.
Format assign id/NURSE'S_ID id/PATIENT'S_ID [dsi/DATE_AND_SLOT_INDEX]…
- Assigns the date slots of the patient with the specified ‘PATIENT’S_ID’ to the nurse with the specified ‘NURSE’S_ID’.
- The ID refers to the unique ID shown in the displayed person list.
- The ID must be a positive integer 1, 2, 3, …
- There must be 2 (and only 2) IDs, 1 belonging to a patient and 1 belonging to a nurse.
- There is no specific order for the 2 IDs. (i.e. The patient’s id or the nurse’s id can come first, as long as one belongs to a patient and the other belongs to a nurse.)
- The assign command can have any number of date and slot index (including 0).
- If the ‘DATE_AND_SLOT_INDEX’ is not indicated (0), then all the date slot of the patients will be assigned to the nurse.
- If the ‘DATE_AND_SLOT_INDEX(ES)’ is indicated, then the date slot with the respective index(es) in the displayed dateslot list will be assigned to the nurse.
- When assigning, it will check whether there are time clashes and ensures that the nurse is not unavailable on that day.
Examples:
-
assign id/1 id/2assign all the date slots of patient with id of 2 to nurse with id of 1. -
assign id/2 id/1 dsi/2assign the date slot with index 2 in the dateslot list of patient with id of 2 to nurse with id of 1. -
assign id/1 id/7 dsi/3assign the third date slot in the dateslot list of patient with id 7 to nurse with id 1.

Deassigning a patient’s homevisit date slot from a nurse : deassign
Deassigns a specific patient’s date slot from a nurse.
Format deassign id/ID [dsi/DATE_AND_SLOT_INDEX]…
- The ‘ID’ can belong to either a patient or a nurse.
- The deassign command can have any number of date and slot index (including 0).
- If it is a patient id and no date and slot index is indicated, it will deassign all the date slots of the patient from the respective nurse.
- If it is a patient id and date and slot index is indicated, it will deassign the specific date slots (with the date and slot index indicated) of the patient from the respective nurse.
- If it is a nurse id and no date and slot index is indicated, it will deassign all the homevisits of the nurse and the respective patient’s date slot will change to
not assignedstatus. - If it is a nurse id and date and slot index is indicated, it will deassign the specified homevisits of the nurse (with the date and slot index indicated) and the respective patient’s date slot will change to
not assignedstatus.
Examples:
-
deassign id/1deassigns all the date slots of nurse with id of 1. -
deassign id/2 dsi/2deassigns the date slot with index 2 in the dateslot list of patient with id of 2. -
deassign id/1 dsi/2deasigns the second home visits in the homevisit list of nurse with id of 1.

Unmarking a patient’s dateslot : unmark
Unmarks a specific patient’s specific dateslot in the records system, indicating a failed visit.
Format: unmark id/PATIENT_ID dsi/DATE_AND_SLOT_INDEX
- Unmarks the patient with the specified ‘ID’ as having a failed visit.
- The ID refers to the unique ID shown in the displayed person list.
- The ID must be a positive integer 1, 2, 3, …
- The ID must belong to a patient.
- The DATE_AND_SLOT_INDEX must be indicated and only 1 can be indicated.
- The date that is to be unmarked must be a date that has passed. eg, if today is 2022-11-11, the date to be unmarked must be a date before 2022-11-11.
Examples:
-
unmark id/7 dsi/1unmarks the dateslots of index 1 in the dateslot list of the patient with id of 7.

Undo unmarking a patient as visited : undounmark
Undoes the unmarking of a specific patient’s specific dateslot in the records system, indicating that the visit was successful.
Format: undounmark id/ID dsi/DATE_SLOT_INDEX
- Undo unmark of the specific dateslot with specified ‘DATE_SLOT_INDEX’ of a patient with the specified ‘ID’ as having been visited.
- This feature is for user to undo the unmark fail visit date slot so that if a patient was marked as failed visit by accident, this command can be used to undo that and the dateslot’s status will be reverted to
visited. - The ID refers to the unique ID shown in the displayed person list.
- The ID must be a positive integer 1, 2, 3, …
-
listorfindoperations can be performed first to get the ID of the desired patient. - If the ‘Date_Slot_Index’ refers to a dateslot that has not passed, or its status is already
visited, the command will be ignored.
Examples:
-
undounmark id/7 dsi/1undo unmarks the first dateslot of the patient with id of 7 as having been visited.

Check for similar persons : checkSimilar
Checks and returns a list of similar persons so that the user can check if any errors has been made in entries
Format: checkSimilar
Tip:
checkSimilarchecks forname,phone,gender,tags,addressand returns both people if they match 5 out of 6 conditions.

Updating a patient’s emergency contact information: updatecontact
Updates a patient’s contact information for next-of-kin or attending physician.
Format: updatecontact id/PATIENT'S_ID c/CATEGORY n/CONTACT_NAME p/CONTACT_PHONE e/CONTACT_EMAIL
- PATIENT’S_ID: Unique ID of the patient whose emergency contact is to be updated.
- CATEGORY: Only accepts
Kfor next-of-kin orDfor attending physician. - CONTACT_NAME: Name of the emergency contact.
- CONTACT_PHONE: Phone number of the emergency contact.
- CONTACT_EMAIL: Email address of the emergency contact.
- Note: The UID must belong to a patient.
- Note: Only
KorDare accepted for category. - Note: This command replaces the current next-of-kin or attending physician contact info, if there is already an existing one.
Examples:
-
updatecontact id/3 c/K n/John Doe p/81234567 e/johndoe@example.com- updates NoK contact information for patient UID 3.
-
updatecontact id/3 c/D n/kw p/9013890 e/kw@gmail.com- updates attending physician contact information for patient UID 3.

Clearing all entries : clear
Clears all entries from the address book.
Format: clear
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
Healthcare Xpress data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
Healthcare Xpress data is saved as a JSON file [JAR file location]/data/healthcarexpress.json. Advanced users are welcome to update data directly by editing that data file.
Caution:
-
If your changes to the data file makes its format invalid, Healthcare Xpress Record System will discard all data and start with an empty data file at the next run.
-
NOT RECOMMENDED : It is not recommended to change the ‘date slot’ of a patient and ‘homevisits’, ‘unavailable date’ and ‘fully scheduled date’ of a nurse in the file. The system is unable to check the correctness and whether there is time clash and other issues if you change it manually in the data file.
Archiving data files [coming in v2.0]
Details coming soon …
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 AddressBook home folder.
Command summary
| Action | Format, Examples | |
|---|---|---|
| Add (Nurse) |
add c/N n/NAME p/PHONE_NUMBER e/EMAIL g/GENDER a/ADDRESS [t/TAG]… [ud/UNAVAILABLE_DATE]… e.g., add c/N n/Jason p/98723432 e/jason@example.com g/M t/asthma a/Yishun Street 211, block 230, #03-03 ud/2022-11-11
|
|
| Add (Patient) |
add c/P n/NAME p/PHONE_NUMBER e/EMAIL g/GENDER a/ADDRESS [ds/DATE_AND_SLOT]… [t/TAG]… e.g., add c/P n/John p/98765432 e/john@example.com g/M a/Bishan street, block 123, #01-01 t/Asthma ds/2022-12-12,2
|
|
| Assign |
assign id/PATIENT_ID id/NURSE_ID [dsi/DATE_SLOT_INDEX]… e.g., assign id/1 id/2 dsi/2
|
|
| Clear | clear |
|
| Deassign |
deassign id/ID [dsi/DATE_SLOT_INDEX]… e.g., deassign id/1 dsi/2
|
|
| Delete |
delete id/IDe.g., delete id/3
|
|
| Edit |
edit id/ID [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]… [ds/DATE_SLOT]… [dsi/DATE_SLOT_INDEX]… [ud/UNAVAILABLE_DATE]… [udi/UNAVAILABLE_DATE_INDEX]…e.g., edit id/2 n/James Lee e/jameslee@example.com
|
|
| Find |
find KEYWORD [MORE_KEYWORDS]e.g., find James Jake
|
|
| Help | help |
|
| List |
list [c/CATEGORY] [t/TAG] [g/GENDER] [a/ADDRESS]e.g., list c/n
|
|
| Unmark |
unmark id/PATIENT_ID dsi/DATE_SLOT_INDEX e.g., unmark id/1 dsi/1
|
|
| UndoUnmark |
undounmark id/PATIENT_ID dsi/DATE_SLOT_INDEX e.g., undounmark id/1 dsi/1
|
|
| CheckSimilar | checkSimilar |
|
| UpdateContact |
updatecontact id/PATIENT_ID c/CATEGORY n/CONTACT_NAME p/CONTACT_PHONE e/CONTACT_EMAIL e.g., updatecontact id/3 c/D n/Farihah p/2901939 e/hah@gmail.com
|