我正在開發一個django應用程序,其中包含一些將用於輸入一些癌症組織樣本的臨牀數據的表單(每個表單10-20個字段,主要是CharField
,FloatField
和一些多項選擇文本下拉菜單)。Django稀疏數據模型
我的挑戰是我需要一個可以顯示基於診斷的不同字段的窗體,用於150多種診斷。我可以以編程方式讀取診斷列表,每個診斷所需的字段以及相應的字段類型。此外,所有診斷中所有獨特字段的集合都很大(遠大於任何特定診斷所需字段的數量)。
例如
disease_specific_fields field_type
diagnosis
B-lymphoblastic leukemia/lymphoma NOS EBV-positive Pull down: Yes/No
B-lymphoblastic leukemia/lymphoma with recurrent genetic abnormalities(TCF3-PBX1) EBV-positive Pull down: Yes/No
Monoclonal B lymphocytosis(CLL/SLL spectrum) EBV-positive Pull down: Yes/No
Peripheral T cell lymphoma NOS EBV-positive Pull down: Yes/No
AML with recurrent cytogenetic abnormalities(t(6;9) DEK-NUP214) EBV-positive Pull down: Yes/No
到目前爲止,我想到了以下方法:
創建將主要包含稀疏數據,並使用Django表單處理不相關的數據單巨大模型。缺點:存儲效率低下,大量代碼與表單綁定在一起。
爲每個診斷創建一個模型。 CONS:使遷移和維護複雜化,我認爲。
- 爲每種類型('CharField','FloatField'等)包含幾個'通用'字段的所有診斷創建一個小模型,並在窗體/視圖中動態顯示相應的字段名稱。
我在尋找關於如何實現捕獲上述數據的模型/模型的任何建設性建議。效率和存儲是次要問題,大多數情況下我想要一個清晰直觀的解決方案。任何爲django量身定製的答案都會特別有用。
謝謝你一個深思熟慮的解釋。 JsonField在我的情況下效果很好。 –