feature: RBAC + Clinical Audit Logging

This commit is contained in:
voltsrage
2026-06-21 15:46:55 +08:00
parent a43db52813
commit 5af6ab490e
83 changed files with 4281 additions and 70 deletions
@@ -71,13 +71,17 @@ public class ClinicalRefactorEndToEndTests : IAsyncLifetime
var scenario = ScenarioReplayHelper.Load("sofa-partial-spo2-fallback-01.json");
var (_, encounterId) = await ScenarioReplayHelper.ReplayObservationsAsync(_client, scenario);
var jsonOpts = new JsonSerializerOptions { PropertyNameCaseInsensitive = true };
var sofa = await ScenarioReplayHelper.WaitForSofaScoreAsync(
_fixture.Services, encounterId, TimeSpan.FromSeconds(45));
_fixture.Services, encounterId, TimeSpan.FromSeconds(45),
s =>
{
if (string.IsNullOrEmpty(s.StalenessFlags)) return false;
var f = JsonSerializer.Deserialize<SofaStalenessFlags>(s.StalenessFlags, jsonOpts);
return f?.UsedSpO2Fallback == true;
});
sofa.StalenessFlags.Should().NotBeNullOrEmpty();
var flags = JsonSerializer.Deserialize<SofaStalenessFlags>(
sofa.StalenessFlags!,
new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
var flags = JsonSerializer.Deserialize<SofaStalenessFlags>(sofa.StalenessFlags!, jsonOpts);
flags!.UsedSpO2Fallback.Should().BeTrue("expected SpO2/FiO2 proxy for respiratory SOFA");
}