docs(sp24): RUNBOOK entry for cyclone reissue-claims
Adds a 'Reissue claims (SP24)' section under the Manual SFTP mode
heading, pointing the operator at the new CLI subcommand with a
worked example against the dzinesco July-8 billing layout.
Covers:
- the canonical command (full flag set, full output path)
- the 5-step workflow (parse / validate / serialize / write / zip)
- the exit-code contract (0/1/2)
- the IG-correctness guard's purpose + the regression story
- the 'no SFTP' boundary so the operator doesn't expect this
to push files to Gainwell (use submit-batch for that)
This commit is contained in:
@@ -233,6 +233,53 @@ sorted, with `._*` AppleDouble files skipped.
|
|||||||
- CLI exit 0 on completed runs (per-file failures counted, not bumped);
|
- CLI exit 0 on completed runs (per-file failures counted, not bumped);
|
||||||
2 on config-level failures (no clearhouse / stub mode / missing dir).
|
2 on config-level failures (no clearhouse / stub mode / missing dir).
|
||||||
|
|
||||||
|
### Reissue claims (SP24)
|
||||||
|
|
||||||
|
For rebuilding raw 837P files into one IG-correct single-claim X12
|
||||||
|
file per claim — e.g. after a 999 rejection that surfaced an
|
||||||
|
in-scope serializer defect — use `cyclone reissue-claims`. This is
|
||||||
|
the canonical offline-rebuild workflow; the pre-SP24 script
|
||||||
|
`scripts/reissue_claims.py` is a deprecation shim that prints a
|
||||||
|
warning at import time.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /home/tyler/dev/cyclone/backend
|
||||||
|
.venv/bin/python -m cyclone.cli reissue-claims \
|
||||||
|
--input-dir /home/tyler/dev/cyclone/july8billing \
|
||||||
|
--date 2026-07-08 \
|
||||||
|
--output-root /home/tyler/dev/cyclone/dev/rebills \
|
||||||
|
--pipeline initial \
|
||||||
|
--zip-output xxxclaims.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
What it does:
|
||||||
|
|
||||||
|
1. Parse every `*.x12` / `*.txt` / `*.edi` under `--input-dir`.
|
||||||
|
2. Validate each parsed claim; skip claims with hard errors.
|
||||||
|
3. Serialize each surviving claim via the IG-correct serializer
|
||||||
|
(no `HL*3` / `PAT` / `NM1*QC` when `SBR02 == "18"`).
|
||||||
|
4. Write one X12 per claim under
|
||||||
|
`--output-root/<date>/<pipeline>/` with HCPF-spec filenames.
|
||||||
|
5. Optionally zip the output to `--zip-output`.
|
||||||
|
|
||||||
|
**Exit codes:** 0 success (per-file warnings are non-fatal); 1
|
||||||
|
IG-correctness guard tripped (the serializer's `PATIENT_LOOP_DEFAULT_INCLUDED`
|
||||||
|
constant is `True`) or unexpected error; 2 parse / validation failure
|
||||||
|
on a file AND zero claims survived.
|
||||||
|
|
||||||
|
**IG-correctness guard.** On every invocation the CLI refuses to run
|
||||||
|
if the serializer's default has been flipped back to `True`. This is
|
||||||
|
the SP24 regression guard — flipping the constant would re-introduce
|
||||||
|
the 2026-07-08 Edifabric 999 rejection ("2000C HL must be absent
|
||||||
|
when 2000B SBR02 = '18'"). The guard's only job is to fail loud; it
|
||||||
|
runs once per invocation and reads one module-level constant.
|
||||||
|
|
||||||
|
**No SFTP.** `reissue-claims` is a pure local workflow — no DB write,
|
||||||
|
no SFTP upload, no Edifabric gate. To push the rebuilt files to
|
||||||
|
Gainwell, use `cyclone submit-batch --ingest-dir <the emitted dir>`
|
||||||
|
(see the "Submitting claims" section above) or move the zip manually
|
||||||
|
per the "Manual SFTP mode" posture.
|
||||||
|
|
||||||
### Note on per-file parse CLIs
|
### Note on per-file parse CLIs
|
||||||
|
|
||||||
`parse-837` and `parse-835` exist as CLIs but only emit JSON files to
|
`parse-837` and `parse-835` exist as CLIs but only emit JSON files to
|
||||||
|
|||||||
Reference in New Issue
Block a user