DrinCloud

Home → Blog

Operations

How to switch EHR without losing your data: what exports cleanly, what never does

Patients, appointments and invoices export cleanly as CSV. Note formatting, visit linked attachments and open balances do not. Import order and a 30 day plan.

October 28, 2026 · 11 min read

Three categories of data come out of a practice management system in usable shape: patient demographics, the appointment list, and invoices and payments, almost always as CSV or Excel. Documents and signed forms usually come out too, as a zip of PDFs. What does not survive the move, in any system, is the formatting of your clinical notes, the link between an attachment and the visit it belonged to, and your accounts receivable as a working ledger. Plan for that and a migration is a tedious weekend. Assume everything transfers and you will spend three months rebuilding records by hand.

The other thing worth knowing before you start: the correct order is patients, then appointments, then invoices, then documents, and nothing works if you import them in any other sequence, because appointments reference a patient record that has to exist first and invoices reference both. Import in small batches, check the first twenty rows by eye, and keep the old system running read only for thirty days. This post is the whole process, with the checklist we give people who are moving in either direction.

What actually exports, by data type

DataUsual export formatHow clean it landsWhat breaks
Patient demographicsCSV or ExcelCleanPhone and date formats, accented characters, ZIP codes with a leading zero
Appointment historyCSVCleanPractitioner and room names have to be remapped, time zones shift
Future appointmentsCSVMostly cleanRecurring series arrive as individual rows, the series rule is lost
Invoices and paymentsCSVClean as a listNot clean as a ledger, see below
Clinical notesPDF per note, sometimes plain textReadable, not editableAll structure, all template fields, all headings
Intake and consent formsPDFReadableThe form itself cannot be exported, only the answers
Documents and imagesZip of filesFiles arriveWhich visit each file belonged to
Secure messagesSometimes a text or CSV dumpVariableThreading, read receipts
Card on fileNeverNothing movesEvery patient re-enters their card
Audit logRarelyNothing usefulDo not plan on it

A worked example: what SimplePractice hands you

This is the clearest published example, so it is worth reading even if you are leaving another system, because the shape is the same everywhere.

SimplePractice's data export, found under Settings, Practice, Data export, produces a zip file, optionally password protected, with folders for Administrative, Billing, Contacts, Medical Records, Psychotherapy Notes, Secure Messages and Stored Documents. There are three export types, Complete, Sessions and Contacts. Contact information in the Contacts export comes out as vCard, .vcf files meant for an address book, and client contact information cannot be exported directly to CSV or Excel through that feature: for a spreadsheet you run the Client details report and export that instead (support.simplepractice.com).

Read that twice. The thing you need for an import, a clean CSV of patients, is not what the big export button gives you. You get vCards, and the spreadsheet takes a separate report. People find this out on the day they planned to migrate.

The second useful data point comes from the receiving side. IntakeQ's own help article on moving in from SimplePractice says what it can import: client demographics and charts. It also tells practices with several staff to run one export per clinician, "This separates the data by a clinician, which allows us to import the charts under the correct author" (support.intakeq.com). Notes, documents, attachments and balances are not on the list.

Two serious vendors, and what moves between them is patients and charts.

What never migrates, and what to do instead

Note formatting. Your notes live in the old vendor's template engine. Out they come as PDFs or flat text, so a structured SOAP note with collapsible sections becomes a page of text. There is no fix, and any vendor claiming otherwise is wrong. What you do instead: export every note as PDF, keep them in a patient level document folder in the new system, and start writing new notes in the new templates. Do not retype old notes. Nobody has ever finished that project.

Attachments tied to a visit. You get the files. You do not get "this X-ray belonged to the March 4 appointment." Fix: rename files in bulk before you export so the date is in the filename, or accept that attachments land in a per patient pool. That is good enough in practice: when you open a chart in charting you see everything at once.

Open balances. You can export a list of invoices and a list of payments. Reconstructing who owes what, with partial payments and credits and adjustments applied in the right order, almost never comes across correctly. Fix, and this is the one that saves the most pain: close your books in the old system. Collect or write off every open balance before the cutover, then start the new system with every patient at zero and only genuinely open items entered by hand. Do not import an AR ledger.

The forms themselves. Completed answers export as PDFs. The questionnaire you spent two days building, with its conditional logic, does not. Budget a day to rebuild your intake in the new system, and do it before the cutover so there is no gap.

Cards on file. Payment tokens belong to the gateway, not the chart. Assume every recurring payer re-enters a card. Tell them a week in advance, with a link, or your first month of collections drops.

Recurring appointments. The individual bookings export, the rule that generates them does not. Print a list of every series and rebuild them by hand. There are usually fewer than you fear.

The correct order of import

Each step depends on the one before it. Skipping ahead is the main cause of a migration that has to be deleted and redone.

  1. Practitioners, locations and rooms. Create them first, with names spelled exactly as they appear in your export file, so appointments map to the right calendar.
  2. Service catalog and prices. Services, durations, prices, any sliding scale. Invoices reference services. Build the list before you import money.
  3. Patients. The foundation record. Every later file references a patient by ID, email or a name and date of birth pair, so this file must be right before anything else goes in.
  4. Appointments. Past first if you want history, then future. Future appointments matter more: a missing past appointment is an inconvenience, a missing future one is a patient who turns up to an empty room.
  5. Invoices and payments. After patients and services exist.
  6. Documents and notes as PDFs. Last, in bulk, attached to patients.
  7. Forms, templates and reminder rules. Rebuilt, not imported.

A note on step 3. Decide your duplicate key before you start. Email is the usual choice and it fails on families who share one address. Name plus date of birth is more reliable in a clinic with children. Whichever you pick, run it consistently: mixed keys produce duplicates, and duplicates are the hardest thing to clean up later.

Why small batches, and what goes wrong in big ones

Import 50 to 200 rows, stop, and inspect twenty records by hand in the interface. Then do the rest. These five errors appear in almost every real file and every one of them is invisible in a spreadsheet:

  • Dates. 03/04/2026 is March 4 in the US and April 3 nearly everywhere else. One wrong setting and every date of birth in your practice is wrong.
  • Accented characters. A file saved as the wrong encoding turns José into José, across 4,000 patients.
  • ZIP codes. Excel strips the leading zero from 02134 and gives you 2134.
  • Phone numbers. Long numbers get turned into scientific notation, or the country code is dropped.
  • Empty required fields. A thousand rows reject on row one because a date of birth is blank, and the error message names the column, not the row.

Check those five in the first batch and you will catch essentially everything. For what it is worth, this is why the importer in our software lets you delete an entire import in one action and upload the corrected file again, which turns a mapping mistake into a five minute problem instead of a data cleanup project. Migration is free and you run it yourself, by uploading Excel or XML, because an import you can undo is worth more than an import somebody else does for you once.

[CAPTURA: el importador de DrinCloud con un fichero Excel cargado, mostrando la previsualización de columnas y el botón de borrar la importación]

The thirty day parallel plan

  1. Day minus 14. Run a full export from the old system and open every file. Count the rows. If the patient count in the file is not the patient count in the system, stop and find out why.
  2. Day minus 7. Build practitioners, services, prices, templates and forms in the new system. Import patients. Check twenty by hand.
  3. Day minus 3. Import appointments and invoices. Send the "we are moving systems, please re-enter your card" message.
  4. Day 0. Every new booking goes into the new system only. The old system becomes read only, by policy, not by a switch. Tell the front desk in one sentence: nothing new goes in the old one.
  5. Week 1. Reconcile daily. Count yesterday's appointments and yesterday's payments in both systems. Five minutes a day catches a broken import before it compounds.
  6. Day 30. Run one more complete export from the old system, store it somewhere you will still be able to read it in six years, and then cancel.

The overlap is the only line item in a migration with a real price. One extra month of your old subscription, at list prices read on October 28, 2026:

Old systemOne extra month
Healthie Essentials$49
Practice Better Grow$69
TherapyNotes Solo$69
SimplePractice Essential$79
Jane Practice$79
IntakeQ PracticeQ$84.90

Do not cancel on day 1 to save that, and do not downgrade to a plan that disables the export before you have your final copy. One month of the old vendor costs less than one afternoon spent trying to reach a record you no longer can.

The legal part, in two paragraphs

Cancelling a subscription does not cancel your retention obligation. The HIPAA Security Rule requires a covered entity to retain its required documentation "for 6 years from the date of its creation" or "the date when it last was in effect, whichever is later" (ecfr.gov). The clinical record itself is governed by state law and by your licensing board, not by HIPAA, and the period varies by state and is longer for minors. Look yours up before you decide what to keep.

Practically, that means your final export is not a backup, it is a record you must be able to produce. Keep it encrypted, somewhere a laptop failure does not delete, with a plain text note of what the files are and which system made them. On our side a complete export in CSV and PDF is available at any time at no cost, because software that makes it hard to leave has stopped competing. Security and data handling covers the rest.

Pre-switch checklist

Run this before you give notice to anyone.

  1. Confirm you can download a complete export yourself, without asking support.
  2. Open every file in the export. Confirm encoding, dates and row counts.
  3. Confirm how patient contact details come out. CSV, or vCard, or a report you have to run.
  4. Confirm whether notes come out as PDF, text or not at all.
  5. Confirm whether documents keep any link to the visit.
  6. Decide your duplicate key, email or name plus date of birth.
  7. Collect or write off open balances. Start clean.
  8. List every recurring appointment series on paper.
  9. Rebuild intake forms, consents and reminder rules in the new system first.
  10. Check which integrations break. Calendar sync, booking widget, payment gateway, lab or imaging links. Compare the list of integrations and connectors before you move, not after.
  11. Warn patients about the card on file, at least a week out.
  12. Keep the old subscription for one full billing cycle after cutover.

Two posts that pair with this one: how to choose an EHR for a small or solo practice if you have not picked the destination yet, and whether ONC certification matters for a cash-pay practice, because that single question rules several options in or out before price enters the conversation.

Frequently asked questions

Can I export all my data from any EHR?

You can export patients, appointments, invoices and documents from every mainstream system, and vendors generally provide it without charge. What no system exports is the structure of your notes, the link between files and visits, and a working accounts receivable ledger. Ask for a sample export before you commit, and open it.

What format does an EHR export come in?

Usually CSV or Excel for lists such as patients, appointments and invoices, PDF for notes and signed forms, and a zip containing both for a complete export. SimplePractice, for example, delivers a password protectable zip and uses vCard files for contact details rather than CSV, so a spreadsheet of clients requires running a separate report.

How long does an EHR migration take?

For a solo practice with a few thousand patients, plan two to three working days of actual effort spread over two weeks, plus a thirty day overlap where both systems are live and only one accepts new data. Larger group practices should budget a week and run one export per clinician.

What happens to patient credit cards when I switch?

Stored card tokens belong to the payment gateway and almost never transfer, so assume every patient with a card on file has to re-enter it. Announce it a week before the cutover with a direct link to the payment page, otherwise collections drop in the first month while you chase people one at a time.

Is data migration free?

It depends on the vendor, and this is worth asking in the first email. Some charge for assisted migration, some include it, and some give you a self-service importer. In our software migration is free and the practice runs it: you upload Excel or XML, review the result, and if an import is wrong you delete the whole thing and upload a corrected file.

DrinCloud is practice management software for clinics the patient pays directly, with a free self-service importer, complete data export in CSV and PDF at any time, and no exit fee. See what is included in each plan.

← All articles

See it in your own practice

Live in three minutes, no setup fee, cancel anytime.