Guide

Where each MVP requirement lives and how to try it. Everything runs in this browser with fabricated data; the EHRs are simulated and nothing is sent anywhere.

Demo accounts

Password for all: demo-pass-2026. Practitioners: areyes (Northside and Mercy), swhitfield (Mercy). Patient: rdelgado.

Tip: sign in as the practitioner in one tab and the patient in another. Each tab has its own session and consent changes show up in the other tab straight away.

Five-minute walkthrough

  1. 1.Sign in as practitioner areyes. Open Find a patient, search Northside for Delgado / Rosa, and click Request access.
  2. 2.Sign out. Sign in as patient rdelgado. Under Access and consent, approve the request and choose whether Dr. Reyes may keep a copy.
  3. 3.Sign out. Sign in as areyes again. Find Rosa again and click Load C-CDA into my session.
  4. 4.Open Session records. Try the example searches, and open the C-CDA XML to see the template ids.
  5. 5.Sign out. The sign-out page shows what was deleted and what was kept, and confirms nothing was left behind.

The 12 requirements

#RequirementWhereHow to try it
1Practitioner account registration (NPI reconciliation, user id)Register - PractitionerEnter NPI 1339028460 with the name Rachel Kim. Format, check digit, registry, status and name are each checked before you can pick a user id.
2User login (authentication)Sign inPasswords are hashed (PBKDF2). A session lasts 30 minutes. Practitioner pages refuse to open without one.
3User profile (NPI validation)My profileShows the stored registry check and lets you re-run it.
4Patient validation (PII, EHR id, user id)Register - PatientName, date of birth and MRN must all match the EHR's record before an account is linked to it. Try Walter Price, 1949-11-03, Northside, NS-00510274.
5Practitioner search (NPI x EHR roster)Practitioner directorySearch by name or NPI. Each row shows the registry status and the practitioner's entry on every EHR roster.
6Practitioner EHR mapping (EHR roster, endpoints)EHR connectionsEach connected EHR with its FHIR, authorization and document endpoints, its roster, and whether you can query it.
7Patient authorization (FHIR / HL7 APIs)Access and consentThe patient approves a request, or grants access directly. Approval creates a FHIR Consent resource; without one, the document calls return 403.
8Practitioner C-CDA patient query (by PII)Find a patientFHIR Patient search by last name plus first name, date of birth or MRN. Only works at EHRs where you are on the roster.
9POST patient C-CDA records to the practitioner session (templates)Find a patient - Load C-CDAThe C-CDA is fetched, POSTed to the session, checked for the CCD template ids, and parsed section by section using each section's template id.
10Practitioner search queries on C-CDA fieldsSession recordsPick a section, a field, a condition and a value, e.g. Results / Flag / is exactly / High.
11Patient authorization for practitioner records retentionAccess and consentThe patient chooses whether the practitioner may keep a copy after their session, and for how long. Revoking deletes any kept copy.
12Log out (session termination and data scrub)Sign out buttonEnds the session, deletes every document the patient did not allow to be kept, clears the request log, then checks browser storage for leftovers and reports the result.

Start over

Removes accounts you registered, every consent and request, any kept records, and signs everyone out in this browser. The demo accounts come back.