diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 8b92d5fb7e62..945c8e823978 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -837,6 +837,14 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |`* *` |user |hide <> by default |minimize chance of someone else seeing them by accident +|`* *` |user |copy a person |reduce the time needed to create a new person who has similar records to an existing person in the list + +|`* *` |user |export entries into an external file |view certain entries even when I am not using the application + +|`* *` |user |import entries from an external file |reduce the time needed to create a person whose information can be already be obtained from an external source + +|`*` |user with confidential patient information|log into the application with a password |prevent unauthorized access to the application when I am not around + |`*` |user with many persons in the address book |sort persons by name |locate a person easily |======================================================================= diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 10200578100c..28d55cb7c848 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -16,267 +16,611 @@ endif::[] By: `Team W17-2` Since: `Feb 2019` Licence: `MIT` +Last Updated: 2/12/2019 21:35:35 + == Introduction -OurTeeth is for dentists who *prefer to use a desktop app for managing patient records*. More importantly, - AB4 is *optimized for those 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, AB4 can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! +OurTeeth is for dental practitioners who want to manage patient records +through a desktop or mobile app. The application works primarily through +a Command Line Interface (CLI) while having elements of a Graphical User +Interface (GUI) for greater visualization of data. The application +provides a platform for dentists to keep track of their patients’ +personal particulars along with their dental records. Conditions of each +patients’ teeth (e.g decaying, removed or filled) are also stored for +ease of reference when providing treatments or follow-ups. As the +application uses CLI, users who prefer using command line interface will +be able to comfortably navigate through the many features the offered by +the application. + +Interested in trying OurTeeth out? Check section 2 [Prerequisites] to +see what programs you need to have installed in order for OurTeeth to +work properly. Once that’s settled, or you’re confident in your computer +set-up, jump to section 3 [Quick Start] to begin! + +== Prerequisites + +Before downloading and installing OurTeeth, please check that you have +the following programs installed: + +* Java version *9* or later +* The secret to the universe and more… + + +Once you have ensured everything is in order, kindly proceed to the +section 3 [Quick Start Guide]. + +== Quick Start Guide + + +. Download the latest ourteeth.jar file from our GitHub page + +. Copy the file to the folder you want to use as the home folder for the +application (all data will be stored there) -== Quick Start +. Double-click the file to launch the application.The application’s GUI +should start in a few seconds and begin the initialization set-up. (for +users who have already finished the set-up phase, please go to step 6) -. Ensure you have Java version `9` or later installed in your Computer. -. Download the latest `addressbook.jar` link:{repoURL}/releases[here]. -. Copy the file to the folder you want to use as the home folder for your Address Book. -. Double-click the file to start the app. The GUI should appear in a few seconds. -+ -image::Ui.png[width="790"] -+ -. Type the command in the command box and press kbd:[Enter] to execute it. + -e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. -. Some example commands you can try: +. The application will prompt the user to input details of the +clinic/hospital/place of practice such as the name and address of the +location. (e.g ABC Hospital, 11 Baker Street, Singapore 308433) -* *`list`* : lists all contacts -* **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : adds a contact named `John Doe` to the Address Book. -* **`delete`**`3` : deletes the 3rd contact shown in the current list -* *`exit`* : exits the app +. User will then have to create a user account to begin using the +application. -. Refer to <> for details of each command. +. Simply login to your account and begin using the application -[[Features]] -== Features -==== -*Command Format* +For the full list of available commands and their associated details, +please look at section 4 [Commands] -* 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 [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`. -* Items with `…`​ after them can be used multiple times including zero times e.g. `[t/TAG]...` can be used as `{nbsp}` (i.e. 0 times), `t/friend`, `t/friend t/family` 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. -==== +== Commands and Features -=== Viewing help : `help` +=== Login + +Logs into a specific user’s account to access records + +Format: `login USERNAME PASSWORD` + +=== Help + +Displays the help text for the usage of all available commands. Format: `help` -=== Adding a person: `add` +=== Adding a person: add -Adds a person to the address book + -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` +Adds a person to the application’s personnel data records -[TIP] -A person can have any number of tags (including 0) +Format: `add PARAMETERS [t/TAG] …` -Examples: +Parameters: -* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` -* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal` +[cols=",,,",options=""] +|=== +|n/NAME |s/SEX |p/PHONE_NUMBER |e/EMAIL +|a/ADDRESS |ic/NRIC |age/AGE |dob/DATE_OF_BIRTH_DDMMYYYY -=== Listing all persons : `list` +|da/DRUG_ALLERGY |nokn/NEXT_OF_KIN_NAME |nokp/NEXT_OF_KIN_PHONE_NUMBER +|nokr/NEXT_OF_KIN_RELATION -Shows a list of all persons in the address book. + -Format: `list` +|noka/NEXT_OF_KIN_ADDRESS | | | +|=== -=== Editing a person : `edit` -Edits an existing person in the address book. + -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...` +A person can have any number of tags. -**** -* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *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. -**** +Note: If a person’s next of kin lives at the same address, use `same` to +indicate Examples: -* `edit 1 p/91234567 e/johndoe@example.com` + -Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower t/` + -Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. -=== Locating persons by name: `find` +* `add n/John Choo p/98425871 e/jonC@example.com a/IDA street, block 13, +#02-05 ic/S1234567H age/32 dob/26021987 nokn/Jacky Choo nokp/84875215 +nokr/Father noka/same` -Finds persons whose names contain any of the given keywords. + -Format: `find KEYWORD [MORE_KEYWORDS]` -**** -* The search is case insensitive. e.g `hans` will match `Hans` -* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` -* Only the name is searched. -* Only full words will be matched e.g. `Han` will not match `Hans` -* Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` -**** +=== Deleting a person: delete -Examples: -* `find John` + -Returns `john` and `John Doe` -* `find Betsy Tim John` + -Returns any person having names `Betsy`, `Tim`, or `John` +Deletes the specified person from the personnel data records. + +Format: delete INDEX -=== Deleting a person : `delete` -Deletes the specified person from the address book. + -Format: `delete INDEX` +* Deletes the person at the specified index -**** -* Deletes the person at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. -* The index *must be a positive integer* 1, 2, 3, ... -**** + +* The given index must be a positive integer (e.g 1, 2 or 3…) + Examples: -* `list` + -`delete 2` + -Deletes the 2nd person in the address book. -* `find Betsy` + -`delete 1` + -Deletes the 1st person in the results of the `find` command. +* `list + +delete 1` + +Deletes the 1st person from the displayed list -=== Selecting a person : `select` +* `view John + +delete 1` + +Deletes the 2nd person found using the view command -Selects the person identified by the index number used in the displayed person list. + -Format: `select INDEX` -**** -* Selects the person and loads the Google search page the person at the specified `INDEX`. -* The index refers to the index number shown in the displayed person list. -* The index *must be a positive integer* `1, 2, 3, ...` -**** +=== Editing a person’s data: edit + + +Edits data from an existing person + +Format: `edit INDEX` + + +* Goes into edit mode for the person at the specified index shown from +list or view command. Must be a positive integer (e.g 1, 2 or 3) + +* Input the field followed by the new value to replace the existing data + +* Multiple fields can be edited in a single input or across multiple +inputs + +* When editing tags, the existing tags of the person will be removed i.e +adding of tags is not cumulative + +* All tags can be removed by keying in t/ without specifying any tags +following it + +* Exit the edit mode by entering done + +Example: + +* `list + +edit 1 + +p/12345 + +e/newemail@gmail.com + +done` + +Edits the phone number and email of the first person listed to become +12345 and newemail@gmail.com respectively across 2 inputs + + +* `view Betsy + +edit 2 + +p/987654 e/mymaill@gmail.com + +done` + +Edits the phone number and email of the first person listed to become +987654 and mymaill@gmail.com respectively with a single input + + +=== Copying a person’s data: copy + +Makes an exact copy of a person’s data and adds it to the personnel data +records. This is implemented in the case that multiple people share +similar details. + +Format: `copy INDEX` + +Note: If the copied entry is not modified before exiting the program, +there will be a notification. + +Example: + + +* `copy 3` + +Makes a copy of the person at index 3 and inserts it at the bottom of +the current personnel records with a copy tag. + +=== Record: Access a person’s dental records +==== record add + +Adds a new dental record to the program’s medical dental records + +Format: `record add n/NRIC d/DATE_DDMMYYYY t/TIME_HHMM p/PROCEDURE +doc/SERVING_DENTIST det/DETAILS` + +Example +* `record add n/S1234567H d/10022019 t/1705 p/Cleaning doc/Kyler det/Mouth +was noticeably smelly, might have halitosis` + +==== record delete + +Format: `record delete n/NRIC INDEX` + +* Deletes the person’s dental record at the specified index + +* The index refers to the index number shown in the displayed dental +record list. + +* The given index must be a positive integer (e.g 1, 2 or 3…) Examples: +* `view dental Jon` + +`record delete n/NRIC 1` + +Deletes the 1st record from the displayed list + + +==== record edit +Edits a person’s dental record. + +Format: `record edit n/NRIC INDEX` + + +* Goes into record edit mode for the specified person at the specified +index shown from list or view command. Must be a positive integer (e.g +1, 2 or 3) + +* Input the field followed by the new value to replace the existing data + +* Multiple fields can be edited in a single input or across multiple +inputs + +* When editing tags, the existing tags of the person will be removed i.e +adding of tags is not cumulative + +* All tags can be removed by keying in t/ without specifying any tags +following it + +* Exit the edit mode by entering done + +Example: + +* `view dental n/Jon + +record edit n/S1234567H 1 + +doc/Debang + +det/new details + +done` + +Edits the first dental record under the patient Jon and replaces the old +doctor and detail fields with the new Debang and new details data. + +==== record copy +Makes an exact copy of a person’s dental record + +Format: `record copy n/NRIC INDEX` + +Example: + + +* `record copy n/S1234567H 2` + +Makes a copy of the person’s dental record at index 2 and inserts it at +the bottom of the current dental records with a copy tag + + +=== Teeth + +==== Brief Description + + +The OurTeeth application complies with the most popular standard of the +three the Dental Numbering Systems utilised in the dentistry field - The +Universal Numbering System. + + +==== The Universal Numbering System + +image::images/image1.png[image,width=200,height=294] + +The uppercase letters A through T are used for primary teeth and the +numbers 1 - 32 are used for permanent teeth. The tooth designated "1" is +the maxillary right third molar ("wisdom tooth") and the count continues +along the upper teeth to the left side. Then the count begins at the +mandibular left third molar, designated number 17, and continues along +the bottom teeth to the right side. Each tooth has a unique number or +letter, allowing for easier use on keyboards. + + +==== Creating and Editing Teeth Layout +There are two templates provided by the application: primary and +permanent. + +All primary or permanent teeth in template will all be present and +healthy by default. + + +* To create a new teeth layout for patient: + +** `teeth add n/NRIC