HealthCareSys - Documentation
HealthCareSys - Documentation
HealthCareSys - Documentation
Problem Statement
To create a user-friendly java application for a Health Care System.
Description
The system consists of various diagnostic centers, with their own tests which the customers can
opt for. The system should be accessible to two types of users, namely admin and customer.
Admin has control over adding, removing and updating diagnostic centers and the tests under
them.
Customer makes an appointment after selecting a proper date-time as well as the test and
diagnostic center. The appointment will be confirmed only after the admin approves it.
Scope
User can select only one test at a time. Thus, an appointment can be only for 1 test at a time
inside a center. Users have to make an appointment for a test under any diagnostic center and
that appointment has to be approved by an admin.
Out of Scope
An appointment will be in the database till it is manually deleted by the database admins.
User methods:
+Add Center (Admin)
Admin can add new centers. Center name has to be specified and the centerId will be
generated automatically.
+Add Test(Admin)
Admin first selects a diagnostic center and then adds a new test in it.
+Remove Test(Admin)
Admin first selects a diagnostic center and then gets a list of all tests available inside the
selected diagnostic center. Any test can be removed from the list and saved.
+Approve Appointment(
Admin first get list of all centers, then gets the appointmentList from that center. Admin
can then approve or reject the appointments.
+makeAppointment(user: User, center: DiagnosticCenter, test: Test ,datetime:
Datetime):BigInteger
User selects a test in a diagnostic center and books a datetime for the same. This
appointment is added in the AppointmentList of the Diagnostic center the test is booked in.
register(): String
User id is generated automatically. By default user role is set to customer.
1. Register - (customer):
A. DTO Layer
1. Diagnostic Center: For each diagnostic center the admin will create.
Each center has a unique centerId and a list of available tests under it. Any new
appointment made for the tests under a particular diagnostic center will be added in
the “appointmentList”. This appointment list will be viewed by the admin and
reviewed.
Attributes:
-centerName: String
-centerId: String
-listOfTests: List<Test>
-appointmentList: List<Appointment>
Attributes:
-testId String
-testName String
3. Appointment: Saves the details of the appointment the customer makes. Each
appointment will have information of the user, the Test it is for, the DiagnosticCenter it is
placed in and the date-time. Each appointment has to be approved by the admin.
-user User;
-appointmentId: BigInteger
-test: Test
-datetime: DateTime
-approved: boolean
4. User: Depending on the type of user, a user role specific menu will be shown.
-userId: String
-centerList: List<DiagnosticCenter>
-userPassword: String
-userName: String
-contactNo: BigInteger
-userRole: String
-emailId: String
B. DAO layer
C. Service Layer:
Relationships:
1. HealthCareSystem and DiagnosticCenter have 1 to many relationship.
2. DiagnosticCenter and Test have 1 to many relationship.
3. Appointment and DiagnosticCenter have many to one relationship.
4. Appointment and User have one to one relationship.
Diagrams:
ER Diagram:
Activity Diagram :
Sequence Diagram: ADMIN
Sequence Diagram: Customer