feat: route batch-column claims by insurance type, fix eligibility UX

- claims.ts: batch-column now routes each patient to the correct portal
  (MH/CCA/DDMA/TuftsSCO/UnitedSCO) based on patient.insuranceProvider
- appointments-page.tsx: eligibility badge falls back to patientStatus
  for all insurance types, not just MassHealth
- unitedDHClaimProcessor/ddmaClaimProcessor/tuftsSCOClaimProcessor:
  auto-save claim PDF when no socketId (batch-column path)
- unitedSCOEligibilityProcessor: unknown eligibility no longer stored as INACTIVE
- queues.ts: add tuftssco-claim-submit and uniteddh-claim-submit to SeleniumJobType
- selenium_UnitedSCO_eligibilityCheckWorker.py:
  - step1: add Select Insurance OK click with staleness wait; Provider &
    Location page just clicks Continue; skip first/last name input
  - step2: extract name from eligibility details tab (ALL CAPS → title case);
    skip "not available" guard; fix name regex to match only all-caps words
- .gitignore: ignore all chrome_profile_* directories

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ff
2026-05-27 23:07:42 -04:00
parent 1b017177e9
commit 3e61bdec36
261 changed files with 331 additions and 119284 deletions

View File

@@ -1,2 +1,9 @@
.env
/__pycache__
/__pycache__
**/__pycache__
.last_credentials
chrome_profile_unitedsco/
chrome_profile_ddma/
chrome_profile_dentaquest/
chrome_profile_masshealth/
chrome_profile_*/

View File

@@ -1 +0,0 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJsaXN0ZGF0YS5qc29uIiwicm9vdF9oYXNoIjoiNmVJUlZmTTczUDJjbUxncUQ0UkRQMjU3a0Q5bWY1WUZscHlpREw1dUlfMCJ9LHsicGF0aCI6Im1hbmlmZXN0Lmpzb24iLCJyb290X2hhc2giOiItVlJhUzl1Q2xpeFJaSWR2c0VWMkxJb1l4UDREZHl1NTdUQUVfbUJ1dXBVIn1dLCJmb3JtYXQiOiJ0cmVlaGFzaCIsImhhc2hfYmxvY2tfc2l6ZSI6NDA5Nn1dLCJpdGVtX2lkIjoibmlub2RhYmNlanBlZ2xmamJraGRwbGFvZ2xwY2JmZmoiLCJpdGVtX3ZlcnNpb24iOiI4LjYyOTQuMjA1NyIsInByb3RvY29sX3ZlcnNpb24iOjF9","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"jKit53qyELKtZdFmhNfr8UG21np9jbaiQqVos_AwfKv4_BgX2rGr9tFMYcixECPW2jWz3p_EXucBLRMppysx4tREaZvl9EEIh5rQOs4staXL4VU6ErcZemFbtGSoxxZIXi1xyIIliTA-qt1lzY_I5IrHjMMvCJCYlcElCyXxBseJ4qR0Ow9_VQqkaI9zIliBWVIAOt6c_-dL2hTkqoYCeXzIvqO4_0ui4wcj5WCAujTOc-zBl6WJeVZKtpc6_B5XI7flkjUnu5lGabghojB-Qc9Y-Fm1qZOz0zJPPj26EdqCMnyMpgDxssZyjO4P46Jjc_yMCXcKLpj5XmfoO1wRtScZPn3o4PSSVew305puVe2xJF-IhsbGSR1BWbRyMoQ0sCZkJC3VLdtW_w-emgNhgAGje-SwfkPckDe_vkrPpN6Rti_6J-SizkBUHDJMG-Dbl--_iiWOa_GwGvZx84WkWHxDRbkrhrGjgQcpXbrVtuZe8Fsx305sRj5qq5hxhlbguX_wYTK3Q_L7NjNHIkjOv6BuMF1Jo1EnCM1ey_PBx7z9pkZfRcHrCVhanvfpaXk_GeAuog1H5ESWetFgGuyvFjgApgPUycfo7c23bPIVMitpn8n1kjmUk7q11mzZANESmtDOQGDRlzhTXck6UC9DDP-AgbOMVryMRUS3MKxI58w"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"Eh7dVhKTBXsgvpNfC3nIXqJpMFzZD9oXTcm9024Z8zEOFSEw1nHWGU4Yrg_4wCpb2EiSFg9aXcVH9GvpeGg0EcGKbozMqwwmYk8UlOU5jpMf7B-afAFFKngNCuyDThtcWvWY6oKEJSVN7V4NcQ1dfhhxZLCfI8wqTbzEWCDS5vTuG0qZBHtkH4-d7r7W3c8ey4V0HtboOSF7FbHm5pC9x6T-e1uqmU0Ek-0pfHyYh-RYENVKZJN9-w8JF4y5KNN08Cyrn3-GB4IbJ6U7tgwCFnbpQqAr9oSeEcXitN0NmKuKySzvuVdNh_jQdgAOf5fkajDXHdxAWyaU1AErMLrTqQ"}]}}]

View File

@@ -1,5 +0,0 @@
{
"manifest_version": 2,
"name": "listdata.json",
"version": "8.6294.2057"
}

View File

@@ -1 +0,0 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJoZXVyaXN0aWNfcmVnZXhlcy5iaW5hcnlwYiIsInJvb3RfaGFzaCI6Im9ROWwxLURWWndMVzhJaFF5TDdwdlZHdkZfUy1CUmtBX3l1SXlTRi1RbDgifSx7InBhdGgiOiJtYW5pZmVzdC5qc29uIiwicm9vdF9oYXNoIjoibGFLd2RJdXU1d2RBX3kxZHA0LVl0YUtaVUZZdm1KV1I4TEMxdnhNMVM0VSJ9XSwiZm9ybWF0IjoidHJlZWhhc2giLCJoYXNoX2Jsb2NrX3NpemUiOjQwOTZ9XSwiaXRlbV9pZCI6Imhhamlnb3BiYmpoZ2hiZmltZ2tmbXBlbmZrY2xtb2hrIiwiaXRlbV92ZXJzaW9uIjoiNCIsInByb3RvY29sX3ZlcnNpb24iOjF9","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"mqnzWWPXdMmUXubyqBppOqxAY921JfSOK_NcvIfwW7mkskMg4BQz9pzkrCPEJkJVcG_XUzkx1ByskF-ZC03s0RRaghvq-xYyFIOeL8g1A6wge9NuIZiD_KGIFmjieufISG8gijhKXINUgo6aKiGVQXWlMIRluSkGYmcTDeGW87JI1CkybIDjk3BOyKewFQiPDoafqe0BtW6fW8904q-C4xrrQHyCbmOjqhmO4VIusYh3J_LA4so-B3O-nVC30XaISnRKYPDTQzsTkz_eJq9LJcPL5RORZUrRaiDLMINSJaOUtne_6CT-6tlEuaZdLpeL9oIIsAc6taHZsz8yJvHhaVnjQsXL6eJrBufupTRY5i_Q0ir_aAsiBIu5xcOirAeMknUhxmFCGW5h7xEdp-FBL2d4ukbSDhlv2qrhPzd0TjNshQoXBaZSvLVjv9sC4RSF4vwva8j9O81ZfmFyyyzBs_mYsM0cMrrRETTXg_KrYiF-CSYBM3cZQWFyJ-w_-G0kRiryB0tG9AYkDAo2DcPuHAO7pRibl7CwM9mxsD4SFjiN_dlPUfMHBUGhgPZofVb2c7nY7ztndNKPzNKwYOZLrhj8G6-TQgJL7QplhG761mrkUrZOGzAIBu8i4HN9SqfFIClGNjLYdmXruTveYMQV0RwO--7HT4Dvd2OEwa5shsw"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"CG6KXxg_Mpqgw7XcrysRHH5F6HAql4JmenqcSzsnyja8z2d_cW6IfuHAmBQ78gE8HGIa4RUC3JQn08MN5zH2PlLfo4Lnr6NOyQGatRN7PZyK6gzaIMhK_0-CVEHR-A2mP9JpT9ksmxcURiKpAK44fTqod2KpzJMILYEFnB11MsZSEVYMYWQqT1mq4gRqo0uBne6paqZXKxLXIorweRX2KYPMYX9tHFt8CugLW5LmKPbReIJ4XJaLhLxRCHimnKtqx4r1_y7xPfitVCHIAfM5QVY6hv3xubPN2_bIPMeI6k2IlCZAH2tRptGgm9a80KlDpNQxMd9Eqi_z246ltVL2iA"}]}}]

View File

@@ -1,3 +0,0 @@
<EFBFBD>
<EFBFBD>(?:US\$|USD|\$)\s*\d{1,3}(?:[.,]\d{3})*(?:[.,]\d{2})?(?:\s*)(?:USD|US\$|\$)?|(?:USD|US\$|\$)?\s*\d{1,3}(?:[.,]\d{3})*(?:[.,]\d{2})?\s*(?:USD|US\$|\$)<12>^(?:\s*)(Due now \(USD\)|(Estimated )?(?:Order Total|Total:?)|TOTAL CHARGED TODAY \*|Final Total Price:|Flight total|grand total:?|Order Total(?: \(USD\))?:?|Price|Total(?:(?: \(USD\))?| Due| for Stay| Price| to be paid:| to pay|:)?|(Your )?(?:Payment Today|total(\s)price|Total:)|Show Order Summary:|Reservation Deposit Amount Due|Payment Due Now|Your Price|Total Due Now|Amount to pay|Total amount due|You pay today|Order Summary|TOTAL PAYMENT DUE|Payable Amount)(?:\s*)$

View File

@@ -1,5 +0,0 @@
{
"manifest_version": 2,
"name": "Amount Extraction Heuristic Regexes",
"version": "4"
}

View File

@@ -1,12 +0,0 @@
{
"epochs": [ {
"calculation_time": "13420944458137194",
"config_version": 0,
"model_version": "0",
"padded_top_topics_start_index": 0,
"taxonomy_version": 0,
"top_topics_and_observing_domains": [ ]
} ],
"hex_encoded_hmac_key": "24AD0CEEC0277EA6C3A355C732190B3C481360D7BE0EC4B7BA1282A9D36C1DAA",
"next_scheduled_calculation_time": "13421549258144341"
}

View File

@@ -1,2 +0,0 @@
2026/04/17-20:07:31.575 120577 Creating DB /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Extension Rules since it was missing.
2026/04/17-20:07:31.606 120577 Reusing MANIFEST /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Extension Rules/MANIFEST-000001

View File

@@ -1,2 +0,0 @@
2026/04/17-20:07:31.607 120577 Creating DB /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Extension Scripts since it was missing.
2026/04/17-20:07:31.637 120577 Reusing MANIFEST /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Extension Scripts/MANIFEST-000001

View File

@@ -1,3 +0,0 @@
2026/04/17-23:41:41.932 9b79 Reusing MANIFEST /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Extension State/MANIFEST-000001
2026/04/17-23:41:41.932 9b79 Recovering log #3
2026/04/17-23:41:41.932 9b79 Reusing old log /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Extension State/000003.log

View File

@@ -1,3 +0,0 @@
2026/04/17-23:41:47.142 9b8d Reusing MANIFEST /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/GCM Store/MANIFEST-000001
2026/04/17-23:41:47.143 9b8d Recovering log #3
2026/04/17-23:41:47.143 9b8d Reusing old log /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/GCM Store/000003.log

View File

@@ -1 +0,0 @@
{"net":{"http_server_properties":{"servers":[{"anonymization":["FAAAABAAAABodHRwczovL2d2dDEuY29t",false,0],"server":"https://redirector.gvt1.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423536464638726","port":443,"protocol_str":"quic"}],"anonymization":["MAAAACsAAABodHRwczovL29wdGltaXphdGlvbmd1aWRlLXBhLmdvb2dsZWFwaXMuY29tAA==",false,0],"network_stats":{"srtt":19423},"server":"https://optimizationguide-pa.googleapis.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423536489859725","port":443,"protocol_str":"quic"}],"anonymization":["FAAAABAAAABodHRwczovL2d2dDEuY29t",false,0],"network_stats":{"srtt":14112},"server":"https://r12---sn-jvhj5nu-cvnl7.gvt1.com"},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549147852405","port":443,"protocol_str":"quic"}],"anonymization":["HAAAABUAAABjaHJvbWU6Ly9uZXctdGFiLXBhZ2UAAAA=",true,0],"network_stats":{"srtt":21402},"server":"https://www.gstatic.com","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://dpm.demdex.net","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",true,0],"server":"https://greatdentalplans.demdex.net","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549302118900","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2dvb2dsZS5jb20AAA==",false,0],"network_stats":{"srtt":35187},"server":"https://accounts.google.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549302252025","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2dvb2dsZS5jb20AAA==",false,0],"network_stats":{"srtt":29518},"server":"https://www.google.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549302459934","port":443,"protocol_str":"quic"}],"anonymization":["HAAAABUAAABjaHJvbWU6Ly9uZXctdGFiLXBhZ2UAAAA=",true,0],"network_stats":{"srtt":31079},"server":"https://ogads-pa.clients6.google.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549302748269","port":443,"protocol_str":"quic"}],"anonymization":["HAAAABUAAABjaHJvbWU6Ly9uZXctdGFiLXBhZ2UAAAA=",true,0],"network_stats":{"srtt":28176},"server":"https://play.google.com","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://assets.adobedtm.com","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://dentaquest.sc.omtrdc.net","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://zn1zsy47ahixog4rc-cxinsight.siteintercept.qualtrics.com","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://providers-login.dentaquest.com","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://siteintercept.qualtrics.com","supports_spdy":true},{"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"server":"https://providers.dentaquest.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549340838122","port":443,"protocol_str":"quic"}],"anonymization":["MAAAACwAAABodHRwczovL3Bhc3N3b3Jkc2xlYWtjaGVjay1wYS5nb29nbGVhcGlzLmNvbQ==",false,0],"network_stats":{"srtt":23504},"server":"https://passwordsleakcheck-pa.googleapis.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549358008191","port":443,"protocol_str":"quic"}],"anonymization":["HAAAABYAAABodHRwczovL2RlbnRhcXVlc3QuY29tAAA=",false,0],"network_stats":{"srtt":34201},"server":"https://content-autofill.googleapis.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13423549384945647","port":443,"protocol_str":"quic"}],"anonymization":["GAAAABIAAABodHRwczovL2dvb2dsZS5jb20AAA==",false,0],"network_stats":{"srtt":26030},"server":"https://android.clients.google.com","supports_spdy":true}],"supports_quic":{"address":"192.168.1.236","used_quic":true},"version":5},"network_qualities":{"CAESABiAgICA+P////8B":"4G"}}}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"preferred_apps":[],"version":1}

View File

@@ -1 +0,0 @@
{"protection":{"super_mac":"33F663353631B144EA660B5F809D89BA41CAF954EE5776BE5004BB589CA96BE1"}}

View File

@@ -1,3 +0,0 @@
2026/04/17-23:41:41.743 9b9b Reusing MANIFEST /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Site Characteristics Database/MANIFEST-000001
2026/04/17-23:41:41.743 9b9b Recovering log #3
2026/04/17-23:41:41.743 9b9b Reusing old log /home/ee/Desktop/Gitead-DentalManagementMHnewff/apps/SeleniumService/chrome_profile_dentaquest/Default/Site Characteristics Database/000003.log

Some files were not shown because too many files have changed in this diff Show More