---
title: Follow the RPM example data flow
sidebar_label: End-to-end data flow
description: Trace a patient reading from the mobile app into Ovok and into the clinician dashboard review.
---

# Follow the end-to-end data flow

The two apps do not call each other. Ovok is the shared backend boundary between the patient-facing mobile experience and the practitioner dashboard.

```mermaid
flowchart LR
  device[Supported device] --> mobile[Patient mobile app]
  mobile -->|FHIR-backed measurement or response| ovok[Ovok]
  ovok -->|Patient-linked records| dashboard[Clinician dashboard]
```

## Patient write path

In the mobile workspace, [`src/bluetooth.tsx`](https://github.com/Ovok-Dev/rpm-example-app/blob/dev/apps/mobile/src/bluetooth.tsx) receives supported device results. The app passes a validated diary entry into [`src/care-store.tsx`](https://github.com/Ovok-Dev/rpm-example-app/blob/dev/apps/mobile/src/care-store.tsx), which persists it locally and then calls the write functions in [`src/ovok.ts`](https://github.com/Ovok-Dev/rpm-example-app/blob/dev/apps/mobile/src/ovok.ts) when an authenticated Patient session is active.

Demo records remain local. Patient saves use the signed-in profile and are kept separate from demo history. A failed write is surfaced as a retryable state; this example does not promise unattended background delivery.

## Practitioner read path

The dashboard's [`patientData.ts`](https://github.com/Ovok-Dev/rpm-example-app/blob/dev/apps/dashboard/src/lib/patientData.ts) loads Patient measurements and QuestionnaireResponses through the SDK. [`PatientReviewPage.tsx`](https://github.com/Ovok-Dev/rpm-example-app/blob/dev/apps/dashboard/src/components/PatientReviewPage.tsx) displays readings, timestamps, source labels, and recent activity. Sandbox access is enforced by the project and practitioner policy, not by a client-side relationship check.

For separate app-specific setup and source tours, continue to the [mobile app](/example-rpm-app/monorepo/mobile-app) and [clinician dashboard](/example-rpm-app/monorepo/web-dashboard).
