Foo Jing Yi's Project Portfolio Page
Project: MediBook
MediBook is a desktop application used for managing patient records, targeted at doctors and administrative staff working at clinics and hospitals. This app is optimised for use via a Command Line Interface (CLI) whilst still having the benefits of a Graphical User Interface (GUI). If you can type fast, MediBook can help you manage your patient records faster than traditional GUI apps. This allows you to reduce administrative overhead in your clinic or hospital, thereby also reducing waiting time for your patients.
The user interacts with MediBook using a CLI, and receives feedback from the app through the GUI. MediBook is written in Java, with its GUI created with JavaFX.
Given below are my contributions to the project.
- New Feature: Added a patient profile as a GUI element.
- What it does: allows the user to view all of a specified patient’s information in one window as a patient profile.
- Justification: This feature allows the app to display only summarised information in the main window of the app so users can see an interface that is less cluttered, and only view more information when required.
- Highlights: Implementing this feature required extensive research and experimentation in JavaFX.
It was challenging to finalise the sizing of each sub-element of the patient profile since JavaFX elements were reactive to each other.
Object-oriented programming (OOP) was used in designing the sub-elements as separate classes before containing them in the main
PatientProfile
class to achieve the desired GUI.
- New Feature: Added medical details (allergy, condition and treatment) as patient fields
- What it does: allows the user to add a patient’s allergies, their diagnosed medical conditions and treatments that patient is currently undergoing to a patient’s records.
- Justification: This feature allows users to tag patients in MediBook with their relevant medical details. Doctors using the app will then be able to better prescribe the right treatments for each patient and assess them appropriately based on their medical details.
- Highlights: This enhancement utilised existing designs of the app that MediBook was based on (since MediBook is a brownfield project). The
Allergy
,Condition
andTreatment
classes extend from the originalTag
class. While the existing infrastructure allowed for structured implementation of the new classes and compatibility between the app and these new classes, this enhancement was challenging as many files had to be changed to both add the new classes and removeTag
s as a patient field.
- New Feature: Add date of birth as a patient field.
- What it does: allows the user store a patient with their date of birth.
- Justification: This allows users to know a patient’s age which is a critical information and providing healthcare for that patient.
- Highlights: The implementation of this feature has since been modified, but the original implementation had already provided the desired input and output format of dates.
-
Code contributed: RepoSense link
- Project management:
- Helped to keep track of small details to change e.g. variable names, errors and typos in code documentation, decisions to keep in view
- Reviewed elements related to code quality i.e. variable naming, documentation, application of SLAP
- Contributions to team-based tasks
- Enhancements to existing features:
- Documentation:
- User Guide (UG):
- Developer Guide (DG):
- Community: