Portal Delete run (Super Admin), lab codes #3/#4, Z23 pointer #45, T1017 #46, payer note, login security-image wait
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a8af44e673
commit
fafa5285eb
21 files changed
+1509
-63
No files matched your search
+75
-19
@@ -104,6 +104,26 @@ Fail / 0 Review** (the 50-claim sheet; same as 26/10 17:40). 17:30 with
|
||||
`Mecor Ready 2 - 10262026.xlsx` (all claims, QUIET_BOXES, ECW_KEEP_OPEN=0)
|
||||
— login 98 s, **50/50, 30 Pass / 15 Fail / 5 Review**, the same as that
|
||||
file on 26/10. No bot error in either.
|
||||
**Client call (2026-10-27, MoM mailed to the team):** open conditions
|
||||
discussed with Madan for clarification; the 50-claim results file is in
|
||||
the shared production folder for Madan to review and give feedback; Madan
|
||||
has a Portal login (daily runs, Pass / Fail claims, comments; changes
|
||||
nothing). eCW data is the client's: we never update anything in eCW, not
|
||||
even to undo the bot's own earlier box changes (operator, 2026-10-28).
|
||||
**2026-10-28 runs:** 17:59 login failed (a late security image page, the
|
||||
password box stayed disabled; fixed `d1aa6da`); 18:00 / 18:03 / 18:04 runs
|
||||
started from VS Code's debugger (F5) — a Stop / restart there kills the run
|
||||
with no log line (18:04 died at claim 29 of 50, 28 saved). **19:28 — first
|
||||
run on the LIVE Medcor Ready queue** (operator: "move the download part
|
||||
live"; `.env` `TEST_CLAIM_IDS_FILE` blanked, the old line kept as a
|
||||
comment; `SHOW_EACH_CLAIM=0`, `QUIET_BOXES=1`, `MSGBOX_TIMEOUT_SECONDS=10`;
|
||||
backup of the earlier `.env` in the session's temp folder): report
|
||||
downloaded, 216 claims in the queue, the first 50 (`CLAIM_PROCESS_LIMIT`)
|
||||
read: **24 Pass / 25 Fail / 1 Review**, exit 0, ~32 min; login 753 s (the
|
||||
security image page waited for a person; 2FA mail 48 s). lab_codes,
|
||||
vaccine_z23_pointer and t1017_non_billable fired on live claims. Still
|
||||
VERIFY: nothing saved. Unattended runs still need the security image
|
||||
Continue clicked by a person (offered: the bot clicks it — not decided).
|
||||
|
||||
**Runs page (2026-10-22, Stage 1 of EEWA-31..33, `751a177`):**
|
||||
http://127.0.0.1:8000/runs (header link "Runs"). Every Run writes
|
||||
@@ -137,6 +157,15 @@ adds / changes Admins and Viewers — never deletes; nobody changes a Super
|
||||
Admin from the Portal, only the PC tool makes one), **Admin** (everything:
|
||||
Start / Stop, Sign-ins page; adds / changes Viewers only), **Viewer**
|
||||
(Dashboard, Claim status, Runs; changes nothing, no Users or Sign-ins).
|
||||
**Delete run (`4cc27a5`, 2026-10-28, Super Admin only):** a day's page lists that
|
||||
day's runs (time, claims, started by) with a Delete run button, shown to the
|
||||
Super Admin only; `POST /admin/runs/delete` checks the role and the page
|
||||
token (Admin / Viewer = 403). A confirm box first; it deletes that run's
|
||||
`CV_ChargeSummary` rows (`WHERE run_at = ?`), never eCW, never the `Logs\`
|
||||
files, and records "run <date time> · run deleted · by" in the Sign-in
|
||||
history. A SQL login without DELETE gets "No permission to delete runs"
|
||||
(SQLSTATE 42000) — the Dokploy Portal's `cv_portal` needs
|
||||
`GRANT DELETE ON dbo.CV_ChargeSummary TO cv_portal` (§10).
|
||||
Operator is gone (folded into Admin). The live table was moved 2026-10-27
|
||||
by the operator in SSMS (the bot's SQL login cannot ALTER the table): the
|
||||
one user is Super Admin; the CHECK allows only the three roles.
|
||||
@@ -213,8 +242,8 @@ Get-ChildItem tests\test_*.py | ForEach-Object { "$($_.Name): $((python $_.FullN
|
||||
this machine, with ODBC Driver 18 for SQL Server.
|
||||
- Tests run offline against fake HTML pages in `tests/fixtures/` and fake DB
|
||||
connections; they never touch eCW or SQL Server (`test_cdp_browser.py`
|
||||
starts a local Chromium on a debug port). As of 2026-10-27: 71 test
|
||||
files, **1239 tests** (full run 2026-10-27 after `a89f689`: 1239/1239) (earlier flaky, each
|
||||
starts a local Chromium on a debug port). As of 2026-10-28: 75 test
|
||||
files, **1286 tests** (full run 2026-10-28 with Z23 and T1017: 1286/1286) (earlier flaky, each
|
||||
failed once and passed on rerun: test_verify_no_live_writes,
|
||||
depression_dx_pointer, progress_note_wait — watch them) (about 5 minutes for all of them).
|
||||
|
||||
@@ -315,15 +344,18 @@ Registry order (`conditions/__init__.py`) — order matters:
|
||||
| 7 | `dental_dummy_codes` | #48 | DPIMP or **DFIMP** (any case; DFIMP "FINAL IMPRESSION" is the code the live Dental grid carries, 2026-10-20). **Dental payer** (dashboard "Dental - Commercial" or "Dental - CHP+/DentaQuest") → uncheck + fee 0. **Any other payer**, unmapped or none read → nothing changed, claim **Review** with a Comments note naming the payer group ("DPIMP on a Medicaid payer claim — not changed ...") (operator, 2026-10-13). Separate from #8 |
|
||||
| 8 | `dental_payer_check` | #13 | A **billed Dental code** ("D" + 4 digits; DCONS / Dscprit / DPIMP / DFIMP are not; billed = `lines.ends_billed`) and **no insurance row** (primary, secondary ...) is DentaQuest, CHP+ DentaQuest or "Delta Dental …" (by name, case and spaces ignored; Aetna Dental PPO, Cigna Dental, MetLife are NOT allowed) → **Claim Status set to Patient** (`PAT`, `claim_form.set_claim_status`, `selectors.claim_form.SEL_CLAIM_STATUS` — never the `#status` claimRP field), no program check (operator, 2026-10-21, EEWA-27). Only where the run may write (`writes_allowed`: LIVE-WRITE, never the Dental screen) — otherwise Review "set it to Patient by hand". No payer read → Review, nothing changed. Comment names codes and payer(s) |
|
||||
| 9 | `medicaid_uncheck_cpts` | #43, #44 | **Medicaid** payer (rule_group "Medicaid" only — not RAE, CHP+, unmapped or blank; RAE ruled out by the operator 2026-10-14) → 15851, 15852, 73521 uncheck + fee 0; no other line touched (operator, 2026-10-13) |
|
||||
| 10 | `medicare_billing_screening` | #14 | Medicare payer (rule_group; Medicare Advantage plans are Commercial since 2026-10-21) → G8510/G8431 uncheck + fee 0; no other line touched. No other billed line (screening only) → also Review "provider clarification needed" (operator, 2026-10-07) |
|
||||
| 11 | `medicare_vaccine_a6` | #19 | **Medicare** payer (rule_group) with a billed **G0008 or G0009** (`lines.ends_billed`) → condition code **A6**: UB form ON SCREEN only — A6 already in FL 18-28 → nothing; else typed into the first empty box (`uBClaimCondtnCode1..11`) and read back from the box and its Angular model; all 11 full → Review "add A6 by hand"; typed but not taken → changed + Review. HCFA / Dental → Review "check A6 by hand" — **not to be mapped**: Medicare is billed on UB (#2), so such a claim is on the wrong form (operator, 2026-10-21). **#19 complete**; live test still needs a Medicare UB claim with G0008 / G0009. Only those two codes trigger it — not #18's vaccine list; the bot does not add G0008/G0009 (operator, 2026-10-16) |
|
||||
| 12 | `medicare_wellness_history` | #27, #28, #29 | **Check only, never changes the claim** (operator, 2026-10-20). **Medicare** payer with a billed **G0402** (IPPE, once per lifetime), **G0438** (first AWV, once in 3 years) or **G0439** (subsequent AWV, once a year): reads the patient's earlier claims in **Account Inquiry** (claim form side menu → Patient Inquiry Detail → Show CPT Payments, every page; this claim left out; closed with the X, the tick undone). Billed inside the window, counted either way from this claim's service date (exactly 3 years / 12 months = outside) → **Review**, Comments "G0438 already billed on MM/DD/YYYY (claim N) — once in 3 years". Account Inquiry not read → Review "check … history by hand". `pages/account_inquiry.py`, `selectors/account_inquiry.py`. Since `ac25f83` (2026-10-23) it also leaves its verdict on the claim's data (`_wellness_history`: read or not, the repeats found) for #25 — still nothing changed in eCW |
|
||||
| 13 | `medicaid_pregnancy_th` | #23 | **Medicaid** payer (rule_group "Medicaid" only, NOT RAE) with a **pregnancy-related ICD** (chapter O, Z33, Z34, Z36, Z3A — **Z32.00/.01/.02 pregnancy test never counts**) → **TH** on the first billed E&M line (99202-99499; none → first billed line), **in M1, overwriting what M1 held** (comment says "replacing 25"; never M2-M4); TH already in any box → nothing; no M1 box → Review "add TH by hand". A Medicaid telehealth pregnancy visit: **#21 writes TH instead of GT** (RAE keeps GT). Dental → Review. `9b87b4d`, not run live yet (2026-10-20, EEWA-30) |
|
||||
| 14 | `bh_h_code_modifier` | #12 | H code (H + 4 digits). **BH payer** (name starts with "BH") with any modifier → M1–M4 cleared on that line only; telehealth note → not fired (GT stays); note not read → Review, nothing changed (operator, 2026-10-07). **Any other payer** → billed H code line unchecked + fee 0.00, telehealth or not, modifier or not; blank payer → not fired (operator, 2026-10-12). Comment worded from what was done |
|
||||
| 15 | `vaccine_admin_codes` | #18 | Vaccine without admin code → add 90460(+90461) age ≤18, 90471(+90472) >18; units 1; all payers except Medicare. **Vaccine = the client's 19-code list only** (90633, 90648, 90651, 90656, 90657, 90660, 90680, 90687, 90698, 90707, 90710, 90713, 90716, 90732, 90734, 90744, 90746, 91321, 91322), by code; **admin = 90460/90461/90471/90472 only** (operator, 2026-10-13; no hover text, no 90476-90759 range). Unclassified payer / no payer / no age → Review; an admin code that could not be added → Review ("NOT added — add by hand") |
|
||||
| 16 | `injection_admin_code` | #20 | Injection code from the client's **41-code list** (J0561 ... J8499, as given — IUD, inhalation and oral J-codes included) billed without **96372** → add 96372 ×1, Units 1, all payers except Medicare. Only 96372 counts as admin billed — also when it is unchecked with a fee (priced_line_check checks it at the end, so no second 96372; review 2026-10-14). J2001 / J2930 never count (#5 unchecks them). Unclassified / no payer → Review; not added → Review; Dental → Review (operator, 2026-10-13) |
|
||||
| 17 | `medicare_pps_code` | #25 | **PPS Payer** (exact eCW names: Medicare, Medicare-Novitas, HCFA Medicare, HCFA Medicare Novitas, Humana Medicare, Devoted MCR UB, Cigna Healthspring, Cigna Health Spring/ Bravo — the two Cigna plans count although Commercial elsewhere) on a **UB** claim: billed (`lines.ends_billed`) **Qualifying Codes** → the **PPS Code** on the client's Medicare G code crosswalk (`CROSSWALK`): G0466 new office, G0466H new home, G0467 established office, G0467NH nursing home, G0467H established home, G0468 IPPE / AWV (G0402 / G0438 / G0439 win over an E&M). Right PPS Code billed → Pass. Missing → **added** via the Fee Schedule picker, Units 1 (LIVE-WRITE; Fail "CPT Code Missing (PPS code G0467 added (99213))"); VERIFY → Review "G0467 not added in VERIFY — add it by hand (99213)". **Review, nothing changed:** codes only on both the G0466 and G0467 lists ("new or established?"); conflicting visit codes; a different PPS Code billed (also beside the right one); mental health 90791 … 90845 ("G0469 or G0470?" until the client rules, EEWA-37; either one billed → Pass); a variant the picker cannot find; HCFA with a Qualifying Code; G0468 when #27–#29 found a repeat, could not read the history, or never checks it (the Cigna plans, Commercial there — operator, 2026-10-23). Dental → skipped (operator). `ac25f83` |
|
||||
| 18 | `priced_line_check` | common rule | **LAST.** Unchecked line with Billed Fee > 0 → check |
|
||||
| 10 | `lab_codes` | #3, #4 | **Lab code** = 5 digits starting with 8 (36416 is not one, never touched). By the **primary payer** (EEWA-38, operator 2026-10-28): **Medicare payers** (#25's exact eCW names, `medicare_pps_code.is_pps_payer`) → every lab line unchecked + fee 0; **Cigna Salud Employee** → any lab code; **every other payer**, blank included → only the 13 in-house codes (82948, 81025, 85018, 82270, 82274, 87806, 85610, 87880, 80305, 81001, 81003, 87210, 87636), any other lab line unchecked + fee 0. Code only, not the fee. Not on Dental claims. Comment: "Lab code not billed to Medicare (…)" / "Lab code not in the in-house list (…)" |
|
||||
| 11 | `t1017_non_billable` | #46 | **T1017** by the primary payer (EEWA-40, operator 2026-10-28): a **Medicare payer** (#25's exact eCW names) or **Medicaid** (dashboard "Medicaid" group only, as #43/#44 — not RAE, not CHP+) → unchecked + fee 0, comment "T1017 not billable (Medicaid) - unchecked, fee 0"; **any other payer**, blank or unmapped included → nothing changed, **Review** "T1017 on <payer> - check by hand". Not on Dental claims |
|
||||
| 12 | `medicare_billing_screening` | #14 | Medicare payer (rule_group; Medicare Advantage plans are Commercial since 2026-10-21) → G8510/G8431 uncheck + fee 0; no other line touched. No other billed line (screening only) → also Review "provider clarification needed" (operator, 2026-10-07) |
|
||||
| 13 | `medicare_vaccine_a6` | #19 | **Medicare** payer (rule_group) with a billed **G0008 or G0009** (`lines.ends_billed`) → condition code **A6**: UB form ON SCREEN only — A6 already in FL 18-28 → nothing; else typed into the first empty box (`uBClaimCondtnCode1..11`) and read back from the box and its Angular model; all 11 full → Review "add A6 by hand"; typed but not taken → changed + Review. HCFA / Dental → Review "check A6 by hand" — **not to be mapped**: Medicare is billed on UB (#2), so such a claim is on the wrong form (operator, 2026-10-21). **#19 complete**; live test still needs a Medicare UB claim with G0008 / G0009. Only those two codes trigger it — not #18's vaccine list; the bot does not add G0008/G0009 (operator, 2026-10-16) |
|
||||
| 14 | `medicare_wellness_history` | #27, #28, #29 | **Check only, never changes the claim** (operator, 2026-10-20). **Medicare** payer with a billed **G0402** (IPPE, once per lifetime), **G0438** (first AWV, once in 3 years) or **G0439** (subsequent AWV, once a year): reads the patient's earlier claims in **Account Inquiry** (claim form side menu → Patient Inquiry Detail → Show CPT Payments, every page; this claim left out; closed with the X, the tick undone). Billed inside the window, counted either way from this claim's service date (exactly 3 years / 12 months = outside) → **Review**, Comments "G0438 already billed on MM/DD/YYYY (claim N) — once in 3 years". Account Inquiry not read → Review "check … history by hand". `pages/account_inquiry.py`, `selectors/account_inquiry.py`. Since `ac25f83` (2026-10-23) it also leaves its verdict on the claim's data (`_wellness_history`: read or not, the repeats found) for #25 — still nothing changed in eCW |
|
||||
| 15 | `medicaid_pregnancy_th` | #23 | **Medicaid** payer (rule_group "Medicaid" only, NOT RAE) with a **pregnancy-related ICD** (chapter O, Z33, Z34, Z36, Z3A — **Z32.00/.01/.02 pregnancy test never counts**) → **TH** on the first billed E&M line (99202-99499; none → first billed line), **in M1, overwriting what M1 held** (comment says "replacing 25"; never M2-M4); TH already in any box → nothing; no M1 box → Review "add TH by hand". A Medicaid telehealth pregnancy visit: **#21 writes TH instead of GT** (RAE keeps GT). Dental → Review. `9b87b4d`, not run live yet (2026-10-20, EEWA-30) |
|
||||
| 16 | `bh_h_code_modifier` | #12 | H code (H + 4 digits). **BH payer** (name starts with "BH") with any modifier → M1–M4 cleared on that line only; telehealth note → not fired (GT stays); note not read → Review, nothing changed (operator, 2026-10-07). **Any other payer** → billed H code line unchecked + fee 0.00, telehealth or not, modifier or not; blank payer → not fired (operator, 2026-10-12). Comment worded from what was done |
|
||||
| 17 | `vaccine_z23_pointer` | #45 | A line with one of the client's 19 vaccine codes (#18's list, not the admin codes) must carry **Z23**'s ICD pointer (its number in the ICD list) in ICD1–4 (EEWA-39, operator 2026-10-28). Missing → the first empty slot, the line's other pointers kept; already there → nothing; no other line touched. No Z23 in the ICD list → Review "Z23 not on the claim — add it by hand"; four slots full → Review "no free pointer slot". All payers, Medicare too; not Dental. Comment "Z23 pointer added to the vaccine line (…)" |
|
||||
| 18 | `vaccine_admin_codes` | #18 | Vaccine without admin code → add 90460(+90461) age ≤18, 90471(+90472) >18; units 1; all payers except Medicare. **Vaccine = the client's 19-code list only** (90633, 90648, 90651, 90656, 90657, 90660, 90680, 90687, 90698, 90707, 90710, 90713, 90716, 90732, 90734, 90744, 90746, 91321, 91322), by code; **admin = 90460/90461/90471/90472 only** (operator, 2026-10-13; no hover text, no 90476-90759 range). Unclassified payer / no payer / no age → Review; an admin code that could not be added → Review ("NOT added — add by hand") |
|
||||
| 19 | `injection_admin_code` | #20 | Injection code from the client's **41-code list** (J0561 ... J8499, as given — IUD, inhalation and oral J-codes included) billed without **96372** → add 96372 ×1, Units 1, all payers except Medicare. Only 96372 counts as admin billed — also when it is unchecked with a fee (priced_line_check checks it at the end, so no second 96372; review 2026-10-14). J2001 / J2930 never count (#5 unchecks them). Unclassified / no payer → Review; not added → Review; Dental → Review (operator, 2026-10-13) |
|
||||
| 20 | `medicare_pps_code` | #25 | **PPS Payer** (exact eCW names: Medicare, Medicare-Novitas, HCFA Medicare, HCFA Medicare Novitas, Humana Medicare, Devoted MCR UB, Cigna Healthspring, Cigna Health Spring/ Bravo — the two Cigna plans count although Commercial elsewhere) on a **UB** claim: billed (`lines.ends_billed`) **Qualifying Codes** → the **PPS Code** on the client's Medicare G code crosswalk (`CROSSWALK`): G0466 new office, G0466H new home, G0467 established office, G0467NH nursing home, G0467H established home, G0468 IPPE / AWV (G0402 / G0438 / G0439 win over an E&M). Right PPS Code billed → Pass. Missing → **added** via the Fee Schedule picker, Units 1 (LIVE-WRITE; Fail "CPT Code Missing (PPS code G0467 added (99213))"); VERIFY → Review "G0467 not added in VERIFY — add it by hand (99213)". **Review, nothing changed:** codes only on both the G0466 and G0467 lists ("new or established?"); conflicting visit codes; a different PPS Code billed (also beside the right one); mental health 90791 … 90845 ("G0469 or G0470?" until the client rules, EEWA-37; either one billed → Pass); a variant the picker cannot find; HCFA with a Qualifying Code; G0468 when #27–#29 found a repeat, could not read the history, or never checks it (the Cigna plans, Commercial there — operator, 2026-10-23). Dental → skipped (operator). `ac25f83` |
|
||||
| 21 | `priced_line_check` | common rule | **LAST.** Unchecked line with Billed Fee > 0 → check |
|
||||
|
||||
**Every claim runs every condition above** — each one's `detect()` decides
|
||||
from the claim's codes and payer, so a claim gets every "All payers"
|
||||
@@ -427,6 +459,12 @@ noted in Comments (Pass); Billing Notes unreadable or sliding fee UNKNOWN →
|
||||
"Corrections pending (not saved)".
|
||||
- **Pass**: "Clean claims (…)", Ready to Submit.
|
||||
- A claim the run never reached or did not find stays blank in S–X.
|
||||
- **Payer: sheet vs eCW (`97d4d74`, 2026-10-28, operator):** every condition goes by
|
||||
eCW's payer (the claim form's first insurance row), never the report's
|
||||
PAYER column. When the two differ (case and spacing aside, neither blank)
|
||||
the Comments end with "Payer: sheet says X, eCW says Y - eCW used" — a
|
||||
note, the Category is not changed. The PAYER / Group Name columns stay
|
||||
the report's.
|
||||
- Same-day re-run keeps the old file as `…__HHMMSS.xlsx`. If the old file is
|
||||
open in Excel (rename refused), the old file is left alone and the NEW sheet
|
||||
is saved as `…__HHMMSS.xlsx` instead (D10, 2026-10-05); the `[SUMMARY]` log
|
||||
@@ -650,7 +688,12 @@ the Portal (restarted 2026-10-26, [portal] terminal tab).
|
||||
|
||||
History: `git log --oneline`.
|
||||
|
||||
Last code commits: `a89f689` (2026-10-27, login retry after a 2FA timeout
|
||||
Last code commits: `0c2fca8` (2026-10-28, vaccine_z23_pointer #45 /
|
||||
t1017_non_billable #46 — §4), `d1aa6da` (2026-10-28, login waits for a late
|
||||
security image page — §10), `97d4d74` (2026-10-28, Charge Summary notes a payer the
|
||||
sheet and eCW disagree on — §5), `aaab1ff` (2026-10-28, lab_codes #3/#4,
|
||||
EEWA-38 — §4), `4cc27a5` (2026-10-28, Portal Delete run, Super Admin only
|
||||
— §2), `a89f689` (2026-10-27, login retry after a 2FA timeout
|
||||
waits for the closed Chrome and opens a new one — §10), `1da9e7c`
|
||||
(2026-10-27, Portal sign-in with the Ecare
|
||||
office login — §2), `cc3a01a` (2026-10-27, Portal container on India time —
|
||||
@@ -738,7 +781,7 @@ Status lives in Jira; the open work is in §6 and §10.
|
||||
| EEWA-8 | Medicare Telehealth | Done |
|
||||
| EEWA-10 | j2930_j2001_update | Done |
|
||||
| EEWA-11 | dummy_codes | Done (2026-10-12 comment corrects the old BHT3/BHT4 one: DCONS/Dscprit only) |
|
||||
| EEWA-12 | vaccine_admin_codes (2026-10-13 comment: client's 19 vaccine codes, 4 admin codes) | In Progress |
|
||||
| EEWA-12 | vaccine_admin_codes (2026-10-13 comment: client's 19 vaccine codes, 4 admin codes) | Done (closed 2026-10-28 by the operator) |
|
||||
| EEWA-13 | sliding_fee | Done |
|
||||
| EEWA-14 | dental_high_risk (incl. the 79-character rule) | Done |
|
||||
| EEWA-15 | bh_h_code_modifier (#12 H codes) | Done (closed 2026-10-20) |
|
||||
@@ -758,12 +801,15 @@ Status lives in Jira; the open work is in §6 and §10.
|
||||
| EEWA-30 | medicaid_pregnancy_th (#23: TH modifier on a pregnancy visit on Medicaid) | To Do |
|
||||
| EEWA-29 | medicare_wellness_history (#27/#28/#29: G0402 / G0438 / G0439 billed too often → Review) | To Do |
|
||||
| EEWA-31 | run_events + Runs page (Stage 1) | Done (closed 2026-10-26; built `751a177`, seen on every live run since 2026-10-22) |
|
||||
| EEWA-32 | portal sign-in (Stage 2: Portal Users, Roles, Started By / Stopped By); blocked by EEWA-31 | In Progress (built 2026-10-22, `c230a8e`; live Sign-in and a Portal Start with Started By 2026-10-22; roles Super Admin / Admin / Viewer `f99dc17` 2026-10-27; Viewer not yet tried) |
|
||||
| EEWA-32 | portal sign-in (Stage 2: Portal Users, Roles, Started By / Stopped By); blocked by EEWA-31 | Done (closed 2026-10-28 by the operator; built 2026-10-22, `c230a8e`; live Sign-in and a Portal Start with Started By 2026-10-22; roles Super Admin / Admin / Viewer `f99dc17` 2026-10-27; Viewer not yet tried) |
|
||||
| EEWA-33 | portal run alerts (Stage 3: Run Error banner, `started_by` column); blocked by EEWA-32 | Done (closed 2026-10-26; built `ecbbf3a`; banner seen after the 19:42 run, `started_by` on the Portal runs' rows) |
|
||||
| EEWA-34 | medicare_pps_code (#25) — spec | To Do (parent of the work below) |
|
||||
| EEWA-35 | #25 PPS Code check — Review when missing | In Progress (built 2026-10-23, `ac25f83`; not run live) |
|
||||
| EEWA-35 | #25 PPS Code check — Review when missing | Done (closed 2026-10-28 by the operator; built 2026-10-23, `ac25f83`; not run live) |
|
||||
| EEWA-36 | #25 add the PPS Code in LIVE-WRITE; blocked by EEWA-35 | In Progress (built 2026-10-23, `ac25f83`; not run live) |
|
||||
| EEWA-37 | #25 mental health G0469 / G0470 — after the client's ruling | To Do (waiting on the client) |
|
||||
| EEWA-38 | lab_codes (#3, #4: Medicare payers no lab code, Cigna Salud any, others the 13 in-house) | In Progress (built 2026-10-28, `aaab1ff`; fired on live claims 2026-10-28 19:28) |
|
||||
| EEWA-39 | vaccine_z23_pointer (#45: Z23 pointer on every vaccine line) | In Progress (built 2026-10-28, `0c2fca8`; fired on live claims 2026-10-28 19:28) |
|
||||
| EEWA-40 | t1017_non_billable (#46: T1017 non-billable on Medicare / Medicaid, Review elsewhere) | In Progress (built 2026-10-28, `0c2fca8`; fired on a live claim 2026-10-28 19:28) |
|
||||
|
||||
EEWA-15 to EEWA-18 were created on 2026-10-12 for work already built and
|
||||
moved to In Progress on 2026-10-13; EEWA-19, EEWA-20 and EEWA-21 were
|
||||
@@ -809,7 +855,14 @@ test claim ids — new posts must not (§7).
|
||||
Dokploy 2026-10-27, `cc3a01a`, Ecare network only).** URL
|
||||
`http://10.200.0.15:8085` (Dokploy project Ecw_ChargeValidation →
|
||||
production → app **Portal**; port 8085 → 8000). The operator signed in
|
||||
there as Super Admin; Dashboard, Users, Sign-ins work. How it got there:
|
||||
there as Super Admin; Dashboard, Users, Sign-ins work. **Domain
|
||||
(2026-10-29): `https://ecw.app.ecareindia.com`** (DNS → 10.200.0.15, so
|
||||
Ecare network / VPN only; Let's Encrypt cert to 2027-01-27). Its 502
|
||||
was the domain's Container Port 3000 (must be **8000**); then 400
|
||||
"Invalid host header" until `PORTAL_URLS=http://10.200.0.15:8085,
|
||||
https://ecw.app.ecareindia.com` was saved AND the app reloaded (the
|
||||
operator's Reload had not run — the container still said "Up 44
|
||||
hours"; check that on the Logs tab). How it got there:
|
||||
- **Source = Drop (zip upload), not Git:** Dokploy cannot clone from
|
||||
Gitea (`server certificate verification failed`, Traefik's self-signed
|
||||
cert); Gitea has no internal http port and no SSH; the operator cannot
|
||||
@@ -823,7 +876,9 @@ test claim ids — new posts must not (§7).
|
||||
10.50.2.131), instance TCP port 58468 (dynamic — a SQL restart may move
|
||||
it; set a static port later). SQL login **`cv_portal`** (made in SSMS
|
||||
2026-10-27: db_datareader + INSERT/UPDATE `CV_PortalUser`, INSERT
|
||||
`CV_PortalSignIn`); its password only in Dokploy's env
|
||||
`CV_PortalSignIn`; Delete run also needs `GRANT DELETE ON
|
||||
dbo.CV_ChargeSummary TO cv_portal` — not run yet, and no zip with
|
||||
Delete run deployed yet); its password only in Dokploy's env
|
||||
(`RESULTS_DB_CONN`), never here or in chat. The Portal works only while
|
||||
that PC is on.
|
||||
- **Fixes found live:** `69c51d8` the image needs `libgssapi-krb5-2` by
|
||||
@@ -942,8 +997,9 @@ test claim ids — new posts must not (§7).
|
||||
`addClaimFSCPTCode('save')`) saves too. Typed edits (POS, modifiers,
|
||||
fees) are not kept. Earlier runs changed boxes on 9 claims
|
||||
(2026-09-17..10-15, mostly G8510 checked by the old depression
|
||||
re-include step); the list is in the logs (no claim ids here) and the
|
||||
operator restores them by hand from the audit log.
|
||||
re-include step); the list is in the logs (no claim ids here). Putting
|
||||
them back is the client's call, not ours (operator, 2026-10-28): we do
|
||||
not update anything in eCW, not even to undo the bot's own change.
|
||||
Fix (option C): in VERIFY `claim_form._set_bill_box` sets the box by JS
|
||||
(no click event) and `add_cpt_row` adds nothing; vaccine admin (every
|
||||
code it would add) / 96372 / G2025 become Review "add by hand"; #22
|
||||
|
||||
Reference in new issue
Block a user