•
Drizz raises $2.7M in seed funding •
•
Featured on Forbes
•
Drizz raises $2.7M in seed funding •
•
Featured on Forbes

A patient waits 3 days for a dermatologist appointment. They join the video call. The doctor's face loads for 2 seconds, freezes, and turns into a black rectangle. Audio works intermittently. The doctor asks them to show the rash on camera. The patient's rear camera doesn't switch. They spend 4 of their 15-minute slot troubleshooting the video instead of discussing symptoms.
The call ends. No prescription generates. The doctor's notes weren't saved because the session terminated abnormally. The patient has to rebook, wait another 2 days, and explain everything again.
A teleconsult that doesn't produce a prescription is a failed clinical encounter. Not a bad user experience. A failure in the patient's care pathway. The medicines aren't ordered. The follow-up isn't scheduled. The insurance claim has nothing to attach.
Telemedicine is the most technically complex flow in any consumer health app. It combines real-time video infrastructure (WebRTC, Twilio, Agora), device-specific permission handling, network quality adaptation, in-call communication features, clinical documentation, and the most critical handoff in the entire app: call ends, prescription appears.
This guide covers what specifically breaks in teleconsultation flows, why each failure has clinical consequences, why traditional testing tools can't validate real-time video experiences, and how Drizz tests the teleconsult flow that every other testing tool treats as untestable.
For the complete health app flow map, see The Complete Guide to Consumer Health App Flows. For insurance flow testing, see Testing Insurance and Co-Pay Flows.
Health apps don't build their own video infrastructure. They integrate third-party SDKs: Twilio, Agora, Vonage, Daily, or WebRTC directly. Each SDK renders its own UI components (video tiles, control bar, participant indicators) inside the app.
What breaks:
Every teleconsult requires camera and microphone access. The permission flow differs by OS version and manufacturer:
What breaks:
Teleconsults happen on every network quality: hospital WiFi, home broadband, 4G in transit, 3G in rural areas, and intermittent coverage while moving.
What breaks:
During the consultation, the patient and doctor need more than video:
What breaks:
During the call, the doctor captures clinical notes: symptoms described, examination observations, diagnosis, and treatment plan. These notes are the basis for the prescription.
What breaks:
This is the most important handoff in the entire health app. Everything downstream depends on it: medicine ordering, pharmacy fulfillment, follow-up scheduling, and insurance claims.
What breaks:
Appium sees the video SDK's rendering surface as one element: <SurfaceView> or <TextureView>. It can verify the element exists and is displayed. It cannot verify:
is_displayed() = True whether the video shows the doctor's face, a black screen, a frozen frame, or an error overlay.
The permission dialog's element IDs, text, and button labels differ between Samsung, Xiaomi, OnePlus, Pixel, and iOS. An Appium test targeting com.android.permissioncontroller:id/permission_allow_button works on Pixel and fails on Samsung where the ID is different. Maintaining per-device permission handling multiplies test complexity.
When the network degrades and the app should switch to audio-only, Appium can't verify the visual transition: video tile disappearing, audio-only indicator appearing, "Poor connection" banner showing. These are visual state changes on a rendering surface Appium can't inspect.
The teleconsult-to-prescription handoff crosses two apps: the doctor's app generates the prescription, the patient's app displays it. Appium tests run on one device, one app. Validating "doctor ends call, prescription appears on patient's app" requires coordinated testing across two devices.
Drizz validates the teleconsult experience visually, the same way the patient experiences it. If the doctor's video is a black rectangle, Drizz sees a black rectangle and fails the test. If the audio indicator is inactive, Drizz sees the inactive indicator.
Navigate to upcoming appointment
Tap "Join Call" or "Start Consultation"
Verify camera permission dialog appears
Grant camera permission
Verify microphone permission dialog appears
Grant microphone permission
Verify waiting room or "Connecting to doctor" screen appears
Drizz handles permission dialogs visually regardless of device manufacturer. "Grant camera permission" works on Samsung, Xiaomi, Pixel, and iOS because Drizz reads the permission text and taps the allow button visually.
Verify doctor's video feed is visible (not black, not frozen placeholder)
Verify self-video preview is visible
Verify call timer is displayed and counting
Verify mute/unmute button is accessible
Verify camera on/off button is accessible
Verify chat icon is visible
Tap chat icon
Verify chat panel opens
Verify text input field is accessible
Drizz sees the actual rendered screen. A black rectangle where the doctor's face should be is visually distinguishable from an active video feed. A frozen frame is distinguishable from a playing video (on consecutive screenshots). An inactive audio indicator is visually different from an active one.
During a call (with simulated poor network)
Verify "Poor connection" indicator appears
Verify video degrades or switches to audio-only mode
Verify audio-only indicator is visible
Verify call continues (not dropped)
When network improves, verify video resumes
Drizz observes the visual transition from video mode to audio-only mode: the video tile changes, the audio indicator appears, and a status message shows. These are visual state changes that element-level testing cannot detect.
After consultation ends
Verify "Consultation Complete" or "Call Ended" screen appears
Navigate to prescription section
Verify prescription is generated and visible
Verify prescription shows doctor name, date, and at least one medicine
Verify medicine name, dosage, frequency, and duration are displayed
Verify "Order Medicines" or "Download Prescription" button is accessible
This is the most critical test. Drizz verifies that the teleconsult-to-prescription handoff produced a visible, complete prescription on the patient's app. If the prescription didn't generate (abnormal call end, service failure, sync delay), Drizz catches it because the prescription screen is empty or shows a loading state instead of actual prescription content.
Run the same teleconsult test on:
Samsung Galaxy A14 (One UI permissions, budget GPU)
Xiaomi Redmi Note 12 (MIUI permissions, background process management)
Google Pixel 8 (stock Android, baseline behavior)
iPhone 15 (iOS permission flow, different video rendering)
OnePlus Nord (OxygenOS, batched permissions)
One test. Five devices. Five different permission flows, GPU capabilities, and OS behaviors. Catches the Samsung-specific rendering conflict, the MIUI audio kill, and the OnePlus permission batching issue that QA teams on Pixel test devices never encounter.
Telemedicine is where 6 technical layers converge into one patient experience: video SDK, device permissions, network adaptation, in-call features, clinical documentation, and prescription generation. A failure at any layer degrades or destroys the clinical encounter.
The most critical moment isn't during the call. It's after. The teleconsult-to-prescription handoff is the single point of failure that blocks the entire downstream care pathway. Medicine ordering, follow-up scheduling, insurance claims all of it depends on a prescription appearing on the patient's screen after the call ends.
Traditional testing tools see a teleconsult as a single opaque video element. They can confirm it exists. They can't confirm it works. Drizz sees what the patient sees: a doctor's face or a black rectangle, an active audio indicator or silence, a complete prescription or an empty screen. In telemedicine, the difference between these is the difference between care delivered and care failed.
Drizz validates that the video feed is rendering (not a black rectangle or frozen frame) and that key visual elements (self-preview, controls, timer) are present. Measuring video resolution, bitrate, or frame rate requires media quality monitoring tools. Drizz tests the visual experience; media quality tools test the technical stream.
Use a test doctor profile in the staging environment that auto-joins calls. Alternatively, use a second test device running the doctor's app to simulate the doctor-side connection. Drizz tests the patient's visual experience regardless of whether the "doctor" is real or simulated.
Drizz can test both apps independently: the patient's experience (join call, see doctor, receive prescription) and the doctor's experience (accept call, see patient, write prescription, end call). Cross-app handoff validation (prescription appears on patient's app after doctor writes it) requires coordinated test runs on two devices.
Combine network simulation (Charles Proxy, Network Link Conditioner) with Drizz observation. Degrade network to 3G mid-call and have Drizz verify the visual transition: "Poor connection" indicator appears, video switches to audio-only, audio indicator shows active. Restore network and verify video resumes.
Prescription not appearing after an abnormal call end. The call crashes or times out, the "End Call" event never fires, and the prescription generation pipeline is never triggered. The doctor thinks they sent it. The patient sees nothing. This handoff failure is the most expensive teleconsult bug because it wastes the appointment slot and delays patient care.