feat(sp7): migration 0005 — service_line_payments + line_reconciliations + FKs
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
-- version: 5
|
||||||
|
-- SP7: per-service-line adjustment audit
|
||||||
|
-- See spec: docs/superpowers/specs/2026-06-20-cyclone-line-reconciliation-design.md
|
||||||
|
|
||||||
|
CREATE TABLE service_line_payments (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
remittance_id VARCHAR(64) NOT NULL REFERENCES remittances(id) ON DELETE CASCADE,
|
||||||
|
line_number INTEGER NOT NULL,
|
||||||
|
procedure_qualifier VARCHAR(4) NOT NULL,
|
||||||
|
procedure_code VARCHAR(16) NOT NULL,
|
||||||
|
modifiers_json TEXT NOT NULL DEFAULT '[]',
|
||||||
|
charge NUMERIC(12, 2) NOT NULL,
|
||||||
|
payment NUMERIC(12, 2) NOT NULL,
|
||||||
|
units NUMERIC(10, 2),
|
||||||
|
unit_type VARCHAR(8),
|
||||||
|
service_date DATE,
|
||||||
|
ref_benefit_plan VARCHAR(64),
|
||||||
|
superseded_by_id INTEGER REFERENCES service_line_payments(id) ON DELETE SET NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX ix_service_line_payments_remittance_id ON service_line_payments(remittance_id);
|
||||||
|
CREATE INDEX ix_service_line_payments_procedure_code_date ON service_line_payments(procedure_code, service_date);
|
||||||
|
|
||||||
|
CREATE TABLE line_reconciliations (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
claim_id VARCHAR(64) NOT NULL REFERENCES claims(id) ON DELETE CASCADE,
|
||||||
|
claim_service_line_id INTEGER REFERENCES service_lines(id) ON DELETE SET NULL,
|
||||||
|
service_line_payment_id INTEGER REFERENCES service_line_payments(id) ON DELETE SET NULL,
|
||||||
|
status VARCHAR(16) NOT NULL,
|
||||||
|
match_score INTEGER,
|
||||||
|
reconciled_at TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX ix_line_reconciliations_claim_id ON line_reconciliations(claim_id);
|
||||||
|
CREATE INDEX ix_line_reconciliations_claim_service_line_id ON line_reconciliations(claim_service_line_id);
|
||||||
|
CREATE INDEX ix_line_reconciliations_service_line_payment_id ON line_reconciliations(service_line_payment_id);
|
||||||
|
|
||||||
|
ALTER TABLE cas_adjustments ADD COLUMN service_line_payment_id INTEGER REFERENCES service_line_payments(id) ON DELETE SET NULL;
|
||||||
|
|
||||||
|
ALTER TABLE remittances ADD COLUMN claim_level_adjustment_amount NUMERIC(12, 2) NOT NULL DEFAULT 0;
|
||||||
|
|
||||||
|
CREATE INDEX ix_cas_adjustments_service_line_payment_id ON cas_adjustments(service_line_payment_id);
|
||||||
Reference in New Issue
Block a user