我有一个数据库,可以捕获与患者有关的医疗实践信息。这些信息分布在几个表中:
我想介绍一个标记系统,以便在显示患者详细信息时显示任何消息。因此,例如,如果患者之前曾患过心脏病,则需要对其进行标记(该信息将在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列。
答案 0 :(得分:0)
您可以在PatientMedicalHistory表中添加三个字段:器官,疾病,危重度。
当患者出现问题时,您可以根据当前情况中出现的相同器官或疾病来提取患者病史,其中临界症达到某个阈值。您在这里做的是对患者病史数据进行分类,使其与当前的情节数据相关。