146 lines
6.4 KiB
Plaintext
146 lines
6.4 KiB
Plaintext
@{
|
|
ViewData["Title"] = "Dashboard";
|
|
}
|
|
|
|
<div class="container-fluid">
|
|
<div class="row mb-4">
|
|
<div class="col-12">
|
|
<h1 class="display-4 mb-0">Dashboard</h1>
|
|
<p class="text-muted">Laboratory Information System - Real-time HL7 Message Processing</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Statistics Cards -->
|
|
<div class="row mb-4">
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card text-white bg-primary">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<h6 class="card-title text-white-50 text-uppercase mb-1">Total Patients</h6>
|
|
<h2 class="mb-0">@ViewBag.TotalPatients</h2>
|
|
</div>
|
|
<div class="fs-1 opacity-50">
|
|
<i class="bi bi-people-fill"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card text-white bg-success">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<h6 class="card-title text-white-50 text-uppercase mb-1">HL7 Messages</h6>
|
|
<h2 class="mb-0">@ViewBag.TotalMessages</h2>
|
|
</div>
|
|
<div class="fs-1 opacity-50">
|
|
<i class="bi bi-envelope-fill"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card text-white bg-info">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<h6 class="card-title text-white-50 text-uppercase mb-1">Lab Observations</h6>
|
|
<h2 class="mb-0">@ViewBag.TotalObservations</h2>
|
|
</div>
|
|
<div class="fs-1 opacity-50">
|
|
<i class="bi bi-clipboard2-pulse-fill"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Recent Messages -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header bg-white">
|
|
<h5 class="mb-0">Recent HL7 Messages</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
@if (ViewBag.RecentMessages != null && ((IEnumerable<SimpleLIS.Models.Message>)ViewBag.RecentMessages).Any())
|
|
{
|
|
<div class="table-responsive">
|
|
<table class="table table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Control ID</th>
|
|
<th>Message Type</th>
|
|
<th>Patient</th>
|
|
<th>Sending Facility</th>
|
|
<th>Timestamp</th>
|
|
<th>Observations</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var message in (IEnumerable<SimpleLIS.Models.Message>)ViewBag.RecentMessages)
|
|
{
|
|
<tr>
|
|
<td><code>@message.ControlId</code></td>
|
|
<td><span class="badge bg-primary">@message.MessageType</span></td>
|
|
<td>@message.Patient.FirstName @message.Patient.LastName</td>
|
|
<td>@message.SendingFacility</td>
|
|
<td>@message.Timestamp.ToString("yyyy-MM-dd HH:mm:ss")</td>
|
|
<td><span class="badge bg-info">@message.Observations.Count tests</span></td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="alert alert-info mb-0">
|
|
<strong>No messages yet.</strong> Start Mirth Connect and send HL7 messages to see them appear here!
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="card-footer bg-white">
|
|
<a asp-controller="Home" asp-action="Messages" class="btn btn-sm btn-primary">View All Messages</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Quick Actions -->
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header bg-white">
|
|
<h5 class="mb-0">Quick Actions</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-4 mb-2">
|
|
<a asp-controller="Home" asp-action="Patients" class="btn btn-outline-primary btn-lg w-100">
|
|
<i class="bi bi-people"></i> View All Patients
|
|
</a>
|
|
</div>
|
|
<div class="col-md-4 mb-2">
|
|
<a asp-controller="Home" asp-action="Messages" class="btn btn-outline-success btn-lg w-100">
|
|
<i class="bi bi-envelope"></i> View All Messages
|
|
</a>
|
|
</div>
|
|
<div class="col-md-4 mb-2">
|
|
<a asp-controller="Home" asp-action="Observations" class="btn btn-outline-info btn-lg w-100">
|
|
<i class="bi bi-clipboard2-pulse"></i> View Observations
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|