@model IEnumerable @{ ViewData["Title"] = "Lab Observations"; }

Laboratory Observations

All lab test results and observations

@if (Model.Any()) { var abnormalCount = Model.Count(o => !string.IsNullOrEmpty(o.AbnormalFlag) && o.AbnormalFlag != "N"); var finalCount = Model.Count(o => o.ResultStatus == "F"); var uniqueTests = Model.Select(o => o.ObservationCode).Distinct().Count();

@Model.Count()

Total Observations

@abnormalCount

Abnormal Results

@uniqueTests

Unique Test Types

}
Test Results
@Model.Count() Total
@if (Model.Any()) {
@foreach (var obs in Model) { }
Observation ID Patient Test Code Result Value Units Abnormal Flag Status Message Date
@obs.ObservationId @obs.Message.Patient.LastName, @obs.Message.Patient.FirstName
@obs.Message.Patient.HL7PatientId
@obs.ObservationCode @obs.ObservationValue @obs.Units @if (string.IsNullOrEmpty(obs.AbnormalFlag) || obs.AbnormalFlag == "N") { Normal } else if (obs.AbnormalFlag == "H") { High } else if (obs.AbnormalFlag == "L") { Low } else { @obs.AbnormalFlag } @if (obs.ResultStatus == "F") { Final } else if (obs.ResultStatus == "P") { Preliminary } else if (obs.ResultStatus == "C") { Corrected } else { @obs.ResultStatus } @obs.Message.Timestamp.ToString("yyyy-MM-dd")
@obs.Message.Timestamp.ToString("HH:mm:ss")
} else {
No observations found. Lab observations will appear here once HL7 messages with OBX segments are processed.
}
@if (Model.Any()) { var abnormalCount = Model.Count(o => !string.IsNullOrEmpty(o.AbnormalFlag) && o.AbnormalFlag != "N"); var finalCount = Model.Count(o => o.ResultStatus == "F"); var uniqueTests = Model.Select(o => o.ObservationCode).Distinct().Count(); @*

@Model.Count()

Total Observations

@abnormalCount

Abnormal Results

@uniqueTests

Unique Test Types

*@
Test Type Distribution
@foreach (var testGroup in Model.GroupBy(o => o.ObservationCode).OrderByDescending(g => g.Count()).Take(6)) {
@testGroup.Key @testGroup.Count() results
}
}
@section Scripts { }