feature: Reconciliation Jobs

This commit is contained in:
voltsrage
2026-06-17 14:36:10 +08:00
parent 56d052aa4f
commit 101040f9d9
40 changed files with 2845 additions and 32 deletions
@@ -28,7 +28,7 @@ public class AlertService : IAlertService
}
public async Task<PagedResult<ClinicalAlert>> ListGlobalAsync(
AlertStatus? status, AlertSeverity? severity, string? department, int page, int pageSize)
AlertStatus? status, AlertSeverity? severity, Department? department, int page, int pageSize)
{
var query = _db.ClinicalAlerts
.AsNoTracking()
@@ -41,8 +41,8 @@ public class AlertService : IAlertService
if (severity.HasValue)
query = query.Where(a => a.Severity == severity.Value);
if (!string.IsNullOrEmpty(department))
query = query.Where(a => a.Encounter.Department == department);
if (department.HasValue)
query = query.Where(a => a.Encounter.Department == department.Value);
var total = await query.CountAsync();
var alerts = await query
@@ -64,7 +64,7 @@ public class EncounterService : IEncounterService
patientName = $"{encounter.Patient.FirstName} {encounter.Patient.LastName}",
previousStatus = previousStatus.ToDbString(),
newStatus = targetStatus.ToDbString(),
department = encounter.Department,
department = encounter.Department.ToDbString(),
attendingPhysician = encounter.AttendingPhysician,
admittedAt = encounter.AdmittedAt,
changedAt = DateTimeOffset.UtcNow
@@ -4,7 +4,7 @@ public interface IAlertService
Guid encounterId, AlertStatus? status, int page, int pageSize);
Task<PagedResult<ClinicalAlert>> ListGlobalAsync(
AlertStatus? status, AlertSeverity? severity, string? department, int page, int pageSize);
AlertStatus? status, AlertSeverity? severity, Department? department, int page, int pageSize);
Task<ClinicalAlert> GetByIdAsync(Guid id);
@@ -113,7 +113,7 @@ public class ObservationService : IObservationService
alertId = alert.Id,
encounterId,
patientId = encounter.PatientId,
department = encounter.Department,
department = encounter.Department.ToDbString(),
alertType = alert.AlertType.ToDbString(),
severity = alert.Severity.ToDbString(),
details = alert.Details,
@@ -101,7 +101,7 @@ public class PatientService : IPatientService
patientName = $"{patient.FirstName} {patient.LastName}",
previousStatus = (string?)null,
newStatus = encounter.Status.ToDbString(),
department = encounter.Department,
department = encounter.Department.ToDbString(),
attendingPhysician = encounter.AttendingPhysician,
admittedAt = encounter.AdmittedAt,
changedAt = DateTimeOffset.UtcNow