Migrating from another system
Export your patient data from your current EHR and let the AI chat import it — with a preview and your approval before anything is written.
Already using another system? You don't have to re-type your patients. temetro can take a database export from your current EHR/EMR, read it with the AI chat, map it to temetro's record shape, and import it — all in a few minutes, with a preview and your approval before a single record is written.
Nothing happens to your old system: temetro only reads the export file you hand it. It never connects to your other software.
Export, then import
temetro has no direct HL7/FHIR or live-database connectors yet. Migration works by exporting a file from your current system and importing it here through the chat. Almost every EHR can export to CSV or JSON, which is all temetro needs.
How it works
Export your data
In your current system, export the patients you want to move as CSV or JSON.
temetro also accepts .tsv, .txt, .md, .xml, and .ndjson. You don't need to
rename or reorder columns — the AI figures out which column is which.
Attach the file and ask to import
In the chat, use the Attach file button to add your export, then ask in plain language:
Import these patients into my clinic.The agent reads the file, maps each row to a patient record, and validates every one. It normalizes the data for you, so you don't have to reformat the file:
- Gender words become M/F.
- IDs like
P00001keep their digits. - Semicolon/comma lists (allergies, medications, problems) split into separate items.
- A visit table becomes encounters.
You'll see a Thinking… trace as it parses and checks the records, but nothing is saved yet.
Review the preview
The agent replies with an import preview card showing how many records are ready, how many were skipped, and the total it read. temetro is lenient: a row only needs a name — gaps (including a missing file number) are filled with safe placeholders and the record is tagged Added by AI for review, so most rows come through ready. Rows that can't be used at all are listed with the reason.
Review & edit (optional)
Click Review & edit to open every parsed record. Each shows a Ready or Needs fixing badge; open one to edit it in the full patient form — correct a file number, fix a field, or complete a skipped row — and save. The card re-validates instantly, so a row you fix flips to Ready and joins the import. Nothing is written here; you're just preparing the batch.
Approve
Click Approve to write the ready records. temetro re-checks every record on the server and saves it through the same audited path used everywhere else — so the import shows up in your activity log. Click Reject and nothing is written.
When you import an appointment schedule rather than patient charts, the agent groups the proposed appointments into a single approval (Review & add → Add all), and each person who isn't a patient yet gets a patient record with a file number so they appear on the Patients page.
Exporting from popular systems
Every system names its export differently, but the file you want is a CSV (or JSON) of patients and their clinical data. Look under Reports, Data export, or Patients → Export:
| System | Where to find an export |
|---|---|
| Epic | Reporting Workbench / Chronicles extracts, or an admin CSV report. |
| Oracle Health (Cerner) | Discern / HealtheAnalytics report exported to CSV. |
| athenahealth | Reports → Report Library; export results to CSV. |
| eClinicalWorks | Reports / eBO → export to CSV or Excel. |
| NextGen | NextGen reporting → export to CSV. |
| Practice Fusion | Reports → export patient list / data to CSV. |
| DrChrono | Account → Data Export (Patient and clinical CSVs). |
| OpenEMR | Reports → Clients → Patient List, or a direct CSV export. |
| Any other system | Anything that exports CSV or JSON works. |
You don't have to match temetro's columns
The AI infers the mapping from whatever your export calls things — MRN, PatientID,
DOB, Sex, Allergies, and so on — to temetro's record shape. Just export what you
have; you don't need to pre-format it.
What gets mapped
temetro maps your export into a patient record made up of demographics plus five clinical lists. The more of these your export includes, the richer the imported chart:
- File number (MRN) — unique within your clinic; if a row doesn't have one, temetro auto-assigns the next available number. See Core concepts.
- Name (the one field a row really needs), plus age, sex, primary provider, and status.
- Allergies, medications, problems, labs, and encounters (visit history), plus vitals.
Anything your export doesn't include is filled with a safe placeholder and the record is tagged Added by AI, so you can find and complete it later from the chat or the patient record.
Limits & what to expect
Import in batches of 500
Each import writes up to 500 records. For a larger dataset, split the export into batches and import them one after another. temetro also reads about 200 KB of text per attached file, so very large files should be split too.
- Gaps don't block the import. Missing fields are filled with placeholders and the record is tagged Added by AI; a missing file number is auto-assigned. Only rows that can't be used (e.g. no name) — or that duplicate a file number already in your clinic — are skipped and reported, so re-running is safe.
- The AI never writes directly. It only proposes; the server re-validates and writes after you approve. See the import API.
Privacy during migration
Migration data is patient data, so temetro's safeguards apply:
Keep sensitive bulk loads local
For cloud providers, Veil de-identifies patient details before the file leaves your clinic. For the most sensitive migrations, connect a local model with Ollama — Veil's local mode keeps the data entirely on your own infrastructure. See AI setup & safeguards.
Permissions
Importing needs a role that can write patient records — doctor, admin, owner, or member. Reception can import too, but only demographics (no clinical fields), matching what reception can see elsewhere. See Roles & permissions.
Troubleshooting
If records show up as skipped, the preview card tells you why. The most common causes:
- No name. A row needs at least a patient name; nameless rows are skipped.
- Duplicate file number. A row whose file number already exists in your clinic is skipped (a missing file number, by contrast, is auto-assigned).
Other gaps no longer skip a row — they're filled with placeholders and the record is tagged Added by AI so you can complete it afterwards. Fix any flagged rows in your export and import that file again; already-imported patients are left untouched.