跳轉到內容

OpenClinica 使用者手冊/編寫規則

來自華夏公益教科書,開放世界的開放書籍

規則分配的最新改進

[編輯 | 編輯原始碼]

從 3.1.x 版本開始,OpenClinica 允許使用 相對路徑 的規則,這些規則可以分配給給定 CRF 的每個例項。以前的版本(3.0.x 及更早版本)要求將規則分配給每個事件和 CRF,因此需要建立和測試大量分配。

編寫規則

[編輯 | 編輯原始碼]
  • 在規則中,運算子“ne”、“eq”等和邏輯運算子“and”和“or”區分大小寫(因此編寫包含“AND”或“EQ”的規則會導致錯誤)。
  • 請注意,您不需要在規則中指定 CRF 的特定版本,可以從目標 CRF 末尾省略“_V1”,對 F_LIRAGLUTIDE_V1 的引用可以更改為 F_LIRAGLUTIDE。
  • 欄位之間的數字比較只能在兩個欄位都是數字的情況下執行 - 例如,經常包含數字的字串欄位不能與數字欄位進行比較。例如,嘗試使用 lte 運算子與字串和數字欄位進行比較會導致錯誤:“OCRERR_0001 : Logic Error, ITEM_NAME and null cannot be used with the LESS_THAN_EQUAL operator.”。
  • 對於重複組項的規則,請確保在目標中指定整數行號或關鍵字“[ALL]”,如 建立規則文件 中所述,例如 F_BCFALLSDIARY.IG_BCFAL_FALLSDIARY[ALL].I_BCFAL_QSFALLS

測試規則

[編輯 | 編輯原始碼]

規則比範圍更復雜,因為每個 CRF 部分通常不止一個規則,並且可能需要單獨測試,並且以多種方式測試。

在測試規則時,只有在規則觸發並且在規則仍然觸發的情況下按“儲存”(資料未更正),才會建立差異備註。

如果在編寫測試文件時注意以下事項,可以減少測試所需的時間

  1. 避免第二次觸發規則
  2. 確保在第二次按“儲存”時觸發不同欄位上的規則

如果您遵循這些指南,每次按“儲存”時,都會觸發並測試一個新規則。

如何操作

  1. 將一個部分中一個欄位上的規則設定為失敗,然後按“儲存”。
  2. 更改資料以確保第一個欄位上的規則不會再次觸發,並更改資料以使第二個欄位上的規則觸發。
  3. 再次按“儲存” - 第一個規則沒有觸發,因此不會建立任何差異,並且觸發了第二個規則,因此該部分不會更改。

重複使用規則和測試

[編輯 | 編輯原始碼]

如果我們使用標準化的 CRF (標準),我們還可以為它們重複使用標準化的規則和測試。

測試期間的錯誤

[編輯 | 編輯原始碼]

在測試規則期間可能會看到許多錯誤。

不正確的組

[編輯 | 編輯原始碼]

當規則被觸發(瀏覽器顯示 OpenClinica 通用錯誤頁面)但目標不正確,並且包含錯誤的組時,此錯誤將出現在 stdout_*.log 中。

java.lang.NullPointerException
	at org.akaza.openclinica.logic.rulerunner.RuleRunner.prepareEmailContents(RuleRunner.java:120)

例如,設定為:SE_BC1VISIT.F_BC1VISIT.IG_BC1VI_UNGROUPED.I_BC1VI_TIABLCON 而不是:SE_BC1VISIT.F_BC1VISIT.IG_BC1VI_INCLUSIONCRITERIA.I_BC1VI_TIABLCON

華夏公益教科書