fix: United claim — add procedure date, fix file attachments, persist chatbot files, enforce M/D/YYYY date parsing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -158,6 +158,9 @@ Rules:
|
|||||||
always set it to today's date (${today}) when the user says "today", "this visit", or similar
|
always set it to today's date (${today}) when the user says "today", "this visit", or similar
|
||||||
set it to the specified date when the user mentions a date (e.g. "05/15/2026")
|
set it to the specified date when the user mentions a date (e.g. "05/15/2026")
|
||||||
omit it only when no date is mentioned at all (the backend will find the last appointment)
|
omit it only when no date is mentioned at all (the backend will find the last appointment)
|
||||||
|
- IMPORTANT: Users type dates in American M/D/YYYY format (month first, then day).
|
||||||
|
e.g. "6/12/2026" means June 12 2026 (NOT December 6). "1/5/2026" means January 5 2026.
|
||||||
|
If the year has a typo (e.g. "12026" instead of "2026"), correct it to the intended 4-digit year.
|
||||||
- For schedule_appointment, appointmentTime omitted means no preference
|
- For schedule_appointment, appointmentTime omitted means no preference
|
||||||
- IMPORTANT: Use the conversation history to resolve pronouns and references.
|
- IMPORTANT: Use the conversation history to resolve pronouns and references.
|
||||||
If the user says "her", "him", "them", "the patient", or "same patient", look back through
|
If the user says "her", "him", "them", "the patient", or "same patient", look back through
|
||||||
|
|||||||
@@ -280,12 +280,12 @@ export function ChatbotButton() {
|
|||||||
setBatchClaimData(null);
|
setBatchClaimData(null);
|
||||||
setBatchCheckAndClaimData(null);
|
setBatchCheckAndClaimData(null);
|
||||||
setPreauthReadyData(null);
|
setPreauthReadyData(null);
|
||||||
setPendingFiles([]);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Full reset including message history and stored session
|
// Full reset including message history and stored session
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
resetStep();
|
resetStep();
|
||||||
|
setPendingFiles([]);
|
||||||
const fresh = [makeMsg("bot", "Hi! What can I help you with today?")];
|
const fresh = [makeMsg("bot", "Hi! What can I help you with today?")];
|
||||||
try {
|
try {
|
||||||
sessionStorage.setItem(CHAT_STORAGE_KEY, JSON.stringify(fresh));
|
sessionStorage.setItem(CHAT_STORAGE_KEY, JSON.stringify(fresh));
|
||||||
|
|||||||
@@ -730,6 +730,20 @@ class AutomationUnitedDHClaimSubmit:
|
|||||||
))
|
))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Fill procedure date from service date
|
||||||
|
if self.serviceDate:
|
||||||
|
try:
|
||||||
|
from datetime import date
|
||||||
|
service_date = date.fromisoformat(self.serviceDate[:10])
|
||||||
|
proc_date_str = service_date.strftime("%m/%d/%Y")
|
||||||
|
proc_input = self.driver.find_element(By.ID, "procedureDate_Back")
|
||||||
|
proc_input.click()
|
||||||
|
proc_input.send_keys(Keys.CONTROL, "a")
|
||||||
|
proc_input.send_keys(proc_date_str)
|
||||||
|
print(f"[UnitedDH Claim] step3: Procedure date entered: {proc_date_str}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[UnitedDH Claim] step3: WARNING - Could not fill procedure date: {e}")
|
||||||
|
|
||||||
# Select Payer: type + Enter
|
# Select Payer: type + Enter
|
||||||
payer_selected = False
|
payer_selected = False
|
||||||
try:
|
try:
|
||||||
@@ -1081,22 +1095,13 @@ class AutomationUnitedDHClaimSubmit:
|
|||||||
|
|
||||||
print(f"[UnitedDH Claim] step7: Attaching: {abs_path}")
|
print(f"[UnitedDH Claim] step7: Attaching: {abs_path}")
|
||||||
try:
|
try:
|
||||||
upload_btn = WebDriverWait(self.driver, 10).until(
|
|
||||||
EC.element_to_be_clickable((By.ID, "upload-document"))
|
|
||||||
)
|
|
||||||
self.driver.execute_script("arguments[0].scrollIntoView({block:'center'});", upload_btn)
|
|
||||||
upload_btn.click()
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
file_input = WebDriverWait(self.driver, 8).until(
|
file_input = WebDriverWait(self.driver, 8).until(
|
||||||
EC.presence_of_element_located((By.XPATH, "//input[@type='file']"))
|
EC.presence_of_element_located((By.XPATH, "//input[@type='file']"))
|
||||||
)
|
)
|
||||||
self.driver.execute_script("arguments[0].style.display='block';", file_input)
|
self.driver.execute_script("arguments[0].removeAttribute('class');", file_input)
|
||||||
file_input.send_keys(abs_path)
|
file_input.send_keys(abs_path)
|
||||||
WebDriverWait(self.driver, 60).until(
|
WebDriverWait(self.driver, 60).until(
|
||||||
EC.element_to_be_clickable((By.XPATH,
|
EC.element_to_be_clickable((By.XPATH,
|
||||||
"//button[contains(@class,'btn-primary') and contains(normalize-space(text()),'Submit Claim')] | "
|
|
||||||
"//button[normalize-space(text())='Submit Claim'] | "
|
|
||||||
"//button[contains(normalize-space(.),'Submit Claim')]"
|
"//button[contains(normalize-space(.),'Submit Claim')]"
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user