eRx Solution

One prescribing gateway, every queue on the chart.

The eRx Solution is the prescribing engine inside the eKlotho EMR, exposed as its own module: a prescription composer with RxNorm coding, drug-safety checks run against the chart's own medication and allergy lists, a controlled-substance rulebook with an append-only audit log, and one gateway interface to the practice's configured e-prescribing vendor — DoseSpot or Photon Health — so refills, change requests and transmission status all land in queues the practice actually works.

Overview

Vendor-connected e-prescribing with drug-safety checks, refill and change-request queues, and a transmission record per prescription.

Most EMRs rent prescribing: a vendor iframe opens over the chart, the vendor owns the workflow, and the chart finds out later — if at all — what was prescribed. The eKlotho eRx module inverts that. The chart owns the truth: drug-interaction and allergy checks run against the chart's own medication and allergy lists rather than a vendor's view of the patient, a signed prescription immediately updates the chart's med list, and inbound events — a refill request, a pharmacy's change proposal, a transmission error — are normalized into queues that look the same regardless of which vendor sent them. The vendor is reduced to what it should be: a certified transmission channel behind one gateway interface.

That gateway is the module's architectural core. Each practice configures its own vendor — DoseSpot over REST or Photon Health over GraphQL — with credentials encrypted per organization; the prescribing screens never change when the vendor does. Every prescription records which vendor carried it, so a cancel or a refill response reaches the right channel even after a practice switches vendors. And when no vendor is configured at all, the platform degrades honestly: a signed prescription lands in a QUEUED status instead of TRANSMITTED, the transmit timestamp stays empty, and the record never claims more than what actually happened — the same graceful-degradation pattern eKlotho applies to every optional integration.

Prescribing safety is enforced at signature, in a fixed order: allergy match, contraindicated-interaction block, quantity ceiling parsed from the sig, and a pediatric age floor — each override-able only with a recorded reason, each override audited. Controlled substances get their own rulebook: schedule classification against a curated catalog, zero refills for Schedule II, a hard block when the prescriber has no active DEA registration, and an append-only controlled-substance log that snapshots the DEA number at signing time and cannot be edited afterwards.

eRx Solution — main screen
eRx Solution — main screen (demo environment, synthetic data).
Architecture

The chart owns the truth; the vendor carries the message

Prescribing surfaces
Composer
RxNorm typeahead, sig templates, dispense ceilings
Work queues
refills, change requests, transmit failures
Transmission dashboard
bucketed by prescription status
Safety engine
Allergy match
respects entered-in-error status
Interaction rules
curated table with per-network overrides
Quantity ceiling
derived server-side from the sig
Controlled-substance rulebook
append-only audit log
Vendor gateway
One protocol
authenticate, send, cancel, pharmacy search, formulary, refill response
DoseSpot
REST client
Photon Health
GraphQL client, cached OAuth2 tokens
Chart write-back
Med-list update by rule
renewals refresh a row; new strengths get their own
Fill events
last-fill date written onto the record
History reconciliation
imported rows merged or ignored with a reason
Reference data
NLM RxNav
live RxNorm search with free-text fallback
NDC catalog
cached in MySQL
NCPDP pharmacy directory
local fallback when the vendor is unreachable
Safety runs against the chart's own lists, the gateway abstracts the vendor, and reference data is cached locally so the picker never comes back empty-handed.
Capabilities

What's included

7 modules, each describing what is built today.

Prescription composer & lifecycle

A draft-to-signed-to-transmitted state machine with an RxNorm typeahead, sig templates, dispense quantities with a server-derived ceiling, DAW and refill caps.

Drug-safety engine

Interaction, allergy, controlled-substance and quantity checks that run against the chart's own lists, enforced again at signature with audited overrides.

Vendor gateway

One protocol — authenticate, send, cancel, search pharmacies, check formulary, respond to refills — implemented by a DoseSpot REST client and a Photon Health GraphQL client.

eRx work queues

Refill requests, pharmacy change requests and transmission failures as first-class worklists, with a badge count that tells staff what is waiting.

Transmission record

A per-prescription timeline of the message conversation — direction, message type, acknowledgment code, error text — behind a dashboard bucketed by status.

Chart write-back & medication history

Signing a prescription updates the chart med list by rule, not by copy — and imported medication history is reconciled row by row, never dumped into the chart.

Pharmacy directory & formulary

Pharmacy search across the vendor and a local NCPDP-keyed directory, patient pharmacy preferences, and advisory formulary tiers with prior-auth and step-therapy flags.

How it works

From first step to outcome

  1. ComposeRxNorm search, strength and form, sig from a template — checks evaluate live against the chart
  2. Safety chain at signature

    Runs in fixed order: allergy, contraindicated interaction, quantity ceiling, pediatric age floor.

    • Clearleads to the prescription signs
    • Overridable findingleads to a recorded reason is required, and the override is audited
    • Controlled drug, no active DEAleads to hard block — no override exists
  3. Sign

    The chart med list updates immediately; a controlled prescription writes its append-only audit row with the DEA number as of that moment.

  4. Vendor configured?

    Each practice selects DoseSpot or Photon Health once; credentials are encrypted per organization.

    • Yesleads to transmitted through the gateway, with the carrying vendor recorded
    • Noleads to held in QUEUED with an empty transmit timestamp — the record stays truthful
  5. The pharmacy answers

    Acknowledgments, errors, refill and change requests return as HMAC-verified, replay-safe webhooks and land in the queues.

  6. Queues worked, timeline completeone-shot decisions with reasons, written to the per-prescription transmission record
The safety chain runs in a fixed order at signature, and the record never claims more than what actually happened.
  1. Configure

    The practice administrator selects a vendor and enters credentials once; they are encrypted per organization and never displayed again — the config screen only ever confirms that a value is on file.

  2. Compose

    The prescriber searches RxNorm, picks strength and form, writes the sig from a template or free text, and watches interaction, allergy and controlled-substance checks evaluate live against the chart.

  3. Sign

    Signature re-runs the safety chain in order — allergy, contraindication, quantity, age floor — updates the chart med list, and, for a controlled drug, writes the append-only audit row with the DEA number as of that moment.

  4. Transmit

    The gateway hands the prescription to the configured vendor and records which vendor carried it; without a configured vendor the prescription is held in QUEUED with its transmit timestamp empty, so the record stays truthful.

  5. Work the queues

    Refill requests, change requests and failures arrive in dedicated worklists with badge counts; each decision is one-shot, reasoned and written to the transmission record.

Reference

The specifics, in tables

Vocabularies, tiers and matrices drawn from the product documentation — the same terms the software uses.

Prescription lifecycle

StatusMeaning
DraftBeing composed; safety checks evaluate live but nothing is committed
QueuedSigned with no vendor configured — held honestly, transmit timestamp empty
SubmittedHanded to the configured vendor; the carrying vendor is recorded on the prescription
AcceptedThe pharmacy acknowledged the transmission
FailedThe error and acknowledgment code are recorded, and the prescription lands in the failure queue
Cancelled / voidedCancel retracts before transmission; void retracts after it and notifies the pharmacy through the gateway

Controlled-substance rules

RuleEnforcement
Schedule classificationEvery prescription is checked against a curated schedule catalog
Schedule II refillsForced to zero at signature
Schedules III–V refillsCapped at five
No active DEA registrationHard block with no override path
Audit trailAn append-only log snapshots the DEA number at signing; rows can never be edited afterwards

Two vendors, one interface

AspectDoseSpotPhoton Health
TransportRESTGraphQL
AuthenticationPer-organization credentials, encrypted at restOAuth2 client credentials with cached, auto-refreshed tokens
What changes on switchNothing — screens, queues and records are identicalNothing — screens, queues and records are identical

Switching vendors is a credentials change, not a migration.

How we make sure

The mechanics behind the claims

Every promise on this page maps to something the software actually enforces.

The chart, not the vendor, owns the truth
Safety checks read the chart's own medication and allergy tables; a signed prescription updates the med list by a three-rule match that refreshes or adopts an existing row rather than duplicating it; vendor responses are transformed into the chart's records.
Webhooks cannot double-apply
Each vendor event carries a unique request id enforced by a database constraint; a redelivered webhook is answered with an acknowledged-duplicate response instead of creating a second queue item.
Credentials are never readable back
Vendor API keys are encrypted at rest with a platform key, and the admin configuration endpoint returns only booleans — whether a key is on file — never the value itself.
A record that cannot be listed cannot be opened
Queue and dashboard queries scope to the organization and the provider's patient panel, and the detail endpoint returns the identical not-found answer for a missing id, another practice's id and an off-panel id.
Outcomes

What changes for your team

  • Prescribing lives in the chart, not in a vendor iframe — safety checks run against the medication and allergy lists the clinic actually maintains
  • Switching e-prescribing vendors is a credentials change, not a migration — the screens, queues and records stay identical
  • Every prescription can answer for itself: who signed it, what checks fired, what was overridden and why, which vendor carried it, what the pharmacy said back
  • Controlled-substance prescribing leaves an audit trail that cannot be edited after the fact
  • Refill and change-request work stops living on the fax machine and starts living in a queue with counts, decisions and reasons
FAQ

Common questions

Terms on this page

eRx
Electronic prescribing — composing, signing and transmitting a prescription to a pharmacy electronically instead of on paper or by fax.
DAW
Dispense as written — the prescriber's instruction that the pharmacy must not substitute a generic.
Sig
The patient instructions on a prescription — dose, route, frequency. The platform parses it server-side to derive quantity ceilings.
NCPDP ID
The national identifier for a pharmacy, used to route a prescription to the right store.
Refill request
A pharmacy-originated request to authorize more refills of an existing prescription, arriving as a webhook and landing in the refill queue.
Change request
A pharmacy's proposal to change something about a prescription — often a formulary substitution — which the prescriber approves or denies with a reason.
Which e-prescribing vendors are supported?

DoseSpot and Photon Health, each behind the same gateway interface. The practice picks one and enters credentials; every prescribing screen, queue and record works identically on either. The vendor holds the pharmacy-network certification and carries the transmission.

What happens if no vendor is configured yet?

The module degrades honestly. A signed prescription lands in a QUEUED status instead of TRANSMITTED and its transmit timestamp stays empty; pharmacy search falls back to the local directory; vendor-dependent lookups return a clear unavailable answer instead of a fake one. Configure credentials and the same records proceed.

Where do the drug-safety rules come from?

From curated rule tables the platform ships and maintains — interaction pairs with severities, a controlled-substance schedule catalog, sig-derived quantity ceilings — with per-network overrides so an organization can tighten the defaults. Checks evaluate against the chart's own medication and allergy lists, and every override requires a recorded reason.

How are controlled substances handled?

A schedule classification runs on every prescription: Schedule II forces zero refills, Schedules III–V cap at five, and a controlled drug with no active DEA registration on the prescriber is blocked outright with no override. Signing a controlled prescription writes an append-only audit row that snapshots the DEA number at that moment. Identity proofing for electronic controlled-substance prescribing is initiated through the configured vendor.

Is this separate from the EMR?

It is the EMR's prescribing engine, surfaced as its own module. There is no second patient record: the composer reads the chart, signature writes the med list, and the queues live alongside the inbox. A network running the HMO platform sees the same medication data through its own delegated views.

See eRx Solution on your own workflows

We walk through it with your data and your team — not a canned demo.

Program and billing eligibility are determined by each practice and its payers. Results and alerts do not constitute a medical diagnosis. Third-party names are trademarks of their respective owners and do not imply endorsement.