Mar 3, 2023
Understanding the Workflow of GeekCare for Patients and Physicians
This blog explains how the workflow in the GeekCare application was created for each user persona — patient and doctor.
Author

Subject Matter Expert


Book a call
Table of Contents
Working Flow of GeekCare
Logging in Flow




Physician User Flow






Patients User Flow

Appointment Flow
Member Dashboard


The "Payment" section of the Member Dashboard contains the transaction history of all appointments booked by the member. Members can filter transactions based on the month and year. Additionally, there is a tab in the Payment section where members can save their card information for future use.

API Calls : A Closer Look at the Flow of Data
Chat Messages

useSocket hook, which handles the functionality of sending and receiving messages in a chat room. The hook takes in the selectedChat object and a boolean isMember as props and returns an object with several properties, including chatMessages which contains the messages in the chat , handleSendMessage - a function to send messages , divRef - a reference to a DOM element , myId - the user's ID, inputValue and setInputValue.The useSocket hook also takes in the 'room_id' as a parameter. The WebSocket connection will allow the client to perform real-time communication with the server. The WebSocket protocol provides a full-duplex communication channel over a single TCP connection. This means that the client and server can send messages to each other simultaneously without the need to establish new connections.
useSocket hook handles the WebSocket connection and communication with the server. It uses the WebSocket API to establish a connection to a WebSocket endpoint provided by the server. It also uses the useState and useEffect hooks to manage the state of the chat messages and the WebSocket connection.useMutation hook to make a post request to the server to send a new message. It takes the current input value and the logged-in user's ID as parameters.useSocket hook also includes a divRef and firstRender refs to handle scrolling to the bottom of the chat messages and an inputValue and setInputValue for handling the message input.Inbox/Calls
Video Calls

createLocalTracks method from the Twilio-video library to create a new local audio and video track, with the video track set to the front camera. If the track creation is successful, it stores the tracks in a myLocalTracksRef ref, attaches the video track to a videElement, and appends the videElement to the myPreviewRef ref.joinRoomWithPreAcquiredLocalTracks function and passes in the newly created tracks. This allows the user to see a preview of their video before joining the room and also to join the room with the local tracks.The function also handles media errors that may occur during the acquisition of local tracks by calling the handleMediaError function.onParticipantConnect is a callback function that is triggered when a new participant connects to the room. It sets the user identity state, calls the renderParticipants function to display the participant's video stream, and sets the isRoomEmpty state to false.onParticipantDisconnect gets triggered when a participant disconnects from the room. It sets the isRoomEmpty state to true and empties the userPreviewRef element, which is used to display the remote user video stream. This will remove the disconnected user's video stream from the page.getServerSideProps function to fetch the data needed for the video call.The function first gets the user from the request object, then checks if the user is logged in; if not, it redirects to the login page. Then it checks if the appointment id exists; if not, it redirects to the appointment page.getAccessToken function and returns the user, isMember, and response as props to the page.onMute, onUnMute, onCameraOn, and onCameraOff, that handle muting or unmuting the microphone and turning the camera on or off. The component has a function to handle the duration of the video call as well.Support Screen

Future Scope
- Doctors near you — This will allow patients to easily find and schedule appointments with doctors in their local area.
- An online pharmacy — Patients can purchase and have their prescriptions filled online.
- Lab test booking — Patients will be able to easily schedule and track their lab tests.
- Health tracking — Smart devices would allow patients to easily track and monitor their health using wearable devices and apps.
- Notification modules — This would send reminders to patients about upcoming appointments and medication schedules.
All these features will help increase the accessibility and convenience of healthcare services, making it easier for patients to manage their health and communicate with physicians.
To understand the architecture of GeekCare, check out our blog: LINK
Subscribe to Our Newsletter
Subscribe to RSS
Press & Media Hub RSS FeedRelated Articles.
More from the engineering frontline.
Dive deep into our research and insights on design, development, and the impact of various trends to businesses.

Jun 17, 2026
Google I/O 2026 Mobile Playbook: AI Studio, Android CLI, and Antigravity for App Development

Jun 16, 2026
Integrating AI with Wearable Healthcare Apps: Architecture, Compliance & ROI

Jun 16, 2026
HL7 and FHIR for AI Healthcare Platforms: What It Takes to Build for Production

Jun 9, 2026
How Intelligent Automation is Cutting Healthcare’s $600 Billion Administrative Waste

Jun 8, 2026
How to Scale AI Healthcare Products While Staying HIPAA and FHIR Compliant

Jun 4, 2026