In this project you are required to design a web-based medication management system that would be suitable for use by a nurse or qualified health practitioner in an aged-care facility. You will not be given in-depth details on how the tasks are to be achieved: that is up to your ingenuity, creativity and perseverance. The medication database, as well all web pages in your application should be your own design. However, essential user information must be entered and validated and the referential integrity of the data maintained. In addition, patient confidentiality is to be maintained via a secure login feature.
As a starting point, your database design should include at least three tables: a Medications table, a Patient table, and a Practitioner table. You will very likely need other tables to tie all the information together - but this is by your design!
The conceptual way such a system works is that a Web service running on a remote pharmacy dispensing system populates the Medications table for all residents in the aged-care facility for the upcoming week. The pharmacy also delivers (in blister packs) the medications for each patient for each medications round for the upcoming seven days. There are three medications rounds: morning, afternoon and evening. The process is as follows:
- A practitioner logs onto the system
- A medications round (morning, afternoon or evening) for a particular day is selected.
- A patient is selected from a list (possibly also displaying their picture).
- Each medication for this patient is viewed and prepared and the medication name, dosage, route of administration (as a minimum) are displayed. The practitioner dispenses and acknowledges delivery of EACH medication for the patient. Medications do not always have to be given, so the system should record such options as: given, refused, fasting, no stock, ceased. The system should also naturally record the name of the dispensing practitioner.
- Step 4 is repeated for each medication for this patient.
- Steps 3-5 are repeated for all patients in the facility for which the practitioner is caring.
It should also be possible for the practitioner to administer ‘Nurse Initiated Medication (NIM)’. A list of medications that are available for practitioners to administer, without a doctor’s order, should also be setup in a table. These drugs (such as panadol, anginine, gastrogel) should also be recorded for each patient if administered.
It should be assumed that the medications data is available (i.e. has been sent automatically from the pharmacy). For the sake of this project you should choose to manually pre-populate the medications table with data for the upcoming week. You should also include data for the previous week and have dispensed the medications to various (at least four) patients by at least two practitioners. This will allow us to test the system and generate reports on medications usage.
If you do not know about types of medication you can browse the web. Many medication databases are proprietary but there are some open source collections, e.g. http://medlibrary.org/drugs/index.html
The practitioner table should include a user name and a password for each practitioner/administrator in the system. It can be assumed that this data already exists in appropriate tables (i.e. you do not need to create web forms to do this data entry). Besides patient name and a photo, the patient table should also include a field to describe what room the patient resides in the aged-care facility. The above patient data is to be entered into the database via an appropriate web page form.
Practitioners should be able to insert new patient data into the database, as well as search, browse and edit data. In addition, practitioners should be able to view a flexible medications summary report that can be configured for either all patients or a single patient and can be retrospective (for past week) or prospective (for the upcoming week). This report should also be able to be sub-categorised by practitioner. A sample report from a significantly more complex web-based system is shown below to give you some ideas on report layout.
Finally in order to track practitioner workload, you should include at least one chart (using TeeChart) showing an aspect of medication dispensing (for example, the number of patients each practitioner has seen each day over the past week). To do this download the TeeChart package from Moodle (TeeChart.zip), unzip it and place it in your G: drive. There is no installation required, as it only contains a bunch of PHP files for graphing. However, you will need to include some of these files using the following command, using a relative path from your PHP file:
If you are unsure about what directory PHP is working from (the directory from which relative paths are defined), use the command echo getcwd(); to display the current working directory on the page. It will be the directory of the PHP file which is running the PHP code. A sample php file to plot a very simple chart is included on Moodle to get you started.
You are expected to hand in a complete report detailing the tasks undertaken and the approaches adopted, including database design and user interface descriptions. This should include a brief “user’s manual”. It is not necessary to print your PHP code (unless there are particular code snippets that you want to make mention of as we will be accessing this from the server). Please clearly explain which web page(s) to access to run your project. Also ensure you include in your report the username and password of practitioners.
Ideally, the system should be complete and bug free. If sections of your program do not work as expected, you should explain where and why the bug(s) occurred, and what attempts you have made to track the source of the error. Marks will be allocated for functionality, data entry checking, integrity checking, innovative design, error free operation, etc.. If you develop the system outside of the GSBmE computer lab you MUST check the full functionality of the system on the GSBmE computer system (including database, web server and browser). Many times we have had projects submitted that fail to work as expected due to incompatibility issues.
Please make sure as part of the user manual you provide sample login usernames and passwords so we can easily check your design. NB: A non-plagiarism declaration form must be attached to your hand-in report.
Zip everything up and submit your files on Moodle but also leave the current copy on your G: drive. All by the due date.
Proposed Marking Rubric (Total 100)
- Database (20)
- Required data structures and data (8) [should be giveaway marks]
- Patient (2)
- Practitioner / Password protection (2)
- Medications (2)
- Prepopulated medication data for two weeks (second week not dispensed) (2)
- Table design (6)
- Normalisation, layout, overall design (2) [a general feel]
- Data type selection (2) [using appropriate data types]
- Constraints (2) [primary key, field constraints]
- Relationships (3)
- Justification (3) [a brief discussion in the report]
- Required data structures and data (8) [should be giveaway marks]
- Web functionality (30)
- Login (3)
- Username / password check (1)
- Logout (1)
- Behaviour, overall security (of all pages) (1)
- Medication administration and dispensing (10)
- Dispensing round (7)
- Nurse initiated medications (3)
- Practitioner tasks (10)
- Inserting patient data (2)
- Search/browse/edit data (2)
- Display patient photo (may be pre-loaded into table) (3)
- Medications report (3)
- TeeChart plot or tabulation (4)
- Navigation (3)
- Login (3)
- Error checking and validation (15)
- SQL error handling (2) [1 for no SQL errors encountered, 1 for correct handling]
- General user-friendliness of messages (3) [general feel]
- Web interface, design, presentation (20)
- Web (15) [mainly a general feel for the interface, use of CSS, etc.]
- Code (5) [style, comments, etc.]
- Report (15)
- Tasks undertaken / approaches (5)
- Website user manual (10)
- (Note also 3 marks allocated for a description of the justification of the database/structures/normalisation in the Database section above)