698 lines
36 KiB
HTML
698 lines
36 KiB
HTML
{% extends "base.html" %}
|
|
{% load static %}
|
|
|
|
{% block title %}Claim {{ object.claim_number }} - {{ block.super }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid">
|
|
<!-- Page Header -->
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<div>
|
|
<h1 class="h3 mb-1">Insurance Claim {{ object.claim_number }}</h1>
|
|
<nav aria-label="breadcrumb">
|
|
<ol class="breadcrumb mb-0">
|
|
<li class="breadcrumb-item"><a href="{% url 'billing:dashboard' %}">Billing</a></li>
|
|
<li class="breadcrumb-item"><a href="{% url 'billing:claim_list' %}">Insurance Claims</a></li>
|
|
<li class="breadcrumb-item active">{{ object.claim_number }}</li>
|
|
</ol>
|
|
</nav>
|
|
</div>
|
|
<div class="btn-group">
|
|
<a href="{% url 'billing:claim_list' %}" class="btn btn-outline-secondary">
|
|
<i class="fas fa-arrow-left me-2"></i>Back to List
|
|
</a>
|
|
{% if object.status == 'DRAFT' %}
|
|
<a href="{% url 'billing:claim_update' object.claim_id %}" class="btn btn-primary">
|
|
<i class="fas fa-edit me-2"></i>Edit Claim
|
|
</a>
|
|
{% endif %}
|
|
<div class="btn-group" role="group">
|
|
<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
|
|
<i class="fas fa-cog me-2"></i>Actions
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item" href="{% url 'billing:claim_print' object.claim_id %}">
|
|
<i class="fas fa-print me-2"></i>Print Claim
|
|
</a></li>
|
|
<li><a class="dropdown-item" href="{% url 'billing:claim_download' object.claim_id %}">
|
|
<i class="fas fa-download me-2"></i>Download PDF
|
|
</a></li>
|
|
<li><a class="dropdown-item" href="{% url 'billing:claim_export' object.claim_id %}">
|
|
<i class="fas fa-file-export me-2"></i>Export to EDI
|
|
</a></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
{% if object.status == 'DRAFT' %}
|
|
<li><a class="dropdown-item text-info" href="{% url 'billing:claim_submit' object.claim_id %}">
|
|
<i class="fas fa-paper-plane me-2"></i>Submit Claim
|
|
</a></li>
|
|
{% elif object.status == 'DENIED' %}
|
|
<li><a class="dropdown-item text-warning" href="{% url 'billing:claim_appeal' object.claim_id %}">
|
|
<i class="fas fa-gavel me-2"></i>Appeal Claim
|
|
</a></li>
|
|
<li><a class="dropdown-item text-info" href="{% url 'billing:claim_resubmit' object.claim_id %}">
|
|
<i class="fas fa-redo me-2"></i>Resubmit Claim
|
|
</a></li>
|
|
{% elif object.status in 'SUBMITTED,PENDING' %}
|
|
<li><a class="dropdown-item text-primary" href="{% url 'billing:claim_status_check' object.claim_id %}">
|
|
<i class="fas fa-sync me-2"></i>Check Status
|
|
</a></li>
|
|
{% endif %}
|
|
{% if object.status in 'DRAFT,DENIED' %}
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li><a class="dropdown-item text-danger" href="{% url 'billing:claim_delete' object.claim_id %}">
|
|
<i class="fas fa-trash me-2"></i>Delete Claim
|
|
</a></li>
|
|
{% endif %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<!-- Main Content -->
|
|
<div class="col-lg-8">
|
|
<!-- Claim Status Alert -->
|
|
{% if object.status == 'DENIED' %}
|
|
<div class="alert alert-danger mb-4">
|
|
<h6 class="alert-heading"><i class="fas fa-times-circle me-2"></i>Claim Denied</h6>
|
|
This claim has been denied by the insurance company.
|
|
{% if object.denial_reason %}
|
|
<br><strong>Reason:</strong> {{ object.denial_reason }}
|
|
{% endif %}
|
|
<div class="mt-2">
|
|
<a href="{% url 'billing:claim_appeal' object.claim_id %}" class="btn btn-sm btn-warning me-2">
|
|
<i class="fas fa-gavel me-1"></i>Appeal
|
|
</a>
|
|
<a href="{% url 'billing:claim_resubmit' object.claim_id %}" class="btn btn-sm btn-info">
|
|
<i class="fas fa-redo me-1"></i>Resubmit
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% elif object.status == 'DRAFT' %}
|
|
<div class="alert alert-warning mb-4">
|
|
<h6 class="alert-heading"><i class="fas fa-edit me-2"></i>Draft Claim</h6>
|
|
This claim is still in draft status. Review and submit when ready.
|
|
<div class="mt-2">
|
|
<a href="{% url 'billing:claim_submit' object.claim_id %}" class="btn btn-sm btn-info">
|
|
<i class="fas fa-paper-plane me-1"></i>Submit Claim
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% elif object.status == 'APPROVED' %}
|
|
<div class="alert alert-success mb-4">
|
|
<h6 class="alert-heading"><i class="fas fa-check-circle me-2"></i>Claim Approved</h6>
|
|
This claim has been approved for ${{ object.approved_amount|floatformat:2 }} on {{ object.approval_date|date:"M d, Y" }}.
|
|
</div>
|
|
{% elif object.status == 'PAID' %}
|
|
<div class="alert alert-success mb-4">
|
|
<h6 class="alert-heading"><i class="fas fa-money-bill-wave me-2"></i>Claim Paid</h6>
|
|
This claim has been paid by the insurance company on {{ object.payment_date|date:"M d, Y" }}.
|
|
</div>
|
|
{% elif object.status == 'PENDING' and object.days_pending > 30 %}
|
|
<div class="alert alert-warning mb-4">
|
|
<h6 class="alert-heading"><i class="fas fa-clock me-2"></i>Long Pending Claim</h6>
|
|
This claim has been pending for {{ object.days_pending }} days. Consider following up with the insurance company.
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Claim Information -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-file-medical me-2"></i>Claim Information
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Claim Number:</td>
|
|
<td>{{ object.claim_number }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Submission Date:</td>
|
|
<td>
|
|
{% if object.submission_date %}
|
|
{{ object.submission_date|date:"M d, Y" }}
|
|
{% else %}
|
|
<span class="text-muted">Not submitted</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Status:</td>
|
|
<td>
|
|
{% if object.status == 'DRAFT' %}
|
|
<span class="badge bg-secondary">Draft</span>
|
|
{% elif object.status == 'SUBMITTED' %}
|
|
<span class="badge bg-info">Submitted</span>
|
|
{% elif object.status == 'PENDING' %}
|
|
<span class="badge bg-warning">Pending</span>
|
|
{% elif object.status == 'APPROVED' %}
|
|
<span class="badge bg-success">Approved</span>
|
|
{% elif object.status == 'PARTIALLY_APPROVED' %}
|
|
<span class="badge bg-primary">Partially Approved</span>
|
|
{% elif object.status == 'DENIED' %}
|
|
<span class="badge bg-danger">Denied</span>
|
|
{% elif object.status == 'PAID' %}
|
|
<span class="badge bg-success">Paid</span>
|
|
{% elif object.status == 'APPEALED' %}
|
|
<span class="badge bg-dark">Appealed</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Days Pending:</td>
|
|
<td>
|
|
{% if object.submission_date %}
|
|
<span class="{% if object.days_pending > 30 %}text-warning{% elif object.days_pending > 60 %}text-danger{% endif %}">
|
|
{{ object.days_pending }} days
|
|
</span>
|
|
{% else %}
|
|
<span class="text-muted">-</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Billed Amount:</td>
|
|
<td class="fw-bold">${{ object.billed_amount|floatformat:2 }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Approved Amount:</td>
|
|
<td>
|
|
{% if object.approved_amount %}
|
|
<span class="text-success fw-bold">${{ object.approved_amount|floatformat:2 }}</span>
|
|
{% else %}
|
|
<span class="text-muted">-</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Paid Amount:</td>
|
|
<td>
|
|
{% if object.paid_amount %}
|
|
<span class="text-success fw-bold">${{ object.paid_amount|floatformat:2 }}</span>
|
|
{% else %}
|
|
<span class="text-muted">-</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Created:</td>
|
|
<td>{{ object.created_at|date:"M d, Y g:i A" }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{% if object.notes %}
|
|
<div class="mt-3">
|
|
<h6 class="fw-bold">Notes:</h6>
|
|
<p class="text-muted">{{ object.notes }}</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Bill Information -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-file-invoice me-2"></i>Related Bill
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Bill Number:</td>
|
|
<td>
|
|
<a href="{% url 'billing:bill_detail' object.medical_bill.bill_id %}" class="text-decoration-none">
|
|
{{ object.medical_bill.bill_number }}
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Bill Date:</td>
|
|
<td>{{ object.medical_bill.bill_date|date:"M d, Y" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Service Date:</td>
|
|
<td>{{ object.service_date|date:"M d, Y" }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Total Amount:</td>
|
|
<td class="fw-bold">${{ object.medical_bill.total_amount|floatformat:2 }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Bill Status:</td>
|
|
<td>
|
|
{% if object.medical_bill.status == 'DRAFT' %}
|
|
<span class="badge bg-secondary">Draft</span>
|
|
{% elif object.medical_bill.status == 'PENDING' %}
|
|
<span class="badge bg-warning">Pending</span>
|
|
{% elif object.medical_bill.status == 'SUBMITTED' %}
|
|
<span class="badge bg-info">Submitted</span>
|
|
{% elif object.medical_bill.status == 'PARTIAL_PAID' %}
|
|
<span class="badge bg-primary">Partially Paid</span>
|
|
{% elif object.medical_bill.status == 'PAID' %}
|
|
<span class="badge bg-success">Paid</span>
|
|
{% elif object.medical_bill.status == 'OVERDUE' %}
|
|
<span class="badge bg-danger">Overdue</span>
|
|
{% elif object.medical_bill.status == 'COLLECTIONS' %}
|
|
<span class="badge bg-dark">Collections</span>
|
|
{% elif object.medical_bill.status == 'WRITTEN_OFF' %}
|
|
<span class="badge bg-secondary">Written Off</span>
|
|
{% elif object.medical_bill.status == 'CANCELLED' %}
|
|
<span class="badge bg-secondary">Cancelled</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Provider:</td>
|
|
<td>{{ object.medical_bill.billing_provider|default:"-" }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Patient Information -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-user me-2"></i>Patient Information
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Patient Name:</td>
|
|
<td>{{ object.medical_bill.patient.get_full_name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">MRN:</td>
|
|
<td>{{ object.medical_bill.patient.mrn }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Date of Birth:</td>
|
|
<td>{{ object.medical_bill.patient.date_of_birth|date:"M d, Y" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Gender:</td>
|
|
<td>{{ object.medical_bill.patient.get_gender_display|default:"-" }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Phone:</td>
|
|
<td>{{ object.medical_bill.patient.phone_number|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Email:</td>
|
|
<td>{{ object.medical_bill.patient.email|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Address:</td>
|
|
<td>
|
|
{% if object.medical_bill.patient.address %}
|
|
{{ object.medical_bill.patient.address }}<br>
|
|
{{ object.medical_bill.patient.city }}, {{ object.medical_bill.patient.state }} {{ object.medical_bill.patient.zip_code }}
|
|
{% else %}
|
|
-
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Insurance Information -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-shield-alt me-2"></i>Insurance Information
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Insurance Company:</td>
|
|
<td>{{ object.insurance_info.insurance_company }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Policy Number:</td>
|
|
<td>{{ object.insurance_info.policy_number }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Group Number:</td>
|
|
<td>{{ object.insurance_info.group_number|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Member ID:</td>
|
|
<td>{{ object.insurance_info.member_id|default:"-" }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless table-sm">
|
|
<tr>
|
|
<td class="fw-bold">Plan Type:</td>
|
|
<td>{{ object.insurance_info.plan_type|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Effective Date:</td>
|
|
<td>{{ object.insurance_info.effective_date|date:"M d, Y"|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Expiration Date:</td>
|
|
<td>{{ object.insurance_info.expiration_date|date:"M d, Y"|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Copay:</td>
|
|
<td>
|
|
{% if object.insurance_info.copay_amount %}
|
|
${{ object.insurance_info.copay_amount|floatformat:2 }}
|
|
{% else %}
|
|
-
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Claim Line Items -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-list me-2"></i>Claim Line Items
|
|
</h5>
|
|
</div>
|
|
<div class="card-body p-0">
|
|
<div class="table-responsive">
|
|
<table class="table table-hover mb-0">
|
|
<thead class="table-light">
|
|
<tr>
|
|
<th>Service Code</th>
|
|
<th>Description</th>
|
|
<th>Service Date</th>
|
|
<th class="text-center">Quantity</th>
|
|
<th class="text-end">Billed Amount</th>
|
|
<th class="text-end">Approved Amount</th>
|
|
<th>Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for line_item in object.claimlineitem_set.all %}
|
|
<tr>
|
|
<td>
|
|
<code>{{ line_item.service_code }}</code>
|
|
</td>
|
|
<td>{{ line_item.description }}</td>
|
|
<td>{{ line_item.service_date|date:"M d, Y" }}</td>
|
|
<td class="text-center">{{ line_item.quantity }}</td>
|
|
<td class="text-end">${{ line_item.billed_amount|floatformat:2 }}</td>
|
|
<td class="text-end">
|
|
{% if line_item.approved_amount %}
|
|
<span class="text-success fw-bold">${{ line_item.approved_amount|floatformat:2 }}</span>
|
|
{% else %}
|
|
<span class="text-muted">-</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% if line_item.status == 'PENDING' %}
|
|
<span class="badge bg-warning">Pending</span>
|
|
{% elif line_item.status == 'APPROVED' %}
|
|
<span class="badge bg-success">Approved</span>
|
|
{% elif line_item.status == 'DENIED' %}
|
|
<span class="badge bg-danger">Denied</span>
|
|
{% elif line_item.status == 'PARTIALLY_APPROVED' %}
|
|
<span class="badge bg-primary">Partially Approved</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% empty %}
|
|
<tr>
|
|
<td colspan="7" class="text-center text-muted py-4">
|
|
No line items found for this claim.
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sidebar -->
|
|
<div class="col-lg-4">
|
|
<!-- Claim Summary -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-calculator me-2"></i>Claim Summary
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between mb-2">
|
|
<span>Billed Amount:</span>
|
|
<span class="fw-bold">${{ object.billed_amount|floatformat:2 }}</span>
|
|
</div>
|
|
<div class="d-flex justify-content-between mb-2">
|
|
<span>Approved Amount:</span>
|
|
<span class="{% if object.approved_amount %}text-success fw-bold{% else %}text-muted{% endif %}">
|
|
{% if object.approved_amount %}
|
|
${{ object.approved_amount|floatformat:2 }}
|
|
{% else %}
|
|
-
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
<div class="d-flex justify-content-between mb-2">
|
|
<span>Paid Amount:</span>
|
|
<span class="{% if object.paid_amount %}text-success fw-bold{% else %}text-muted{% endif %}">
|
|
{% if object.paid_amount %}
|
|
${{ object.paid_amount|floatformat:2 }}
|
|
{% else %}
|
|
-
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
<hr>
|
|
<div class="d-flex justify-content-between">
|
|
<span class="fw-bold">Outstanding:</span>
|
|
<span class="fw-bold {% if object.outstanding_amount > 0 %}text-danger{% else %}text-success{% endif %}">
|
|
${{ object.outstanding_amount|floatformat:2 }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Quick Actions -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-bolt me-2"></i>Quick Actions
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="d-grid gap-2">
|
|
{% if object.status == 'DRAFT' %}
|
|
<a href="{% url 'billing:claim_submit' object.claim_id %}" class="btn btn-info">
|
|
<i class="fas fa-paper-plane me-2"></i>Submit Claim
|
|
</a>
|
|
<a href="{% url 'billing:claim_update' object.claim_id %}" class="btn btn-outline-warning">
|
|
<i class="fas fa-edit me-2"></i>Edit Claim
|
|
</a>
|
|
{% elif object.status == 'DENIED' %}
|
|
<a href="{% url 'billing:claim_appeal' object.claim_id %}" class="btn btn-warning">
|
|
<i class="fas fa-gavel me-2"></i>Appeal Claim
|
|
</a>
|
|
<a href="{% url 'billing:claim_resubmit' object.claim_id %}" class="btn btn-info">
|
|
<i class="fas fa-redo me-2"></i>Resubmit Claim
|
|
</a>
|
|
{% elif object.status in 'SUBMITTED,PENDING' %}
|
|
<a href="{% url 'billing:claim_status_check' object.claim_id %}" class="btn btn-primary">
|
|
<i class="fas fa-sync me-2"></i>Check Status
|
|
</a>
|
|
{% endif %}
|
|
<a href="{% url 'billing:claim_print' object.claim_id %}" class="btn btn-outline-primary">
|
|
<i class="fas fa-print me-2"></i>Print Claim
|
|
</a>
|
|
<a href="{% url 'billing:claim_download' object.claim_id %}" class="btn btn-outline-secondary">
|
|
<i class="fas fa-download me-2"></i>Download PDF
|
|
</a>
|
|
<a href="{% url 'billing:bill_detail' object.medical_bill.bill_id %}" class="btn btn-outline-info">
|
|
<i class="fas fa-file-invoice me-2"></i>View Bill
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Claim Timeline -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-history me-2"></i>Claim Timeline
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="timeline">
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-primary"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Claim Created</h6>
|
|
<p class="timeline-text">{{ object.created_at|date:"M d, Y g:i A" }}</p>
|
|
</div>
|
|
</div>
|
|
{% if object.submission_date %}
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-info"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Claim Submitted</h6>
|
|
<p class="timeline-text">{{ object.submission_date|date:"M d, Y g:i A" }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if object.status == 'APPROVED' %}
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-success"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Claim Approved</h6>
|
|
<p class="timeline-text">
|
|
${{ object.approved_amount|floatformat:2 }} approved
|
|
<br><small class="text-muted">{{ object.approval_date|date:"M d, Y g:i A"|default:"Unknown" }}</small>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% elif object.status == 'DENIED' %}
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-danger"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Claim Denied</h6>
|
|
<p class="timeline-text">
|
|
{% if object.denial_reason %}
|
|
{{ object.denial_reason }}
|
|
<br><small class="text-muted">{{ object.denial_date|date:"M d, Y g:i A"|default:"Unknown" }}</small>
|
|
{% else %}
|
|
{{ object.denial_date|date:"M d, Y g:i A"|default:"Unknown" }}
|
|
{% endif %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% elif object.status == 'PARTIALLY_APPROVED' %}
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-primary"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Partially Approved</h6>
|
|
<p class="timeline-text">
|
|
${{ object.approved_amount|floatformat:2 }} of ${{ object.billed_amount|floatformat:2 }}
|
|
<br><small class="text-muted">{{ object.approval_date|date:"M d, Y g:i A"|default:"Unknown" }}</small>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if object.status == 'PAID' %}
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-success"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Payment Received</h6>
|
|
<p class="timeline-text">
|
|
${{ object.paid_amount|floatformat:2 }} received
|
|
<br><small class="text-muted">{{ object.payment_date|date:"M d, Y g:i A"|default:"Unknown" }}</small>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if object.status == 'APPEALED' %}
|
|
<div class="timeline-item">
|
|
<div class="timeline-marker bg-dark"></div>
|
|
<div class="timeline-content">
|
|
<h6 class="timeline-title">Claim Appealed</h6>
|
|
<p class="timeline-text">{{ object.appeal_date|date:"M d, Y g:i A"|default:"Unknown" }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.timeline {
|
|
position: relative;
|
|
padding-left: 30px;
|
|
}
|
|
|
|
.timeline::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: 15px;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 2px;
|
|
background: #dee2e6;
|
|
}
|
|
|
|
.timeline-item {
|
|
position: relative;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.timeline-marker {
|
|
position: absolute;
|
|
left: -22px;
|
|
top: 0;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
border: 2px solid #fff;
|
|
box-shadow: 0 0 0 2px #dee2e6;
|
|
}
|
|
|
|
.timeline-content {
|
|
background: #f8f9fa;
|
|
padding: 10px 15px;
|
|
border-radius: 8px;
|
|
border-left: 3px solid #dee2e6;
|
|
}
|
|
|
|
.timeline-title {
|
|
margin: 0 0 5px 0;
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.timeline-text {
|
|
margin: 0;
|
|
font-size: 0.85rem;
|
|
color: #6c757d;
|
|
}
|
|
</style>
|
|
{% endblock %}
|
|
|