Bulk Import in Depth

← Exporting to REDCap · Home


Bulk Import in Depth

Bulk Import, on the Data Management tab, brings in many test files at once. Systole handles each file in turn with the same rules it uses for a single test. If it cannot decide something safely, it sets that test aside for you rather than guessing. This page is the detailed companion to Import and Export → Bulk Import.

One rule always applies: a verified test's values change only through an amendment. Bulk Import may add breath-by-breath data to a verified test that has none, but it never changes the test's summary, AT or PFT values, and never amends it for you. To change a verified test, open it, click Amend, and give a reason.

Using Bulk Import

1. Import new tests

Go to Data Management → Bulk Import, then click Select Files or Select Folder. Systole picks up .sum (Breeze) and .pedal files and ignores everything else. It counts what it found before you start, for example "42 files selected (40 .sum, 2 .pedal)".

Choose three settings, then click Start Import:

Setting Default What it decides
Import Status Preliminary The status new tests get. Use Historical for old data you only want for trends, and Verified only for tests already signed off elsewhere.
Use status from file On If a .pedal file carries its own status, that status wins over the setting above.
Duplicate Handling Review What happens when a test is already in Systole: send it to Review, skip it, or overwrite it. A verified test is never overwritten here; it goes to Review.

Try it first with Dry Run. Click Dry Run instead of Start Import to see exactly what these settings would do — file by file: new test, merge, skip, overwrite, sent to Review, or error, and whether a summary would be recalculated. It runs the real import and then undoes all of it, so what it reports is what Start Import will do; nothing is saved. Your file selection is kept, so you can adjust a setting, dry-run again, and then import.

A progress bar shows each file as it goes. When it finishes, a results box lists how many tests were imported, skipped, overwritten or merged, and how many merges found nothing new to add. It also lists patients created or linked, breath data added to verified tests, verified tests sent to Review, items needing review, and any errors. If anything needs review, click Review Matches to go straight to it.

2. Add missing data to tests you already have

Turn on Merge Mode in Bulk Import when the files are extra data for tests already in Systole, such as a folder of breath-by-breath exports. Systole finds the matching test by its file ID, or by MRN plus date of service. It then compares the test and the file one value at a time, not class by class. The result depends on which side already has data:

Data class Existing empty, file has it Both have it Existing has it, file empty Both empty
Breath-by-breath data Added. A verified test gets the breaths and nothing else Duplicate Handling decides first. If it goes ahead, the file's data replaces the old set whole. A verified test goes to Review instead Kept Stays empty
CPET summary values (Rest, AT, Peak) Filled from the file, except on a verified test Existing value kept; the file's value is ignored Kept Stays blank. Merge Mode never calculates a summary; use Fill Missing from BxB afterwards
PFT values Filled from the file, except on a verified test Existing value kept; the file's value is ignored Kept Stays blank
Demographics, prescriptions, report text, verification status Not changed Not changed Not changed Not changed

If no matching test exists, the file imports as a normal new test, so nothing is lost.

Recalculate summaries from merged breath data (an option under Merge Mode, off by default). Normally a merge adds breath data without changing any summary value the test already has — so a summary typed in or imported earlier can end up describing different data than the test now holds. With this option on, whenever a merge adds or replaces breath data on a Preliminary or Historical test, its Rest / AT / Peak values are recalculated from the breaths, exactly as Recompute from BxB would. Values the breath data can't produce (blood pressure, anything typed in) are left alone. Verified and amended tests are never recalculated — a verified test still gains its breath data, with its values unchanged. Use Dry Run to see which tests would be recalculated.

Timing on a verified test. The file's exercise and recovery markers and its AT time are held, not applied. They take effect only when you amend the test and click Fill Missing from BxB or Recompute from BxB (see Entering CPET Data). Until then the AT stays as verified, including a blank AT the reader chose to leave empty.

Combinations to watch

Common questions

3. Recalculate summaries for tests already in Systole

Data Management → Recalculate Summaries from Breath Data recalculates Rest / AT / Peak from breath-by-breath data for many tests at once — the same as Recompute from BxB on each one. Use it after merging breath data without the recalculation option, or after changing your averaging default.

  1. Choose Preliminary and/or Historical tests. Verified and amended tests are never included.
  2. Click Preview. Systole lists every eligible test with breath data and what would change — for example vo2_peak 2150 → 2238 — without changing anything.
  3. Click Recalculate N tests and confirm. Only the tests in the preview are changed.

Each test keeps its own averaging method (the one chosen on its 9-panel, else your site default); Breeze-averaged data is summarised as it is, never averaged twice. AT is taken at the test's stored AT time. Values the breath data can't produce are left alone. A test open with unsaved changes is skipped, and recalculated tests that were already sent to REDCap are marked for re-export.

This replaces summary values, including ones typed by hand. On the Exercise tab, Fill Missing from BxB is the gentler option for a single test.

4. Sort out what Systole couldn't decide

Anything set aside lands in the Records Review sub-tab (see Patient Records → Review). That tab only appears when something is waiting. Click a row to see the imported data next to the existing record, with the differences highlighted.

Flagged because… Your choices
The patient partly matches someone already in Systole Link to that patient, create a New Patient, or Skip
The test looks like one already in Systole Overwrite or Skip. On a verified test, Overwrite explains what will change and asks for your reason. (Merge is offered when you Link a patient-match item that turns out to be a duplicate.)

If the only difference is a name spelled two ways, Link asks which spelling is current. The other one is kept as a searchable alias. Discard All empties the whole queue after you confirm.

What will and won't happen

When Systole isn't sure, it asks rather than guesses. These tables cover the situations people ask about most.

Matching the patient

Situation What Systole does
MRN and name both match an existing patient Links the test to that patient automatically
MRN matches, name matches a saved alternate spelling Links automatically
MRN matches, but the name is different Sends it to Review; never links on MRN alone
MRN has extra or missing leading zeros Treats it as the same MRN
No MRN match, but name and date of birth match exactly one patient Links automatically
Name and date of birth match more than one patient Sends it to Review
Nothing matches Creates a new patient

Handling tests already in Systole

Situation What Systole does
Same file ID, or same patient and date of service Follows your Duplicate Handling choice
Duplicate test that belongs to a different patient Always sends it to Review, whatever you chose
You chose Overwrite and the existing test is verified Sends it to Review instead. Nothing changes until you choose Overwrite there, which asks for your reason and marks the test Amended
Merge Mode, and the existing test already has breath-by-breath data Follows your Duplicate Handling choice before replacing it. A verified test always goes to Review
Merge Mode, and no matching test is found Imports the file as a new test

Status and summary values

Situation What Systole does
You import as Verified Saves each test exactly as the file has it, with no summary calculated from its breath data, and records "Imported as finalized" in its history
A test has breath-by-breath data but no summary values Calculates Rest, AT and Peak using your site's averaging setting, unless the test is imported as Verified
Merge Mode adds breath data to a Preliminary or Historical test with Recalculate summaries on Recalculates its summary from the breaths; values the breath data can't produce are kept
Dry Run Runs the whole import with your settings, reports it file by file, then undoes it — nothing is saved
A Breeze file was already averaged in Breeze Keeps Breeze's summary and does not average it again

Stopping and errors

Situation What Systole does
You click Cancel partway through Stops after the current file. Tests already imported stay imported
One file is damaged or unreadable Skips that file, keeps going, and lists it under Error details
The folder has other file types in it Ignores them silently

Tips and quick answers


← Exporting to REDCap · Home