Site now uses a dedicated claims-submission page with a Subscriber ID +
Birthdate search form instead of the member-ID search box, and login
detection now checks for the check-patient-benefits-search link rather
than the old member-search input placeholder.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Delta Dental MA moved their provider login from providers.deltadentalma.com/onboarding
to www.deltadentalma.com/sign-in with new form field selectors, and moved eligibility
search behind a "Group/Health Connector" search page keyed by subscriber ID + birthdate
instead of the old member-search form. Updates login, OTP/MFA handling, and member
search/selection across the eligibility and claim DDMA workers and their session helpers.
- Add `import re` to all Selenium workers that use re.search() for claim number extraction
- Pass uploadedFiles to onHandleForMHSeleniumClaim so attachments reach the MH website
- Save chatbot pending files in check-and-claim and batch-check-and-claim flows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pass the user's primary NPI provider name through the eligibility and
claim routes so the Selenium workers click the matching option in the
DDMA member-search provider dropdown (data-testid=member-search_provider_select-btn)
rather than always falling back to the first entry.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Instead of typing into the combobox, find the toggle button ("^" icon) in the
same container as the tooth input and click it via JS to open the dropdown.
Tries progressively wider ancestor scopes (1-5 levels up) to locate the button,
falls back to JS focus if none found. Then selects the exact tooth number from
the listbox options.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
step2: wait for patient list //tbody//tr then 3s stabilize; wait for patient
name link to be element_to_be_clickable before reading href; wait for Create
claim button to be element_to_be_clickable (visible+enabled) then 3s for React
to finish re-rendering.
step3: re-find Create claim button fresh each attempt (avoids stale element
from React re-render); try selenium click → js events → js.click() in sequence;
verify URL changed before declaring success.
step4: open tooth dropdown via JS focus (avoids element-not-interactable on
click); select the matching tooth number option directly from 1-32 listbox
instead of typing characters.
step7: find Submit claim button with individual XPaths to avoid NoneType crash.
claims-page: use wouter setLocation for URL param cleanup so internal search
state stays in sync.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add full DDMA claim Selenium flow (steps 1-8): search patient, open
member page, create claim, fill form, attach files, next, submit,
extract claim number and save confirmation PDF
- Add fee schedule price-mismatch dialog for all claim buttons (MH,
CCA, DDMA, United, Tufts, Save) with optional price update to JSON
- Add OTP modal for DDMA claim when session expires, mirroring
eligibility OTP flow
- Close Chrome after claim submission via quit_driver() (session
preserved in profile)
- Move Map Price button between Direct Submission and procedure table,
right-aligned above Billed Amount column
- Add fee-schedule update-price backend route
- Add DDMA claim processor with claimNumber/pdf_url result handling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>