You are on page 1of 34

WEIDNER. MEMO. SEN. SEC.

SCHOOL
LALBAGH, RAJNANDGAON

Session : 2023 - 2024

A Project Report On:


“INFORMATICS PRACTICES (065)”

Directed By: Central Board Of Secondary Education (CBSE)

Topic Name:
Pathology Lab Reporting Software

Guided By: Submitted By:


Mr. K. Ravikant Sir Name: Anshul Wycliffe
Rollno: _____________
INTRODUCTION
Name of the student :- Anshul Wycliffe

Rollno. :-

Project On :- Informatics Practices

Project Name :- Pathology Lab Reporting


Software

Name of the Coordinator :- Mr. K. Ravikant

Objective of the Project :- Work with different frame-


work for connectivity of
mysql and csv with python

Academic Year :- 2023 - 2024

Front-End :- Pyside2 (By- Qt5 Designer)

Back-End :- Python v3.9.2


Pandas
CSV file
MySQL Database
ACKNOWLEDGMENT
First and foremost, I extend my deep sense of gratitude and
wholehearted thanks to our honorable guide, K. Ravikant Sir,
for his valuable guidance, keep interest, and constant
encouragement throughout the process of bringing our project
to life. I take great pleasure in having undertaken this project
entitled:
Project Name: Pathology Lab Reporting Software

Throughout the development of the project, I received


immense support from K. Ravikant Sir and all faculty members
of Weidner. Memorial. Sr. Sec. School, Lalbagh, Rajnandgaon.
I express sincere thanks to K. Ravikant Sir for providing me
with relevant facilities, valuable guidance, and extra lab time
for the completion of our project within the proper time frame.
I would also like to express my gratitude to our school
management for providing coordinated support throughout the
project development.

I hold great respect for each other’s contribution, dedication,


and sincere efforts in making this project come alive.

Student Name : Anshul Wycliffe


Roll No. :
CERTIFICATE
This is to certify that

Name: Anshul Wycliffe


Roll no.:

of Class-XII of Weidner Memorial Senior Secondary School,


Rajnandgaon, has completed this project under my supervision.
He has shown maximum authenticity and a keep interest in the
completion of this project.

I certify that he has successfully completed this Project Work in


Informatics Practices (065) on
"Pathology Lab Reporting Software"
during the academic year 2023-24 to my expectation and
satisfaction, as per the guidelines issued by CBSE,
and this is his original work.

___________________________ ___________________________ ___________________________


Head of Dept. Examiner Principal
(Mr. K. Ravikant)
PREFACE
I am introducing my project titled :
“Pathology Lab Reporting Software” ,
it’s a small attempt from my side to utilise information
technology. The s/w used in my project are python pandas, csv,
matplotlib, MySQL, pyqt5, pyside2, Qt5 Designer which makes
the user interface very easy and friendly. The software is open
source and free version.

My project takes care of:


1. Industry Profile
2. Create Report
3. Create Bill
4. Records
5. Doctor’s Reference

Further this project can be improved by providing various


service and optimizing the software.
Theoretical Background

Python is easy to learn and use a more expressive interacted


and cross-platform language which has a large and broad
library such as pandas, matplotlib, logging, time, sys and much
more that gives a programmer a huge
resource to take advantage of this language.
Features:
 Easy to learn
 Free and open source
 Largest standard library
 More Expressive

Pandas is a software library written for the Python


programming language for data manipulation and analysis. In
particular, it offers data structures and operations for
manipulating numerical tables and
time series.
Features:
 Handling of Data
 Alignment and Indexing
 Handling Missing Data
 Cleaning up Data
Matplotlib is a plotting library for the Python programming
language and its numerical mathematics extension numpy.
It provides an object-oriented API for embedding plots into the
application using general purpose.
Features:
 Easy Visualization
 Free and Open Source
 Embedded GUI
 Widely used for data analysis

CSV file commonly know as comma-separated values file is a


delimited text file that uses a comma to separate values. Each
line of the file is a data record. Each record consists of one or
more fields, separated by commas. The use of the comma as a
field separator is the source of the name for this file format.
Features:
 One line for each record
 Comma Separated Fields
 Space-characters adjacent to commas is ignored
 Fields with in-built commas are separated by double-
quote characters
Introduction to mysql
Mysqlthe world’s second most widely used open-source
RelationalDatabases Management System (RDMS). It is named
after co-founder Michael Widenius’s daughter, my. The SQL
phrase stands for Structured Query Language.
MySQL was created by a Swedish company, MySQL AB,
founded by David Axmark, Allan Larsson and Michael
“Monthly” Widenius’s.

The first version of MySQL appeared on 23 may 1995. It was


initially created for personal usage from mysql based on the
low-level language ISAM, which the creator considered too
slow and inflexible. They created a new SQL interface, while
keeping the same APlas MySQL.

The MySQl development project has made its source code


available under the of the GUN General Public License, as well
as under a variety of proprietary agreements. MySQL was
owned and sponsored by a single for-profit firm, the Swedish
company MySQL AB, now owned by Oracle Corporation.

MySQL is a popular choice of databases for use in web


application, and is a central component of the widely used
LAMP open source web application software stack (and other
‘AMP’ stack).
Lamp is an acronym for “Linux, Apache, MySQL, and
Perl/PHP/Python”. Free-software-open source projects that
require a full-featureddatabase management system often use
MySQL.
Product View
Pathology Lab(s) often suffer from a problem of keeping records,
printing reports in good format, generating receipts, having
centralized and secure platform. Although there are many
enterprises who can solve this issues but not at the worthy cost.
Like for a simple bar code , Qr Code enabled downloading reports
the labs have to pay a plenty of amount of money. But if they find
some alternatives , which they can afford, at the end they are
getting that finest solutions and well organized solution.

To resolve the issue but at it’s lowest point, the software has came
place. It has all the needy and basic features that a normal
laboratory required for their workflow.
Basic Structure
The following structure shows the backend structure of the
software:-
1. Assets - It contains all the images, icons, resource file which the
program needs

2. sys_files - It contains all the software required files to function


like pass.wp(file which contains username and password)

3. template_files - It contains all the pre-design template for


generating receipts and report (also with letter head)

4. test_file - It contains all the essential test data which can be


retrieved and display on our software while creating reports

5. ui_files - It contains all the ui files of the programs

6. iconsres_rc.py - It has all the path reference of all the assets


generally created by pyside2 by default

7. main.py - It is the main file which will eventually execute the


Software

8. Rest of it are ui files converted in python for further bindings


Preview
1. Splash Screen

This will be the first screen when main.py script is run.


The progress bar will show us the progress of instances and
process running background.
2. Main Window (Login Window)

This will be the login page, Default user and pass - admin
When click on “Continue as Admin” a popup message box appears

Here you can see a


“Connection ID” represents
Connection between MySQL
and software.
3. Main Window (Reporting Page)

After login successfully , you will be directed to reporting/entry


page
You can also see the names of different pages by clicking on the
nav button on the top most left.
4. Main Window (Receipt Page)

5. Main Window (Doctor’s Reference)


6. Main Window (Records)
Developed On:

Operating System:- Windows 10 - 2H22


Architecture:- 64 bit
Language:- Python - 3.9.3v
Database:- MySQL Community
Server
GUI Framework:- Pyside2 , Qt
Data Manipulation:- Pandas
from PySide2.QtWidgets import *
Libraries:- from PySide2.QtCore import *
from PySide2.QtGui import *
import random
import sys
import os
from datetime import datetime
import csv
import string
from docxtpl import DocxTemplate
import subprocess
import threading

import pandas as pd
import mysql.connector as mySQL

from docx import Document


from docx.shared import Inches
from docx.enum.table import
WD_ALIGN_VERTICAL

from docx2pdf import convert


import num2words
Demonstration
 Create Patient Entry

Step1: Enter the required details given by patient.


Step2: If the patient is referred by Doctor, write the name or if exist
click on “Add Ref” button to add preexisting Doctor, else
write SELF.(Dialog box appears > Select Doctor > Click on
“Select Ref” > Click on “Close” button)
Step3: Now select the required test group eg. CBC, Lipid Profile,
Haematology, Serology, etc.
* For our example we will use “ARTHIRITIS PROFILE”

Step4: After that enter your value obtained by performing test


in machines, eg. - “MISPA COUNTX” , “COUNT PLUS”, etc.

Step5: If the value are not falling in the give minimum and
maximum condition, it will show LOW or HIGH respective to
the value
Step6: As per now, the report has been filled. So, select whether you
like normal report without lab’s name or with letter head.

Step7: Click on “Preview & Print”

 By Normal Report
 By Letter Head

*Meanwhile data and path of file has been stored in database


 Create Receipt

Step1: Fill all the basic details , previously discussed.


Step2: Now add the test groups to the table by clicking on plus icon,
it will be added with a default price eg.-100rs
Step3: You can also change the price of test by clicking the price
cell, and type your desired price. It will automatically format
the price.

Step4: You can also give discounts to the net price for example,
Let us give 100rs discount to the total price.
(It will automatically calculates and adjust the price)
Step5: If user want to add a single test name without whole test
group, it can done by clicking on “Add Test” , a dialog box
appears.

Step6: Default price is 10rs, it can be edited. After inserting new test
in the table, price will be adjusted instantly.
Step7: Print the receipt by clicking on printer icon

* If you want to make report after creating receipt, just click on the
report button next to print button , it will redirect you to report
page and fill all the details for.

* Meanwhile the receipt has bee saved in the database


 Doctor’s Reference

>To add Doctor Ref.


Step1: Enter name , contact no. , commission percent
Step2: Click on add button
Step3: Popup message will appear “Successfully Added”
For eg.

> To remove Doctor Ref.


Step1: Enter the exact name
Step2: Click on remove button
Step3: Popup message will appear “Successfully Removed”
For eg.

> To modify Doctor Ref.


Step1: Enter the exact name
Step2: Now enter the new contactno. & commission percentage
Step3: Click on Save File Button.
 Add Test Groups & Test Name
As the software will detect a new folder for test group and its
components

Let us talk about those components:


1. Parameter - It is all tests contains in a test group eg. CBC group
contains multiple parameters - MP widal, Haemoglobin,TLC,etc

2. Table - If the test needs a table for displaying test like in Widal
test , technician need to state the value obtained in different
dilutions. (1:40,1:80,1:160,1:320,1:640)

3. Notes - It is the last closing points where all the information


about the procedure or test.

4. Comments - It is the comments based on the value obtained,


generally found in physically examined values by- Microscope

5. Interpretation - It is the interpret of the values obtained for eg.


In HbA1c test we need interpretation because there is no fixed
range , It is totally depend on the person’s nature(diabetic or non
diabetic) and age

Table

Test List/ Parameter

Note

Comment

Interpretation
 To add a test group:
Step1: Create a folder name of that test group in test_files directory
as software will update the indexes.
Step2: Create a parameter.csv file in that. Enter the parameter in
this format for example-

* If the test group contains a custom table like Widal-

* You can create that but remember while working with custom
parameter , kindly create a empty “table.csv” file in the same folder
(Test group)

 Like wise we can add,remove, modify our test group


 To add other components
* Make files - comment.csv, note.csv, interpretation.csv if needed.

Enter the specific rows and columns based on your required

# Comments

# Interpretation
 View Records

 To View Specific Test Group Records (Reports Only):


Step1: Click on test group combo box to change the group
* As it is inbuilt linked with software that whenever a change in
group box will trigger the table widget to show the following
record saved in database
 To View Records At Specific Date:
Step1: Click on dateEdit1 , as per your desired date, set the date.
Step2: Click on dateEdit2 , as per your desired date, set the date.

* For a range of date you can change the accordingly


The default date is set as current date. If search in that state, the
table widget will show the records of current date.

* You can also filter this data by test groups


 To View For Specific Bno., PID, Ptname:
Step1: Enter the specific data in the data box
Step2: Click on search button
For eg. Search by - Ref

 To View Only Receipts


*Click on Receipts Radio Button
 To View Only Reports
*Click on Reports Radio Button

 Preview Generated Reports/Receipts

* Double Click on Path - to respective row


Requirements
The following requirements for running this software:-

1. Any CSV file viewer (MS Excel, WPS Office)


2. Any Browser with built-in PDF viewer
3. MySQL - Community Server (Setup the system)
4. Create database for “patholab” and make two table-

5. While creating Mysql account make sure you have save the
credentials like db_name and password in the sys_files/db_key.wp
file
Source Code
Link :
https://drive.google.com/drive/folders/1jWLnjZFBmk-
MIhl_J8dKd1l3uYsAnFxG?usp=drive_link

Compiled Software :
https://drive.google.com/drive/folders/1ENSdjGHnsz9qpeb3Bi2b
B4h-wicjNuRt?usp=drive_link

You might also like