DSAA204 | Data Structure and Algorithms
Executive Summary
Typically, hospitals use a manual method for handling and maintaining critical information. The current system requires numerous paper forms, with data stores spread throughout the hospital management infrastructure. Information can often be missing, or does not meet the requirements of management standards. Forms are also lost within departments during transit. To guarantee that no critical information is lost, a comprehensive auditing process is needed. Several Copies of the same data occur in the hospital which can contribute to data anomalies in the hospital.
To solve this issue, in the following paper there is a brief discussion of how to implement a small portion of a Hospital Management System using some basic data structures and sorting algorithms. By the use of this (digital) system, we hope to eliminate a lot of the inconsistent data records of the hospital as well as create a work flow system which has minimal interruption or discrepancy in terms of information retrieval, data entry, and information transit between departments.
Unlock your potential at Monash with Assignmentstudio by your side. Our personalized approach to Monash Assignments ensures academic excellence, providing comprehensive support to help you surpass expectations and reach your goals.
Introduction
The objective is to design a layout for part of a hospital management system (digital) which will keep track of the information on doctors, nurses and patients in the hospital. The purpose of doing so is consolidation of data, ensuring the integrity of data and reducing inconsistent data (such as duplicate copies).
Background
Hospital Management System can help in making many standard procedures seamless by improving flow of work rate by minimizing the time of information flow between various departments along with better administration control, improved patient care, and reducing the total paperwork.
Variables, Ranges and Keys
Variables
We will be using the data structure “Array” throughout the classes as it is easy to complete the operations required for our system later on as you will see. (Chowdhury & Khosla, 2007)
In order to accommodate for the doctors, nurses, and patients we will create respective classes for each of them – the classes being Doctor, Nurse, and Patients respectively. With each of them having the attribute for their unique ids:
- Doctor_id – Specific ID appointed to a doctor by the system at the time of entry in the system.
- Nurse_id – Specific ID appointed to a nurse by the system at the time of entry in the system.
- Patient_Id – Specific ID appointed to a patient by the system at the time of entry in the system.
Along with ids each class will also have a common attribute of name:
- Doctor_name
- Nurse_name
- Patient_name
Now, discussing attributes that only the doctor class will have these include (besides Doctor_id and Doctor_name):
- Doctor_specialization – The field of expertise of the doctor; for example dermatologist.
- Doctor_schedule – The days and the time when the doctor will be available for appointments or walk-ins for the patients.
As for the class of Nurse, we further require the attribute:
- Nurse_shift – This includes the schedule and shifts that the nurse covers in the hospital.
Finally for the class of patients we can have many attributes to help better manage our system, but for now we will only consider the essential ones (besides the ones already mentioned). These are:
- Patient_illness – The problem or the disease that the patient is facing.
Furthermore, the patient will inherit the Doctor_id (the doctor appointed to the patient) as well as the Nurse_id (if one is appointed or required).
Ranges
Since we are designing a system for 50 Doctors, 100 Nursing staff and around 1000 patients we have to ensure that we allot enough space in our lists to accommodate all of the entries required. Therefore, all the attributes for the class doctor would have a range of 50 i.e. – Doctor_id [50], Doctor_name [50], Doctor_specialization [50].
Whereas for the class of Nurse we need to have a range of 100 to accommodate all 100 nursing staff entries in the system – Nurse_id [100], Nurse_name [100], Nurse_shift [100].
Lastly, for the Patient class we have a range of 1000 – Patient_id [1000], Patient_name [1000], Patient_illness [1000].
Keys
For each class our primary key will be their unique ids assigned at the time of data entry in the system. We can use these keys in different search operations later when required for fast data retrieval.
Operations and the Justification.
The operations needed for implementing the discussed management system are rather standard ones. We will need functions for adding information in the relevant department for example; in order to add information of a new patient, we will need a function add() to enter information of the doctor to the array.
We also need the function delete() to remove data from the array in case of the scenario that someone leaves the hospital (e.g. a patient gets discharged from the hospital or a hospital staff member stops working at the hospital).
Finally we will also need the function update() in order to update information if needed, this could occur if the illness of the patient needs to be updated, or, if the schedule a doctor or shift of a nurse has changed so this change must be reflected in the array by updating the relevant information.
Algorithms and the Justification.
We need to be mindful of the fact that in order to make operations like searching fast, we have to take care of the way we sort our data in the arrays. In order to keep the array in a sorted manner, the implementation of quicksort can be used as it known to be a very effective sorting algorithm having a time complexity of . Other options available for sorting included bubble sort, merge sort, and insertion sort. We are not choosing any of these sorting algorithms for the following reasons: