Python Assignment:
class Patient:
def __init__(self, patient_id: str, name: str, age: int, diagnosis: str):
self.patient_id = patient_id
self.name = name
self._age = None # Private attribute
self._diagnosis = None # Private attribute
self.set_age(age)
self.set_diagnosis(diagnosis)
def get_age(self):
return self._age
def set_age(self, age):
if age > 0:
self._age = age
else:
print("Invalid age.")
def get_diagnosis(self):
return self._diagnosis
def set_diagnosis(self, diagnosis):
if diagnosis.strip():
self._diagnosis = diagnosis
else:
print("Diagnosis cannot be empty.")
class Doctor:
def __init__(self, doctor_id: str, name: str, specialization: str):
self.doctor_id = doctor_id
self.name = name
self.specialization = specialization
def treat_patient(self, patient: Patient):
print(f"Patient {patient.patient_id} treated for {patient.get_diagnosis()} successfully.")
patient = Patient("P001", "John Smith", 45, "Fever")
doctor = Doctor("D101", "Dr. Alice", "General Medicine")
patient.set_diagnosis("Flu")
doctor.treat_patient(patient)
class Staff:
def __init__(self, staff_id: str, name: str, department: str):
self.staff_id = staff_id
self.name = name
self.department = department
def display_details(self):
print(f"Staff ID: {self.staff_id}, Name: {self.name}, Department: {self.department}")
class Doctor(Staff):
def __init__(self, staff_id: str, name: str, department: str, specialization: str, years_of_experience: int):
super().__init__(staff_id, name, department)
self.specialization = specialization
self.years_of_experience = years_of_experience
def display_details(self):
print(f"Doctor ID: {self.staff_id}, Name: {self.name}, Department: {self.department}, Specialization:
{self.specialization}, Experience: {self.years_of_experience} years")
class Nurse(Staff):
def __init__(self, staff_id: str, name: str, department: str, shift: str, patients_assigned: int):
super().__init__(staff_id, name, department)
self.shift = shift
self.patients_assigned = patients_assigned
def display_details(self):
print(f"Nurse ID: {self.staff_id}, Name: {self.name}, Department: {self.department}, Shift: {self.shift},
Patients Assigned: {self.patients_assigned}")
class HospitalManagementSystem:
def register_doctor(self, doctor: Doctor):
doctor.display_details()
def register_nurse(self, nurse: Nurse):
nurse.display_details()
doctor1 = Doctor("S001", "Dr. Smith", "Cardiology", "Cardiology", 15)
doctor2 = Doctor("S002", "Dr. Lee", "Neurology", "Neurology", 8)
nurse1 = Nurse("S003", "Nurse Kelly", "Emergency", "Night", 5)
hospital_system = HospitalManagementSystem()
hospital_system.register_doctor(doctor1)
hospital_system.register_doctor(doctor2)
hospital_system.register_nurse(nurse1)
from abc import ABC, abstractmethod
class StaffMember(ABC):
def __init__(self, name: str, id: str):
self.name = name
self.id = id
@abstractmethod
def get_Annual_Salary(self):
pass
def toString(self):
return f"Staff ID: {self.id}, Name: {self.name}"
class Staff(StaffMember):
def __init__(self, name: str, id: str, monthly_Salary: int):
super().__init__(name, id)
self.monthly_Salary = monthly_Salary
def get_Annual_Salary(self):
return self.monthly_Salary * 12
def display_Staff(self):
print(self.toString())
print(f"Annual Salary: {self.get_Annual_Salary()}")
class StaffManagementSystem:
def __init__(self):
self.staff_list = []
def add_Staff(self, staff: Staff):
self.staff_list.append(staff)
def display_all_Staff(self):
for staff in self.staff_list:
staff.display_Staff()
staff1 = Staff("Alice Johnson", "S1001", 5000)
staff_system = StaffManagementSystem()
staff_system.add_Staff(staff1)
staff_system.display_all_Staff()
from abc import ABC, abstractmethod
class MedicalPersonnel(ABC):
def __init__(self, name: str, id: str):
self._name = name
self._id = id
def get_name(self):
return self._name
def get_id(self):
return self._id
@abstractmethod
def perform_duties(self):
pass
@abstractmethod
def get_specialization(self):
pass
def display_details(self):
print(f"Name: {self._name}, ID: {self._id}")
class Doctor(MedicalPersonnel):
def __init__(self, name: str, id: str, specialization: str):
super().__init__(name, id)
self._specialization = specialization
def perform_duties(self):
return f"Doctor {self._name}: Diagnoses patients, prescribes medication, and conducts surgeries."
def get_specialization(self):
return self._specialization
class Nurse(MedicalPersonnel):
def __init__(self, name: str, id: str, department: str):
super().__init__(name, id)
self._department = department
def perform_duties(self):
return f"Nurse {self._name}: Provides patient care, administers medications, and assists doctors."
def get_specialization(self):
return self._department
doctor1 = Doctor("Dr. Smith", "D101", "Cardiology")
nurse1 = Nurse("Nurse Kelly", "N102", "Emergency")
medical_staff = [doctor1, nurse1]
for personnel in medical_staff:
personnel.display_details()
print(personnel.perform_duties())
print(f"Specialization: {personnel.get_specialization()}")
print("-")