我是設計和EMR。我確定該域的中心對象是Patient
。患者必須具有以下「Doctor
」和「醫療記錄」。病歷是一個組術語指的遭遇,實驗室,X光,處方集體....DDD和實體和值對象之間的區別。選擇聚合根目錄
我是新來DDD和我有一對夫婦的概念和我的DDD的理解麻煩。以下代碼示例顯示Encounter
類。 Encounter
包含幾個propertiees,它也引用另一個類Vitals
。
Vitals
在Patient
以外沒有任何意義。我仍然用自己的密鑰來識別數據庫中的生命體徵。我不確定這是否符合Vitals
作爲一個實體。目前我有Vitals
作爲價值對象。
其次,我的模型建立的方式,我有Encounter
定義爲Aggregate
根。通過Encounter
,醫生可以訂購實驗室,X射線和開藥。基本上Encounter
記錄了這些物品被訂購的原因。
存在一個問題,即我還需要在Encounter
的上下文之外檢索這些項目,那麼這是否意味着Encounter
不是聚合根。諸如Vitals
之類的項目就是一個值對象。
這是我的代碼...
public class Encounter {
String ChiefComplaint {get; set;}
string Plan {get; set;}
string Assessment {get; set;}
Vital PatientVital {get; set;}
}
public class Vital {
public float Temperature { get; private set; }
public BloodPressure BP { get; private set; }
public int Pulse { get; private set; }
public int Respiratory { get; private set; }
internal Vital(float temperature, int systolic, int diastolic, int pulse, int respiratory) {
this.Temperature = temperature;
BloodPressure bp = new BloodPressure();
bp.Systolic = systolic;
bp.Diastolic = diastolic;
this.Respiratory = respiratory;
this.BP = bp;
}
public void AddBP(int systolic, int diastolic) {
BloodPressure bp = new BloodPressure();
bp.Systolic = systolic;
bp.Diastolic = diastolic;
this.BP = bp;
}
}
public struct BloodPressure {
public BloodPressure(int systolic, int diastolic){
Systolic = systolic;
Diastolic = diastolic;
}
public int Systolic { get; private set; }
public int Diastolic { get; private set; }
public string bloodPressure {
get { return this.Systolic.ToString() + "/" + this.Diastolic.ToString(); }
}
}
我對缺乏明確的問題表示歉意。我明白,病人和醫生會成爲根。確實,醫生爲給定患者創建醫療記錄,因此這是否意味着在患者背景之外檢索醫療記錄是沒有意義的。同樣在處方的情況下,如果存在針對每個處方的商業規則,那麼必須有有效的相遇,那麼相遇只是成爲處方的屬性 – William 2010-03-21 18:37:21