# Outputs CSV tables are the pipeline's audit spine. Each stage preserves existing columns and adds or normalizes the fields needed downstream. | Stage | Main output | Error/auxiliary output | Key additions | |---|---|---|---| | `parse` | `dicom_index.csv` | `dicom_index_errors.csv`; optional `dicom_tags_snapshot.ndjson` | IDs, `dicom_path`, selected DICOM tags | | `clean` | `_clean.csv` | — | volume grouping, normalized date/time, ordering and geometry fields | | `ingest` | `dicom_index_clean.csv` | parse artifacts | parsed and curated volume rows | | `convert` | `nifti_index.csv` | `conv_errors.csv` | `nifti_path` | | `segment` | input CSV in place, or `--csv_path_out` | `seg_errors.csv` and warning report when applicable | `mask_` paths | | `phase` | input CSV in place, or `--csv_path_out` | `phase_errors.csv` | `totalseg_*`, including `totalseg_phase` | | `radiomics` | `_radiomics.csv` | `radiomics_errors.csv` | ROI-prefixed PyRadiomics features | Defaults are relative to the input CSV or selected output directory. Explicit paths are recommended in scheduled pipelines. ## Identity and traceability The core identifiers are `patient_key`, `study_id`, and `series_id`. Parse also retains `_patient_key_raw` when standardization is applied. `dicom_path` may serialize multiple files for a volume or contain archive-aware locations; consumers should not assume it is a single ordinary filesystem path. Long-running stages use an internal `_source_idx` for stable resume and merge behavior. It is removed from finalized user-facing tables. ## Image and mask paths `nifti_path` identifies the converted CT image. Segmentation outputs are stored in columns beginning with `mask_`; their exact set follows the manifest tasks. Paths may be absolute depending on the supplied output directory, so moving a dataset can invalidate a table. If portability matters, move artifacts and rewrite paths as one controlled operation. ## Error tables Error CSVs contain the failed source row plus an error message. A command can complete while some rows fail, making these tables part of the expected output rather than disposable logs. Check all of the following before downstream use: 1. expected input and output row counts; 2. missing `nifti_path` or `mask_*` values; 3. command-specific error and warning tables; 4. whether filtering intentionally reduced radiomics rows. Checkpoint files and JSON state may appear beside the configured main/error outputs during resumable runs. They are implementation artifacts, not cohort tables, and should not be passed to the next stage.