Doctor Patient Communication System (DPCS)
Doctor Patient Communication System (DPCS)
ABSTRACT
Doctor Patient Communication System (DPCS) is an Android app which sets up online
communication between a doctor and a patient. This app is helpful to patients to ask
questions and state their concerns to doctors regarding their health condition. This app
will facilitate the patients to interact with doctors without making any physical
appointments, but the patients are restricted to only one message per day before
receiving a reply. If the patient gets a response from the corresponding doctor, the
patient is allowed to send another message. In addition using this app, the patient can
make an appointment to meet the doctor in clinic/hospital. DPCS app would also
facilitate the patient’s pharmacy selection to pick up the medication.
Similarly, this app is beneficial to doctors by providing the following functionalities:
patient interaction through messaging, sending prescription to pharmacies, confirming
appointments, information sharing with other doctors, and patient referrals. Unlike
other similar kinds of apps in the android play store, DPCS has unique features such as
issuing online prescription to patients, referring patients to a specialist, sending health
tips to patients, and effectively, reducing the cost of customer service and providing a
vital communication link between doctors and patients.
Abstract.....................................................................................................ii
Table of Contents................................................................................................iii
List of Figures.......................................................................................................vii
List of Tables…………………………………………………..ix
1. Background and Rationale....................................................................1
1.1 Introduction to DPCS................................................................................3
1.2 Existing Applications.................................................................................5
1.2.1 Epocrates…..............................................................................................5
1.2.2 Doctor @t Work.............................................................................................5
1.2.3 Diagnotes…………........................................................................................6
1.3 Proposed Solution ..........................................................................................6
1.4 Android Operating System………………………………….7
1.5. Android Studio 1.0.1 ………………………………….8
1.6. Parse Cloud Server………………………………………………………..8
1.6.1. Features of Parse ………………………………………………………….9
2. Narrative………………………………………………...11
2.1. Problem Statement………………………………………………..11
2.2. Motivation……………………………………………...11
2.3. Product Description……………………………………………....12
2.4. Product Scope……………………..……………………………...12
3. Proposed Product Design………………………..……………………….13
3.1. Product Design and Architecture…….……..……………………………….13
3.2. Use case Diagram........................................................................................…......14
3.3. Class Diagrams………………………………………………………...15
3.4. Sequence Diagram………………………………………………………..18
3.5. User Interaction………………………………………...19
4. Implementation of the Application Modules…………………….23
4.1. Registration & Login………………………………………..23
4.2. User Inbox…………………………………………..25
4.3. Doctor Dashboard………………………………………..26
4.4. Add/Block Patient………………………………………..26
4.5. Interaction through messages……………………………………27
4.6. Patient Referrals…………………………………………………………28
4.7. Prescribe Medication………………………………29
4.8. View Appointments…………………………………………..30
4.9. Register with Doctor…………………………………………………….31v
4.10. View Prescriptions…………………………………………………31
4.11. View Health Tips………………………………………………..32
4.12. Request for Appointment………………………………………..32
4.13. Payment Tracker……………………………………………...33
5. Testing and Evaluation…………………………………………………..35
5.1. Registration………………………………………………....36
5.2. Login……………………………………………………..37
5.3. Inbox………………………………………………..38
5.4. Doctor Dashboard………………………………………………..39
5.5. Add Patient……………………………………....40
5.6. Block Patient………………………………………………….41
5.7. Send Message…………………………………………………………42
5.8. Send Health Tips………………………………………………43
5.9. Patient Referral……………………………………..44
5.10. Prescribe Medication……………………………………45
5.11. Search nearby locations on Google maps………………………46
5.12. View Appointments………………………………….47
5.13. View Blocked Patients………………………………48
5.14. Track Payments………………………………………….49
5.15. Register with Doctor……………………….50
5.16. View Prescriptions…………………………51
5.17. View Health Tips…………………………..52
5.18. Make Appointment……………..53
5.19. Card Details………………………………………………..54
5.20. Payment Tracker…………………………...55
5.21. Sending Email Notifications……………….56
5.22. Sending Push Notifications……………………………...57
6. Conclusion & Future Works………………………………………..58
7. Bibliography & References………………59
LIST OF FIGURES
Figure 1.1: Global Mobile Users Statistics (comSCORE 2014)…….........1
Figure 1.2: Mobile OS market share as of September 2014 (NetApplications)…........3
Figure 1.3: Parse Cloud Server Pricing & Usage Details…………………..10
Figure 3.1. DPCS Architecture………………………………..13
Figure 3.2. DPCS Use case Diagram……………...14
Figure 3.3: Class Diagram for Doctor Module………………15
Figure 3.4: Class Diagram for Doctor Dashboard…………..16
Figure 3.5. Class Diagram for Patient Module……………….17
Figure 3.6: Sequence Diagram for User Interaction with application……….18
Figure 3.7. User Registration Screen…………………….19
Figure 3.8: Login page of the application……………….20
Figure 3.9. Landing screen for the doctor…………….21
Figure 3.10. Landing screen for the patient…..22
Figure 5.1: User Registration Page…………………………………36
Figure 5.2: User Login Page……………………………………..37
Figure 5.3: User Inbox & Detailed Conversation Pages………………38
Figure 5.4: Doctors Dashboard………………………………..39
Figure 5.5: Doctor Adding a Patient………………………..40
Figure 5.6: Doctor Blocking a Patient……………………………...41
Figure 5.7: User Sending Message……………………………42
Figure 5.8: Doctor Sending Health Tips………………………...43
Figure 5.9: Doctor Referring a Patient to other Doctor…………………….44
Figure 5.10: Doctor Prescribing medicine to a patient…………………..45
Figure 5.11: Doctor Searching nearby pharmacies of patient location……..46
Figure 5.12: Patient Appointments Request……………………………..47
Figure 5.13: List of Blocked Patients……………………………………48
Figure 5.14: Payment Tracker for Doctor……………………………..49
Figure 5.15: Patient registering with a doctor……………………………50
Figure 5.16: View list of prescription & detailed prescription page……......51
Figure 5.17: View Health Tips Page……………………………..…………52
Figure 5.18: Patient making an Appointment Request…………………………......53
Figure 5.19: Patient Adding Card Details……………..……………………....54
Figure 5.20: Payment Tracker for Patient………………..………………...….55
Figure 5.21: Sending Email Notifications………………..…………………...56
Figure 5.22: Sending Push Notifications…………………..…….............57
List of Tables
Table 4.1 Code Snippet for User Sign up & Registering Device in Parse ……....23
Table 4.2 Code Snippet for User Login Authentication………………24
Table 4.3: Code Snippet for loading User Inbox………………………..25
Table 4.4: Code Snippet for loading the doctor dashboard with patient requests …26
Table 4.5: Code Snippet for Adding Patient………..27
Table 4.6: Code Snippet for Interacting through messaging service…....28
Table 4.7: Code Snippet for Sending Prescriptions to Patient…………………29
Table 4.8: Code Snippet for loading the appointment requests from patients…….30
Table 4.9: Code Snippet for Registering with a doctor……………….31
Table 4.10: Code Snippet for loading prescriptions sent by doctor………….32
Table 4.11: Code Snippet for requesting an appointment with doctor……33
Table 4.12: Code Snippet for charging per message from patient……….33
1.2.1. Epocrates
Epocrates enables patient care by delivering the right information, when it is needed.
It has features such as, find providers for consults and referrals in the Provider
Directory, review drug prescriptions and safety information, check for potentially
harmful drug interactions, access timely medical news and research information,
disease information, alternative medications, lab guides, and more clinical tools. [3]
2. NARRATIVE
2.1. Problem Statement
In the current marketplace there are several apps for communication between doctors
and patients but most of their functionalities are commercial, and not really helpful to
the users. There are no apps which actually meet the patient’s basic needs and no such
apps that fulfill the patient’s expectations from the doctors. Though these apps have
publicized themselves as the best service providers but all the service is just limited to
money making by making appointments with doctors, tracking the visit history, patient
billings, and very minimal interaction related to disease condition of the patients. This
project aims at changing this kind of misleading and unnecessary interaction between
doctors and patients, with a new initiative which focuses more on patient benefits
relating to his/her disease treatment and facilitating the doctors with an easy and
optimal way to treat the patients.
2.2 Motivation
It is quite possible that patient may not remember all the questions which they want to
ask a doctor when they meet in the hospital. This app overcomes this problem by
providing a messaging service between doctors and patients. This app helps the doctors
to send health tips to their patients. Apart from the above, DPCS also facilitates
making appointments with the doctor, patient referrals to other specialists dealing with
similar patients. Through all these functionalities DPCS fulfills the basic needs of the
patients which are totally non-commercial and beneficial to both patients and doctors.
The Figure 3.8 shows the landing page of the application which is the login page with
a link “Click here to register” with the application.
From the screen shown in Figure 3.8 users (In this case a doctor) will be authenticated
and directed to the screen shown in Figure 3.9 (a) from where he/she can interact with
the functionalities of the application as shown in Figure 3.9 (b).
(a)
(b)
Figure 3.9 shows the landing screen for the doctor which will be initially showing the
inbox, and there is a side navigation bar which provides the remaining functionalities
to interact further with the patients. Similar to doctors, patients also have a different
landing screen, this differentiation happens based on the login type.
Figure 3.10 shows the landing screen for the patient which will initially show the
inbox,
where the users most recent received messages are shown, and there is a side
navigation bar
which provides the remaining functionalities to interact further with the doctors.
(a)
(b)
After successful registration, the user can login into the application with his/her
credentials, the application validates both the username and password given by the user
and also checks the role of the user and navigates appropriately to the corresponding
screen. If the user is a doctor then he will be navigated to“Doctor_AfterLogin.activity”,
otherwise he will be navigated to “home_patient.activity”. Both the users will have
different functionalities and features based on their role in the application. Table 4.2
shows the code snippet for user authentication.
Table 4.4: Code Snippet for loading the doctor dashboard with patient request
final ParseObject Pat_Req = new ParseObject("Patient_Requests");
Pat_Req.put("PatientName", ParseUser.getCurrentUser().get("fname").toString());
Pat_Req.put("PatientPrefName",edtPatPrefName.getText().toString());
Pat_Req.put("PatientPrefEmail",edtPatPrefEmail.getText().toString());
Pat_Req.put("PatientSSNID", edtPatId.getText().toString());
Pat_Req.put("PatientPrefMobile",edtPatPrefMbl.getText().toString());
Pat_Req.put("DiseaseDescription",edtPatProb.getText().toString());
Pat_Req.put("DoctorName", docList.getSelectedItem().toString());
Pat_Req.put("Status","Pending");
Blocking a patient could arise in some situations such as, after the treatment is done,
irritating the doctors with the unnecessary questions/appointment requests or it could
be when the doctor is not able to deal such cases.If a doctor blocks a particular patient
then that patient will be inactive with the specific doctor and further he/she will not be
able to interact with the specific doctor. Every doctor will be having the provision to
block and see the list of blocked patients.
Table 4.11: Code Snippet for requesting an appointment with the doctor
reqAppointment = new ParseObject("patient_appointments");
reqAppointment.put("PatientName", ParseUser.getCurrentUser().get("fname").toString());
reqAppointment.put("DoctorName", spinDocsList.getSelectedItem().toString());
reqAppointment.put("PatientEmail", ParseUser.getCurrentUser().get("email").toString());
reqAppointment.put("RequestedDate", selectedDate);
reqAppointment.put("RequestedTime", selectedTime);
reqAppointment.put("Status", "Pending");