Skip to main content

E-Prescribe Decision Guide

Companion to the E-Prescribe (eRx) docs.

E-prescribing in Medplum runs through an integration with an e-prescribing vendor connected to the SureScripts network. This space is less about the FHIR data model than a sequence of integration and enrollment decisions: how much prescribing UI you build, whether you send controlled substances, and how prescribers get enrolled and verified. This guide moves from those high-level decisions down to feature detail.

Section 1: Use Case & Participants

Two of these — what you prescribe (1.1) and how much you build (1.2) — cascade into most of Section 3. Land them first.

1.1 What are you prescribing?

  • Non-controlled medications only
  • Controlled substances too (Schedule II–V)
  • Not sure / depends on specialty

Why: controlled substances require EPCS, which adds a per-prescriber enrollment path (DEA, identity proofing, two-factor auth). If you never prescribe them, skip the entire Controlled Substances lane (3.4) and enrollment shrinks substantially.

1.2 How much of the prescribing experience do you want to build?

  • Hosted iframe — embed the vendor's prescribing UI. Minimal build; drug search, dosing, pharmacy, and send all happen inside the vendor's screens.
  • Integrated (API-driven) — build your own prescribing UI on Medplum's FHIR operations and bots; only the final, regulation-required review-and-send step stays a hosted widget.
  • Not sure

Why: the core build-vs-UX trade-off. The iframe is fastest to live but UX is fixed and you generally can't prescribe from inside your own chart. Integrated lets you own the workflow and prescribe in context, at the cost of building it. See 3.1.

1.3 New build or replacing an existing e-Rx system?

  • New — no e-prescribing today
  • Replacing another EHR or e-Rx vendor
  • Adding alongside an existing clinical system

Why: replacing an existing system means a Change of Vendor on SureScripts so refills and history follow prescribers over — a distinct migration workstream (3.11).

1.4 Who is involved in prescribing?

  • Prescribers (sign and send)
  • Prescribing agents / proxies (stage but can't send)
  • Administrators (enroll prescribers, manage practices, configure favorites)
  • Any offshore or non-US staff using the prescribing UI?

Why: prescriber vs. agent vs. admin map to distinct enrollment roles (3.3), and only fully-enrolled prescribers can transmit. Non-prescribing roles don't need an NPI. Offshore and non-US staff matter here because e-prescribing is only available to professionals authorized to prescribe in the United States — a SureScripts-network constraint, not a Medplum one — so non-US staff can only hold non-prescribing roles, and even those must be enrolled with the vendor to call pharmacy or medication-history operations (3.3). Confirm your vendor's policy on non-US users before designing an offshore-staffing model around the prescribing UI.


Section 2: Feature Scoping

For each row, mark Yes / No / Nice-to-have / Not sure. The § column points to the deep dive.

#Feature§YesNoNice-to-haveNot sure
1Integration model (hosted iframe vs. integrated/API)3.1
2Prescriber enrollment & identity proofing3.2
3Provider & practice identity data (NPI, DEA, roles)3.3
4Non-prescriber staff access (pharmacy / history ops)3.3
5Controlled substances / EPCS3.4
6Formulary/benefit checks & prior authorization3.5
7Refills, reorders & discontinuation3.6
8Clinic favorites / order sets3.7
9Pediatric prescribing3.7
10Medication history retrieval (with consent)3.8
11Multi-location / multi-practice prescribing3.9
12Multi-tenant / platform deployment (multiple downstream clients)3.10
13Migration from an existing e-Rx system (Change of Vendor)3.11

Section 3: Feature Deep Dives

Cover each feature flagged Yes or Nice-to-have. Each question below maps to a row in the table beneath it, in order. The goal is a clear recommended approach by the end of each section.

LaneSubsectionsWhen to read
Foundations3.1 – 3.3Always
Controlled Substances3.4Only if you prescribe controlled substances (1.1)
Prescribing Workflow3.5 – 3.8Always
Practice Structure3.9 – 3.10When prescribing across multiple locations, entities, or downstream clients
Situational3.11When replacing an existing e-Rx system (1.3)

Foundations

3.1 Integration Model

How much of the prescribing UI you build — the decision that shapes almost every section below.

Questions:

  • Do prescribers need to write prescriptions in context (from inside your chart), or is a standalone screen fine?
  • How much engineering do you want to invest in the prescribing UI, now and ongoing?
  • Do you need to control the look and steps of the flow, or is a vendor-standard flow acceptable?
SituationApproach
Standalone screen fine; minimal buildHosted iframe — the vendor's prescribing UI, embedded. Fastest to live; UX is fixed and not customizable.
Must prescribe from within your own chartIntegrated (API-driven) — build the pre-approval flow on FHIR operations and bots; the prescriber stays in your UI until the final send.
Own the branding and stepsIntegrated — you control everything up to the vendor-hosted review-and-send widget (stylable; transmitted content is not).
Either modelThe final review-and-send step is always vendor-hosted and compliance-controlled — neither model replaces the moment of transmission with your own code.

⚠ Choose deliberately. This is expensive to reverse — it determines whether you build a prescribing UI at all, whether "prescribe from the chart" is possible, and how enrollment and favorites surface. Align on 1.2 before committing engineering.

3.2 Prescriber Enrollment & Identity Proofing

Every prescriber must be enrolled before transmitting. Decide who drives enrollment and how much your platform automates.

Questions:

  • Who initiates enrollment — an ops admin, or the prescriber on first login?
  • Do prescribers send controlled substances (which adds identity proofing and 2FA — see 3.4)?
  • How will you see which prescribers are stuck mid-enrollment?
SituationApproach
Ops admin drives it, stage by stageAdmin-driven enrollment bot — invoked per practitioner; the admin controls when each stage advances. Requires a project admin with vendor admin access.
Prescriber self-enrolls on first useSelf-service enrollment bot — auto-advances through registration as the prescriber opens the iframe. Requires an admin-level vendor user id as a project secret and an active prescriber role record.
Non-controlled onlyEnrollment completes at basic registration — the prescriber can prescribe non-controlled meds immediately; no identity proofing or 2FA.
Track enrollment stateThe bots return a status that progresses registration → identity proofing → 2FA; surface it to admins so stuck prescribers are visible.

3.3 Provider & Practice Identity Data

Accurate provider identity data prevents the most common enrollment failures.

Questions:

  • Do you have complete, validated Practitioner records (name, DOB, address, work phone/fax, email, NPI)?
  • Do controlled-substance prescribers have a valid DEA number with issuing state?
  • Which roles do users need — prescriber, agent/proxy, admin?
  • Do non-prescriber staff (front desk, MAs) need to perform prescribing-adjacent tasks — searching pharmacies, setting a preferred pharmacy, viewing history — without an NPI?
  • Are any of those staff offshore or otherwise outside the US?
SituationApproach
Standard prescriberPractitioner with full name, birth date, complete address, work phone and fax, email, and a valid 10-digit NPI. Missing or malformed fields are the top cause of enrollment errors.
Controlled-substance prescriberAdditionally a DEA number with the issuing state present (2-letter abbreviation) — required to trigger EPCS enrollment (3.4).
Staff who stage but don't sendEnroll as a prescribing agent or proxy role — no NPI required; cannot finalize or transmit.
Users who enroll othersEnroll with an admin/clinician-admin role to invite and manage other prescribers and configure favorites (3.7).
Non-prescriber staff running pharmacy/history opsEven without prescribing rights, staff must be enrolled with a vendor identifier to call pharmacy-directory or medication-history operations — an un-enrolled user is rejected. Confirm which staff need these ops and provision a non-prescribing role for them.
Offshore / non-US staffPrescribing itself is limited to professionals authorized to prescribe in the United States, so non-US users can only take non-prescribing roles (agent/proxy, admin) — and still need vendor enrollment for pharmacy and history operations. Vendor policy on non-US users varies; validate it with your vendor before designing an offshore-staffing model, not after.

Controlled Substances

Read only if 1.1 includes controlled substances. Otherwise skip to 3.5.

3.4 EPCS (Electronic Prescriptions for Controlled Substances)

Supported, but a regulated, multi-step enrollment on top of basic registration. Treat it as its own workstream.

Questions:

  • Which prescribers will send controlled substances, and does each have a valid, active DEA registration (with state)?
  • Are prescribers ready to complete identity proofing and set up two-factor auth?
  • Have any prescribers previously enrolled in EPCS with this vendor under another organization?
SituationApproach
Enable EPCS for a prescriberThree stages on top of registration: (1) registration with DEA present → (2) identity proofing (Experian-based) → (3) two-factor auth activation. All three required before transmitting controlled substances.
Missing or inactive DEABlocks identity proofing; the DEA number and issuing state must be on the Practitioner (3.3).
Prior enrollment elsewhereCan cause verification conflicts (e.g. reused phone number). Identify these prescribers up front so vendor support can resolve them before onboarding.

⚠ EPCS is a one-way gate on go-live. Identity proofing and 2FA are per-prescriber, take real calendar time, and are the most common onboarding delay. Start early and build admin visibility into each prescriber's stage (3.2). Controlled-substance prescriptions also require effective dates and often a diagnosis — confirm your workflow captures these.


Prescribing Workflow

3.5 Formulary/Benefit Checks & Prior Authorization

Whether prescribers see coverage and cost at the point of prescribing, and how prior auth is handled.

Questions:

  • Do prescribers need formulary status, patient cost, and covered alternatives while prescribing?
  • Do you need to initiate electronic prior authorization (ePA) — through the eRx vendor, the standards-based payer path, or both?
  • Is your timeline driven by upcoming e-prescribing mandates?
SituationApproach
Show coverage & costThe vendor pulls active benefit info from pharmacy-benefit data via patient demographics and surfaces formulary status, cost, and alternatives. Coverage comes from the benefit network, not insurance data stored only in Medplum, and prescription cost is not retrievable via the Medplum API — keep demographics accurate so the match succeeds.
ePA via the eRx vendorThe e-prescribing vendor can initiate ePA from the medication when formulary data flags it's required. This may require separate enablement with the vendor rather than being part of the base integration — confirm it's in scope.
Standards-based ePA (payer path)The emerging FHIR path for payer-connected prior auth — CDS Hooks with CRD / DTR / PAS (ONC criteria (g)(31)–(g)(33)). Currently alpha.
Compliance-driven timelineHTI-4 (effective Oct 1, 2025) mandates NCPDP SCRIPT v2023011 with ePA in the prescribing workflow and RTPB v13 for real-time cost display. Payer ePA APIs are due Jan 1, 2027; eRx modules must be certified to SCRIPT v2023011 by Jan 1, 2028. Factor these into the 3.1 decision. See HTI-4 & CMS-0057-F.

3.6 Refills, Reorders & Discontinuation

How prescribers handle prescriptions after the first send.

Questions:

  • Do prescribers respond to pharmacy-initiated refill requests?
  • Do they re-prescribe previously prescribed medications?
  • Do you need to discontinue or expire prescriptions — automatically on change?
SituationApproach
RefillsPharmacy-initiated requests for more of an existing prescription; prescribers approve or deny.
ReordersPrescriber-initiated new prescription for a previously prescribed medication.
Discontinuation / expiryManual today — no automatic discontinue-on-change or auto-expire. High-polypharmacy populations should plan an explicit medication-reconciliation workflow.

3.7 Favorites, Order Sets & Pediatric Prescribing

Questions:

  • Does the practice repeatedly prescribe a common set of medications worth curating?
  • Do you prescribe to pediatric patients?
SituationApproach
Common medication setConfigure clinic favorites / order sets — curated, reusable entries, including specialty/compounded configurations. Requires an admin/clinician-admin role (3.3); confirm who may create and edit them.
Highly variable prescribingSkip favorites — the maintenance overhead isn't worth it.
Pediatric patientsThe prescriber is responsible for dosages within guidelines for the patient's height and weight; vendors often add pediatric validation — confirm requirements before go-live.

3.8 Medication History

Whether prescribers can see a patient's external medication history, and the consent required to retrieve it.

Questions:

  • Do prescribers need a patient's medication history from outside your system (pharmacy fill history, active prescriptions elsewhere)?
  • Can you capture and record the patient consent required to query external history?
  • Are you importing prescription history from a prior system?
SituationApproach
Need external historyRetrieved from the SureScripts network (pharmacy fill history and/or active prescriptions) — a distinct capability from writing prescriptions, so scope it explicitly.
Consent gateExternal history retrieval requires patient consent; capture and record it (e.g. a Consent resource) before querying, and confirm the consent language your workflow presents.
Importing prior historyHistory migrated from a prior system generally loses prescriber/pharmacy linkage and may not appear in the vendor's native "past prescriptions" view — set expectations accordingly.

Practice Structure

3.9 Multi-Location / Multi-Practice Prescribing

Read when prescribers work across more than one location or legal entity.

Questions:

  • Do prescribers prescribe on behalf of more than one practice?
  • How should the system know which practice a prescription belongs to?
  • Do you need a default pharmacy per patient or per clinic?
SituationApproach
Multiple practices/locationsModel each practice as an Organization (linked to a parent business-unit Organization via partOf) and associate prescribers via PractitionerRole.
Resolving the practice per prescriptionPrecedence: explicit organization id on the operation → the prescriber's single affiliation → a configured default. If a prescriber has multiple affiliations and no organization id is passed, the request errors — pass it explicitly for them.
Default pharmacySettable per patient or per clinic; often irrelevant for nationwide telehealth where patients are everywhere.

3.10 Multi-Tenant / Platform Deployments

Read when one Medplum project serves multiple downstream clients that prescribe independently (a platform or enablement model) — distinct from one organization's own locations (3.9). This is an architecture fork worth settling before the second client onboards.

Questions:

  • Does a single Medplum project serve multiple downstream clients or brands that prescribe independently?
  • Must each client's prescribers and patients be isolated from the others?
  • Does the originating clinic's identity or branding need to reach the pharmacy?
  • Do downstream clients' admins need scoped self-service access to manage their own prescribers?
SituationApproach
One organization, many sitesNot multi-tenant — use Multi-Location (3.9).
Platform serving independent clientsModel each downstream client as its own practice/tenant so prescribers, patients, and rosters are scoped per client rather than pooled.
Roster / patient isolation requiredScope prescriber pickers and patient lists to the client's tenant — a single shared tenant can expose one client's prescribers or patients to another. Decide isolation before onboarding the second client.
Origin branding at the pharmacyIf the medication must reach the pharmacy carrying the originating clinic's identity/branding, model a distinct tenant per client rather than one shared tenant.
Scoped admin accessThe integrated path can grant client admins access scoped to their own tenant (cross-tenant admin access is blocked for HIPAA); the hosted-iframe path generally cannot expose a scoped admin portal — a factor in the 3.1 decision.
Shared vs. per-client tenantA single shared tenant is simplest but limits isolation and branding; a tenant-per-client isolates cleanly but adds enrollment and ops overhead (prescribers may need enrolling in each). Choose based on how much the clients must be kept apart.

Situational

3.11 Migration from an Existing e-Rx System (Change of Vendor)

Read only when replacing an existing EHR or e-Rx vendor (1.3).

Questions:

  • Are prescribers currently sending through another system on SureScripts?
  • Do pending refills and history need to follow prescribers over?
  • Can migration be phased prescriber-by-prescriber, or must it be all at once?
SituationApproach
Already on SureScriptsCoordinate a Change of Vendor so the new system is recognized; without it, new prescriptions may work while refills and edits fail.
Preserving pending refillsThe approach depends on whether pending refills must be preserved vs. whether the old system must keep operating during cutover — these pull opposite ways. Scope with the vendor before scheduling.
Phased rolloutMigration can generally be coordinated per prescriber, enabling a phased cutover.

The e-prescribing vendors Medplum integrates with first-party: