Skip to main content

Data import & export

Migration is free and safe: every import is validated first (dry run), committed in batches, and can be rolled back as a whole. Your data is always yours — export all of it at any time.

Who it is for​

  • Import: the owner (permission Import data).
  • Export: the owner (permission Export workspace data, Super Admin only).

Import patients (or services)​

1. Prepare a CSV or Excel file​

  • Excel (.xlsx): upload the workbook directly — no need to save as CSV. The first visible sheet is read; type a sheet name on the upload step to read another one. Numbers stay exactly as typed (a mobile number is never turned into 9.87E+09), cells formatted as dates become dates, TRUE/FALSE are kept, formulas import their result.
  • Old Excel .xls, macro workbooks (.xlsm / .xlsb), OpenDocument (.ods) and Numbers files are not accepted: in Excel use File → Save As → Excel Workbook (.xlsx) (or CSV UTF-8). Password-protected workbooks must be saved without the password first.
  • CSV: File → Save As → CSV UTF-8 (Comma delimited) in Excel; File → Download → Comma-separated values in Google Sheets (or download as .xlsx).
  • Practo: export your patient list from Practo Ray (Reports → Patients → Export) and upload the Excel or CSV file as it is — the Practo export preset maps its columns (see below).
  • Limits: 3 MB and 20,000 rows per file, 100 columns, 2,000 characters per cell (split bigger files). Hindi / Devanagari text is supported in both formats.
  • Download the template on the import page for the exact column set.

Workbooks are checked before anything is read: files that are damaged, encrypted, far too compressed ("zip bombs"), contain unexpected internal paths or XML document-type declarations are refused with a clear message — open the file in Excel, save it again as .xlsx and retry.

Recognised column names (case and spacing don't matter):

FieldExamples of accepted headers
Full name (required, or First + Last name)Name, Patient Name, Full Name
MobileMobile, Mobile Number, Phone, Contact No
Date of birthDOB, Date of Birth, Birth Date
GenderGender, Sex (M/F/O, Male/Female/Other, पुरुष/महिला)
Your old IDPatient ID, Practo ID, UHID (kept as reference)
OthersEmail, Address, City, State, Pincode, Blood Group, Referred By, Guardian name / relation / phone / consent, Notes

Services: Service Name (required), Code, Category, Price, HSN/SAC, GST rate.

Practo export preset​

When the header row looks like a Practo Ray patient export (a Patient ID / Patient Number column plus at least four other Practo columns) the mapping step says so and pre-maps the columns with the Practo export preset. You can also pick Practo export under Mapping preset and select Apply preset at any time; the screen lists every field it mapped, and columns missing from your file are simply left unmapped. Matching ignores case, spaces and punctuation (PATIENT NAME, patient_name and Patient-Name are the same).

The Practo column names below are assumed from typical Practo Ray exports (Practo does not publish a format); alternative spellings in the second column are accepted too. If your export uses other names, map those columns by hand.

FieldPracto column (assumed)Also accepted
Full namePatient NameName, Patient Full Name, Full Name (or First Name / Last Name)
MobileMobile NumberMobile No, Mobile, Primary Mobile, Patient Mobile, Contact Number, Phone Number
Alternate phoneContact NumberSecondary Mobile, Alternate Mobile / Number, Landline, Phone Number
EmailEmail AddressEmail, Email ID, E-mail
GenderGenderSex
Date of birthDate of BirthDOB, Birth Date, Birthday
AgeAgeAge (Years), Age in Years
Blood groupBlood GroupBlood Type
AddressAddressStreet Address, Address Line 1, Full Address, Locality (only when there is no Address column)
City / State / PIN codeCity, State, PincodeTown; Pin Code, PIN, Zip Code, Postal Code
Referred byReferred ByReferred By Doctor, Referral Source, Referrer
NotesNotesPatient Notes, Remarks, Comments
Your old IDPatient IDPatient Number, Patient No, Practo ID

Contact Number is used as the mobile number only when the file has no Mobile Number (or other mobile) column. Practo columns such as Groups, National Id, Medical History or Anniversary help recognise the file but are not imported.

2. Upload and map columns​

  1. Open Admin → Import Data (/app/data/import), choose Patients or Services, and drop your CSV or Excel (.xlsx) file (optionally type the sheet name for a workbook).
  2. The mapping table pre-selects the matching column for each field (or the Practo preset for a Practo export) — adjust any that are wrong.
  3. Choose the date format used in the file (DD/MM/YYYY is the default) and what to do with duplicates (Skip — recommended — or Create anyway).

3. Validate (dry run — nothing is saved)​

The report shows valid rows, rows with errors (row number as in your spreadsheet, field, reason) and possible duplicates (same mobile number, or same name + date of birth as an existing patient, or repeated inside the file). Download Error report (CSV), fix the rows in your spreadsheet and upload again, or continue — rows with errors are not imported.

Rows without a date of birth are imported and flagged for the DPDP compliance queue. A minor (under 18) needs guardian name, relation and consent columns.

4. Import​

Select Import. Rows are imported in batches with a progress bar; you can pause and continue later. Each imported patient gets a new UHID and patient number.

5. Roll back (undo a whole import)​

Open the import from Past imports and select Roll back. Every record created by that import is deleted unless it has been used since — records that were edited, merged, or that already have any linked record (appointments, bills, payments, encounters, vitals, diagnoses, documents, prescriptions, packages, privacy requests…) are kept and counted as kept (modified) / kept (linked).

Export all your data​

  1. Open Admin → Export Data (/app/data/export) and select Start export.
  2. Keep the page open while the progress bar runs (large workspaces take a few minutes; you can come back and Continue).
  3. Select Download — the link is valid for 10 minutes; the file is kept for 7 days.

The ZIP contains, for each collection (patients, appointments, encounters, vitals, conditions, allergies, prescriptions, clinical documents, bills, payments, credit notes, care plans, treatment packages and usage, services, staff accounts without passwords, audit log): json/<name>.json and csv/<name>.csv, plus manifest.json (counts) and README.txt. CSV files open in Excel with Hindi intact.

Every import, rollback, export and download is recorded in the audit log.