No SOFA trend chart or organ-system timeline
No GCS trend chart or component history
No qSOFA history view
This commit is contained in:
voltsrage
2026-06-23 18:00:43 +08:00
parent 729c19830c
commit 7751d6df06
30 changed files with 3866 additions and 41 deletions
@@ -25,6 +25,7 @@ public class AppDbContext : DbContext
public DbSet<MedicationAdministration> MedicationAdministrations => Set<MedicationAdministration>();
public DbSet<GcsScore> GcsScores => Set<GcsScore>();
public DbSet<SofaScore> SofaScores => Set<SofaScore>();
public DbSet<QsofaEvaluation> QsofaEvaluations => Set<QsofaEvaluation>();
public DbSet<ExternalResourceIdentifier> ExternalResourceIdentifiers => Set<ExternalResourceIdentifier>();
public DbSet<ClinicalUser> ClinicalUsers => Set<ClinicalUser>();
public DbSet<ClinicalAuditLog> ClinicalAuditLogs => Set<ClinicalAuditLog>();
@@ -0,0 +1,32 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
public class QsofaEvaluationConfiguration : IEntityTypeConfiguration<QsofaEvaluation>
{
public void Configure(EntityTypeBuilder<QsofaEvaluation> builder)
{
builder.ToTable("qsofa_evaluations", t =>
{
t.HasCheckConstraint("chk_qsofa_evaluations_active_criteria",
"active_criteria >= 0 AND active_criteria <= 3");
});
builder.HasKey(e => e.Id);
builder.Property(e => e.Id).HasColumnName("id").HasDefaultValueSql("gen_random_uuid()");
builder.Property(e => e.EncounterId).HasColumnName("encounter_id").IsRequired();
builder.Property(e => e.PatientId).HasColumnName("patient_id").IsRequired();
builder.Property(e => e.ActiveCriteria).HasColumnName("active_criteria").IsRequired();
builder.Property(e => e.RespRate).HasColumnName("resp_rate");
builder.Property(e => e.SystolicBp).HasColumnName("systolic_bp");
builder.Property(e => e.Avpu).HasColumnName("avpu");
builder.Property(e => e.ScreenAlertFired).HasColumnName("screen_alert_fired").IsRequired();
builder.Property(e => e.EvaluatedAt).HasColumnName("evaluated_at").IsRequired();
builder.Property(e => e.CreatedAt).HasColumnName("created_at").IsRequired();
builder.HasOne(e => e.Encounter)
.WithMany()
.HasForeignKey(e => e.EncounterId)
.OnDelete(DeleteBehavior.Restrict);
builder.HasIndex(e => new { e.EncounterId, e.EvaluatedAt });
}
}