feature: In-App Simulation Runner (Backend)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
using VigilCare.Simulation;
|
||||
|
||||
public sealed class RunStateReplayObserver : IReplayObserver
|
||||
{
|
||||
private readonly SimulationRunState _state;
|
||||
|
||||
public RunStateReplayObserver(SimulationRunState state) => _state = state;
|
||||
|
||||
public void Header(string name, string? description) { }
|
||||
|
||||
public void Info(string message) { }
|
||||
|
||||
public void Event(string simTime, string description) =>
|
||||
_state.NoteEvent(description);
|
||||
|
||||
public void Waiting(double deltaMinutes, int delayMs) { }
|
||||
|
||||
public void Warn(string message) { }
|
||||
|
||||
public void Error(string message) { }
|
||||
|
||||
public void DryRun(string message) { }
|
||||
|
||||
public void Completed(ReplayResult result) => SyncFromResult(result);
|
||||
|
||||
public void Progress(double offsetMinutes, int clusterIndex, int clusterCount) =>
|
||||
_state.UpdateOffset(offsetMinutes);
|
||||
|
||||
public void SyncFromResult(ReplayResult result)
|
||||
{
|
||||
_state.ApplyResultCounters(
|
||||
result.ObservationsSent,
|
||||
result.MedicationsSent,
|
||||
result.OrdersPlaced);
|
||||
_state.SetIds(
|
||||
result.PatientId == Guid.Empty ? null : result.PatientId,
|
||||
result.EncounterId == Guid.Empty ? null : result.EncounterId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user