2025-08-12 13:33:25 +03:00

355 lines
20 KiB
HTML

{% extends 'base.html' %}
{% load static %}
{% block title %}Submit Bill{% endblock %}
{% block content %}
<div id="content" class="app-content">
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-8">
<ul class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'core:dashboard' %}">Dashboard</a></li>
<li class="breadcrumb-item"><a href="{% url 'billing:bill_list' %}">Bills</a></li>
<li class="breadcrumb-item"><a href="{% url 'billing:bill_detail' bill.bill_id %}">{{ bill.bill_number }}</a></li>
<li class="breadcrumb-item active">Submit</li>
</ul>
<h1 class="page-header">Submit Bill for Processing</h1>
<!-- Bill Summary -->
<div class="card mb-4">
<div class="card-header">
<h4 class="card-title">Bill Summary</h4>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="row mb-2">
<div class="col-4"><strong>Bill Number:</strong></div>
<div class="col-8">{{ bill.bill_number }}</div>
</div>
<div class="row mb-2">
<div class="col-4"><strong>Patient:</strong></div>
<div class="col-8">{{ bill.patient.first_name }} {{ bill.patient.last_name }}</div>
</div>
<div class="row mb-2">
<div class="col-4"><strong>Patient ID:</strong></div>
<div class="col-8">{{ bill.patient.patient_id }}</div>
</div>
<div class="row mb-2">
<div class="col-4"><strong>Service Date:</strong></div>
<div class="col-8">{{ bill.service_date|date:"M d, Y" }}</div>
</div>
</div>
<div class="col-md-6">
<div class="row mb-2">
<div class="col-4"><strong>Total Amount:</strong></div>
<div class="col-8"><strong class="text-primary">${{ bill.total_amount|floatformat:2 }}</strong></div>
</div>
<div class="row mb-2">
<div class="col-4"><strong>Insurance:</strong></div>
<div class="col-8">{{ bill.insurance_plan.name|default:"Self-Pay" }}</div>
</div>
<div class="row mb-2">
<div class="col-4"><strong>Current Status:</strong></div>
<div class="col-8">
{% if bill.status == 'draft' %}
<span class="badge bg-secondary">Draft</span>
{% elif bill.status == 'pending' %}
<span class="badge bg-warning">Pending</span>
{% elif bill.status == 'submitted' %}
<span class="badge bg-primary">Submitted</span>
{% elif bill.status == 'paid' %}
<span class="badge bg-success">Paid</span>
{% endif %}
</div>
</div>
<div class="row mb-2">
<div class="col-4"><strong>Created:</strong></div>
<div class="col-8">{{ bill.created_at|date:"M d, Y g:i A" }}</div>
</div>
</div>
</div>
</div>
</div>
<!-- Pre-submission Validation -->
<div class="card mb-4">
<div class="card-header">
<h4 class="card-title">Pre-submission Validation</h4>
</div>
<div class="card-body">
<div id="validationResults">
<div class="text-center py-3">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Validating...</span>
</div>
<div class="mt-2">Running validation checks...</div>
</div>
</div>
</div>
</div>
<!-- Submission Form -->
<div class="card" id="submissionForm" style="display: none;">
<div class="card-header">
<h4 class="card-title">Submission Details</h4>
</div>
<div class="card-body">
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
{% endfor %}
{% endif %}
<form method="post" class="form-horizontal">
{% csrf_token %}
<div class="row mb-3">
<label class="col-form-label col-md-3">Submission Method <span class="text-danger">*</span></label>
<div class="col-md-9">
<select name="submission_method" class="form-select" required>
<option value="">Select Method</option>
<option value="electronic">Electronic (EDI)</option>
<option value="paper">Paper/Mail</option>
<option value="portal">Insurance Portal</option>
<option value="direct">Direct Billing</option>
</select>
{% if form.submission_method.errors %}
<div class="text-danger">{{ form.submission_method.errors.0 }}</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<label class="col-form-label col-md-3">Priority Level</label>
<div class="col-md-9">
<select name="priority" class="form-select">
<option value="normal" {% if form.priority.value == 'normal' %}selected{% endif %}>Normal</option>
<option value="high" {% if form.priority.value == 'high' %}selected{% endif %}>High Priority</option>
<option value="urgent" {% if form.priority.value == 'urgent' %}selected{% endif %}>Urgent</option>
<option value="routine" {% if form.priority.value == 'routine' %}selected{% endif %}>Routine</option>
</select>
{% if form.priority.errors %}
<div class="text-danger">{{ form.priority.errors.0 }}</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<label class="col-form-label col-md-3">Expected Processing Time</label>
<div class="col-md-9">
<select name="expected_processing_time" class="form-select">
<option value="standard">Standard (7-14 days)</option>
<option value="expedited">Expedited (3-5 days)</option>
<option value="rush">Rush (1-2 days)</option>
</select>
{% if form.expected_processing_time.errors %}
<div class="text-danger">{{ form.expected_processing_time.errors.0 }}</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<label class="col-form-label col-md-3">Submitted By</label>
<div class="col-md-9">
<input type="text" name="submitted_by" class="form-control"
value="{{ form.submitted_by.value|default:request.user.get_full_name }}" readonly>
{% if form.submitted_by.errors %}
<div class="text-danger">{{ form.submitted_by.errors.0 }}</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<label class="col-form-label col-md-3">Submission Notes</label>
<div class="col-md-9">
<textarea name="submission_notes" class="form-control" rows="4"
placeholder="Any special instructions or notes for the submission">{{ form.submission_notes.value|default:'' }}</textarea>
{% if form.submission_notes.errors %}
<div class="text-danger">{{ form.submission_notes.errors.0 }}</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-9 offset-md-3">
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" name="include_attachments" id="include_attachments"
{% if form.include_attachments.value %}checked{% endif %}>
<label class="form-check-label" for="include_attachments">
Include all supporting documentation and attachments
</label>
</div>
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" name="send_confirmation" id="send_confirmation" checked>
<label class="form-check-label" for="send_confirmation">
Send confirmation email when submitted
</label>
</div>
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" name="track_status" id="track_status" checked>
<label class="form-check-label" for="track_status">
Enable automatic status tracking
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="auto_resubmit" id="auto_resubmit">
<label class="form-check-label" for="auto_resubmit">
Automatically resubmit if rejected (up to 3 attempts)
</label>
</div>
</div>
</div>
<div class="alert alert-info">
<i class="fa fa-info-circle me-2"></i>
<strong>Important:</strong> Once submitted, this bill cannot be modified. Please ensure all information is accurate before proceeding.
</div>
<div class="row">
<div class="col-md-9 offset-md-3">
<button type="submit" class="btn btn-primary" id="submitBtn" disabled>
<i class="fa fa-paper-plane me-2"></i>Submit Bill
</button>
<a href="{% url 'billing:bill_detail' bill.bill_id %}" class="btn btn-secondary ms-2">
<i class="fa fa-arrow-left me-2"></i>Go Back
</a>
</div>
</div>
</form>
</div>
</div>
<!-- Submission History -->
{% if submission_history %}
<div class="card mt-4">
<div class="card-header">
<h4 class="card-title">Previous Submission Attempts</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-sm">
<thead>
<tr>
<th>Date</th>
<th>Method</th>
<th>Status</th>
<th>Notes</th>
<th>Submitted By</th>
</tr>
</thead>
<tbody>
{% for history in submission_history %}
<tr>
<td>{{ history.submitted_at|date:"M d, Y g:i A" }}</td>
<td>{{ history.method|title }}</td>
<td>
{% if history.status == 'success' %}
<span class="badge bg-success">Success</span>
{% elif history.status == 'failed' %}
<span class="badge bg-danger">Failed</span>
{% elif history.status == 'pending' %}
<span class="badge bg-warning">Pending</span>
{% endif %}
</td>
<td>{{ history.notes|default:"—" }}</td>
<td>{{ history.submitted_by }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block js %}
<script>
$(document).ready(function() {
// Run validation checks
runValidationChecks();
// Update processing time based on priority
$('select[name="priority"]').change(function() {
var priority = $(this).val();
var processingSelect = $('select[name="expected_processing_time"]');
if (priority === 'urgent') {
processingSelect.val('rush');
} else if (priority === 'high') {
processingSelect.val('expedited');
} else {
processingSelect.val('standard');
}
});
// Auto-check include attachments for certain submission methods
$('select[name="submission_method"]').change(function() {
var method = $(this).val();
if (method === 'electronic' || method === 'portal') {
$('#include_attachments').prop('checked', true);
}
});
});
function runValidationChecks() {
// Simulate validation process
setTimeout(function() {
var validationHtml = `
<div class="row">
<div class="col-md-6">
<h6>Required Information</h6>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>Patient demographics complete
</div>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>Insurance information verified
</div>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>Service codes present
</div>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>Diagnosis codes present
</div>
</div>
<div class="col-md-6">
<h6>Billing Validation</h6>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>Amounts calculated correctly
</div>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>No duplicate charges
</div>
<div class="mb-2">
<i class="fa fa-exclamation-triangle text-warning me-2"></i>Missing prior authorization (if required)
</div>
<div class="mb-2">
<i class="fa fa-check text-success me-2"></i>Submission format valid
</div>
</div>
</div>
<div class="alert alert-success mt-3">
<i class="fa fa-check-circle me-2"></i>
<strong>Validation Complete:</strong> Bill is ready for submission with 1 warning.
</div>
`;
$('#validationResults').html(validationHtml);
$('#submissionForm').show();
$('#submitBtn').prop('disabled', false);
}, 2000);
}
</script>
{% endblock %}