SMART Health Check-in connectathon

An online event where patients, clinic staff, and software teams try a new way of checking in for a visit and tell us how it feels.

How the event works

Draft. The event date isn't set yet, so dates below say "To be announced". Everything else linked here is live. Components marked "not yet" in the Participant directory aren't ready for testing.

Schedule

How to test

Software teams bring a Verifier (a clinic's check-in page, portal, kiosk, or app, which asks for data) or a wallet (the patient's health app, which answers). Make your component testable without you in the room, and list it in the Participant directory by registering: a Verifier lists its check-in page URL, a web wallet goes into the wallet registry, and a native wallet says how testers get it. Verifier and wallet teams run the scenarios in pairs, with as many counterparts as they can reach. Test early and alone against the SMART Testing EHR and the SMART Testing Wallet, so the live event is left for problems that need two people. A failure is as useful as a pass, since it often points to a gap in the spec or an interoperability bug.

Each scenario gives its request, the step for the person using the wallet, what the Verifier should see, what counts as a pass for each side, and how to run it with the test tools. Every response must also pass the spec's own checks, which the SMART Testing EHR runs and links to their requirements. Section links such as §5.6 go to the spec, SMART Health Check-in 1.0.

Ground rules

Minimum scenarios

Every Verifier and every wallet should pass these three scenarios. Record each run as a result. Teams that pass them can go on to the advanced scenarios.

Scenario 1: Share records

The patient shares their records and insurance card from a wallet: all of them, some of them, or none. Any status for an item passes, including unavailable and declined. A web wallet is listed in the Verifier's wallet registry and opens in a new tab; a native wallet is an app on the phone, reached through the phone's wallet chooser. A team runs whichever path its component uses, and a Verifier that supports both runs each.

Request: records.json asks for demographics, problems, allergies, medications, immunizations, and the insurance card (sample response).

Pass for the wallet: The wallet shows the Verifier's origin during consent.

Pass for the Verifier: The Verifier shows each item's status and whatever records came back, including the member, payer, and plan from an insurance card, whichever profile or format the wallet chose. It shows an unavailable or declined item, and a response with no records at all, as a normal outcome, not as an error. It sets a record aside, with a warning, only when the spec's cross-checks (§6.4) say to. If the wallet returns a SMART Health Card, the Verifier verifies its signature before showing it.

How to run it:

Also: On the native path, record the phone, OS version, browser, and wallet app.

Spec: §8.5, §8.6, §6.4, §A.2, §5.6

Scenario 2: Fill in a form

The wallet fills in a form sent inline, and its QuestionnaireResponse names exactly the requested form.

Request: form-phq2.json asks for demographics and the answers to the PHQ-2 form, sent inline (sample response).

Step for the person using the wallet: Fill in the PHQ-2 form and share it.

Checks, besides the spec's own: “Two questions about your mood” is fulfilled (the step was done).

Pass for the wallet: The wallet renders the inline form.

Pass for the Verifier: The Verifier shows each answer next to its question.

How to run it:

Spec: §5.4.2, §5.5

Scenario 3: Decline one item

The person declines one item, so the Verifier is sure to receive a declined status.

Request: records.json, the same request as share-records, asks for demographics, problems, allergies, medications, immunizations, and the insurance card.

Step for the person using the wallet: Decline Immunizations and share whatever else the wallet offers.

Checks, besides the spec's own: “Immunizations” is declined (the step was done).

Pass for the Verifier: The Verifier shows Immunizations as declined, as share-records describes.

How to run it:

Spec: §5.7, §6.2

Recording results

Record each run through the result form: the Verifier, the wallet, the path (web wallet or native wallet), the scenario, the device and browser, pass or fail, and a note. Attach a screenshot of what the Verifier showed and, where you can, the captured request and response or the Testing EHR's log. After a run, the Testing EHR's “File this result” button fills in the form for you. The Results page collects every run.

Shared resources

The event's resources are all under https://smart-health-checkin.org/connectathon/.

Resource Link
Who is bringing what Participant directory; get listed with the registration form
Test results File a result; all results
Web wallets for Verifier pages to list wallets.json (how it works)
Every scenario's request Test requests
A Verifier to test wallets with SMART Testing EHR
A web wallet to test Verifiers with SMART Testing Wallet (what it does)
A native wallet for Android Reference Android wallet
A working check-in page Clinic check-in demo, also with the event registry
How web wallets talk to a Verifier page Web wallets in the client docs
Questions and pairing #kill-the-clipboard on the CMS Health Tech Ecosystem Slack (open the channel)

Wallet registry

The event registry, https://smart-health-checkin.org/connectathon/wallets.json, lists every web wallet in the participant directory whose status is up. Verifier pages read it to list the wallets a patient can choose. It uses the format the client library reads (Registry format):

{
  "source": "KTC SMART Health Check-in connectathon registry",
  "wallets": [
    {
      "id": "example",
      "name": "Example Health App",
      "walletUrl": "https://example.org/checkin-wallet",
      "description": "Web wallet with synthetic patient Jane Test.",
      "homepage": "https://example.org",
      "iconUrl": "https://example.org/icon.png",
      "target": "tab"
    }
  ]
}

You don't edit this file. The registration form adds your web wallet to your organization's participant file, and the registry is built from those files (fields). Native wallets aren't in it, because the phone's own wallet chooser reaches them; they're listed in the Participant directory only.

The list changes during testing, so a Verifier should load it each time its check-in page opens, or sync it automatically, rather than build it in.

Reference Android wallet

A native wallet for Android, holding the same synthetic patients as the SMART Testing Wallet. Download the latest APK.

Pick your path

Sharing what you found

Everyone is invited to write a short experience report: what you tried, what worked, what was hard, and what you'd change. The Share your experience page has a track for each kind of participant, patients, clinic staff, developers, and observers, with prompts that turn any AI assistant into a guide and the form to send your report. Reports are public, credited with the name and organization you give, or anonymous.