User Guide
Health Connect
Health Connect is an application designed to streamline client management for Singapore based healthcare professionals. It allows users to efficiently track client details and appointments, simplifying the management process.
Table of Contents
- Quick Start
- Features
- Command Format
- Parameter Constraints
- Viewing Help:
help
- Adding a Person:
add
- Viewing All Patients
view
- Editing a Patient:
edit
- Locating Patients by Name:
find
- Locating Patients by Features:
filter
- Deleting a Patient:
delete
- Adding Or Updating Appointment Date and Time to Patient:
date
- Seeing the Schedule for the Day:
schedule
- Clearing All Entries:
clear
- Exiting the Program:
exit
- Data
- FAQ
- Known Issues
- Command Summary
Quick Start
For Windows Users:
- Ensure you have Java
17
installed in your Computer.- Open Command Prompt. You can do this by clicking the Windows Start or Search button and type
cmd
. - Once Command Prompt is open, type:
java -version
and clickEnter
. - If Java
17
is displayed, you are good to go! Proceed to Step 3. - Otherwise, proceed to Step 2.
- Open Command Prompt. You can do this by clicking the Windows Start or Search button and type
- If you do not have Java
17
from the previous step, install the correct version of Java.- Proceed to the official website to download Java
17
. - Download the appropriate installer for Windows.
- After installation, follow the instructions in Step 1.
- Proceed to the official website to download Java
- Download the latest jar file here.
- Copy the file to the folder you want to use as the home folder for Health Connect. The home folder should only contain the jar file.
- Use Command Prompt to open the JAR file.
- Find the file path of the file you just copied. To do so, right-click on the file in the folder and press
Properties
. - Check the File Path by noticing the path after your username under Location.
For example, in this case, the required
FILEPATH
will beOneDrive/Documents/CS2103T/AddressBook
- In Command Prompt, enter
cd FILEPATH
, replacingFILEPATH
with your own path obtained. Following the previous example, you should entercd OneDrive/Documents/CS2103T/AddressBook
as follows: - In Command Prompt, enter
java -jar healthconnect.jar
. - A GUI similar to the screenshot below should appear in a few seconds.
- Find the file path of the file you just copied. To do so, right-click on the file in the folder and press
- 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.
Some example commands you can try:view
: Displays all contacts.add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 t/High Risk m/Wheat
: Adds a contact namedJohn Doe
to the Address Book.delete n/John Doe
: Deletes contact namedJohn Doe
from the current list.filter t/High Risk
: Displays all entries which are taggedHigh Risk
.clear
: Deletes all contacts.exit
: Exits the app.
- Refer to the Features below for details of each command.
For Mac Users:
- Ensure you have the
Azul
version of Java17
installed in your Computer.- Open Terminal. You can do this by searching for it using Spotlight Search. To do so, press
Command + Space
and search “Terminal”. - Once Terminal is open, type:
java -version
and clickEnter
. - If Java
17
andZulu17
are displayed, you are good to go! Proceed to step 3. - Otherwise, proceed to step 2.
- Open Terminal. You can do this by searching for it using Spotlight Search. To do so, press
- If you do not have the
Azul
version of Java17
from the previous step, install the correct version of Java by following the instructions on this page.- After installation, follow the instructions in Step 1.
- After installation, follow the instructions in Step 1.
- Download the latest jar file here.
- Copy the file to the folder you want to use as the home folder for Health Connect. The home folder should only contain the jar file.
- Use Terminal to open the JAR file.
- Find the file path of the file you just copied. To do so, right-click on the file in Finder and press
Get Info
. - Check the File Path by noting the path after your username under Where.
For example, in this case, the required
FILEPATH
will beDocuments/CS2103T/AddressBook
- In Terminal, enter
cd FILEPATH
, replacingFILEPATH
with your own path obtained. Following the previous example, you should entercd Documents/CS2103T/AddressBook
as follows: - In Terminal, enter
java -jar healthconnect.jar
. - A GUI similar to the below should appear in a few seconds.
- Find the file path of the file you just copied. To do so, right-click on the file in Finder and press
- 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.
Some example commands you can try:view
: Displays all contacts.add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 t/High Risk m/Wheat
: Adds a contact namedJohn Doe
to the Address Book.delete n/John Doe
: Deletes contact namedJohn Doe
from the current list.filter t/High Risk
: Displays all entries which are taggedHigh Risk
.clear
: Deletes all contacts.exit
: Exits the app.
- Refer to the Features below for details of each command.
Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional.
e.gn/NAME [p/PHONE]
can be used asn/John Doe p/98765432
or asn/John Doe
. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE
,p/PHONE n/NAME
is also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help
,view
,exit
andclear
) will be ignored.
e.g. If the command specifieshelp 123
, it will be interpreted ashelp
. -
Prefixes are case-sensitive, and must be in lower case.
e.g.n/
is allowed butN/
is not allowed -
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
-
The following are considered duplicate patients:
- Same name AND same phone number
- Same name AND same email
- Same name, same phone number AND same email
- Note: same phone number AND same email AND different name are not considered as a duplicate patient since the patient might use their Next Of Kin’s contact details
Parameter Constraints
- NAME
- The string must be alphanumeric and contain at least one alphabetic character (i.e., it cannot consist entirely of numbers). Special characters allowed are space (‘ ‘), slash (‘/’), and hyphen (‘-‘).
- However, since
d/
is a recognized parameter, names containingd/o
are not accepted in this version of Health Connect (thoughs/o
is allowed). - If a patient’s name includes
d/o
, format it instead as suchd o
, for example,Siti d o Raja
.
- PHONE
- Must be exactly 8 digits long and start with 3, 6, 8 or 9 (adhering to Singapore phone numbers).
- Only numeric characters are allowed.
- EMAIL
- Must follow a valid email format and include a domain
[name]@[domain].[TLD]
e.g.name@example.com
- Can contain alphanumeric characters and special characters such as underscore
_
, period.
and hyphens-
before the@
symbol
- Must follow a valid email format and include a domain
- ADDRESS
- Address cannot be blank
- Since an address can consist of any combination of characters (including
/
), there are no restrictions on the input format for this field. - Be aware that adding unrecognized parameters (e.g., g/) after the address tag
a/
will not trigger an error.- For example,
add n/John Doe p/98765432 e/johnd@example.com a/123 Elm Street g/UNRECOGNISED_PARAMETER t/low risk m/None
will still be accepted as valid input without any errors.
- For example,
- TAG
- A patient must have one of the following priority tags:
High Risk
Medium Risk
Low Risk
- Note: tags are case-insensitive.
- A patient must have one of the following priority tags:
- ALLERGY
- Only include alphanumeric characters, spaces, and commas.
- Must not be empty or contain special characters other than commas and spaces.
- If a patient has multiple allergies, they can be listed in the add command like this:
m/Allergy1 m/Allergy2
- If a patient has no allergies, use this format:
m/None
- A patient cannot have any other allergy if he or she has
m/None
as an allergy. (i.e.m/None m/Allergy2
is not valid)
- INDEX
- Must be a positive integer: 1, 2, 3, …
- Must be an index number shown in the displayed patient list
- DATE_TIME
- Follows the format of
d/M/yyyy HHmm
(More formats will be included in future iterations) 02/02/2024 1400
and2/2/2024 1400
are both valid and accepted date and time formats.- Can only contain numbers, ‘/’, and spaces.
- No spaces are allowed within the date and time format. For example,
2/ 0 2/ 20 24 14 00
will result in an invalid date and time format error.
- Follows the format of
- DATE
- Follows the format of
d/M/yyyy
(More formats will be included in future iterations) 02/02/2024
and2/2/2024
are both valid and accepted date formats.- Can only contain numbers and ‘/’
- No spaces are allowed within the date format. For example,
2/ 0 2/ 20 24
will result in an invalid date format error.
- Follows the format of
Viewing help: help
Shows a message explaining how to access the help page.
Format: help
Adding a patient: add
Adds a patient to the address book.
Format: add n/NAME p/PHONE e/EMAIL a/ADDRESS t/TAG m/ALLERGY...
Parameter Constraints: NAME
, PHONE
, EMAIL
, ADDRESS
, TAG
, ALLERGY
Additional Details:
- If multiple tags
t/... t/...
are provided as an input, only the last tag will be taken.- For example:
add n/John Doe...t/Low Risk t/High Risk
. The patientJohn Doe
will be assigned the tagHigh Risk
.
- For example:
Examples:
-
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 t/High Risk m/Lactose m/Gluten
-
add n/Jane Doe p/98765432 e/janed@example.com a/Jane street, block 123, #01-01 t/High Risk m/Insulin m/Penicillin
-
add n/Betsy-Crowe p/81239873 e/betsycrowe@example.com a/01 Clementi Road #04-03 Singapore 4374538 t/Low Risk m/None
Viewing all patients: view
Shows a list of all patients in the address book.
Format: view
Editing a patient : edit
Edits an existing patient in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG] [m/ALLERGY]...
Parameter Constraints: INDEX
, NAME
, PHONE
, EMAIL
, ADDRESS
, TAG
, ALLERGY
Additional Details:
- Edits the person at the specified
INDEX
. The index refers to the index number shown in the displayed person list. - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing tags, the inputted tag will completely replace the current tag.
- You cannot remove a person’s tag using the edit feature, as the tag is a required field.
- If multiple tags
t/... t/...
are provided as an input, only the last tag will be taken.- For example:
edit 2...t/Low Risk t/High Risk
. The patient at index2
will be assigned the tagHigh Risk
.
- For example:
- When editing allergies, the inputted allergies will completely replace the current allergies.
Examples:
edit 1 p/91234567 e/johndoe@example.com
Edits the phone number and email address of the person at index1
to be91234567
andjohndoe@example.com
respectively.edit 2 n/Betsy Crower
Edits the name of the person at index2
to beBetsy Crower
.
Locating patients by name: find
Finds patients whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Parameter Constraints: NAME
Additional Details:
- At least 1 keyword must be provided.
- The search is case-insensitive. e.g.
hans
will matchHans
. - The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
. - Only the name is searched.
- Only full words will be matched. e.g.
Han
will not matchHans
.- Slashes
/
and hyphens-
will be considered as part of the full word. e.g.Betsy
will not matchBetsy-Crowe
- Slashes
- Persons matching at least one keyword will be returned (i.e.
OR
search). e.g.Hans Bo
will returnHans Gruber
,Bo Yang
Examples:
find John
ReturnsJohn
andJohn Doe
find bernice charlotte
ReturnsBernice
andCharlotte
Locating patients by different parameters: filter
Filters the list to return patients who have the given features.
Format: filter PREFIX/FEATURE_NAME [PREFIX/FEATURE_NAME]
Parameter Constraints:PHONE
, EMAIL
, ADDRESS
, TAG
, ALLERGY
Additional Details:
- The search is case-sensitive.
- At least 1
PREFIX/FEATURE_NAME
must be provided. - The order of the features does not matter. e.g.
t/ High Risk p/99999999
will matchp/99999999 t/ High Risk
- You can filter by tag, email, address, phone number and allergies.
- Only full words will be matched e.g.
99999999
will not match999
- Allergies is the only attribute that allows multiple parameters. For other attributes, there can only be one of each feature as a maximum (i.e. cannot filter by two tags -
filter t/ High Risk t/Low Risk
is considered invalid format and not accepted.) - The filter search uses AND logic between different attributes (e.g., tag and allergies) — all specified attributes must match. If multiple allergies are specified, it uses OR logic — an entry will match allergies attribute if it has any one of the specified allergies, or all.
For example:
filter t/High Risk m/Peanuts m/Dairy
will return entries with theHigh Risk
tag and any of the allergies “Peanuts” or “Dairy”.filter m/Peanuts m/Dairy
will return entries with eitherPeanuts
orDairy
allergy, or both. - Specifying any parameters beyond those required will result in an error.
- Filter requires at least one feature to filter by (e.g.
filter
is an invalid format butfilter t/High Risk
andfilter p/99999999
are both accepted.) e.g.t/ High Risk p/99999999
will return all patients with tagHigh Risk
and phone number99999999
Examples:
filter t/High Risk a/John street, block 123, #01-01
returns all patients who areHigh Risk
AND have addressJohn street, block 123, #01-01
filter m/Penicillin p/88451234
returns all patients who have an allergy topenicillin
AND have the phone number88451234
Deleting a patient : delete
Deletes the specified patient from the address book.
Format: delete [n/NAME] [p/PHONE] [e/EMAIL]
Parameter Constraints: NAME
, PHONE
, EMAIL
Additional Details:
- Deletes the person that matches the following
NAME
,PHONE
and/orEMAIL
- If the attributes provided (e.g.
NAME
) cannot uniquely identify the patient, then more details (e.g.PHONE
orEMAIL
) need to be provided to uniquely match to a person.
Examples:
delete n/john
DeletesJohn
assuming that there is only 1John
in the address book.delete n/craig p/98761230
DeletesCraig
with phone98761230
assuming that there is only 1 patient with nameCraig
and phone98761230
in the address book
Adding or updating an appointment date and time to a person : date
Adds or updates the appointment date and time of the specified person in the address book. This for easy reference, so past appointments can be entered.
Format: date [n/NAME] [p/PHONE] [e/EMAIL] d/DATE_TIME
Parameter Constraints: NAME
, PHONE
, EMAIL
, DATE_TIME
Additional Details:
- Adds or updates the next appointment date and time of person that uniquely matches at least one of the following three attributes
NAME
,PHONE
andEMAIL
. - If the attributes provided (e.g.
NAME
) cannot uniquely identify the patient, then more details (e.g.PHONE
orEMAIL
) need to be provided to uniquely match a person. - To remove the date and time from a person, use
d/None
in the command. - 2 patients cannot have the same date and time for their appointment.
- When no date and time is set, no date and time are displayed.
- In the command format, the brackets around
n/NAME
,p/PHONE
, ande/EMAIL
indicate that these fields are flexible in their order and selection. This does not mean that all three fields can be left out, at least one must be provided. - This feature supports the year
0001
onwards. Any years before that is not supported. - If the day, month, hour, or minute values are not in the range of valid possible values (e.g. month is between 1 and 12 or day is between 1 and 31), an error will be shown to the user for them to ensure their inputs are in range.
- The day must match the number of days in a month. This takes into account months when there are only 30 days and February when there are 28 or 29 days, depending on if it is a leap year. For example, if
31/4/2024 1200
is input when APRIL only has 30 days, there will be an error since that date value is invalid. - The time is in the 24-hour format. (e.g.
1800
for 6:00 PM) - The format of the date and time, as well as the values, must be valid or there will be an error. To avoid unnecessary inconvenience, leading zeroes for days and months are allowed.
(e.g.
01/01/2024 1400
is parsed the same as1/1/2024 1400
) - For uniformity and ease of validation, spaces between slashes in the date or in the time (e.g.,
1 / 1 / 2024 15 00
) are not allowed. Use1/1/2024 1500
instead. - The app allows users to enter past dates and times to provide flexibility in managing and storing patient information, preventing unnecessary limitations.
Examples:
date n/Jason Tan p/93823871 e/jasontan@gmail.com d/23/10/2024 1830
Adds appointment date and time
23/10/2024 1830
to patient with name:Jason Tan
, phone:93823871
, email:jasontan@gmail.com
date p/92938132 d/22/10/2024 1920
Adds appointment date and time22/10/2024 1920
to patient with phone:92938132
date e/johndoe@gmail.com d/10/02/2023 1520
Adds appointment date and time10/02/2023 1520
to patient with emailjohndoe@gmail.com
date n/Alex Yeoh d/None
Removes appointment date fromAlex Yeoh
Seeing the schedule for the day: schedule
Filters the list to return patients who have an appointment of the given day.
(i.e. shows the healthcare professional’s schedule for the day)
Format: schedule d/DATE
Parameter Constraints: DATE
Additional Details:
DATE
in theschedule
feature differs from theDATE_TIME
in thedate
feature as it does not accept a time.- All patients with an appointment date on that given day will be listed regardless of what their appointment time is.
- Refer to additional details under the appointment date feature above for details on the date format and valid values.
Examples:
schedule d/23/10/2024
returns all patients with appointment date on 23rd October 2024
Clearing all entries : clear
Clears all entries from the address book.
Format: clear
Exiting the program : exit
Exits the program.
Format: exit
Data
Saving the data
The 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
The data is saved automatically as a JSON file [JAR file location]/data/addressbook.json
. Advanced users are welcome to update data directly by editing that data file.
If your changes to the data file makes its format invalid, Health Connect will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause Health Connect to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer by following the instructions in Quick Start and overwrite the empty data file it creates with the file that contains the data of your previous home folder.
- Find the
data
folder created by the application - Transfer the
.json
file in the `data folder——————————————————————————————————————–
Known Issues
Issue 1: When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen.
Remedy: Delete the preferences.json
file created by the application in the same folder before running the application again.
Issue 2: If you minimize the Help Window and then run the help
command again, the original Help Window will remain minimized, and no new Help Window will appear.
Remedy: Manually restore the minimized Help Window.
Command Summary
Action | Format & Examples | Examples |
---|---|---|
Add | add n/NAME p/PHONE e/EMAIL a/ADDRESS t/TAG m/ALLERGY... |
add n/James Ho p/98765432 e/jamesho@example.com a/123 Clementi Rd t/High Risk m/peanuts |
Edit | edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG] [m/ALLERGY]... |
edit 2 n/James Lee e/jameslee@example.com |
Delete | delete [n/NAME] [p/PHONE] [e/EMAIL] |
delete n/Nayana p/98765432 e/nayana@gmail.com |
Clear | clear |
- |
View | view |
- |
Find | find KEYWORD [MORE_KEYWORDS] |
find James Jake |
Filter | filter PREFIX/FEATURE_NAME [PREFIX/FEATURE_NAME] |
filter t/High Risk |
Date | date [n/NAME] [p/PHONE] [e/EMAIL] d/DATE_TIME |
date n/Jason Tan p/93823871 e/jasontan@gmail.com d/23/10/2024 1830 |
Schedule | schedule d/DATE |
schedule d/23/10/2024 |
Exit | exit |
- |
Help | help |
- |