id規則識別碼,可省略;省略時會自動產生 rule_001、rule_002。
when觸發條件物件;條件成立後才檢查 require。
key要觀察的欄位 key,必須存在於目前範本。
operator會依欄位型別限制可用判斷;省略時預設為 equals。實際可用清單與範例請展開下方「依欄位型別查看」。
value比較值;between 必須是兩項陣列,複選的 includesAny/includesAll/includesNone 使用值陣列;empty 等無值判斷不可填 value。
require條件成立後要完成的欄位 key 陣列,也接受單一字串。
severityerror(預設)會阻擋完成;只有 warning 會產生提醒。
message顯示給使用者的文字;省略時會依 require key 自動產生。
欄位條件:放在 fieldDefinitions[key] 中
{
"notes": {
"visibleWhen": {
"key": "status", "operator": "equals", "value": "abnormal"
},
"requiredWhen": {
"key": "finding", "operator": "notEmpty"
}
}
}
visibleWhen條件成立才顯示;不成立時保留草稿值,但不列入報告與欄位化輸出。
requiredWhen條件成立且欄位可見時才算必填;隱藏欄位不會造成阻擋。
all陣列中的每個條件都要成立,至少一項。
any陣列中任一條件成立即可,至少一項。
not反轉單一子條件的結果。
設定位置visibleWhen/requiredWhen 不是 completionRules 的欄位;請在下方 STRUCTURED FIELDS 的每個欄位展開「條件規則(選用)」設定。
條件樹限制可組合巢狀最多 3 層;未知 key、不符合欄位型別的 operator、不合法 value 或欄位自我依賴會在儲存時拒絕。
依欄位型別查看可用 operator 與範例
所有欄位equals、notEquals、empty、notEmpty、removed、notRemoved。其中 removed/notRemoved 是欄位狀態判斷,不需要 value。
Boolean再加上 isTrue、isFalse、isSet、isNotSet、valid、invalid。equals/notEquals 的 value 必須是 true/false(畫面上的「是/否」會轉成布林值)。
文字輸入再加上 contains、notContains、startsWith、endsWith、valid、invalid。
數值/測量值/日期/時間/日期時間再加上 gt、gte、lt、lte、between、valid、invalid;between 的 value 必須是兩項陣列。
單選文字單選只有所有欄位的共同 operator;數值/測量值單選可再使用數值比較與 valid/invalid。
複選再加上 includesAny、includesAll、includesNone;value 是選項值陣列。複選條件沒有 gt/between,也沒有 contains 這個 operator。
Boolean{ "key": "urgent", "operator": "isTrue" }
{ "key": "urgent", "operator": "equals", "value": false }
文字{ "key": "finding", "operator": "contains", "value": "mass" }
數值{ "key": "weight", "operator": "between", "value": [50, 90] }
單選{ "key": "severity", "operator": "equals", "value": "high" }
複選{ "key": "symptoms", "operator": "includesAny", "value": ["fever", "pain"] }
條件群組、欄位條件與錯誤檢查範例
all:全部成立{ "all": [
{ "key": "status", "operator": "equals", "value": "abnormal" },
{ "key": "finding", "operator": "notEmpty" }
] }
any:任一成立{ "any": [
{ "key": "status", "operator": "equals", "value": "urgent" },
{ "key": "urgent", "operator": "isTrue" }
] }
欄位內的 visibleWhen/requiredWhen"notes": {
"visibleWhen": { "key": "status", "operator": "equals", "value": "abnormal" },
"requiredWhen": { "key": "finding", "operator": "notEmpty" }
}
儲存時會阻擋:不存在的 key、欄位型別不支援的 operator、Boolean 使用非 true/false、between 不是兩項、複選判斷沒有比較值、all/any 沒有子條件、not 不是單一子條件,以及 visibleWhen/requiredWhen 直接依賴自己。這些錯誤會顯示在管理頁,不會寫入範本。