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

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 %}