Skip to content

质控数据训练实体类设计与实现

About 885 wordsAbout 3 min

C#实体类设计FreeSql数据分析

2024-05-14

概述

在实验室质量控制(QC)系统中,训练数据是评估分析性能和建立统计控制限的基础。本文介绍了TrainData实体类的设计与实现,该类用于存储和管理质控数据的统计参数和控制限。

实体类设计

TrainData实体类继承自EntityCreated基类,包含了质控数据分析所需的各种统计参数。以下是该实体类的完整实现:

namespace ABCLab.Entities.QC;

using FreeSql.DataAnnotations;

public class TrainData : EntityCreated
{
    /// <summary>
    /// 数据个数
    /// </summary>
    public int DataCount { get; set; }
    
    /// <summary>
    /// 均值
    /// </summary>
    public double Mean { get; set; }
    
    /// <summary>
    /// 标准差
    /// </summary>
    public double StandardDeviation { get; set; }
    
    /// <summary>
    /// α值(2.5%)
    /// </summary>
    public double AlphaValue { get; set; }
    
    /// <summary>
    /// β值(7.5%)
    /// </summary>
    public double BetaValue { get; set; }
    
    /// <summary>
    /// 下限
    /// </summary>
    public double LowerLimit { get; set; }
    
    /// <summary>
    /// 上限
    /// </summary>
    public double UpperLimit { get; set; }
    
    /// <summary>
    /// 是否截断
    /// </summary>
    public bool IsTruncated { get; set; }
    
    /// <summary>
    /// 统计方法
    /// </summary>
    [Column(StringLength = 100)]
    public string StatisticalMethod { get; set; }
    
    /// <summary>
    /// 权重
    /// </summary>
    public double Weight { get; set; }
    
    /// <summary>
    /// Mean(均值)
    /// </summary>
    public double MeanValue { get; set; }
    
    /// <summary>
    /// SD(标准差)
    /// </summary>
    public double SD { get; set; }
    
    /// <summary>
    /// MAX(最大值)
    /// </summary>
    public double MAX { get; set; }
    
    /// <summary>
    /// MIN(最小值)
    /// </summary>
    public double MIN { get; set; }
    
    /// <summary>
    /// 报警线2SD
    /// </summary>
    public double AlarmLine2SD { get; set; }
    
    /// <summary>
    /// 报警线3SD
    /// </summary>
    public double AlarmLine3SD { get; set; }
    
    /// <summary>
    /// TEA(总允许误差)
    /// </summary>
    public double TEA { get; set; }
    
    /// <summary>
    /// 第N个数报警
    /// </summary>
    public int AlarmAtNthNumber { get; set; }
}

属性说明

基本统计参数

  • DataCount: 数据集中的样本数量
  • MeanMeanValue: 数据的平均值
  • StandardDeviationSD: 数据的标准差,衡量数据分散程度
  • MAXMIN: 数据集中的最大值和最小值

控制限相关参数

  • AlphaValue: 2.5%处的α值,用于计算控制限
  • BetaValue: 7.5%处的β值,用于计算控制限
  • LowerLimitUpperLimit: 控制图的下限和上限
  • AlarmLine2SD: 2个标准差的报警线
  • AlarmLine3SD: 3个标准差的报警线
  • TEA: 总允许误差,通常基于临床或分析性能要求

其他控制参数

  • IsTruncated: 指示数据是否被截断处理
  • StatisticalMethod: 使用的统计方法,如"Westgard规则"
  • Weight: 用于加权计算的权重值
  • AlarmAtNthNumber: 指定第N个数据点出现时触发报警

应用场景

TrainData实体类主要应用于以下场景:

  1. 质控数据训练: 使用历史数据计算统计参数,建立控制限
  2. Westgard规则应用: 实现Westgard多规则质控策略
  3. 质控图生成: 为控制图提供所需的统计参数
  4. 报警规则配置: 设置和存储各种报警阈值和规则

FreeSql特性应用

实体类中使用了FreeSql的[Column]特性来指定数据库列的属性:

[Column(StringLength = 100)]
public string StatisticalMethod { get; set; }

这样可以确保在数据库中该字段的长度限制为100个字符。

总结

TrainData实体类的设计充分考虑了实验室质控数据的特点和需求,提供了完整的统计参数和控制限存储能力。通过这个实体类,系统可以有效地管理质控数据的训练结果,为质量控制提供可靠的基础数据。


作者:Claude

日期:2024-05-14

标签:C#, 实体类设计, FreeSql, 数据分析