feat(sp37): add batches.transaction_set_control_number column

Migration 0020 adds the column additively (nullable, no default) and
backfills from raw_result_json.envelope.transaction_set_control_number
for any existing batch rows that already carry it. Required for the
SP37 join-key update so 999 acks can resolve by ST02 (the source 837's
transaction set control number) instead of just ISA13.
This commit is contained in:
sp37 bot
2026-07-07 10:13:00 -06:00
parent 698f8660bf
commit 0067ecc5da
3 changed files with 204 additions and 3 deletions
+4 -3
View File
@@ -126,14 +126,15 @@ def test_migration_latest_idempotent_on_fresh_db(tmp_path: Path) -> None:
SP28 bumped it to 18 with the claim_acks join table.
SP32 bumped it to 19 with rendering_provider_npi +
service_provider_npi on claims and remittances.
SP37 bumped it to 20 with batch transaction_set_control_number.
"""
engine = _fresh_engine(tmp_path)
db_migrate.run(engine)
v_after_first = _user_version(engine)
assert v_after_first == 19, f"expected head=19, got {v_after_first}"
assert v_after_first == 20, f"expected head=20, got {v_after_first}"
db_migrate.run(engine)
assert _user_version(engine) == 19, "second run should not bump version"
assert _user_version(engine) == 20, "second run should not bump version"
def test_drop_claims_unique_constraint_migration(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
@@ -159,7 +160,7 @@ def test_drop_claims_unique_constraint_migration(tmp_path: Path, monkeypatch: py
engine = _fresh_engine(tmp_path)
db_migrate.run(engine)
assert _user_version(engine) == 19, f"expected head=19, got {_user_version(engine)}"
assert _user_version(engine) == 20, f"expected head=20, got {_user_version(engine)}"
# Two claims in one batch with the same patient_control_number
# must be insertable. If 0015's table recreation re-introduced a