2

我有一个数据库,它为医疗实践捕获与患者有关的信息。此信息分布在多个表中:

  1. 患者 - 联系信息
  2. PatientMedicalHistory - 与当前问题无关的医疗状况
  3. PatientEpisode - 本次就诊的财务信息
  4. PatientEpisodeReason - 与患者今天在这里的原因有关的内容

我想引入一个标志系统,以便在调出患者详细信息时会出现任何消​​息。因此,例如,如果患者之前曾发生过心脏病发作,则需要对其进行标记(该信息将在 PatientMedicalHistory 中)。

我目前的方法是设置一个标志查找表,该表定义标志类型,标志所指的表/列以及为了提高该标志的值是什么:

CREATE TABLE FlagType
(
    ID INT PRIMARY KEY IDENTITY,
    TypeName NVARCHAR(300) NOT NULL,
    Colour NVARCHAR(100) NOT NULL,
    Urgency INT NOT NULL
)

CREATE TABLE Flag
(
    ID INT PRIMARY KEY IDENTITY,
    FlagTypeID INT NOT NULL REFERENCES FlagType(ID),
    TableName NVARCHAR(300) NOT NULL,
    FieldName NVARCHAR(300) NOT NULL,
    FlagValue NVARCHAR(300) NOT NULL
)

这看起来一切都很好,但是尝试编写 a) 一个不像一团糟的存储过程或 b) 一个不会影响性能的 LINQ 查询似乎很困难。

有没有其他选择?问题是可以在上述任何表中的任何列上定义标志。这总共大约有 80 列。

4

1 回答 1

0

您可以在 PatientMedicalHistory 表中添加三个字段:器官、疾病、危急程度。

当患者出现问题时,您可以根据当前事件中出现的相同器官或疾病提取患者病史,其中危急程度达到特定阈值。您在这里所做的是对您的患者历史数据进行分类,使其与当前的发作数据相关。

于 2013-02-12T20:07:18.800 回答