Project of CS257
Group G1
Members : Neha, Kanchi Pardhi, Khushi Verma, Shruti Modi (Roll Numbers - 200001051, 200001032, 200001036, 200001047 respectively)
Our web-based application serves as a fruitful database management system for Pathology Labs. It has role-based access, secure otp verification, login system with a user-friendly and interactive interface.
It enables lab staff to add or edit patient, test, equipment, doctor details. They can choose tests for a given patient and place an order for him/her. Opon placing order, the system generates a bill and emails the receipt along with brochure to the patient's email. Patients can fill/ view their details using the app for faster operation which further eases the uses of the application.
Name and Logo of the Hypothtical Laboratory shown: G1 Pathology Lab
We have used Python, Flask, MySQL, HTML, CSS, Javascript, Bootstrap frameworks for builiding our project mainly. The proper use of these tools have helped us heavily in developing the project efficiently.
The code files can be made to run locally on the system. One needs to download the .zip file of our codes from the github repo: https://github.com/InquisitiveMe15/Pathology-Lab-Management-System/ After extracting the files, one can navigate to the proper folders through the terminal.
-
Thereafter, create a virtual environment locally using
python -m venv name
and actiavte it usingname/Scripts/activate
-
Following, run
pip install flask, flaskext.mysql, pdfkit
in the terminal and check for any other library that might be causing some difficulty on your system. -
Next, one can run the 'sql_queries.sql' file on their MysqlWorkbench or any other installed database management tool. This will create the database schema on the system.
-
Along with this, go ahead and edit the 'app.py' file to fill in your user credetials like 'mysql_username', 'password', 'mail_id', 'mail_password', as required.
Once these steps are complete, go ahead and run python app.py
This will run the application on localhost port. Navigate to the web page and explore the enjoyable Web Application.
Let us have a brief overview of the key features of the application. The following points highlight some interesting and useful aspects of the project app.
We have make our project in such a way that it can be used both by the labstaff as well as the patients.
Lab staff has a password through which they can enter the system.
Already registered patients can view their profile and their test history using their login credentials i.e. their ID and their registered mail.
An example
Here at the profile page logout button is also given by clicking on which user will be redirected to the landing page again.
On the landing page we have given the facility to make accounts of the new patients, they can do it themselves.
Here, user ID will be pre-filled as user don't know whether a particular ID exists or not so he can use the one provided by the database itself.
It has all the verifying features like if the user submits a partially filled form then a warning will be shown and also the ID unique feature is also implemented.
After successfully adding a patient a green colour alert will be there that the patient is added successfully and the ID will automatically increment by one.
That's all about the landing page.
Now, we will login into the system using the password.
Then we will land on to the Home page.
Here, we have various features like logout, add patient, test, doctor, equipments, place order, etc.
At the bottom of the page contact details are given.
We have a search bar too for searching registered patients.
Example
From here we can view the respective patient profile page and can also edit his/her details.
The application provides user-friendly interface to play around with the database in a secure manner. Viewing and Searching for existing patients by their name can be done by the Search Bar.
'Add Pateint' tab opens up a form before us to enter the new patient details. One of the entries of the form, namely, Patient ID comes auto-filled as it is managed by the database automatically to maintain integrity in the system. I f the user forgets to fill any of the required details, an error message notifying him is displayed.
Once some patient has been added successfully to the system, we can go ahead and Edit any of his details.
Similar features go ahead for the 'Doctors' field, we can add new doctors to the database by filling up a form, edit the details of the existing doctors, and also view the list of all doctors associated with the lab, under the 'Doctors' tab.
'Test' is another entity that we have used in our system, the receptionist can add new Tests to the database, along with their details like Test Name, Price, and also Edit them later if needed. Similarly, all the available tests can be seen in the form of a table under the 'View Tests' option. In all these cases, the unique feature of IDs is auto-maintatined by the system, without us having to worry about it.
The user can likewise maintain the database of the available Equipments in the pathology lab. Adding, Editing Equipments can be done similar to the above entities, along with that any of the equipments can be Deleted from the database with the Delete option. We also maintain the STock Quantity of each equipment in the laboratory, and if the available quantity of any equipment is below 20, we show a warning for the same to be refilled.
So these cover up all the entities used in the system.
The order can be placed for the patient by filling all the required details in place order page. .
Then we click on proceed to payment.
And the otp verification page opens up.
Then otp is sent to the patient.
After verifying otp the bill is mailed to the patient along with the pdf of pathalogy lab brouchre.
This sums up our project. We all teammates would like to thank our faculty, course teachers for providing us this wonderful opportunity to work on this enriching project. Working in this amazing team group has been a pleasnt journey full of new learnings each day. We built upon our tech and soft skills, with each phase of developing this project. Thank you very much.