216 lines
10 KiB
HTML
216 lines
10 KiB
HTML
{% extends "base.html" %}
|
|
{% load i18n static patient_tags %}
|
|
|
|
{% block title %}{% trans "SLP Consultation 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-comments me-2"></i>{% trans "SLP Consultation" %}
|
|
</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 'slp:consult_list' %}">{% trans "SLP Consultations" %}</a></li>
|
|
<li class="breadcrumb-item active">{% trans "Detail" %}</li>
|
|
</ol>
|
|
</nav>
|
|
</div>
|
|
<div>
|
|
<a href="{% url 'slp:consult_update' consultation.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">
|
|
<!-- Basic 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 "Consultation Information" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p><strong>{% trans "Patient" %}:</strong> {% patient_name consultation.patient %}</p>
|
|
<p><strong>{% trans "MRN" %}:</strong> {{ consultation.patient.mrn }}</p>
|
|
<p><strong>{% trans "Date" %}:</strong> {{ consultation.consultation_date|date:"M d, Y" }}</p>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<p><strong>{% trans "Variant" %}:</strong>
|
|
<span class="badge {% if consultation.consult_variant == 'ASD' %}bg-primary{% elif consultation.consult_variant == 'LANGUAGE_DELAY' %}bg-info{% else %}bg-warning{% endif %}">
|
|
{{ consultation.get_consult_variant_display }}
|
|
</span>
|
|
</p>
|
|
<p><strong>{% trans "Service Type" %}:</strong>
|
|
<span class="badge bg-secondary">{{ consultation.get_type_of_service_display }}</span>
|
|
</p>
|
|
<p><strong>{% trans "Provider" %}:</strong> {{ consultation.provider.get_full_name }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Primary Concern -->
|
|
{% if consultation.primary_concern %}
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-danger text-white">
|
|
<h5 class="mb-0"><i class="fas fa-exclamation-triangle me-2"></i>{% trans "Primary Concern" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>{{ consultation.primary_concern|linebreaks }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Suspected Areas -->
|
|
{% if consultation.suspected_areas %}
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-warning text-dark">
|
|
<h5 class="mb-0"><i class="fas fa-list-ul me-2"></i>{% trans "Suspected Problem Areas" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<ul>
|
|
{# {% for area in consultation.suspected_areas %}#}
|
|
<li>{{ consultation.suspected_areas }}</li>
|
|
{# {% endfor %}#}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Communication & Environment -->
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-info text-white">
|
|
<h5 class="mb-0"><i class="fas fa-comment-dots me-2"></i>{% trans "Communication & Environment" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if consultation.communication_modes %}
|
|
<h6>{% trans "Communication Modes" %}</h6>
|
|
<div class="mb-3">
|
|
{% for mode in consultation.communication_modes %}
|
|
<span class="badge bg-info me-1">{{ mode }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% if consultation.screen_time_hours %}
|
|
<p><strong>{% trans "Screen Time" %}:</strong> {{ consultation.screen_time_hours }} {% trans "hours/day" %}</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Variant Questionnaire -->
|
|
{% if consultation.variant_questionnaire %}
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-success text-white">
|
|
<h5 class="mb-0"><i class="fas fa-question-circle me-2"></i>{% trans "Variant-Specific Questionnaire" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% for key, value in consultation.variant_questionnaire.items %}
|
|
<p><strong>{{ key }}:</strong> {{ value }}</p>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Skills to Observe -->
|
|
{% if consultation.skills_to_observe %}
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-eye me-2"></i>{% trans "Skills to Observe" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% for skill, observation in consultation.skills_to_observe.items %}
|
|
<p><strong>{{ skill }}:</strong> {{ observation }}</p>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Oral Motor Screening -->
|
|
{% if consultation.oral_motor_screening %}
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-mouth-open me-2"></i>{% trans "Oral Motor Screening" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% for item, result in consultation.oral_motor_screening.items %}
|
|
<p><strong>{{ item }}:</strong> {{ result }}</p>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Recommendations -->
|
|
{% if consultation.recommendations %}
|
|
<div class="card mb-3">
|
|
<div class="card-header bg-secondary text-white">
|
|
<h5 class="mb-0"><i class="fas fa-lightbulb me-2"></i>{% trans "Recommendations" %}</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>{{ consultation.recommendations|linebreaks }}</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</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 consultation.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> {{ consultation.signed_by.get_full_name }}<br>
|
|
<strong>{% trans "Signed at" %}:</strong> {{ consultation.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 consultation has not been signed yet" %}
|
|
</div>
|
|
{% if user.role == 'ADMIN' or user == consultation.provider %}
|
|
<form method="post" action="{% url 'slp:consult_sign' consultation.pk %}" onsubmit="return confirm('{% trans "Are you sure you want to sign this consultation? 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 Consultation" %}
|
|
</button>
|
|
</form>
|
|
{% else %}
|
|
<p class="text-muted small">
|
|
<i class="fas fa-info-circle me-2"></i>{% trans "Only the consultation provider or an administrator can sign this consultation" %}
|
|
</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 'slp:assessment_create' %}?patient={{ consultation.patient.pk }}" class="btn btn-success">
|
|
<i class="fas fa-clipboard-check me-2"></i>{% trans "Create Assessment" %}
|
|
</a>
|
|
<a href="{% url 'core:patient_detail' consultation.patient.pk %}" class="btn btn-outline-secondary">
|
|
<i class="fas fa-user me-2"></i>{% trans "Patient Profile" %}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|