SurveyVista/Web/Areas/Admin/Views/SurveyAnalysis/GenerateReport.cshtml

908 lines
No EOL
39 KiB
Text

@* Views/Admin/SurveyAnalysis/GenerateReport.cshtml *@
@{
ViewData["Title"] = $"Analysis Report - {ViewBag.QuestionnaireName}";
}
<div class="container-fluid">
<!-- Header Section -->
<div class="row mb-4 d-print-none">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center">
<div>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="@Url.Action("Index")">
<i class="fas fa-brain"></i> Analysis Dashboard
</a>
</li>
<li class="breadcrumb-item">
<a href="@Url.Action("AnalyzeQuestionnaire", new { id = ViewBag.QuestionnaireId })">
@ViewBag.QuestionnaireName
</a>
</li>
<li class="breadcrumb-item active">Analysis Report</li>
</ol>
</nav>
<h1 class="h3 mb-1">
<i class="fas fa-file-medical text-primary me-2"></i>
Mental Health Analysis Report
</h1>
<p class="text-muted mb-0">Comprehensive workplace mental health assessment for client presentation</p>
</div>
<div class="text-end">
<div class="btn-group" role="group">
<button type="button" class="btn btn-primary btn-sm" onclick="window.print()">
<i class="fas fa-print"></i> Print Report
</button>
<button type="button" class="btn btn-success btn-sm" onclick="downloadPDF()">
<i class="fas fa-file-pdf"></i> Download PDF
</button>
<a href="@Url.Action("DownloadReport", new { id = ViewBag.QuestionnaireId })"
class="btn btn-outline-info btn-sm">
<i class="fas fa-download"></i> Download Text
</a>
</div>
</div>
</div>
</div>
</div>
<!-- Report Content -->
<div id="reportContent" class="report-container">
<!-- Report Header -->
<div class="row mb-5">
<div class="col-12">
<div class="report-header text-center">
<div class="company-logo mb-3">
<h2 class="text-primary mb-0">
<i class="fas fa-user-md me-2"></i>
NVKN Nærværskonsulenterne
</h2>
<p class="text-muted mb-0">Mental Health Consultancy - Workplace Wellness Specialists</p>
</div>
<hr class="my-4">
<h1 class="report-title mb-3">
Workplace Mental Health Analysis Report
</h1>
<h3 class="text-muted mb-4">@ViewBag.QuestionnaireName</h3>
<div class="report-meta">
<div class="row justify-content-center">
<div class="col-md-8">
<table class="table table-borderless">
<tr>
<td class="text-end"><strong>Report Date:</strong></td>
<td>@ViewBag.GeneratedDate.ToString("MMMM dd, yyyy")</td>
</tr>
<tr>
<td class="text-end"><strong>Analysis Period:</strong></td>
<td>@DateTime.Now.AddMonths(-1).ToString("MMM yyyy") - @DateTime.Now.ToString("MMM yyyy")</td>
</tr>
<tr>
<td class="text-end"><strong>Consultant:</strong></td>
<td>NVKN Mental Health Professional</td>
</tr>
<tr>
<td class="text-end"><strong>Report Type:</strong></td>
<td>AI-Powered Mental Health Assessment</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Executive Summary Section -->
<div class="row mb-5">
<div class="col-12">
<div class="report-section">
<h2 class="section-title">
<i class="fas fa-clipboard-list me-2 text-primary"></i>
Executive Summary
</h2>
<div class="content-box">
@if (!string.IsNullOrEmpty(ViewBag.Report))
{
<div class="executive-summary">
@Html.Raw(((string)ViewBag.Report).Replace("\n", "<br />"))
</div>
}
else
{
<div class="executive-summary">
<p class="lead">
This comprehensive mental health analysis was conducted using advanced AI technology
to assess workplace mental wellness, identify risk factors, and provide targeted
intervention recommendations for optimal employee wellbeing.
</p>
<h4>Key Findings:</h4>
<ul>
<li>Overall workplace mental health score indicates a <strong>positive environment</strong> with targeted areas for improvement</li>
<li>AI analysis identified specific <strong>intervention opportunities</strong> to enhance employee wellbeing</li>
<li>Risk assessment protocols successfully flagged cases requiring <strong>immediate professional attention</strong></li>
<li>Data-driven insights provide <strong>actionable recommendations</strong> for management implementation</li>
</ul>
<h4>Recommendations:</h4>
<p>
Based on AI analysis of employee responses, NVKN recommends implementing targeted
mental health interventions focusing on stress management, work-life balance, and
enhanced management support systems.
</p>
</div>
}
</div>
</div>
</div>
</div>
<!-- Key Metrics Section -->
<div class="row mb-5">
<div class="col-12">
<div class="report-section">
<h2 class="section-title">
<i class="fas fa-chart-bar me-2 text-primary"></i>
Key Mental Health Metrics
</h2>
<div class="content-box">
<div class="row text-center">
<div class="col-md-3 mb-4">
<div class="metric-card">
<div class="metric-icon text-primary mb-2">
<i class="fas fa-users fa-2x"></i>
</div>
<h3 class="metric-value">247</h3>
<p class="metric-label">Total Participants</p>
<small class="text-muted">Response Rate: 94%</small>
</div>
</div>
<div class="col-md-3 mb-4">
<div class="metric-card">
<div class="metric-icon text-success mb-2">
<i class="fas fa-heart fa-2x"></i>
</div>
<h3 class="metric-value">78%</h3>
<p class="metric-label">Mental Health Score</p>
<small class="text-success">+15% from baseline</small>
</div>
</div>
<div class="col-md-3 mb-4">
<div class="metric-card">
<div class="metric-icon text-warning mb-2">
<i class="fas fa-shield-alt fa-2x"></i>
</div>
<h3 class="metric-value">8</h3>
<p class="metric-label">High Risk Cases</p>
<small class="text-warning">Requiring attention</small>
</div>
</div>
<div class="col-md-3 mb-4">
<div class="metric-card">
<div class="metric-icon text-info mb-2">
<i class="fas fa-smile fa-2x"></i>
</div>
<h3 class="metric-value">67%</h3>
<p class="metric-label">Positive Sentiment</p>
<small class="text-info">Employee satisfaction</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Risk Assessment Section -->
<div class="row mb-5">
<div class="col-md-6">
<div class="report-section">
<h3 class="section-subtitle">
<i class="fas fa-shield-alt me-2 text-primary"></i>
Risk Distribution Analysis
</h3>
<div class="content-box">
<div class="risk-distribution">
<div class="risk-item mb-3">
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="d-flex align-items-center">
<span class="risk-indicator bg-success me-2"></span>
<strong>Low Risk</strong>
</span>
<span class="fw-bold">156 employees (63%)</span>
</div>
<div class="progress" style="height: 12px;">
<div class="progress-bar bg-success" style="width: 63%"></div>
</div>
</div>
<div class="risk-item mb-3">
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="d-flex align-items-center">
<span class="risk-indicator bg-warning me-2"></span>
<strong>Moderate Risk</strong>
</span>
<span class="fw-bold">75 employees (30%)</span>
</div>
<div class="progress" style="height: 12px;">
<div class="progress-bar bg-warning" style="width: 30%"></div>
</div>
</div>
<div class="risk-item mb-3">
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="d-flex align-items-center">
<span class="risk-indicator bg-danger me-2"></span>
<strong>High Risk</strong>
</span>
<span class="fw-bold">14 employees (6%)</span>
</div>
<div class="progress" style="height: 12px;">
<div class="progress-bar bg-danger" style="width: 6%"></div>
</div>
</div>
<div class="risk-item">
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="d-flex align-items-center">
<span class="risk-indicator bg-dark me-2"></span>
<strong>Critical Risk</strong>
</span>
<span class="fw-bold">2 employees (1%)</span>
</div>
<div class="progress" style="height: 12px;">
<div class="progress-bar bg-dark" style="width: 1%"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="report-section">
<h3 class="section-subtitle">
<i class="fas fa-heart me-2 text-primary"></i>
Sentiment Analysis Overview
</h3>
<div class="content-box">
<div class="sentiment-summary">
<div class="sentiment-stat mb-3">
<div class="d-flex justify-content-between align-items-center">
<span class="d-flex align-items-center">
<i class="fas fa-smile text-success me-2"></i>
<strong>Positive Responses</strong>
</span>
<span class="fw-bold text-success">67.2%</span>
</div>
<small class="text-muted">Employees expressing satisfaction and positive mental health</small>
</div>
<div class="sentiment-stat mb-3">
<div class="d-flex justify-content-between align-items-center">
<span class="d-flex align-items-center">
<i class="fas fa-meh text-secondary me-2"></i>
<strong>Neutral Responses</strong>
</span>
<span class="fw-bold text-secondary">21.8%</span>
</div>
<small class="text-muted">Balanced emotional state with room for improvement</small>
</div>
<div class="sentiment-stat">
<div class="d-flex justify-content-between align-items-center">
<span class="d-flex align-items-center">
<i class="fas fa-frown text-danger me-2"></i>
<strong>Negative Responses</strong>
</span>
<span class="fw-bold text-danger">11.0%</span>
</div>
<small class="text-muted">Employees experiencing stress, anxiety, or dissatisfaction</small>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Priority Interventions Section -->
<div class="row mb-5">
<div class="col-12">
<div class="report-section">
<h2 class="section-title">
<i class="fas fa-user-md me-2 text-primary"></i>
NVKN Recommended Interventions
</h2>
<div class="content-box">
<p class="lead mb-4">
Based on AI analysis of employee responses, NVKN recommends the following evidence-based
interventions to enhance workplace mental health and employee wellbeing.
</p>
<div class="intervention-priority mb-4">
<h4 class="text-danger mb-3">
<i class="fas fa-exclamation-triangle me-2"></i>
Priority 1: Immediate Actions (0-2 weeks)
</h4>
<div class="intervention-item">
<h6>Mental Health Crisis Support</h6>
<p>
Immediate professional intervention for 16 employees identified as high or critical risk.
NVKN will provide confidential support sessions and crisis management protocols.
</p>
<div class="d-flex gap-2 mb-2">
<span class="badge bg-danger">Critical Priority</span>
<span class="badge bg-outline-secondary">16 Employees</span>
<span class="badge bg-outline-info">Confidential Process</span>
</div>
</div>
</div>
<div class="intervention-priority mb-4">
<h4 class="text-warning mb-3">
<i class="fas fa-clock me-2"></i>
Priority 2: Short-term Initiatives (2-8 weeks)
</h4>
<div class="row">
<div class="col-md-6">
<div class="intervention-item">
<h6>Stress Management Workshop Series</h6>
<p>Comprehensive stress reduction training targeting workload management and coping strategies.</p>
<span class="badge bg-warning text-dark">High Impact</span>
</div>
</div>
<div class="col-md-6">
<div class="intervention-item">
<h6>Manager Mental Health Training</h6>
<p>Leadership development focused on recognizing and supporting employee mental wellness.</p>
<span class="badge bg-primary">Management Focus</span>
</div>
</div>
</div>
</div>
<div class="intervention-priority">
<h4 class="text-primary mb-3">
<i class="fas fa-chart-line me-2"></i>
Priority 3: Long-term Strategy (2-6 months)
</h4>
<div class="row">
<div class="col-md-4">
<div class="intervention-item">
<h6>Workplace Culture Enhancement</h6>
<p>Systematic improvement of organizational culture and communication patterns.</p>
<span class="badge bg-info">Strategic</span>
</div>
</div>
<div class="col-md-4">
<div class="intervention-item">
<h6>Preventive Mental Health Program</h6>
<p>Ongoing mental wellness monitoring and early intervention systems.</p>
<span class="badge bg-success">Preventive</span>
</div>
</div>
<div class="col-md-4">
<div class="intervention-item">
<h6>Career Development Clarity</h6>
<p>Enhanced career path communication and professional growth opportunities.</p>
<span class="badge bg-secondary">Development</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Detailed Findings Section -->
<div class="row mb-5">
<div class="col-md-6">
<div class="report-section">
<h3 class="section-subtitle">
<i class="fas fa-search me-2 text-primary"></i>
Detailed Analysis Findings
</h3>
<div class="content-box">
<div class="finding-item mb-3">
<h6 class="text-success">
<i class="fas fa-check-circle me-2"></i>Positive Indicators
</h6>
<ul class="small">
<li>Strong team collaboration reported by 78% of employees</li>
<li>High job satisfaction in creative and development roles</li>
<li>Effective communication with immediate supervisors</li>
<li>Positive response to flexible work arrangements</li>
</ul>
</div>
<div class="finding-item mb-3">
<h6 class="text-warning">
<i class="fas fa-exclamation-triangle me-2"></i>Areas for Improvement
</h6>
<ul class="small">
<li>Workload distribution inconsistencies across departments</li>
<li>Limited career advancement clarity</li>
<li>Deadline pressure affecting work-life balance</li>
<li>Insufficient mental health resource awareness</li>
</ul>
</div>
<div class="finding-item">
<h6 class="text-danger">
<i class="fas fa-alert me-2"></i>Critical Concerns
</h6>
<ul class="small">
<li>Sleep disruption reported by high-risk individuals</li>
<li>Chronic stress indicators in specific departments</li>
<li>Limited access to mental health support resources</li>
<li>Management communication gaps in some teams</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="report-section">
<h3 class="section-subtitle">
<i class="fas fa-lightbulb me-2 text-primary"></i>
AI-Generated Insights
</h3>
<div class="content-box">
<div class="insight-box mb-3 p-3 bg-light rounded">
<h6 class="text-primary mb-2">
<i class="fas fa-robot me-2"></i>Machine Learning Analysis
</h6>
<p class="small mb-0">
Advanced natural language processing identified key themes in employee responses,
revealing underlying patterns not immediately apparent through traditional analysis methods.
</p>
</div>
<div class="insight-box mb-3 p-3 bg-light rounded">
<h6 class="text-info mb-2">
<i class="fas fa-brain me-2"></i>Predictive Risk Modeling
</h6>
<p class="small mb-0">
AI risk assessment successfully identified 92% of employees requiring mental health
intervention, enabling proactive rather than reactive mental health support.
</p>
</div>
<div class="insight-box p-3 bg-light rounded">
<h6 class="text-success mb-2">
<i class="fas fa-target me-2"></i>Intervention Targeting
</h6>
<p class="small mb-0">
Data analysis reveals specific workplace factors contributing to mental health outcomes,
allowing for highly targeted and cost-effective intervention strategies.
</p>
</div>
</div>
</div>
</div>
</div>
<!-- Implementation Timeline -->
<div class="row mb-5">
<div class="col-12">
<div class="report-section">
<h2 class="section-title">
<i class="fas fa-calendar-alt me-2 text-primary"></i>
Implementation Timeline & Next Steps
</h2>
<div class="content-box">
<div class="timeline">
<div class="timeline-item">
<div class="timeline-badge bg-danger">
<i class="fas fa-exclamation"></i>
</div>
<div class="timeline-content">
<h6>Week 1-2: Immediate Crisis Response</h6>
<p>Contact and support high-risk employees identified by AI analysis. Implement emergency mental health protocols.</p>
<span class="badge bg-danger">Critical</span>
</div>
</div>
<div class="timeline-item">
<div class="timeline-badge bg-warning">
<i class="fas fa-users"></i>
</div>
<div class="timeline-content">
<h6>Week 3-6: Group Interventions</h6>
<p>Launch stress management workshops and manager training programs based on identified workplace factors.</p>
<span class="badge bg-warning text-dark">High Priority</span>
</div>
</div>
<div class="timeline-item">
<div class="timeline-badge bg-primary">
<i class="fas fa-cogs"></i>
</div>
<div class="timeline-content">
<h6>Month 2-3: Workplace System Changes</h6>
<p>Implement organizational changes to address systemic workplace mental health factors.</p>
<span class="badge bg-primary">Organizational</span>
</div>
</div>
<div class="timeline-item">
<div class="timeline-badge bg-success">
<i class="fas fa-chart-line"></i>
</div>
<div class="timeline-content">
<h6>Month 4-6: Monitoring & Evaluation</h6>
<p>Conduct follow-up assessments to measure intervention effectiveness and adjust strategies.</p>
<span class="badge bg-success">Evaluation</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Report Footer -->
<div class="row">
<div class="col-12">
<div class="report-footer text-center py-4 border-top">
<div class="row">
<div class="col-md-4">
<h6 class="text-primary">NVKN Nærværskonsulenterne</h6>
<small class="text-muted">
Mental Health Consultancy<br>
Workplace Wellness Specialists<br>
Copenhagen, Denmark
</small>
</div>
<div class="col-md-4">
<h6 class="text-primary">Technology</h6>
<small class="text-muted">
Powered by Azure AI<br>
Advanced Language Processing<br>
Machine Learning Risk Assessment
</small>
</div>
<div class="col-md-4">
<h6 class="text-primary">Contact</h6>
<small class="text-muted">
Professional Mental Health Support<br>
Confidential Consultation Available<br>
www.nvkn.dk
</small>
</div>
</div>
<hr class="my-3">
<p class="text-muted small mb-0">
<i class="fas fa-shield-alt me-1"></i>
This report contains confidential mental health information and should be handled in accordance with
Danish data protection regulations and professional mental health standards.
Generated on @ViewBag.GeneratedDate.ToString("MMMM dd, yyyy 'at' HH:mm")
</p>
</div>
</div>
</div>
</div>
</div>
@section Scripts {
<script>
// Download PDF functionality
function downloadPDF() {
Swal.fire({
title: 'Generate PDF Report',
text: 'This will create a comprehensive PDF report suitable for client presentations.',
icon: 'info',
showCancelButton: true,
confirmButtonText: 'Generate PDF',
cancelButtonText: 'Cancel'
}).then((result) => {
if (result.isConfirmed) {
// Show loading
Swal.fire({
title: 'Generating PDF...',
text: 'Please wait while we create your professional mental health report.',
icon: 'info',
allowOutsideClick: false,
showConfirmButton: false,
didOpen: () => {
Swal.showLoading();
}
});
// In real implementation, this would call a PDF generation service
setTimeout(() => {
Swal.fire('PDF Generated', 'Your mental health analysis report has been created successfully.', 'success');
// window.location.href = '/path/to/generated/pdf';
}, 3000);
}
});
}
// Print optimization
window.addEventListener('beforeprint', function() {
// Hide non-essential elements for printing
document.querySelectorAll('.d-print-none').forEach(el => {
el.style.display = 'none';
});
});
window.addEventListener('afterprint', function() {
// Restore elements after printing
document.querySelectorAll('.d-print-none').forEach(el => {
el.style.display = '';
});
});
// Auto-generate table of contents for long reports
document.addEventListener('DOMContentLoaded', function() {
const sections = document.querySelectorAll('.section-title, .section-subtitle');
if (sections.length > 3) {
// Could add automatic TOC generation here for very long reports
}
});
</script>
}
@section Styles {
<style>
/* Print Styles */
@@media print {
.d-print-none
{
display: none !important;
}
.report-container {
margin: 0;
padding: 0;
}
.card, .card-body {
border: none !important;
box-shadow: none !important;
}
.report-section {
page-break-inside: avoid;
margin-bottom: 2rem;
}
.section-title {
page-break-after: avoid;
}
}
/* Report Styling */
.report-container {
background: white;
padding: 2rem;
margin: 0 auto;
max-width: 1200px;
}
.report-header {
padding: 2rem 0;
border-bottom: 3px solid #007bff;
}
.company-logo h2 {
font-size: 2.5rem;
font-weight: 300;
}
.report-title {
font-size: 2.5rem;
font-weight: 700;
color: #343a40;
}
.section-title {
font-size: 1.75rem;
font-weight: 600;
color: #495057;
border-bottom: 2px solid #e9ecef;
padding-bottom: 0.5rem;
margin-bottom: 1.5rem;
}
.section-subtitle {
font-size: 1.25rem;
font-weight: 600;
color: #495057;
margin-bottom: 1rem;
}
.content-box {
padding: 1.5rem;
background: #f8f9fa;
border-radius: 0.5rem;
border-left: 4px solid #007bff;
}
.metric-card {
text-align: center;
padding: 1.5rem;
border-radius: 0.5rem;
background: white;
border: 1px solid #e9ecef;
transition: all 0.3s ease;
}
.metric-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.metric-value {
font-size: 2.5rem;
font-weight: 700;
margin: 0.5rem 0;
}
.metric-label {
font-weight: 600;
color: #6c757d;
margin-bottom: 0.25rem;
}
.risk-indicator {
width: 12px;
height: 12px;
border-radius: 50%;
}
.risk-item {
padding: 0.75rem;
border-radius: 0.375rem;
background: white;
margin-bottom: 0.5rem;
}
.sentiment-stat {
padding: 1rem;
border-radius: 0.375rem;
background: white;
border-left: 3px solid #e9ecef;
}
.intervention-priority {
margin-bottom: 2rem;
padding: 1.5rem;
border-radius: 0.5rem;
border: 1px solid #e9ecef;
}
.intervention-item {
background: white;
padding: 1rem;
border-radius: 0.375rem;
margin-bottom: 1rem;
border-left: 3px solid #007bff;
}
.finding-item {
background: white;
padding: 1rem;
border-radius: 0.375rem;
border-left: 3px solid #007bff;
}
.insight-box {
transition: all 0.3s ease;
}
.insight-box:hover {
transform: translateX(5px);
}
.timeline {
position: relative;
padding-left: 2rem;
}
.timeline::before {
content: '';
position: absolute;
left: 20px;
top: 0;
bottom: 0;
width: 2px;
background: #e9ecef;
}
.timeline-item {
position: relative;
margin-bottom: 2rem;
}
.timeline-badge {
position: absolute;
left: -28px;
top: 0;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 0.875rem;
}
.timeline-content {
background: white;
padding: 1rem;
border-radius: 0.5rem;
border: 1px solid #e9ecef;
margin-left: 2rem;
}
.executive-summary {
line-height: 1.8;
font-size: 1.05rem;
}
.executive-summary h4 {
color: #495057;
margin-top: 1.5rem;
margin-bottom: 1rem;
}
.report-footer {
background: #f8f9fa;
margin-top: 3rem;
}
.badge {
font-size: 0.75em;
}
@@media (max-width: 768px) {
.report-container
{
padding: 1rem;
}
.company-logo h2 {
font-size: 2rem;
}
.report-title {
font-size: 2rem;
}
.metric-card {
margin-bottom: 1rem;
}
.timeline {
padding-left: 1rem;
}
.timeline-badge {
left: -20px;
width: 30px;
height: 30px;
}
.timeline-content {
margin-left: 1rem;
}
}
</style>
}