2012-07-25 156 views
2

我有一個數據庫,可以捕獲與患者有關的醫療實踐信息。這些信息在多個表流傳:標記系統的數據庫設計

  1. 病人 - 有關聯繫信息
  2. PatientMedicalHistory - 對於不相關的當前問題
  3. PatientEpisode醫療條件 - 針對當前訪問
  4. PatientEpisodeReason財務信息 - 東西有關爲什麼患者今天在這裏

我想介紹一個標記系統,以便在提出pat時出現任何消​​息客戶詳細信息。因此,例如,如果患者以前曾有過心臟病發作,則需要標記該信息(該信息位於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

爲什麼患者沒有一個與他們相關的標誌列表? – 2012-07-25 02:10:02

+0

別擔心,我得到你正在嘗試做的事,病人確實有一個標誌列表,並且該標誌告訴你它正在標記哪個表/行/列。 – 2012-07-25 02:13:52

+0

這是正確的。該表格描述哪個表格應該具有哪個值以便提升標誌。它似乎並不是最好的方法,但想知道是否有更好的方法。 – Paul 2012-07-25 02:21:49

回答

0

您可以將三個字段添加到PatientMedicalHistory表中:器官,疾病,關鍵性。

當患者出現問題時,您可以根據當前病例中出現的同一器官或疾病來提取患者病史,其中臨界點符合特定閾值。你在這裏做的是分類你的病人的歷史數據,因此它與當前的情節數據有關。