feat: add CCA claim submission with Selenium automation

- Add CCA claim submit Selenium worker (login, fill form, attach docs, submit, capture dashboard PDF)
- Add CCA fee schedule (procedureCodesMH.json renamed, procedureCodesCCA.json added with D6010)
- Add backend route /api/claims/cca-claim, processor, and Selenium client
- Wire CCA claim handler in claims-page with job tracking and PDF preview popup
- Add insurance type dropdown in claim form (same options as eligibility page)
- Auto-populate insurance type from patient.insuranceProvider in claim form and patient edit form
- Map fee schedule by insurance type in Map Price button and combo buttons
- Fix CCA login speed (remove fixed sleeps, use readyState check)
- Fix CCA claim DOB format bug (was sending MM-DD-YYYY, now sends YYYY-MM-DD)
- Fix npiProviderId not saved for CCA claims
- Change Add Service → CCA Claim button (blue), MH → MH Claim

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gitead
2026-05-22 13:34:03 -04:00
parent 58b2e4af93
commit 0e664e4813
21 changed files with 4768 additions and 77 deletions

View File

@@ -131,10 +131,10 @@ class AutomationCCAEligibilityCheck:
try:
WebDriverWait(self.driver, 10).until(
lambda d: "sciondental.com" in d.current_url
and d.execute_script("return document.readyState") == "complete"
)
except TimeoutException:
pass
time.sleep(2)
current_url = self.driver.current_url
print(f"[CCA login] After landing nav URL: {current_url}")
@@ -147,14 +147,13 @@ class AutomationCCAEligibilityCheck:
print("[CCA login] Session not valid, navigating to login page...")
self.driver.get(url)
# Wait up to 15s for ANY input to appear, then snapshot the page
# Wait for login inputs to appear
try:
WebDriverWait(self.driver, 15).until(
EC.presence_of_element_located((By.XPATH, "//input"))
)
except TimeoutException:
pass
time.sleep(1)
current_url = self.driver.current_url
print(f"[CCA login] After login nav URL: {current_url}")