Database-Design

如何在實體關係圖中對醫療場景進行建模?

  • January 21, 2022

我是一名自學成才的前端開發人員,正在嘗試全棧,因此我試圖通過數據庫管理書籍中的一些練習來自學數據建模。

通過這種方式,我開始為醫療場景創建實體關係圖(ERD),如下所示:

ERD

我還沒有完成,因為我在將一些相關的業務規則轉換為 ERD 表示法時遇到了一些問題。此外,在閱讀有關關聯的業務規則時,請記住實體類型PhysicianOrderDiagnosisTreatmentPatient是必需的(因為在書中它們被稱為業務規則,我想了解該特定模型),儘管它們可以可能以不同的方式建模,我試圖理解這個特定的模型。

業務場景描述

  • 醫生診斷影響患者的任意數量的病症,並且診斷可能適用於許多患者
  • 相關醫院記錄以下資訊:診斷日期和時間診斷程式碼描述
  • 醫生可以為患者訂購和執行任意數量的服務治療,也可以不執行任何治療
  • 可以對任意數量的患者執行**治療服務,並且患者可以由任意數量的醫師執行或訂購**治療
  • 對於所提供的每項治療服務,醫院會記錄以下資訊:醫生訂購治療治療日期治療時間結果

實體類型定義

  • 病人。入院或登記為門診病人的人。每個患者都有一個標識符、病歷編號 (MRN) 和姓名。
  • 醫生醫院醫務人員中的一員,可以讓患者入院並可以進行醫療治療。每個醫生都有一個醫生 ID 和姓名。
  • 診斷。由醫生診斷出的患者的醫療狀況。每個診斷都有一個診斷,有一個診斷 ID/程式碼和診斷名稱。範例:1032,葡萄球菌食物中毒。
  • *治療。由醫師為患者安排和/或執行的任何測試或程序。每個治療都有一個治療 ID/治療程式碼和使用標準程式碼的治療名稱。程式碼用於診斷和治療程序。範例:1244,胸部 X 光片。
  • 訂購。醫生為診斷測試(放射學)和治療程序(物理治療)或藥物(處方)等治療和/或服務發出的任何命令。每個訂單都有一個訂單 ID、訂單日期和訂單時間。

以這種方式,我想知道是否有人可以查看這個並從我擁有的業務規則中得出相同的 ERD,或者我是否搞砸了翻譯。

我的考慮

  • 我似乎無法理解的具體問題是實體類型之間存在多種關係。

首先,關於 和 之間的關係,我什至不知道該用什麼樣的Order基數Treatment

  • Patient對我來說另一個問題是,Diagnosis和之間的多重關係PhysicianPhysician此外,Patient, 和也是同樣的問題Treament

這些是否可能假設為三元關係,並且(或)包含弱實體類型以使其更易於理解?喜歡Orderand Treatment, or TreatmentandDiagnosis我可以看到一個依賴於另一個,因為Treatment我認為 a 將依賴於Diagnosis(如果我錯了,請糾正我)。

考慮實體之間的多重關係

在現實生活中,患者和醫生以多種方式互動。最明顯的就是生病的時候去看醫生(這是醫患關係的一種)。但是,作為患者,您可以將一位醫生轉診給您的朋友(他也病了,並且,作為這樣的患者),因為您喜歡它的工作方式。這是涉及兩名患者(推薦人和被推薦人)和一名醫師的三元關係。

非二元關係

並非所有關係都在兩個表之間(例如前一種情況)。另一個例子:醫生對患者進行診斷(並且,您可以添加:在某個時間、某個地方、在 x、y 和 z 測試之後等作為此關係的屬性)。擁有一個三元關係擁有兩個關係Physician makes Diagnostic和不同Patient diagnosed Diagnostic。你曾經只看過一位醫生,毫無疑問是誰診斷的。一旦你拜訪了兩位醫生…他們診斷的情況就不太清楚了。


這並不能回答您的所有問題,但希望對您有所幫助。

對於訂單和治療,這種關係似乎是治療是一種通用描述/程式碼/實體,描述可以做什麼,而訂單是*將要做什麼或已經做什麼以及對誰。*可以訂購 0 到多個治療。

因此,您的醫生為具有各種時間/日期屬性的患者訂購治療。該命令將您的患者與您的醫生以及醫生要求的治療選項聯繫起來。它會有如下列:OrderID (PK), PatientID, DoctorID, TreatmentID, OrderDateTime, TreatmentStartDateTime TreatmentCompleteDateTime,等。

因此,您的 ERD 應該在中心顯示一個 Orders 表,連接到患者、治療和醫生表。


一個患者可以有 0 到多個診斷。但是必須由醫生指定診斷。因此,您將不會在患者下方有診斷列。相反,您將有一個Patient-Diagnosis表格將患者與診斷和醫生聯繫起來。這將列出PatientID, DiagnosisCodesID, DoctorID,可能適用的任何時間/日期值(初步日期、確認日期等)。

您的 ERD 應該在中心有一個診斷表,連接到患者、診斷程式碼和醫生表。

這有助於回答您的問題嗎?

引用自:https://dba.stackexchange.com/questions/157148