
Hospital Management System
Project Overview
The Hospital Management System is a comprehensive application designed to streamline the day-to-day operations of a hospital. It manages patient records, doctor schedules, appointments, billing, and medical reports while ensuring secure access for patients, doctors, and administrative staff. The system improves efficiency, reduces paperwork, and enhances patient care.
Benefits of a Hospital Management System (HMS)
A Hospital Management System streamlines and automates hospital operations, reducing paperwork and improving efficiency. It centralizes patient data, making it easier for doctors to access medical histories, prescribe treatments, and track progress. Administrative tasks like appointment booking, billing, and room allocation become faster and error-free.
The system ensures accurate billing by automatically capturing all services provided, and it supports insurance processing. Real-time dashboards help management monitor hospital performance and make better decisions. It also ensures data privacy through secure, role-based access.
Overall, an HMS enhances patient care, reduces operational costs, and enables a smoother, more organized workflow in healthcare facilities.
How It Works: Step-by-Step
Create App Name: LifeCare Mult speciality Hospital
Step 1: New Patient Registration
- A Patient__c record is created with personal details such as name, contact, date of birth, gender, and address.
- This entry is done by the receptionist through the “New Patient” interface.
Step 2: Doctor Onboarding (Approval Process)
- A Doctor__c record is added with name, degree, specialization, contact, and consultation fees.
- A custom approval process is triggered.
- Chairman/Approver reviews the doctor profile.
- Upon approval, the doctor becomes available for appointments.
Step 3: Book an Appointment
- An Appointment__c record is created by selecting the patient, doctor, and appointment date.
- Additional info like appointment type, reason, time slot, and status are filled.
- A QR Code is generated for quick access during visit.
Step 4: Patient Visit and Treatment
- On the appointment date, a Visit__c record is created:
- It links the doctor and patient.
- Fields include visit charges, number of visits, and next visit date.
- A notification email is automatically sent to the patient with the next visit date and instructions.
Step 5: Medical History and Lab Records
- A Medical_Record__c is created to store:
- Allergies
- Diagnosis
- Rich text lab reports
- Visit and doctor reference
Step 6: Add Insurance Details
- A Insurance__c record is added (if applicable).
- Fields include:
- Provider name
- Coverage type and amount
- Policy number and validity dates
- Status (active/inactive)
Step 7: Add Prescription
- A Prescription__c record is linked to the visit:
- Medicine name
- Dosage
- Frequency
- Duration
Step 8: Apply Discount (Reception Process)
- Before discharge, the receptionist opens a discount request:
- A picklist allows Army (25%), Corporate (20%), or General (15%) discount selection.
- A flow triggers an approval process to the Chairman.
- Only after chairman approval, the process continues.
Step 9: Final Payment and Auto Invoice Generation
- Once approved, the payment is collected from the patient.
- A Record-Triggered Flow auto-generates the Invoice__c:
- Includes total amount, discount, final amount.
- A PDF copy is emailed automatically to the patient.
Step 10: Reporting and Dashboards
Admins and managers can monitor everything through Salesforce Reports & Dashboards, including:
- Total number of visits by date or doctor
- Most prescribed medicines
- Revenue trends
- Discount reports by category
- Active insurance usage.
Setup Customs Objects:
We have customized the following objects in Salesforce:
1.Patient
2.Doctor
3.Appointment
4.Visit
5.Prescription
6.Lab Report
7.Invoice
8.Room
9.Insurance
10.Medical Record
11.Reception.
• Patient__c (Custom)
Data Type | Field Name | Example/Description |
---|---|---|
Text | Patient Name | John Doe |
John@example.com | ||
Phone | Phone Number | 9876543210 |
Picklist | Gender | Male, Female, Other |
Date | Date of Birth | 01/01/1990 |
Text | Address (Street) | 123 Main Street |
Picklist | Address (Country) | India, US, etc. |
Text | City | Nagpur |
Picklist | State | Maharashtra |
Text | Zip Code | 440001 |
• Doctor__c (Custom Object)
Stores permanent doctor details for appointments, visits, and billing.
Data Type | Field Name | Example/Description |
---|---|---|
Text | Doctor Name | Dr. Ayesha Singh |
Picklist | Degree | MBBS, MD, BDS, MS |
Picklist | Specialization | Cardiology, Orthopedic, Pediatrics, ENT |
ayesha@hospital.com | ||
Phone | Mobile Number | 9876543210 |
Picklist | Approval Status | Pending, Approved, Rejected |
Address Fields | Country, Street, City, State, Zip | Full address of doctor |
Currency | Consultation Fees | ₹1000 |
• Visit_Of_Patient__c (Custom Object)
Represents each consultation between a patient and doctor.
Data Type | Field Name | Example/Description |
---|---|---|
Lookup | Doctor | Links to Doctor__c |
Lookup | Patient | Links to Patient__c |
Date | Date of Visit | 27/07/2025 |
Currency | Visit Charges | ₹500 |
Number | Number of Visits | 2 (Incremented manually or by automation) |
Date | Next Visit | Suggested follow-up date |
• Appointment__c (Custom Object)
Used for pre-scheduling visits with QR code integration (optional).
Data Type | Field Name | Example/Description |
---|---|---|
Auto Number | Appointment Number | APT-0001 (Auto-generated) |
Lookup | Patient | Links to Patient__c |
Lookup | Doctor | Links to Doctor__c |
Date | Appointment Date | 28/07/2025 |
Picklist | Appointment Type | General Checkup, Follow-up, Emergency |
Long Text | Reason for Visit | “Routine fever & cold” |
Picklist | Appointment Status | Scheduled, Cancelled, Completed |
Picklist | Time Slots | Morning, Afternoon, Evening |
Lookup (User) | Owner | User creating the appointment |
• Medical_Record__c (Custom Object)
Stores patient medical history, allergies, and diagnosis.
Data Type | Field Name | Example/Description |
---|---|---|
Text | Medical Record Name | MR-001 (Can be auto-generated) |
Lookup | Patient | Links to Patient__c |
Lookup | Doctor | Linked doctor who handled the case |
Lookup | Visit of Patient | Connects with Visit__c |
Date | Date Recorded | 27/07/2025 |
Long Text | Lab Reports | Rich text format to store lab summaries |
Long Text | Allergies | Long Text |
Picklist | Diagnosis | Viral Infection |
Lookup (User) | Owner | Created by doctor/admin |
• Insurance__c (Custom Object)
Tracks insurance coverage details for patients.
Data Type | Field Name | Example/Description |
---|---|---|
Lookup | Patient | Links to Patient__c |
Text | Provider Name | Star Health Insurance |
Currency | Coverage Amount | ₹5,00,000 |
Date | Start Date | 01/01/2024 |
Date | End Date | 31/12/2024 |
Text | Policy Number | POL-12345 |
Picklist | Insurance Type | Government, Private, Corporate |
Picklist | Coverage Type | Full, Partial |
Checkbox | Is Active | TRUE/FALSE depending on status |
Lookup (User) | Owner | Admin or Insurance Agent |
• Room__c (Custom Object)
Tracks room allotments for patients during admission with charges and duration.
Data Type | Field Name | Example/Description |
---|---|---|
Text | Room Number | R101, ICU-5, G202 |
Picklist | Rooms | General, Private, ICU, Deluxe |
Currency | Charges Per Day | ₹1500 per day |
Date | Start Date | 25/07/2025 |
Date | End Date | 28/07/2025 |
Picklist | Status | Occupied, Vacant, Cleaning |
Lookup | Patient | Links to Patient__c (admitted patient) |
• Lab_Test__c (Custom Object)
Manages patient lab tests, results, and charges ordered by doctors.
Data Type | Field Name | Example/Description |
---|---|---|
Text | Test Name | Blood Test, X-Ray, ECG |
Picklist | Test Type | Pathology, Radiology, Cardiology |
Date | Test Date | 27/07/2025 |
Long Text | Test Result | Hemoglobin: 13.5 g/dL, WBC Count: Normal |
Currency | Charges | ₹750 |
Lookup | Patient | Links to Patient__c |
Lookup | Doctor Ordered By | Refers to the Doctor__c who ordered the test |
• Prescription__c (Custom Object)
Captures medicine details prescribed to a patient during a visit.
Data Type | Field Name | Example/Description |
---|---|---|
Auto Number | Prescription Number | PRESC-0001 (Auto-generated) |
Lookup | Patient | Links to Patient__c |
Lookup | Doctor | Refers to prescribing Doctor__c |
Date | Date of Prescription | 27/07/2025 |
Text | Medicine Name | Paracetamol, Azithromycin |
Text/Number | Dosage | 500mg, 1 Tablet |
Text | Duration | 5 Days, 1 Week |
Number | Quantity | 10, 15, 20 |
Currency | Price per Unit | ₹10 per tablet |
• Reception__c (Custom Object)
Handles the final stage of billing and discharge, including discounts and payment tracking after a patient visit
Data Type | Field Name | Example/Description |
---|---|---|
Text | Reception | Auto name or custom text like Reception-001 |
Lookup | Patient | Links to Patient__c |
Lookup | Doctor | Refers to Doctor__c associated with visit |
Lookup | Visit of Patient | Connects with Visit__c |
Picklist | Discount Type | Army 25%, Staff 15%, Senior Citizen 20%, None |
Picklist | Discount Approval Status | Pending, Approved, Rejected |
Picklist | Patient Status | Discharged, Under Treatment, Referred |
Picklist | Payment Mode | Cash, Card, UPI, Insurance |
Picklist | Payment Status | Paid, Unpaid, Partial |
• Hospital_Invoice__c (Custom Object)
Generates the final hospital bill including all charges and discount applied to a patient’s visit
Data Type | Field Name | Example/Description |
---|---|---|
Auto Number | Invoice Number | INV-0001 (Auto-generated) |
Date | Invoice Date | 27/07/2025 |
Lookup | Patient | Links to Patient__c |
Lookup | Visit of Patient | Links to Visit__c |
Currency | Consultation Fees | ₹1000 |
Currency | Visit Charges | ₹500 |
Currency | Lab Charges | ₹750 |
Currency | Room Charges | ₹3000 |
Currency | Prescription Charges | ₹200 |
Currency | Amount Charged | Total before discount (auto-calculated via formula) |
Currency | Discount | ₹500 or 25% (manual or formula field) |
Currency | Amount Paid | Final amount after discount |
Picklist | Payment Status | Paid, Unpaid, Partial |
Picklist | Payment Mode | Cash, Card, UPI, Insurance |