Running a telehealth program at scale, Part 5: migrating a live patient base without a refill gap
Switching infrastructure with zero patients is a project. Switching with five thousand patients on active therapy is a clinical operation, and the failure mode is a refill that does not arrive. Part 5 of our series for programs at scale is the playbook operators use to make the move invisible.
A live migration is run in waves by state, timed to refill dates, never as a cutover. Before anything moves: export a complete sample and audit it against your schema, read the exit terms, and build the patient map — active patients by state with their next refill date, which becomes the schedule. Then parallel-run your flows in the new sandbox while the old stack keeps serving. Records move as data; prescriptions do not — a clinician on the new network reviews each incoming chart and re-establishes therapy, timed to land before the patient’s next refill. Cut over one state, hold the old contract and a rollback until that state has cleared a full refill cycle, then roll the remaining states in waves. Patients stay in your app throughout and usually need no announcement. Refill completion rate against your pre-migration baseline is the metric that tells the truth.
The failure mode is a missed refill
Every migration risk resolves to the same patient experience: a box that does not arrive. Data gaps, a clinician queue that has not scaled to the new volume, a pharmacy that cannot ship to a state, a consent that was not carried across — each becomes a lapse if it lands on a refill date. So the whole playbook is organized around refill dates, and the whole success metric is whether refills kept completing.
Before anything moves
Export a sample and audit it. Request a complete export for a few hundred patients — demographics, consents with versions, care plans, encounters and notes, prescriptions, orders, audit entries — and map it field by field to the target schema. Missing fields surface now, not mid-wave. If the current platform cannot produce this, that fact sets your timeline: the export becomes the first project.
Read the exit terms. Notice periods, data-return obligations, any exclusivity, and what happens to patient records after termination. Negotiate a wind-down that keeps the old stack serving until your last wave has cleared a refill cycle.
Build the patient map. Active patients by state, each with their current medication, days’ supply, and next refill date. Sorted by state and date, this map is the migration schedule. It also tells you where you need clinician coverage and pharmacy licensure first.
Line up the new stack. Clinician coverage in every state on the map, pharmacy routing for every medication, consent versions ready to re-capture where the new state requires it, and your app integrated against the new API in a sandbox.
Parallel run
Run your intake, encounter, and fulfillment flows end to end in the new sandbox while the old platform keeps serving patients. Include the unhappy paths: a declined renewal, a state requiring a live visit, a duplicate webhook, a failed delivery. Nothing moves until your team has seen every path work with test patients. This is also when support learns the new order events and macros are rewritten around them.
Records move; prescriptions are re-established
Charts, care plans, history, and consents transfer as data, audited against the sample. Prescriptions do not. Porting a prescription from one prescriber to another as a database row is a compliance smell; the clean path is for a licensed clinician on the new network to review each incoming chart and re-establish therapy — a new prescription under their license, timed to land before the patient’s next refill date. For most patients this is an asynchronous review of a complete record and takes minutes. For patients whose new state requires a live visit or a new consent version, it is a short scheduled visit, and those patients are the ones who receive a message.
Time it from the patient map: re-establish in the days before each refill date so the first shipment from the new pharmacy arrives inside the normal window. Where cold chain or a pharmacy change is involved, ship a few days earlier than usual on the first cycle.
Cut over by state, in waves
Pick the first state deliberately: enough patients to be a real test, few enough to watch every one, with clinician and pharmacy coverage already proven. Move it. Then hold — the old contract, the old flows, and a rollback path — until that state has cleared one full refill cycle with refill completion at or above baseline. Then move the next wave: two or three states, then the rest.
| Phase | Weeks | What happens | Gate to proceed |
|---|---|---|---|
| Preparation | 0–1 | Export audit, exit terms, patient map, coverage check | Sample export maps cleanly |
| Parallel run | 1–2 | All flows in sandbox, support retrained | Every path, including failures, works |
| Wave 1 | 3–4 | One state; records transferred, prescriptions re-established by refill date | Full refill cycle at or above baseline |
| Waves 2–n | 5+ | Remaining states in groups | Each wave clears a refill cycle |
| Wind-down | After last wave | Final export, old contract ends | Complete data in hand |
Twelve states typically complete in two to three months. Programs that try to shorten this by cutting over everything at once are the ones with a support queue full of patients who ran out.
Patient communication
The default is silence, because nothing the patient sees changes: same app, same brand, same subscription. Three groups get a message, and it should be short and specific: patients who need a live visit under the new state’s rules; patients whose consent must be re-captured; patients whose medication will arrive from a different pharmacy or on a slightly different schedule for one cycle. Everyone else experiences the migration as a refill that arrived on time.
Rollback
Hold it open. For each wave, keep the old platform able to serve those patients until the refill cycle clears. Define the trigger in advance — refill completion below baseline, turnaround above threshold, a pharmacy failure — so the decision is a rule rather than a debate at 6pm on a Friday.
The metrics that tell the truth
- Refill completion rate against your pre-migration baseline, per wave. This is the one number.
- Renewal turnaround p90 on the new network, per state.
- Support tickets per hundred encounters, which should fall if the new events are wired into your desk.
- Re-establishment coverage: share of migrating patients with a new prescription in place before their refill date.
- Lapse days for migrated patients on their first cycle, which should be zero.
Negotiating from strength
A program with a working export, a patient map, and a parallel-run plan is a program that can leave. That changes the conversation with the current vendor as much as with the new one. Whether or not you move, do the first three steps; they are the due-diligence artifacts an investor or acquirer will ask for anyway.
Migrations onto Lithos are a first-class path: our physicians re-establish prescriptions against each patient’s refill date, waves run state by state with the rollback held open, and your clinical and operational data exports at any time — on the way in and on the way out. The short version is on the migration page; the risk register is in switching telehealth infrastructure without losing patients. Next in the series: the telehealth infrastructure RFP.
Frequently asked questions
How long does it take to migrate a telehealth program to a new platform?
Three to four weeks from kickoff to the first state cutover for a single-category program, then further states in waves at your pace, each proven through one full refill cycle before the next moves. A twelve-state program typically completes in two to three months.
Do patients need to be told about a platform migration?
Usually not, because nothing they see changes: they stay in your app and your brand. The exceptions are patients who need a new live visit under the new state’s rules or whose prescription is being re-established with a different pharmacy; those get a short, specific message.
Can prescriptions be transferred between telehealth platforms?
Records can; prescriptions should not be ported as data. A licensed clinician on the new network reviews each incoming chart and writes a new prescription, timed to the patient’s refill date. It is the clinically clean way to change prescribers and it is what boards expect.
What is the biggest risk in a telehealth migration?
A missed refill. Every other risk — data gaps, a slow clinician queue, a pharmacy that cannot ship to a state — shows up as a patient running out of medication. Timing waves to refill dates and holding a rollback until each wave clears a refill cycle is how the risk is contained.
What data should be exported before a telehealth migration?
Everything you own: patient demographics and identifiers, consent records with versions and timestamps, care plans, encounter history and clinician notes, prescription and order history, and the audit log. Export a sample first and audit it against your target schema so missing fields surface before the timeline is committed.
Get the Journal by email
Our best guides on building compliant telehealth programs — a couple a week, unsubscribe any time.
From first call to first patient, in weeks.
A 15-minute intro call, sandbox credentials the same day, go-live in 3–4 weeks — new launches and existing patient bases alike.