claim-form.component.html 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <div class="split-view">
  2. <!-- Left Column: Receipt Preview -->
  3. <div class="receipt-container">
  4. <h2>Receipt Preview</h2>
  5. <div class="preview-wrapper">
  6. <img *ngIf="previewUrl" [src]="previewUrl" class="receipt-preview" alt="Receipt Preview">
  7. <div *ngIf="!previewUrl" class="placeholder">
  8. <p>No receipt uploaded. Please select a file to begin extraction.</p>
  9. </div>
  10. <!-- Overlay for Manual Review -->
  11. <div *ngIf="extractionResponse?.needs_manual_review" class="review-banner">
  12. <lucide-icon [name]="AlertCircle" class="icon"></lucide-icon>
  13. <span>Review Required: Blurry or Ambiguous Data</span>
  14. </div>
  15. </div>
  16. <div class="upload-section">
  17. <input type="file" #fileInput (change)="onFileSelected($event)" style="display: none" accept="image/*">
  18. <button class="upload-btn" (click)="fileInput.click()">
  19. Upload Medical Receipt
  20. </button>
  21. <div *ngIf="isLoading" class="spinner">Extracting data...</div>
  22. </div>
  23. </div>
  24. <!-- Right Column: Data Entry Form -->
  25. <div class="form-container">
  26. <h2>Claim Information</h2>
  27. <form [formGroup]="claimForm">
  28. <!-- Provider Name -->
  29. <div class="form-field" [class.ai-unconfident]="confidenceScore < 0.8">
  30. <label for="provider_name">Provider Name</label>
  31. <input id="provider_name" type="text" formControlName="provider_name" placeholder="Clinic or Hospital Name">
  32. <div class="confidence-badge" *ngIf="extractionResponse">
  33. AI Confidence: {{ (extractionResponse.confidence_score * 100).toFixed(0) }}%
  34. </div>
  35. </div>
  36. <!-- Visit Date -->
  37. <div class="form-field" [class.ai-unconfident]="confidenceScore < 0.8">
  38. <label for="visit_date">Visit Date</label>
  39. <input id="visit_date" type="date" formControlName="visit_date">
  40. <div class="confidence-badge" *ngIf="extractionResponse">
  41. AI Confidence: {{ (extractionResponse.confidence_score * 100).toFixed(0) }}%
  42. </div>
  43. </div>
  44. <!-- Total Amount -->
  45. <div class="form-field" [class.ai-unconfident]="confidenceScore < 0.8">
  46. <label for="total_amount">Total Amount</label>
  47. <div class="amount-input">
  48. <input id="total_amount" type="number" formControlName="total_amount" step="0.01">
  49. <span class="currency-label">MYR</span>
  50. </div>
  51. <div class="confidence-badge" *ngIf="extractionResponse">
  52. AI Confidence: {{ (extractionResponse.confidence_score * 100).toFixed(0) }}%
  53. </div>
  54. </div>
  55. <div class="form-actions">
  56. <button type="submit" [disabled]="!claimForm.valid || isLoading" class="submit-btn">
  57. Confirm and Submit Claim
  58. </button>
  59. </div>
  60. </form>
  61. </div>
  62. </div>