233 lines
12 KiB
HTML
233 lines
12 KiB
HTML
{% extends "base.html" %}
|
|
{% load i18n static patient_tags %}
|
|
|
|
{% block title %}{% trans "OT Session Detail" %} - Tenhal{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid">
|
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
<div>
|
|
<h1 class="page-header mb-0">
|
|
<i class="fas fa-clipboard-check me-2"></i>{% trans "OT Session" %}
|
|
</h1>
|
|
<nav aria-label="breadcrumb">
|
|
<ol class="breadcrumb">
|
|
<li class="breadcrumb-item"><a href="{% url 'core:dashboard' %}">{% trans "Dashboard" %}</a></li>
|
|
<li class="breadcrumb-item"><a href="{% url 'ot:session_list' %}">{% trans "OT Sessions" %}</a></li>
|
|
<li class="breadcrumb-item active">{% trans "Detail" %}</li>
|
|
</ol>
|
|
</nav>
|
|
</div>
|
|
<div>
|
|
<a href="{% url 'ot:session_update' session.pk %}" class="btn btn-warning">
|
|
<i class="fas fa-edit me-2"></i>{% trans "Edit" %}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-8">
|
|
<!-- Session Info -->
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0"><i class="fas fa-info-circle me-2"></i>{% trans "Session Information" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p><strong>{% trans "Patient" %}:</strong> {% patient_name session.patient %}</p>
|
|
<p><strong>{% trans "MRN" %}:</strong> {{ session.patient.mrn }}</p>
|
|
<p><strong>{% trans "Date" %}:</strong> {{ session.session_date|date:"M d, Y" }}</p>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<p><strong>{% trans "Type" %}:</strong> <span class="badge bg-primary">{{ session.get_session_type_display }}</span></p>
|
|
<p><strong>{% trans "Provider" %}:</strong> {{ session.provider.get_full_name }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Session Metrics -->
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-success text-white">
|
|
<h5 class="mb-0"><i class="fas fa-chart-bar me-2"></i>{% trans "Session Metrics" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row text-center">
|
|
<div class="col-md-6">
|
|
<h6>{% trans "Cooperative Level" %}</h6>
|
|
<div class="display-4 {% if session.cooperative_level >= 3 %}text-success{% elif session.cooperative_level == 2 %}text-warning{% else %}text-danger{% endif %}">
|
|
{{ session.cooperative_level }}/4
|
|
</div>
|
|
<small class="text-muted">{{ session.cooperative_level_display }}</small>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h6>{% trans "Distraction Tolerance" %}</h6>
|
|
<div class="display-4 {% if session.distraction_tolerance >= 3 %}text-success{% elif session.distraction_tolerance == 2 %}text-warning{% else %}text-danger{% endif %}">
|
|
{{ session.distraction_tolerance }}/4
|
|
</div>
|
|
<small class="text-muted">{{ session.distraction_tolerance_display }}</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Activities Checklist -->
|
|
{% if session.activities_checklist %}
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-info text-white">
|
|
<h5 class="mb-0"><i class="fas fa-tasks me-2"></i>{% trans "Today We Work On..." %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<ul class="list-unstyled">
|
|
{% for activity in session.activities_checklist %}
|
|
<li class="mb-2"><i class="fas fa-check-circle text-success me-2"></i>{{ activity }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Target Skills -->
|
|
{% if target_skills %}
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-warning text-dark">
|
|
<h5 class="mb-0"><i class="fas fa-bullseye me-2"></i>{% trans "Target Skills (0-10 Scoring)" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% for skill in target_skills %}
|
|
<div class="mb-3">
|
|
<div class="d-flex justify-content-between align-items-center mb-2">
|
|
<strong>{{ skill.skill_name }}</strong>
|
|
<span class="badge {% if skill.score >= 8 %}bg-success{% elif skill.score >= 5 %}bg-warning{% else %}bg-danger{% endif %}">
|
|
{{ skill.score }}/10 - {{ skill.achievement_level }}
|
|
</span>
|
|
</div>
|
|
<div class="progress" style="height: 25px;">
|
|
<div class="progress-bar {% if skill.score >= 8 %}bg-success{% elif skill.score >= 5 %}bg-warning{% else %}bg-danger{% endif %}"
|
|
role="progressbar"
|
|
style="width: {{ skill.score_percentage }}%"
|
|
aria-valuenow="{{ skill.score }}"
|
|
aria-valuemin="0"
|
|
aria-valuemax="10">
|
|
{{ skill.score }}/10
|
|
</div>
|
|
</div>
|
|
{% if skill.notes %}
|
|
<small class="text-muted">{{ skill.notes }}</small>
|
|
{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Session Notes -->
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-notes-medical me-2"></i>{% trans "Session Notes" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if session.observations %}
|
|
<h6>{% trans "Observations" %}</h6>
|
|
<p>{{ session.observations|linebreaks }}</p>
|
|
{% endif %}
|
|
|
|
{% if session.activities_performed %}
|
|
<h6 class="mt-3">{% trans "Activities Performed" %}</h6>
|
|
<p>{{ session.activities_performed|linebreaks }}</p>
|
|
{% endif %}
|
|
|
|
{% if session.recommendations %}
|
|
<h6 class="mt-3">{% trans "Recommendations" %}</h6>
|
|
<p>{{ session.recommendations|linebreaks }}</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sidebar -->
|
|
<div class="col-lg-4">
|
|
<!-- Signature Status -->
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h6 class="mb-0"><i class="fas fa-signature me-2"></i>{% trans "Signature Status" %}</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if session.signed_by %}
|
|
<p class="text-success">
|
|
<i class="fas fa-check-circle me-2"></i>{% trans "Signed" %}
|
|
</p>
|
|
<p class="small">
|
|
<strong>{% trans "Signed by" %}:</strong> {{ session.signed_by.get_full_name }}<br>
|
|
<strong>{% trans "Signed at" %}:</strong> {{ session.signed_at|date:"Y-m-d H:i" }}
|
|
</p>
|
|
{% else %}
|
|
<div class="alert alert-warning mb-3">
|
|
<i class="fas fa-exclamation-triangle me-2"></i>{% trans "This session has not been signed yet" %}
|
|
</div>
|
|
{% if user.role == 'ADMIN' or user == session.provider %}
|
|
<form method="post" action="{% url 'ot:session_sign' session.pk %}" onsubmit="return confirm('{% trans "Are you sure you want to sign this session? This action cannot be undone." %}');">
|
|
{% csrf_token %}
|
|
<button type="submit" class="btn btn-success w-100">
|
|
<i class="fas fa-signature me-2"></i>{% trans "Sign Session" %}
|
|
</button>
|
|
</form>
|
|
{% else %}
|
|
<p class="text-muted small">
|
|
<i class="fas fa-info-circle me-2"></i>{% trans "Only the session provider or an administrator can sign this session" %}
|
|
</p>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Quick Actions -->
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h6 class="mb-0"><i class="fas fa-bolt me-2"></i>{% trans "Quick Actions" %}</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="d-grid gap-2">
|
|
<a href="{% url 'ot:session_create' %}?patient={{ session.patient.pk }}" class="btn btn-success">
|
|
<i class="fas fa-plus me-2"></i>{% trans "New Session" %}
|
|
</a>
|
|
<a href="{% url 'ot:patient_progress' session.patient.pk %}" class="btn btn-info">
|
|
<i class="fas fa-chart-line me-2"></i>{% trans "View Progress" %}
|
|
</a>
|
|
<a href="{% url 'core:patient_detail' session.patient.pk %}" class="btn btn-outline-secondary">
|
|
<i class="fas fa-user me-2"></i>{% trans "Patient Profile" %}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Previous Sessions -->
|
|
{% if previous_sessions %}
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h6 class="mb-0"><i class="fas fa-history me-2"></i>{% trans "Previous Sessions" %}</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="list-group list-group-flush">
|
|
{% for prev_session in previous_sessions %}
|
|
<a href="{% url 'ot:session_detail' prev_session.pk %}" class="list-group-item list-group-item-action">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<small class="text-muted">{{ prev_session.session_date|date:"M d, Y" }}</small>
|
|
<br>
|
|
<span class="badge bg-primary">{{ prev_session.get_session_type_display }}</span>
|
|
</div>
|
|
<i class="fas fa-chevron-right"></i>
|
|
</div>
|
|
</a>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|