---
title: Run rpm-ehr-example-app
sidebar_label: Run the EHR
description: Clone and run the synthetic Ovok clinic EHR example locally.
---

# Run rpm-ehr-example-app

The EHR starts in a synthetic demo workspace. You can explore the clinic workbench without an Ovok account or sandbox configuration.

## Requirements

- Node.js 24 or newer
- npm 11.16.0, as pinned by the repository

## Run the standalone repository

```sh
git clone https://github.com/Ovok-Dev/rpm-ehr-example-app.git
cd rpm-ehr-example-app
npm ci
npm run dev
```

Open the local URL printed by Vite. The EHR's development server uses port `5174` by default.

**Explore the source:** [`src/main.tsx`](https://github.com/Ovok-Dev/rpm-ehr-example-app/blob/dev/src/main.tsx) mounts the app; [`src/App.tsx`](https://github.com/Ovok-Dev/rpm-ehr-example-app/blob/dev/src/App.tsx) coordinates the workbench and demo/sandbox modes; [`src/data/demo.ts`](https://github.com/Ovok-Dev/rpm-ehr-example-app/blob/dev/src/data/demo.ts) supplies synthetic records.

## Run it from the monorepo

If you already cloned [`rpm-example-app`](https://github.com/Ovok-Dev/rpm-example-app), run these commands from its root instead:

```sh
npm ci
npm run ehr
```

The EHR runs at `http://localhost:5174`. Use the monorepo root lockfile and root scripts rather than installing from `apps/ehr`.

## Next

- Connect authorized sandbox records with [Sandbox setup](/example-rpm-app/ehr/sandbox-setup).
- Trace registration, FHIR records, and local demo behavior in [Clinic workflow](/example-rpm-app/ehr/clinic-workflow).
- See how the three apps exchange sandbox records and synthetic demo readings in the [monorepo data flow](/example-rpm-app/monorepo/data-flow).
