YH-自动提醒逻辑梳理

1、新逻辑:所有表使用同一套公式
加载页面后,
    1. 获取消息类型
    2. 获取表
    3. 获取关联表
    4. 获取公式
所有公式数据:

{
    "eid": "1",
    "expression": "dateCompareFunction(a,b)",
    "functionName": "A<>B",
    "functionArgs": null,
    "itemId": null,
    "expressType": 0
},
{
    "eid": "10",
    "expression": "DeleteFunction()",
    "functionName": "删除提醒",
    "functionArgs": null,
    "itemId": null,
    "expressType": 4
},
{
    "eid": "2",
    "expression": "modifyFunction()",
    "functionName": "修改提醒",
    "functionArgs": null,
    "itemId": null,
    "expressType": 3
},
{
    "eid": "3",
    "expression": "lessThanFunction(a,b)",
    "functionName": "A < B",
    "functionArgs": null,
    "itemId": null,
    "expressType": 0
},
{
    "eid": "4",
    "expression": "watchFunction(a,b)",
    "functionName": "监听值提醒",
    "functionArgs": null,
    "itemId": null,
    "expressType": 6
},
{
    "eid": "5",
    "expression": "equalToFunction(a,b)",
    "functionName": "A = B",
    "functionArgs": null,
    "itemId": null,
    "expressType": 0
},
{
    "eid": "6",
    "expression": "moreThanFunction(a,b)",
    "functionName": "A > B",
    "functionArgs": null,
    "itemId": null,
    "expressType": 0
},
{
    "eid": "7",
    "expression": "insertFunction()",
    "functionName": "新增提醒",
    "functionArgs": null,
    "itemId": null,
    "expressType": 2
},
{
    "eid": "8",
    "expression": "pregMatchFuction(field,keyword)",
    "functionName": "关键字匹配",
    "functionArgs": null,
    "itemId": null,
    "expressType": 1
},
{
    "eid": "9",
    "expression": "DateCompareNowFunction(a,b)",
    "functionName": "与当前日期比较",
    "functionArgs": null,
    "itemId": null,
    "expressType": 5
}
View Code
字段:expressType
  0 比较运算 :需要选择比较字段,输入比较值
  1 关键正则 :关键字匹配,需要选择匹配字段,输入匹配值
  2 新增即提醒 :只需选择公式,不需要选字段,输入内容
  3 修改即提醒 :只需选择公式,不需要选字段,输入内容
  4 删除即提醒 :只需选择公式,不需要选字段,输入内容
  5 与当前日期比较 :需要选择比较字段
  6 监听值提醒
View Code
2、选择表后,可选择患者id字段、关联表、配置提醒规则
  提醒规则配置逻辑:
  新增
    比较运算:关联选择字段(A值)、输入内容(B值)
    关键正则:关联选择字段(keywordField)、输入内容(keywordValue)
    新增即提醒:也可以选择监听字段,非必填关联,选择字段(A值)、输入内容(B值)
    与当前日期比较:关联选择字段(keywordField)
    监听值提醒:关联选择字段(keywordField)
  修改
    比较运算:关联选择字段(A值)、输入内容(B值)
    关键正则:关联选择字段(keywordField)、输入内容(keywordValue)
    修改即提醒:关联选择字段(A值)、输入内容(B值)
    与当前日期比较:关联选择字段(keywordField)
    监听值提醒:关联选择字段(keywordField)
  删除
    删除即提醒

 

保存时,根据选择不同的公式,拼接成响应的字符串传给后台:
  0 比较运算 :{a:[$选择的字段],b:'输入值'}
  1 关键正则 :{keywordField:keywordValue}
  2 新增即提醒 :只需保存公式
  3 修改即提醒 :只需保存公式
  4 删除即提醒 :只需保存公式
  5 与当前日期比较 :{"a": "选择的字段"}
  6 监听值提醒 :{"a": "选择的字段"}
 
格式如下:
{
    "focusRules": {
        "INSERT": [
            {
                "ruleContent": "dateCompareFunction(a,b)",
                "InConfig": {
                    "a": "[$patient_id]", // 0 比较运算
                    "b": "12"
                }
            },
            {
                "ruleContent": "pregMatchFuction(field,keyword)",
                "InConfig": {
                    "patient_id": "g" // 1 关键正则
                }
            },
            {
                "ruleContent": "insertFunction()", // 2 新增即提醒\3\4
                "InConfig": {}
            },
            {
                "ruleContent": "watchFunction(a,b)",
                "InConfig": {
                    "a": "id" // 5 与当前日期比较\6 监听值提醒
                }
            }
        ]
    }
}
View Code
完整新增、修改、删除保存实例:

 
 
{
    "focusRules": {
        "INSERT": [
            {
                "ruleContent": "dateCompareFunction(a,b)",
                "InConfig": {
                    "a": "[$check_start_status]",
                    "b": "60"
                }
            },
            {
                "ruleContent": "insertFunction()",
                "InConfig": {}
            },
            {
                "ruleContent": "pregMatchFuction(field,keyword)",
                "InConfig": {
                    "check_start_status": "濒危"
                }
            }
        ],
        "UPDATE": [
            {
                "ruleContent": "modifyFunction()",
                "InConfig": {}
            },
            {
                "ruleContent": "watchFunction(a,b)",
                "InConfig": {
                    "a": "check_start_status"
                }
            },
            {
                "ruleContent": "lessThanFunction(a,b)",
                "InConfig": {
                    "a": "[$check_start_status]",
                    "b": "1"
                }
            }
        ],
        "DELETE": [
            {
                "ruleContent": "DeleteFunction()",
                "InConfig": {}
            }
        ]
    }
}
View Code
3、触发时刻逻辑:实时提醒、绝对时间、相对时间
实时提醒:触发规则即提醒
绝对时间:触发消息的时间为固定时间,频率、时间、次数孤星
相对时间:选择比较公式、比较字段、比较时间,同规则中的比较公式选择.
保存参数:

 
{
    "ABSOLUTE": [
        {
            "absoluteTime": "13:44:00",
            "executeCount": "1",
            "frequency": 0
        },
        {
            "frequency": 7,
            "absoluteTime": "12:45:00",
            "executeCount": "2"
        }
    ],
    "RELATIVE": [
        {
            "timeExpress": "dateCompareFunction(a,b)",
            "timeConfig": {
                "a": "[$sign_value]",
                "b": "1"
            }
        },
        {
            "timeExpress": "lessThanFunction(a,b)",
            "timeConfig": {
                "a": "[$sign_value]",
                "b": "3"
            }
        },
        {
            "timeExpress": "equalToFunction(a,b)",
            "timeConfig": {
                "a": "[$sign_value]",
                "b": "50"
            }
        }
    ]
}
View Code
4、接收者
患者、护士、护士长、医生
消息形式:文字、图片、音频、视频
接受终端:根据接收者展示
文字提醒:患者可以选择问卷或宣教,并生成一个跳转地址,可以设置强制跳转
保存数据:

 
{
    "PATIENT": {
        "secondsDuration": "",
        "secondsDurationFormat": "",
        "fileName": "",
        "viewType": "TEXT",
        "content": "11112",
        "resourceInfo": [
            {
                "deviceName": "wnBedSideExtension",
                "url": "/details?type=myEdu&index=1&eduID=c8481b6685a04c3a9c311e4c1f4c5899&readState=未阅读",
                "choiceID": "c8481b6685a04c3a9c311e4c1f4c5899",
                "type": "宣教",
                "forceJump":true
            },
            {
                "deviceName": "wnBedHeadExtension",
                "url": "/questionnaireDetails?paperId=a3a6f31d43c045d684181190d72c158e",
                "choiceID": "a3a6f31d43c045d684181190d72c158e",
                "type": "问卷调查",
                "forceJump":true
            }
        ]
    },
    "NURSE": {
        "fileName": "v2_3f7d1ffde4297c6478f71279bc0eadae_r.jpg",
        "viewType": "IMAGE",
        "content": "/resource/img/20210425/3e219ccc71d14b6c9c58efc95215a291.jpg",
        "resourceInfo": [
            {
                "deviceName": "wnBedSideExtension",
                "url": ""
            }
        ]
    }
}
View Code

 

 
posted @ 2021-05-11 10:37  庞某人  阅读(108)  评论(0)    收藏  举报