using Microsoft.Extensions.Options; public class MedicationCorrelationHelper { private readonly IMedicationService _medicationService; private readonly MedicationCorrelationOptions _options; public MedicationCorrelationHelper( IMedicationService medicationService, IOptions options) { _medicationService = medicationService; _options = options.Value; } /// /// Appends medication context to alert details if a correlated administration /// exists within the lookback window. Returns the original details if none found. /// public async Task TryAnnotateDetailsAsync( Guid encounterId, string observationCode, string details, CancellationToken ct = default) { var recent = await _medicationService.GetRecentForEncounterAsync( encounterId, observationCode, _options.CorrelationWindowMinutes); if (recent.Count == 0) return details; // Use the most recent correlated administration var med = recent[0]; var minutesAgo = (int)(DateTimeOffset.UtcNow - med.AdministeredAt).TotalMinutes; return $"{details} — note: {med.DrugName} {med.Dose}{med.DoseUnit} " + $"({med.Route}) administered {minutesAgo} min ago"; } }