MediSync is a desktop app specifically used for head nurses to manage staff and patients, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). Instead of tracking data of staff and patients using existing applications such as Microsoft Excel, using a CLI-centric application like MediSync will help head nurses track and handle contact management more quickly.
Ensure you have Java 11
or above installed in your Computer.
Download the latest medisync.jar
from here.
Copy the file to the folder you want to use as the home folder for your MediSync.
Open a command terminal, cd
into the folder you put the jar file in, and use the java -jar medisync.jar
command to run the application.
A 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 help
and pressing Enter will open the help window.
Some example commands you can try:
list
: Lists all contacts.
add n/John Doe p/98765432 e/johnd@example.com r/patient a/Alex Yeoh
: Adds a contact named John Doe
to MediSync.
delete 3
: Deletes the 3rd contact shown in the current list.
clear
: Deletes all contacts.
exit
: Exits the app.
Refer to the Features below for details of each command.
MediSync strives to streamline the storage and identification of contacts, focusing on essential information that are critical in medical contexts.
Here are some definitions that are noteworthy when using MediSync.
Term | Explanation |
---|---|
Role | The role of a person in the contact list is either Doctor , Nurse , or Patient . When we use the word staff, we are implying both Doctor s and Nurse s. |
Affiliation | With staff members providing care to specific Patient s, there is a need to establish an association between staff members and Patient s. We use affiliations to denote such relationships. Such relationships can never be one-sided in MediSync, and it will not exist between staff members or between Patient s. |
Affiliation History | Having some level of history-taking is vital in tracking medical care. The use of affiliation history is to track past staff members that had affiliations with a particular Patient , and vice-versa. MediSync allows for the deletion of these history, but existing affiliations can never be deleted from the affiliation history until the affiliation is severed. |
Shift Days | Shift days is an attribute unique to staff members. For simplicity, the current version of MediSync monitors the workdays of each staff member in blocks of days. |
Next of Kin | The Next of Kin attribute is meant for Patient s. Having a method of contact with the Patient s next of kin is vital in medical care. |
Specialisations | Exclusively for Doctor s, the specialisations attribute offers added information about each doctor, enabling the appropriate doctor to be matched with patients having diverse requirements. |
Notes about the command format:
Words in UPPER_CASE
are the parameters to be supplied by the user.
e.g. in add n/NAME
, NAME
is a parameter which can be used as add n/John Doe
.
Items in square brackets are optional.
e.g. n/NAME [a/AFFN_NAME]
can be used as n/John Doe a/Sam Young
or as n/John Doe
.
Items with …
after them can be used multiple times including zero times.
e.g. [a/AFFN_NAME]…
can be used as (i.e. 0 times),
a/Sam Young
, a/Sam Young a/Ben Chua
etc.
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.
Extraneous parameters for commands that do not take in parameters (such as help
, list
, exit
and clear
) will be ignored.
e.g. if the command specifies help 123
, it will be interpreted as help
.
Command are first checked for their formatting before checking the validity of the inputs.
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.
help
Shows a message explaining how to access the help page.
Format: help
add
Adds a contact to the contact list.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL r/ROLE [a/AFFN_NAME]…
Nurse
, Doctor
, or Patient
(case-insensitive).Tip: A person can have any number of affiliations (including 0). However, to add an affiliation, it must already exist in the contact list. In addition, the role of the affiliation must be constrasting to the person being added (i.e. affiliations can only be between Nurse and Patient OR Doctor and Patient).
Examples:
add n/John Doe p/98765432 e/johnd@example.com r/patient
add n/Mint Ho p/97746234 e/mint@example.com r/nurse a/Bernice Yu
list
Shows a list of all persons in the contact list.
Format: list
edit
Edits an existing contact in the contact list.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/AFFN_NAME]…
INDEX
. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …a/
without
specifying any affiliations after it.Examples:
edit 3 p/81234567 a/
edits the phone number of the 3rd person to 81234567
and removes the person’s affiliationedit 1 n/Sally Wing e/sallyw@kmail.com
edits the name and the email of the 1st person to Sally Wing
and sallyw@kmail.com
respectively.find
Finds persons whose specified attribute contains any of the given keywords. Requires a prefix to choose which attribute to search for.
Format: find (n|p|e|r|a)/[KEYWORD] [MORE_KEYWORDS]...
n/
for NAME
, p/
for PHONE
, e/
for EMAIL
, r/
for ROLE
, and a/
for AFFILIATION
|
(OR) indicator in the format. Using two or more prefixes in one search will lead to an invalid command.hans
will match Hans
Hans Bo
will match Bo Hans
find n/chard
will return Richard Gramson
, or find e/max
will return persons with email such as himax@test.com
OR
search).
e.g. Hans Bo
will return Hans Gruber
, Bo Yang
Examples:
find p/976
returns any person in the contact list that has 976
in its phone number.find n/eve irfan
returns Irfan Ibrahim
, Evelyn Ng
addaffn
Add affiliations to staff/patients indicated by the given INDEX
without deleting existing affiliation.
Format: addaffn INDEX a/AFFN_NAME [a/AFFN_NAME]…
INDEX
.AFFN_NAME
is specified as full name of a person in the contact list.Examples:
addaffn 1 a/John
adds John
to affiliation of 1st person in the contact list.addaffn 3 a/John a/Mary
adds John
and Mary
to affiliation of 3rd person in the contact list.affn
Finds staff/patients who are affiliated with the patient/staff indicated by the given index.
Format: affn INDEX
INDEX
.Examples:
list
followed by affn 2
lists the people affiliated to the 2nd person in the contact list.affn 1
will list the people affiliated with the 1st person displayed after the previous affn
command.affnh
Finds the staff/patients that used to be affiliated or are currently affiliated with the patient/staff indicated by the given index.
Format: affnh INDEX
INDEX
.Examples:
affnh 2
lists the people who used to be affiliated or are currently affiliated to the 2nd person in the contact list.removeah
Removes all affiliation history of patient/staff indicated by the given INDEX
, except for affiliations that are currently affiliated.
Format: removeah INDEX
INDEX
.INDEX
from the affiliation history of others.Examples:
removeah 2
removes affiliation history of the 2nd person in the contact list.spec
Finds the doctor indicated by the given index and modifies the specialisations of the doctor.
Format: spec INDEX [SPECIALIZATION1, SPECIALIZATION2, ...]
INDEX
.spec INDEX
without specifying any specialisations after it.Examples:
spec 5 heart, brain, brain
modifies the specialisations of the 5th person(a Doctor
) in the contact list to heart
and brain
.spec 5
removes all specialisations of the 5th person(a Doctor
) in the contact list.delete
Deletes the contact in the contact list. If the other contacts have affiliations/affiliation history with this contact, the affiliations will be deleted automatically.
Format: delete INDEX
INDEX
.Examples:
list
followed by delete 3
deletes the 3rd person in the contact list.find n/Betsy
followed by delete 1
deletes the 1st person in the results of the find
command.WARNING: Deleting a person is irreversible. Any associations will be erased. Please make sure it is intended before proceeding.
nok
Update next of kin of a patient identified at INDEX
in the contact list.
Format: nok INDEX [n/NAME p/PHONE rs/RELATIONSHIP]
INDEX
.RELATIONSHIP
can be specified in any alphanumeric characters and spaces.Examples:
nok 2
removes next of kin of the 2nd person in the contact list.nok 2 n/John p/11111 rs/Brother
adds next of kin with the name John
, phone 11111
and relationship Brother
to the 3rd person in the contact list.shift
Updates the shift days of the person identified with the given index number.
Format: shift INDEX [SHIFT_DAYS]
SHIFT_DAYS
is in the form of an unbroken string of numbers, from 1 (Monday) to 7 (Sunday), typed with no spaces, e.g. 147
(Monday, Thursday, Sunday). Duplicates are allowed in the SHIFT_DAYS
string, but each day will only be counted once in the actual shift schedule.SHIFT_DAYS
is not provided, the shift days for the staff member at the given index will be cleared.Examples:
shift 1 126
will set the 1st person in the contact list's shift days to be Monday, Tuesday, and Saturday.shift 3 1127
would also be valid input and would assign Monday, Tuesday, and Sunday as shift days for the 3rd person, ignoring the duplicate entry of Monday.shift 2
with no SHIFT_DAYS
specified will clear all shift days for the 2nd person in the contact list.onduty
Finds staff members(doctors/nurses) who are on duty today.
Format: onduty
Examples:
onduty
is called, then staff members that have duty on Monday will be listed.info
Displays the information of the person in the contact list.
Format: info INDEX
INDEX
.Examples:
list
followed by info 3
displays the information of the 3rd person in the contact list.find n/Charlotte
followed by info 1
displays the information of the 1st person in the results of the find
command.Displays the information of the person in the contact list by clicking on the person in the list.
info
command.Navigate through the information of different people in the displayed list using UP
and DOWN
arrow keys.
UP
and DOWN
arrow keys is only applicable when any of the person in the list is highlighted, indicating that the list is on focus.info
command to set the list on focus.clear
Clears all entries from the contact list.
Format: clear
WARNING: Information cleared are irretrievable. As MediSync do not have confirmation prompts, do not, in any way, input this command if there are no intentions of using it.
exit
Exits the program.
Format: exit
MediSync data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
MediSync data are saved automatically as a JSON file [JAR file location]/data/medisync.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, MediSync 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.
Be very careful, especially when you modify attributes such as Role, as any mismatch in Affiliations will render the data as invalid e.g. Changing the Role of a Patient to Doctor resulting in this new Doctor having affiliations with another Doctor. Scenarios like these are not exhaustive.
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 MediSync home folder.
preferences.json
file created by the application before running the application again.Action | Format, Examples |
---|---|
Add | add n/NAME p/PHONE_NUMBER e/EMAIL r/ROLE [a/AFFN_NAME]… e.g., add n/May Ho p/98765432 e/johnd@example.com r/nurse a/John Doe |
Clear | clear |
Delete | delete INDEX e.g., delete 3 |
Edit | edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/AFFN_NAME]… e.g., edit 1 p/91234567 e/johndoe@example.com |
Find | find (n|p|e|r|a)/[KEYWORD] [MORE_KEYWORDS]... e.g., find n/james |
List | list |
List Affiliations | affn INDEX e.g., affn 1 |
List Affiliation History | affnh INDEX e.g., affnh 2 |
Add Affiliations | addaffn INDEX a/AFFN_NAME [a/AFFN_NAME] e.g., addaffn 4 a/Mike Chang a/Tom Cruise |
Modify Shift Days | shift INDEX [SHIFT_DAYS] e.g., shift 2 1457 |
Clears Affiliation History | removeah INDEX e.g., removeah 1 |
Edit Next of Kin | nok INDEX [n/NAME p/PHONE rs/RELATIONSHIP] e.g., nok 3 n/John p/11111 rs/Brother |
List Staff On Duty | onduty |
Modify Specialisation | spec INDEX [SPECIALIZATION1, SPECIALIZATION2, ...] e.g., spec 4 Cardiology, Osteology |
Display Person Information | info INDEX e.g., info 2 |
Help | help |
Exit | exit |