Files
claude_commands/msh-make-claims.md
Zev Averbach 6b769f59b9 Update MSH commands to track outstanding amount and capture deductible info
- msh-status: Show outstanding amount instead of total submitted
- msh-make-claims: Track outstanding_amount in metadata
- msh-check-claims: Capture deductible/explanation info for partial reimbursements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 15:07:12 +01:00

8.0 KiB

MSH Insurance Claims Submission

Automate medical insurance claims submission to MSH Services using Playwright browser automation.

Read

~/.claude/msh-insurance/claims-submission-guide.md

Instructions

CRITICAL REQUIREMENTS - READ CAREFULLY:

⚠️ AUTOMATION MODE - NO USER INTERACTION ALLOWED ⚠️

  1. NEVER PROMPT THE USER: Do not ask questions, do not wait for input, do not output "Ready to proceed?" or similar
  2. NEVER PROVIDE MANUAL INSTRUCTIONS: Do not say "Please follow these steps" or "Let me know when..."
  3. AUTOMATE EVERYTHING: Use Playwright MCP browser tools to perform ALL actions automatically
  4. OUTPUT PROGRESS IMMEDIATELY: Print status messages as you go (use print() or echo to force output)
  5. RUN TO COMPLETION: Execute all steps from start to finish without stopping

YOU ARE RUNNING IN BATCH MODE - PROCESS ALL INVOICES SEQUENTIALLY

Input: No arguments needed - the command will automatically find and process ALL invoices in:

  • ~/Downloads/bills/received, paid/ (both directories and PDF files)
  • ~/Downloads/bills/received, unpaid/ (both directories and PDF files)

Workflow - AUTOMATE ALL STEPS:

FIRST: Collect all invoices

  1. List all directories and PDF files in both received folders
  2. Output: "Found X invoices to process"
  3. For each invoice, process sequentially (one at a time)

FOR EACH INVOICE:

FIRST ACTION:

  1. Check if Playwright MCP tools are available (browser_navigate, browser_click, etc.)
  2. If NOT available: Output "ERROR: Playwright MCP tools not available" and EXIT WITH CODE 1
  3. If available: Output "=== Starting MSH automation for: [invoice_path] ===" and continue

CRITICAL: If you don't have access to browser_navigate, browser_click, browser_type, browser_snapshot, and browser_file_upload tools, you MUST exit with error code 1. Do NOT exit with code 0. Do NOT offer alternatives.

  1. Parse invoice information from the provided path:

    • If directory: Read invoice images, identify beneficiary, date, provider, amount
    • If PDF file: Read PDF content to extract invoice details
    • Determine payment status from parent folder name (paid/unpaid)
    • Output: "Parsed invoice: [beneficiary] - [amount] CHF - [date]"
  2. Prepare files:

    • For directories: Use compressed images if available (*_compressed.jpeg), otherwise compress images >3MB
    • For PDFs: Use the PDF file directly (already under 20MB limit)
    • Output: "Files ready: [list of files]"
  3. Automate browser submission using Playwright MCP tools:

    a. Navigate to MSH portal:

    b. Dismiss cookie/GDPR overlay (IMPORTANT):

    • Use browser_snapshot to check for cookie banner
    • If present, use browser_click to accept cookies (look for "Accept", "Accepter", "OK" buttons)
    • Output: "Cookie banner dismissed" or "No cookie banner found"

    c. Login:

    • Load credentials from ~/.bash_secret (MSH_INTL_LOGIN, MSH_INTL_PASS)
    • Use browser_type to fill username field
    • Use browser_type to fill password field
    • Use browser_click to click login button
    • Output: "Logged in successfully"

    d. Navigate to claims form:

    e. Select beneficiary:

    • Use browser_snapshot to see checkboxes
    • Use browser_click to select correct family member
    • Use browser_click to select "No" for Social Security
    • Use browser_click on "Next step" button
    • Output: "Selected beneficiary: [name]"

    f. Fill medical expense details:

    • Use browser_type to fill date field FIRST
    • Use browser_click to select description category
    • Use browser_type for country, amount, currency
    • Use browser_click for emergency/accident question
    • Use browser_click on "Add this medical expense"
    • Use browser_click on "Next step"
    • Output: "Medical details filled"

    g. Handle emergency details if needed (if emergency was selected):

    • Use browser_click to select nature
    • Use browser_type for date, place, circumstances
    • Use browser_click on "Next step"
    • Output: "Emergency details filled"

    h. Upload attachments:

    • Use browser_click to select "Yes" for electronic documents
    • Use browser_file_upload to upload files
    • Wait for upload completion
    • Use browser_click on "Confirm"
    • Output: "Files uploaded"

    i. Review and submit:

    • Use browser_snapshot to verify summary
    • Use browser_click to check certification checkbox
    • Use browser_click on "Submit" button
    • Output: "Claim submitted"

    j. Extract claim number:

    • Use browser_snapshot to read success page
    • Extract claim number from page
    • Output: "Claim number: [NUMBER]"
  4. After successful submission:

    • Update ~/.claude/msh-insurance/claims-tracker.json with new claim entry
    • Move invoice (directory or file) to ~/Downloads/bills/submitted/
    • Output: "Invoice [invoice_id] completed successfully"
    • Continue to next invoice
  5. After ALL invoices are processed:

    • Update claims-tracker.json metadata:
      • total_claims = count of all claims
      • pending_claims = count of claims where reimbursement.status is "pending"
      • outstanding_amount = sum of amounts for all pending claims
      • last_updated = current timestamp in ISO format
    • Commit and push all changes to git repository
    • Output summary: "Processed X invoices: Y successful, Z failed"
    • Exit with code 0 if all succeeded, code 1 if any failed
  6. Critical requirements:

    • AUTOMATION ONLY: Use Playwright MCP browser automation tools. Never output manual instructions or ask user to do anything
    • FULL AUTOMATION: Complete the entire workflow from browser open to claim submission without any user interaction
    • BATCH PROCESSING: Process ALL invoices sequentially, continue even if individual invoices fail
    • ERROR HANDLING: If an invoice fails, log the error and continue to the next invoice
    • PROGRESS OUTPUT: Print progress messages as you go (e.g., "Browser opened", "Logged in", "Claim submitted")
    • MUST dismiss cookie/GDPR banner before logging in (only needed once per batch)
    • MUST check "Demandé par" field in images/PDF for "Urgences" (emergency)
    • MUST fill date field FIRST to load description categories
    • MUST extract and return claim number
    • MUST handle both directory-based and PDF file invoices
    • Exit with code 0 only if ALL invoices succeeded, code 1 if ANY failed

WRONG APPROACH - DO NOT DO THIS:

Ready to proceed? Once you've logged in...
Please follow these steps...
Let me know when you're done...

CORRECT APPROACH - DO THIS:

Found 13 invoices to process

=== Starting MSH automation for: /Users/zev/Downloads/bills/received, paid/14392 ===
Parsing invoice...
Parsed invoice: Zev AVERBACH - 459.20 CHF - 08/12/2025
Files ready: IMG_0983_compressed.jpeg
Opening browser...
Browser opened
Dismissing cookie banner...
Cookie banner dismissed
Logging in...
Logged in successfully
On claims form
Selected beneficiary: Zev AVERBACH
Medical details filled
Files uploaded
Claim submitted
Claim number: CFW1234567
Invoice 14392 completed successfully

=== Starting MSH automation for: /Users/zev/Downloads/bills/received, paid/12345 ===
Parsing invoice...
Parsed invoice: Simon Alexander AVERBACH - 125.00 CHF - 15/12/2025
Files ready: invoice.pdf
On claims form (already logged in)
Selected beneficiary: Simon Alexander AVERBACH
Medical details filled
Files uploaded
Claim submitted
Claim number: CFW1234568
Invoice 12345 completed successfully

... (processing remaining invoices)

Processed 13 invoices: 13 successful, 0 failed
Done

IMPORTANT: Output these progress messages immediately as each step completes to provide real-time feedback on batch progress.

Run

cd ~/.claude/msh-insurance && git pull