agdar/ot/templates/ot/session_detail.html
Marwan Alwali a04817ef6e update
2025-11-02 19:25:08 +03:00

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