Test with sandboxes

Integrate with Synthetic Hospital and public EHR sandboxes.

Use the Synthetic Hospital to test your integration with synthetic patient data. It gives you a safe, production-like environment to build and validate your integration before connecting to real systems.

If you want to test EHR-specific workflows, you can connect to public sandboxes such as Epic, Cerner, or Athena.

Create a Sandbox workspace

Follow Set up your workspace to sign in and reach the Create your workspace dialog shown below. Choose Sandbox as the environment. A Sandbox workspace can only see the sources scoped to it. Use a separate Production workspace when you are ready for live credentials, live patients, and production export destinations.

Creating a Sandbox workspace in the Medblocks dashboard.
Create a new Sandbox workspace.

Synthetic Hospital

The Synthetic Hospital is a test facility inside the Medblocks patient portal. It has pre-seeded sample patients. It also allows you to upload your own FHIR R4 bundle.

Add a sample patient

Click on the + button next to Patients to open the “Add New Patient” dialog box. In the “Add New Patient” dialog box, enter a patient name and an email, and then click on the Add Patient button.

The Add new patient dialog in a Sandbox workspace with Name and Email fields and an Add Patient button.
Fill in the patient details and click Add Patient.

You can now see the newly added sample patient in the Patients list.

Click the patient you just added, or any other sample patient in your workspace, to open the patient detail panel. Find the Onboarding link section and click Generate Magic Link. Once the link is generated, you will see that the Copy Link button is now enabled. Click on it to copy the generated URL and open it in a new browser tab. You are now logged in as that sample patient.

Opening a patient from the Patients list, clicking Generate Magic Link in the Onboarding link section, and copying the URL.
Click Generate Magic Link, then copy the URL.

Connect to the Synthetic Hospital

Search for Synthetic Hospital in the search bar, then click on the Connect button. After you click on the Connect button, you will be redirected to the Synthetic Hospital login page.

The patient portal search page with the Synthetic Hospital as an option and a Connect button.
The Synthetic Hospital in the search results.

Log in to the Synthetic Hospital

On the login page, you can see two options. You can log in using a pre-seeded patient or choose to Upload your own patient bundle to test with your own patient data. After that, you authorize the app to access the patient data by clicking on the Approve button.

A. Log in with a pre-seeded patient

Log in with any sample patient of your choice from the Patient dropdown. The password is demopass, which will be pre-filled. You can click Login to proceed.

Selecting a sample patient on the Synthetic Hospital login card, logging in with the pre-filled password, and approving the requested scopes.
Picking a patient, then logging in and approving the requested scopes.

B. Upload your own patient bundle

If you want to test with your own patient data, click on the Upload your own patient bundle button and then upload a FHIR R4 bundle file from your system. The bundle must contain a Patient resource. Click on the “Sign in as this” button to proceed.

Clicking Upload your own patient bundle on the Synthetic Hospital login card, uploading a FHIR R4 bundle file, signing in as that patient, and approving the requested scopes.
Uploading a FHIR R4 bundle file, then signing in and approving the requested scopes.

In case you do not want to proceed, click on the Deny button, and you’ll get redirected back to the patient portal and the sample patient will not be linked to your workspace.

The Synthetic Hospital is now connected, and the sample patient’s bundle has been added to your workspace.

The patient detail page in the Medblocks dashboard, showing Synthetic Hospital under Login methods and records pulled under Patient records stats.
The sample patient’s records in your workspace.

You can now test your integration with the sample patient bundle or your own uploaded patient data.

Preloaded patients

Each sample patient in the preloaded data set is a full FHIR R4 bundle, spanning a few years of history, with Encounters, Conditions, Observations, MedicationRequests, and Procedures. Every sample patient uses the password demopass.

Patient NamePatient Username
Angel Konopelskiangel.konopelski@synthetic.medblocks.com
Augusta Homenickaugusta.homenick@synthetic.medblocks.com
Clarinda O’Connellclarinda.oconnell@synthetic.medblocks.com
Cristobal Monterocristobal.montero@synthetic.medblocks.com
Dwana Tremblaydwana.tremblay@synthetic.medblocks.com
Eliseo Nadereliseo.nader@synthetic.medblocks.com
Ethyl Medhurstethyl.medhurst@synthetic.medblocks.com
Eunice Fayeunice.fay@synthetic.medblocks.com
Ezekiel Walterezekiel.walter@synthetic.medblocks.com
Jody Hicklejody.hickle@synthetic.medblocks.com

SMART Health IT Sandbox

SMART Health IT runs a free, no-registration reference sandbox at launch.smarthealthit.org. It is a full SMART on FHIR authorization server backed by synthetic patient bundles.

Unlike vendor sandboxes, it has no developer portal, no client registration, and no username or password to remember.

Connect to the SMART Health IT Sandbox

Using the magic link, open the patient portal for any sample patient. Under Link your patient portals, search for SMART Health IT Sandbox, then click on the Connect button. You will get redirected to launch.smarthealthit.org. Pick a sample patient from the dropdown and click Login. Any password works, so leave the field as it is. On the Authorize App page, click on the Approve button. You will get redirected to the Medblocks patient portal, and Medblocks starts pulling records in the background.

Searching for SMART Health IT Sandbox in the patient portal, signing in at launch.smarthealthit.org, and approving the requested scopes.
Finding the SMART Health IT sandbox, signing in, and approving the scopes.

Aetna

For Aetna’s sandbox credentials, you can use VTETestUser as the username appended with numbers ranging from 01 to 19. All the usernames have the same password FHIRdemo2020. Register on the Aetna developer portal to get a sandbox Client ID.

UsernamePassword
VTETestUser01FHIRdemo2020
VTETestUser02FHIRdemo2020
VTETestUser03FHIRdemo2020

Cerner (Oracle Health)

For the Cerner Code Sandbox, you can use any of the following usernames with the password Cerner01.

UsernamePassword
nancysmartCerner01
joesmartCerner01
wilmasmartCerner01
valeriesmartCerner01
fredricksmartCerner01
sandysmartCerner01
timmysmartCerner01
babyboysmartCerner01
haileysmartCerner01
timpetersCerner01

Epic

MyChart is Epic’s patient-facing application, and the following are the test patients. If you need more test patients, you can refer to their Sandbox Test Data.

UsernamePassword
fhircamilaepicepic1
fhirderrickepicepic1
fhirdesireeepicepic1

Athenahealth

The Athenahealth preview environment provides a sandbox for testing with the set of credentials given below. Follow the athenahealth onboarding guide to connect a sandbox app to it.

UsernamePassword
phrtest_preview@mailinator.comPassword1

eClinicalWorks (healow)

eClinicalWorks provides credentials for one test patient. Register a sandbox app through the healow FHIR R4 developer docs.

UsernamePassword
AdultFemaleFHIRe@CWFHIR1

Medicare

Medicare’s Blue Button sandbox accepts BBUser as the username followed by any 5-digit number. The password starts with PW followed by the same 5-digit number and an exclamation mark (!). For example, a username BBUser00042 will have the password PW00042!. For the sandbox app setup, see the CMS Blue Button developer guidelines.

UsernamePassword
BBUser00000PW00000!
BBUser00001PW00001!
BBUser00002PW00002!
BBUser00003PW00003!
BBUser00004PW00004!

Meditech

To get the sandbox credentials for Meditech, you can ask your Meditech representative for a Traverse sandbox tenant, then register a developer app on the Traverse developer portal.

UnitedHealthcare

UnitedHealthcare’s Optum FLEX sandbox requires an app registration. Sign up on the UHC developer portal to get sandbox credentials.

Enable the Client ID for your sandbox

Each EHR issues its own sandbox Client ID and Client Secret when you register an app on its developer portal. You can find the registration steps in the setup guide for each EHR under Patient access.

Once you have those credentials, plug them into your Medblocks workspace. Go to Settings → Connections, pick the EHR from the list, and paste the Client ID and Client Secret into the form.

The Medblocks workspace Settings screen with Connections selected, showing a list of EHR providers each with an Enabled badge.
Settings, then Connections in the workspace dashboard. Click any EHR to enable your own Client ID.

From here, the flow is the same as the one you use in production.

  1. Start a patient session for a sample patient against that EHR’s sandbox source.
  2. On the EHR’s hosted login screen, sign in with a patient credential from one of the tables above.
  3. Click Approve. Medblocks catches the callback and starts pulling records, exactly as it would for a real patient.

Records pulled from sandbox accounts land in your workspace. Delete or archive the patient you added when you are done.

Test dashboard workflows

Use synthetic patients when you need realistic records without Protected Health Information (PHI). Synthetic records are useful for UI states, mapping logic, exports, and webhook handlers.

Check for these in your sandbox workspace.

  • Patient lists and patient detail pages.
  • Record status and pull history.
  • Export destination setup and retry behavior.
  • Webhook endpoint setup, event delivery, retries, and redelivery.
  • Support workflows such as auth event history.

Synthetic records should not be used to assess source coverage or evaluate production data quality.

Test source-specific flows

Some EHR vendors provide public or partner sandbox portals. Their behavior is close enough to test OAuth and SMART on FHIR, but they may not match every production scenario.

Some sources have their own sandbox guide.

Things to verify before production

Before switching to production, confirm each of these.

  • Your Production workspace exists.
  • Production credentials are configured from Configure connections.
  • Your return URLs are HTTPS and match the configured apps.
  • Webhook signature verification uses the raw request body.
  • API keys and webhook secrets live in server-side secret storage.
  • Your UI or dashboard workflow handles failed authorization and reconnect prompts.
  • Export destinations have been tested with non-production data.

See also

Need help?

Running into an issue? Get support from our team and we will get back to you.

How is this guide?