337 lines
16 KiB
HTML
337 lines
16 KiB
HTML
{% extends "base.html" %}
|
|
{% load static %}
|
|
|
|
{% block title %}Admission Details - {{ block.super }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid">
|
|
<div class="row mb-3">
|
|
<div class="col">
|
|
<h1>Admission Details</h1>
|
|
<p class="text-muted">{{ admission.patient.get_full_name }} • MRN: {{ admission.patient.mrn }}</p>
|
|
</div>
|
|
<div class="col-auto">
|
|
<div class="btn-group">
|
|
{% if admission.status == 'ADMITTED' %}
|
|
<button class="btn btn-warning"
|
|
hx-get="{% url 'inpatients:transfer_patient' admission.id %}"
|
|
hx-target="#transfer-modal .modal-content"
|
|
data-bs-toggle="modal"
|
|
data-bs-target="#transfer-modal">
|
|
<i class="fas fa-exchange-alt me-1"></i>Transfer
|
|
</button>
|
|
<button class="btn btn-success"
|
|
hx-get="{% url 'inpatients:discharge_patient' admission.id %}"
|
|
hx-target="#discharge-modal .modal-content"
|
|
data-bs-toggle="modal"
|
|
data-bs-target="#discharge-modal">
|
|
<i class="fas fa-sign-out-alt me-1"></i>Discharge
|
|
</button>
|
|
{% endif %}
|
|
<button class="btn btn-outline-primary">
|
|
<i class="fas fa-edit me-1"></i>Edit
|
|
</button>
|
|
<button class="btn btn-outline-secondary">
|
|
<i class="fas fa-print me-1"></i>Print
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<!-- Admission Information -->
|
|
<div class="col-lg-6">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-user-injured me-2"></i>Admission Information</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-sm">
|
|
<tr><td>Admission Date</td><td>{{ admission.admission_datetime|date:"M d, Y H:i" }}</td></tr>
|
|
<tr><td>Type</td><td>{{ admission.get_admission_type_display }}</td></tr>
|
|
<tr><td>Status</td><td>
|
|
{% if admission.status == 'ADMITTED' %}
|
|
<span class="badge bg-success">{{ admission.get_status_display }}</span>
|
|
{% elif admission.status == 'PENDING' %}
|
|
<span class="badge bg-warning">{{ admission.get_status_display }}</span>
|
|
{% elif admission.status == 'TRANSFERRED' %}
|
|
<span class="badge bg-info">{{ admission.get_status_display }}</span>
|
|
{% elif admission.status == 'DISCHARGED' %}
|
|
<span class="badge bg-secondary">{{ admission.get_status_display }}</span>
|
|
{% elif admission.status == 'CANCELLED' %}
|
|
<span class="badge bg-danger">{{ admission.get_status_display }}</span>
|
|
{% endif %}
|
|
</td></tr>
|
|
<tr><td>Priority</td><td>{{ admission.get_priority_display }}</td></tr>
|
|
<tr><td>Length of Stay</td><td>{{ admission.length_of_stay }} days</td></tr>
|
|
{% if admission.anticipated_discharge_date %}
|
|
<tr><td>Expected Discharge</td><td>{{ admission.anticipated_discharge_date|date:"M d, Y" }}</td></tr>
|
|
{% endif %}
|
|
{% if admission.discharge_datetime %}
|
|
<tr><td>Actual Discharge</td><td>{{ admission.discharge_datetime|date:"M d, Y H:i" }}</td></tr>
|
|
{% endif %}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-stethoscope me-2"></i>Clinical Information</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="mb-3">
|
|
<strong>Chief Complaint:</strong>
|
|
<p>{{ admission.chief_complaint|default:"Not specified" }}</p>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Admitting Diagnosis:</strong>
|
|
<p>{{ admission.admitting_diagnosis|default:"Not specified" }}</p>
|
|
</div>
|
|
{% if admission.secondary_diagnoses %}
|
|
<div class="mb-3">
|
|
<strong>Secondary Diagnoses:</strong>
|
|
<p>{{ admission.secondary_diagnoses|linebreaks }}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% if admission.allergies %}
|
|
<div class="mb-3">
|
|
<strong>Allergies:</strong>
|
|
<p class="text-danger">{{ admission.allergies|linebreaks }}</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
{% if admission.notes %}
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-sticky-note me-2"></i>Notes</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>{{ admission.notes|linebreaks }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<!-- Patient & Location Information -->
|
|
<div class="col-lg-6">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-user me-2"></i>Patient Information</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-sm">
|
|
<tr><td>Name</td><td><strong>{{ admission.patient.get_full_name }}</strong></td></tr>
|
|
<tr><td>MRN</td><td>{{ admission.patient.mrn }}</td></tr>
|
|
<tr><td>Date of Birth</td><td>{{ admission.patient.date_of_birth|date:"M d, Y" }}</td></tr>
|
|
<tr><td>Age</td><td>{{ admission.patient.age }}</td></tr>
|
|
<tr><td>Gender</td><td>{{ admission.patient.get_gender_display }}</td></tr>
|
|
<tr><td>Phone</td><td>{{ admission.patient.phone_number|default:"Not provided" }}</td></tr>
|
|
<tr><td>Email</td><td>{{ admission.patient.email|default:"Not provided" }}</td></tr>
|
|
</table>
|
|
<div class="mt-2">
|
|
<a href="{% url 'patients:patient_detail' admission.patient.id %}" class="btn btn-sm btn-outline-primary">
|
|
<i class="fas fa-eye me-1"></i>View Patient
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-map-marker-alt me-2"></i>Current Location</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if admission.current_ward %}
|
|
<table class="table table-sm">
|
|
<tr><td>Ward</td><td><strong>{{ admission.current_ward.name }}</strong></td></tr>
|
|
<tr><td>Ward Type</td><td>{{ admission.current_ward.get_ward_type_display }}</td></tr>
|
|
{% if admission.current_bed %}
|
|
<tr><td>Room</td><td>{{ admission.current_bed.room_number }}</td></tr>
|
|
<tr><td>Bed</td><td>{{ admission.current_bed.bed_number }}</td></tr>
|
|
<tr><td>Bed Type</td><td>{{ admission.current_bed.get_bed_type_display }}</td></tr>
|
|
{% endif %}
|
|
</table>
|
|
{% else %}
|
|
<p class="text-muted">No ward assigned</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-user-md me-2"></i>Care Team</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-sm">
|
|
{% if admission.attending_physician %}
|
|
<tr><td>Attending Physician</td><td>{{ admission.attending_physician.get_full_name }}</td></tr>
|
|
{% endif %}
|
|
{% if admission.admitting_physician %}
|
|
<tr><td>Admitting Physician</td><td>{{ admission.admitting_physician.get_full_name }}</td></tr>
|
|
{% endif %}
|
|
{% if admission.primary_nurse %}
|
|
<tr><td>Primary Nurse</td><td>{{ admission.primary_nurse.get_full_name }}</td></tr>
|
|
{% endif %}
|
|
{% if admission.case_manager %}
|
|
<tr><td>Case Manager</td><td>{{ admission.case_manager.get_full_name }}</td></tr>
|
|
{% endif %}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Transfers Section -->
|
|
{% if transfers %}
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-exchange-alt me-2"></i>Transfer History</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm">
|
|
<thead>
|
|
<tr>
|
|
<th>Date</th>
|
|
<th>From</th>
|
|
<th>To</th>
|
|
<th>Reason</th>
|
|
<th>Status</th>
|
|
<th>Requested By</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for transfer in transfers %}
|
|
<tr>
|
|
<td>{{ transfer.requested_datetime|date:"M d, Y H:i" }}</td>
|
|
<td>
|
|
{{ transfer.from_ward.name }}
|
|
{% if transfer.from_bed %}
|
|
<br><small class="text-muted">{{ transfer.from_bed.room_number }}-{{ transfer.from_bed.bed_number }}</small>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{{ transfer.to_ward.name }}
|
|
{% if transfer.to_bed %}
|
|
<br><small class="text-muted">{{ transfer.to_bed.room_number }}-{{ transfer.to_bed.bed_number }}</small>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ transfer.reason|truncatechars:50 }}</td>
|
|
<td>
|
|
{% if transfer.status == 'COMPLETED' %}
|
|
<span class="badge bg-success">{{ transfer.get_status_display }}</span>
|
|
{% elif transfer.status == 'CANCELLED' %}
|
|
<span class="badge bg-danger">{{ transfer.get_status_display }}</span>
|
|
{% else %}
|
|
<span class="badge bg-warning">{{ transfer.get_status_display }}</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ transfer.requested_by.get_full_name }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Surgery Schedule Section -->
|
|
{% if surgeries %}
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-procedures me-2"></i>Surgery Schedule</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm">
|
|
<thead>
|
|
<tr>
|
|
<th>Date</th>
|
|
<th>Procedure</th>
|
|
<th>Surgeon</th>
|
|
<th>Type</th>
|
|
<th>Status</th>
|
|
<th>Duration</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for surgery in surgeries %}
|
|
<tr>
|
|
<td>{{ surgery.scheduled_date|date:"M d, Y" }}<br>
|
|
<small class="text-muted">{{ surgery.scheduled_start_time|time:"H:i" }}</small>
|
|
</td>
|
|
<td>{{ surgery.procedure_name }}</td>
|
|
<td>{{ surgery.primary_surgeon.get_full_name }}</td>
|
|
<td>{{ surgery.get_surgery_type_display }}</td>
|
|
<td>
|
|
{% if surgery.status == 'COMPLETED' %}
|
|
<span class="badge bg-success">{{ surgery.get_status_display }}</span>
|
|
{% elif surgery.status == 'CANCELLED' %}
|
|
<span class="badge bg-danger">{{ surgery.get_status_display }}</span>
|
|
{% elif surgery.status == 'IN_PROGRESS' %}
|
|
<span class="badge bg-info">{{ surgery.get_status_display }}</span>
|
|
{% else %}
|
|
<span class="badge bg-warning">{{ surgery.get_status_display }}</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ surgery.estimated_duration_minutes }} min</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Discharge Summary Section -->
|
|
{% if has_discharge_summary %}
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-file-medical me-2"></i>Discharge Summary</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p class="text-muted">Discharge summary available.</p>
|
|
<button class="btn btn-outline-primary">
|
|
<i class="fas fa-eye me-1"></i>View Discharge Summary
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<!-- Transfer Modal -->
|
|
<div class="modal fade" id="transfer-modal" tabindex="-1">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<!-- Content loaded via HTMX -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Discharge Modal -->
|
|
<div class="modal fade" id="discharge-modal" tabindex="-1">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<!-- Content loaded via HTMX -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|