安装升级基础组件现场问题排查及解决方案-new
2024-07-31 16:54:21 212 举报
AI智能生成
更新111
作者其他创作
大纲/内容
用户中心问题
菜单缺失问题
角色菜单未授权(查看登录用户所属角色是否有新菜单使用权限)
修复方案:对用户所属角色进行菜单功能授权
脚本漏刷(查看tb_resource表中是否存在缺失的菜单数据)
修复方案:找到缺失的脚本,重刷
未激活成功(在用户中心角色管理中对应模块下进行查看查菜单是否存在)
修复方案:运营平台上切换版本后需要重新勾选菜单,重新生成激活包,重新激活系统,重启用户中心服务
查激活包是否包含菜单:将systemcenter库的active_code_config表中code字段值拷贝出来,提供给用户中心开发
单点登录工具问题
服务器时间不同步
修复方案:存在时间差的话需要找信息科同步
登录账号未配置所在院区,或配置院区与单点登录中输入的院区编码不一致
修复方案:给登录账号配置所在院区,且与单点登录中输入的院区编码一致
用户已经在系统中登录
修复方案:已登录的用户退出登录,然后重新进行单点的登录操作
用户中心配置项‘免密登录私钥’‘免密登录链接超时时间’存在回车导致
修复方案:重新维护配置项值,把换行符去掉重新保存
RED4-8754 住院科室推送问题导致用户中心门诊code相同的科室名称也被变更
修复方案:
1.将 dd_dept 表中的 push_time 字段更新为null(执行sql:update data.dd_dept set push_time = null;)。
2.重启用户中心服务
3.在点评系统中手动添加该机构的任意一天的上报任务
1.将 dd_dept 表中的 push_time 字段更新为null(执行sql:update data.dd_dept set push_time = null;)。
2.重启用户中心服务
3.在点评系统中手动添加该机构的任意一天的上报任务
231222直接修改数据库用户账号的密码后页面登录不了
问题原因:231222版本,页面登录走的是auth_user_info表 是转换之后的 现场只修改了auth_user表中的admin的密码 由于auth_user_info并没有更新为转换后的新密码 所以用修改过后的密码登不进去
解决方案:备份auth_user_info表-->清空auth_user_info表-->重启用户中心
-->auth_user表的数据会转换后生成auth_user_info表的数据 然后用新密码就能登录了
-->auth_user表的数据会转换后生成auth_user_info表的数据 然后用新密码就能登录了
老版本科室选择框一直loading无法加载
问题原因:后台报错提示服务方法执行错误,数据库中存在科室ID是负数
解决方案:数据库用户中心科室表中找到该科室,然后把该科室的dept_id改为比科室表中最大dept_id大1的数字(科室表中的dept_id都是按顺序排列的,倒序一下就能找到最大值),然后重启用户中心
注意:改dept_id值的时候 不能改成比tb_sequence表中systemcenter_medical_dept的max_id大的值
注意:改dept_id值的时候 不能改成比tb_sequence表中systemcenter_medical_dept的max_id大的值
另外也有现场从210930升级到4.0高版本后,发现数据存在科室id或医生id为0,导致服务启动报错
解决方案:将脏数据清理后即可
知识建设问题
比对数据无法导入,报文件解析不了(4.0版本)
安全防护开关被打开
修复方案:关闭安全防护开关
生成药物手册报错(3.3版本)
存在重复数据(product_id)
修复方案:http://confluence.ipharmacare.net/x/UoPvAg
打开药品属性维护页面报错
tb_product_tpn表存在重复数据(48内部端问题导致)
修复方案:执行以下sql(有些数据重复可能会大于2条,所以下面的sql需要重复执行几次):delete from tb_product_tpn where id in (select id from
(select product_id, max(id) as id,count(1) from tb_product_tpn
where owner = -1
GROUP BY product_id
HAVING count(1) > 1 order by count(1) desc
)z )
(select product_id, max(id) as id,count(1) from tb_product_tpn
where owner = -1
GROUP BY product_id
HAVING count(1) > 1 order by count(1) desc
)z )
IE8下调用说明书链接打开显示空白
打开开发者工具,发现浏览器模式是IE8,但是文本模式是IE7
修复方案:打开工具->兼容性视图设置,去掉最后一个复选框的勾选状态,只勾选前两个即可
在未登录的情况下,查看说明书页面无法查看药品图片
解决方案:1.修改 /data/app/knowledge/etc/application.yml 文件,在ignore: 这一列上 加上 /api/upload/product_picture/**
2.到/data/bin/目录 使用 ./deploy.sh knowledge restart 不解压重启系统
注意如果下次解压覆盖,需要重新修改,或升级到最新版本(4.0_221228fix及以上)
2.到/data/bin/目录 使用 ./deploy.sh knowledge restart 不解压重启系统
注意如果下次解压覆盖,需要重新修改,或升级到最新版本(4.0_221228fix及以上)
知识库->更新概要->知识新增概况记录中,说明书记录的链接点击后显示空白
产生原因:服务工具配置项开启了中药饮片说明书数据转换的开关,知识包数据导入后进行数据转换操作时把关联关系断了,实际数据是存在的
解决方案:一般无需处理,若一定要处理,可以关闭该配置项开关,重启服务工具,然后重新再导入知识包做验证
分析or管理规则节点删不掉
问题现象:规则图已清空并审核,但是节点状态还是‘编辑中’,无法删除
解决方案:到tb_rule_subject表中查找出该节点记录,进行删除即可
资料查询页面展示的药品说明书内容中药品名称与实际不符
SELECT base_drug, count(1) FROM `ipharmacare_knowledge`.`herb_order_drug_mapping`
group by base_drug
HAVING count(1) > 1 查找到有多条记录,资料内容维护的药品层级不是叶子节点,说明书转换随机取一条
group by base_drug
HAVING count(1) > 1 查找到有多条记录,资料内容维护的药品层级不是叶子节点,说明书转换随机取一条
临时解决方案:修改服务工具的setenv文件,将配置【REPAIR_HERB_INSTRUCTION_OPEN】改成false,重启服务工具,重新上传最新知识包即可
共享规则集知识包导入后批量更新不生效
如果知识切换到105后,这个问题出现频率会增加
后续在23年服务工具,可能要考虑修复下这个问题
解决方案:http://confluence.ipharmacare.net/pages/viewpage.action?pageId=77693622
规则问题
审核规则出现规则消失或规则图还原
更新知识包后只重启知识建设,未重启引擎
修复方案:更新知识包后需要依次重启知识建设、引擎服务
单机版安装环境,网络弱连接,报错提示资源链接问题(如:connectionLoss,有mq\zk\msyql\pgsql\redis\dubbo\minio等)
修复方案:单机部署建议用localhost代替ip
后端包不匹配,mq队列有未消费的记录http://192.10.206.92:15672/#/queues
修复方案:更新前后端包到最新,然后重启服务
打开规则图出现空白,编辑区规则无法打开
浏览器控制台发生报错,如算子缺失(0930版本)
修复方案:重刷全量算子的脚本
脚本链接:http://deploy.ipharmacare.net/knowledge/dev/v4.0_210930_dev/dbscripts/increment/4.0.210930/
外部端迭代版本新增算子后,如果做了更新知识包操作,会把算子相关的配置表还原
现象1:如果更新知识包之前没用新算子画规则,更新后将看不到新的算子
现象2:如果更新知识包之前用新算子画了规则,更新后打开规则图会报错
现象1:如果更新知识包之前没用新算子画规则,更新后将看不到新的算子
现象2:如果更新知识包之前用新算子画了规则,更新后打开规则图会报错
浏览器控制台发生报错,如规则图太大
修复方案:先查看最近一条历史规则,历史规则能查看的情况下,到tb_rule_subject表中删除gragh_xml字段的值,然后再重新刷新浏览器即可
建议现场不要将规则都集中画在一个分类上,适当进行拆分
规则图中存在脏数据
修复方案:http://confluence.ipharmacare.net/x/NoPvAg
编辑区规则集中到一个点上,展示丑陋
规则维护时,因为节点中存在的id是数据类型的,在值过大时,被强制转换,导致节点在维护时,出现异常,此类情况,只能重新维护当前规则
修复方案:http://confluence.ipharmacare.net/x/GJjvAg
没有系统规则,初始化规则集页面规则条数只有个位数
升级后没有做规则集初始化,就开始手动画规则并进行审核操作
修复方案:通过sql脚本删除指定规则集,并重新进行规则集初始化操作
脚本链接:http://confluence.ipharmacare.net/x/2gOxAQ
进行规则修复操作时出现异常,导致源库和备份库的engine_node表数据被清空
进行规则审核提示‘知识建设接口调用异常’,后台报java.io.IOException:Broken pipe错误
尝试用户中心编辑用户信息保存也失败的话,考虑可能是网络不稳定、信息科对传输文件大小做了限制、信息科对put请求做了限制等因素
修复方案:咨询信息科放开网络限制,需要信息科协助处理
规则图乱序
如果节点修复后,出现规则图乱序情况,需要在ipharmacare_knowledge库中执行以下语句(有条件备份首先备份)
修复方案:http://confluence.ipharmacare.net/x/QIC0Ag
个别规则保存审核发生报错
知识建设错误日志报错信息1
2022-11-28 18:14:59.594 [com.ipharmacare.knowledge.service.rule.RuleGraphExtendService 281] [ERROR] - [] [] [] - 规则保存|审核失败
java.lang.RuntimeException: 引擎接口调用异常
at com.ipharmacare.knowledge.client.engine.prod.RuleAdapter.saveRules(RuleAdapter.java:37)
at com.ipharmacare.knowledge.service.rule.adapter.RuleAdapterExtendService.saveRules(RuleAdapterExtendService.java:34)
at com.ipharmacare.knowledge.service.rule.RuleGraphExtendService.auditRuleGraph(RuleGraphExtendService.java:398)
at com.ipharmacare.knowledge.service.rule.RuleGraphExtendService.saveAndAuditRuleGraph(RuleGraphExtendService.java:256)
at com.ipharmacare.knowledge.biz.rule.RuleGraphApiImpl.saveAndAuditRuleGraph(RuleGraphApiImpl.java:44)
at com.ipharmacare.knowledge.web.controller.rule.RuleGraphController.saveOrAuditGraph(RuleGraphController.java:281)
at com.ipharmacare.knowledge.web.controller.rule.RuleGraphController.auditRuleGraph(RuleGraphController.java:204)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.ipharmacare.systemcenter.plugin.filter.AuthFilter.doFilter(AuthFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.ipharmacare.xss.plugin.filter.XssFilter.doFilter(XssFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.ipharmacare.xss.plugin.filter.CsrfFilter.doFilter(CsrfFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: 引擎接口调用异常
at com.ipharmacare.knowledge.client.engine.prod.RuleAdapter.saveRules(RuleAdapter.java:37)
at com.ipharmacare.knowledge.service.rule.adapter.RuleAdapterExtendService.saveRules(RuleAdapterExtendService.java:34)
at com.ipharmacare.knowledge.service.rule.RuleGraphExtendService.auditRuleGraph(RuleGraphExtendService.java:398)
at com.ipharmacare.knowledge.service.rule.RuleGraphExtendService.saveAndAuditRuleGraph(RuleGraphExtendService.java:256)
at com.ipharmacare.knowledge.biz.rule.RuleGraphApiImpl.saveAndAuditRuleGraph(RuleGraphApiImpl.java:44)
at com.ipharmacare.knowledge.web.controller.rule.RuleGraphController.saveOrAuditGraph(RuleGraphController.java:281)
at com.ipharmacare.knowledge.web.controller.rule.RuleGraphController.auditRuleGraph(RuleGraphController.java:204)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.ipharmacare.systemcenter.plugin.filter.AuthFilter.doFilter(AuthFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.ipharmacare.xss.plugin.filter.XssFilter.doFilter(XssFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.ipharmacare.xss.plugin.filter.CsrfFilter.doFilter(CsrfFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
判断可能当前规则图中部分节点出现异常,需要手动修复规则问题
1. 打开浏览器控制台,查看是否有报错
2. 进行审核操作,将接口“ruleGraph”返回的graphXml内容拷贝出来,提供给研发进行分析
3. 可将\" 全文替换为空,进行xml格式化
浏览器控制台报错:put请求---net::ERR_CONNECTION_RESET
可能是信息科对网络做了设置,限制了put请求,需要咨询信息科
知识建设错误日志报错信息2
如:插入到engine_rule表时提示duplicate engtry 'id-version' for key 'PRIMARY'
可能原因:进行过知识包更新后,没有重启知识建设和引擎服务,就进行了规则维护
解决方案:
先重启知识建设和引擎服务
然后根据报错提示的id_version,到数据库中找到对应的分支规则,按id_version-1取出longid,到规则图页面替换链接上的msgid
也可根据分支名称,到规则查看页面按自定义规则进行检索后,根据接口返回的id,在列表找到规则并点击查看,就可能定位到具体的规则了
再规则图中把该规则的警示框删了重画,再进行审核
规则图打开报错,提示‘节点无法正常渲染’
可能原因1:系统内存资源问题,通过free -m命令查看内存使用情况,是否swap区消耗较大,同时打开浏览器控制台,打开规则图时是否存在由于网络情况存在耗时较长的接口调用,若存在以上情况,进行对应的调整即可
可能原因2:engine_node表中的fact_name与实际页面维护的算子对象属性名称不一致了(如:住院累计使用时间,在engine_node表中存储的是‘住院累计时间’ select * from engine_node where fact_name='药嘱.药品.住院累计时间')
解决方案:更新名称保持一致,并重启引擎 update engine_node set fact_name='药嘱.药品.住院累计使用时间' where fact_name='药嘱.药品.住院累计时间'
可能原因3:历史老版本的算子有绘制规则,新版本中已移除该算子,导致节点渲染异常(如:3.5最早期版本的‘病人资料.丙氨酸转氨酶’)
解决方案:删除错误的规则节点后重新审核
部分规则图打开报错,提示引擎接口调用异常:lambda$getValidRuleBySubject$0(EngineCacheService.java:55)
问题原因:node节点[(d2db9461704743bc8683d7bca99fa40b,nil)]丢失,请检查engine_rule, engine_node的完整性
其中:需要更新引擎最新后端包,才能在warn日志中记录存在问题的规则节点(目前只调整了220630及以上的版本)
其中:需要更新引擎最新后端包,才能在warn日志中记录存在问题的规则节点(目前只调整了220630及以上的版本)
解决方案:1. 根据引擎warn日志的提示,获取node节点id,到engine_node表中将next_id为空的数据补上nil
select * from engine_node where id ='d2db9461704743bc8683d7bca99fa40b';
2. 到engine_rule中找到对应规则,并将它置为失效,修改status为0,operation为DELETE
SELECT * FROM `engine_rule` where subject_name ='注射用腺苷钴胺' and node_chain like '%d2db9461704743bc8683d7bca99fa40b"]'
3. 重启引擎服务,规则图重新打开
select * from engine_node where id ='d2db9461704743bc8683d7bca99fa40b';
2. 到engine_rule中找到对应规则,并将它置为失效,修改status为0,operation为DELETE
SELECT * FROM `engine_rule` where subject_name ='注射用腺苷钴胺' and node_chain like '%d2db9461704743bc8683d7bca99fa40b"]'
3. 重启引擎服务,规则图重新打开
引擎问题
引擎出现内存问题,/data/logs/gc下引擎日志,持续输出Full gc日志
内存配置低于4g
修复方案:修改setenv.sh中内存配置,重启引擎
3.5系统升到4.0,更新知识库后,规则数据加倍
排查方法:select count(1) from engine_node,如果结果达200万,则确认是该问题
修复方案:执行规则修复工具操作, 如果业务当前不能停,临时加倍引擎内存,重启引擎,在晚上再做规则节点修复
修复工具链接:https://nextcloud.ipharmacare.net/index.php/f/16810277
业务高峰期重启引擎
停掉业务系统对引擎的调用,重启引擎,待引擎重启完成后,再开放业务系统调用
规则不生效
先检查未跑规则的药品入参数据中primary标记是否为false(合用有效药嘱只跑相互作用、重复用药分支规则)
再查看分支名称是否存在重复、警示框中规则启用状态是否为‘否’、药品是否已比对,入参是否满足规则的判断条件等
排查方法:http://confluence.ipharmacare.net/x/64CG
修复方案:排除以上问题即可
通过日志分析入参数据以及预处理结果
根据对应版本进行操作,抓取日志:http://confluence.ipharmacare.net/pages/viewpage.action?pageId=28378076
分析下住院不跑规则
药品未必对、医嘱类型未传、hospitalcode与用户中心机构表不一致等,具体根据错误日志分析
解决方案:根据日志检索关键信息,进行数据问题修复 http://confluence.ipharmacare.net/x/xJjvAg
病人特征规则不跑
给引擎的入参数据不满足执行逻辑
病人特征规则执行逻辑:http://confluence.ipharmacare.net/x/KAbsAQ
新旧点评审查结果存在差异(4.0_211230之后的版本)
http://confluence.ipharmacare.net/x/HY7vAg
引擎日志报规则有环路,或engine_node节点膨胀
检查环路命令:./deploy_engine.sh restart cycle,执行该命令会停止引擎服务
修复工具链接:https://nextcloud.ipharmacare.net/index.php/f/16810277
工具修复后,若检查了还有环路,则需要进行手动修复
修复方案:http://confluence.ipharmacare.net/pages/viewpage.action?pageId=77695951
引擎日志报‘节点执行异常’
查看引擎日志‘engine_error_request_fact.log’,存在‘节点执行异常’错误,如:
合用药嘱.药品.名称 节点执行异常 e2b186204fc6484ba992f28af28e4663 - d8828a18850b45e8a24ed764e8f73daf, 异常信息:
java.lang.NullPointerException
合用药嘱.药品.名称 节点执行异常 e2b186204fc6484ba992f28af28e4663 - d8828a18850b45e8a24ed764e8f73daf, 异常信息:
java.lang.NullPointerException
产生原因:规则升级、迁移过程中,由于算子结构发生变化,未能通过节点修复工具完成修复的数据
修复方案:将报错信息中的第一个id复制出来,通过以下语句在数据库中进行检索,找到存在该问题的规则主体,再打开对应规则图,手动将问题节点重新画一遍,审核后即可
SELECT * FROM `ipharmacare_knowledge`.`engine_rule` WHERE `node_chain` LIKE '%4d4ae6d3aad54787aa04179e6a96876f%' ORDER BY `created_time` DESC
引擎启动失败
进行规则修复操作时出现异常,导致源库和备份库的engine_node表数据被清空
原先的自定义规则已经无法还原,只能通过以下方式重新导入系统规则
修复方案:更新全量知识包-->删除规则集-->规则集重新初始化
规则集重新初始化操作:http://confluence.ipharmacare.net/x/2gOxAQ
启动日志提示加载产品缓存时发生报错
删除重复数据,主键修改为id,重启引擎即可
检索是否存在ID重复的数据
SELECT id FROM `tb_product` GROUP BY id HAVING COUNT(1) > 1;
创建修复表
CREATE TABLE tb_product_repair LIKE tb_product;
将源表数据导入到修复表(重复数据不插入)
INSERT IGNORE INTO tb_product_repair
SELECT * FROM tb_product;
将源表备份
RENAME TABLE tb_product TO tb_product_220804;
重命名修复表为正式表
RENAME TABLE tb_product_repair TO tb_product;
SELECT id FROM `tb_product` GROUP BY id HAVING COUNT(1) > 1;
创建修复表
CREATE TABLE tb_product_repair LIKE tb_product;
将源表数据导入到修复表(重复数据不插入)
INSERT IGNORE INTO tb_product_repair
SELECT * FROM tb_product;
将源表备份
RENAME TABLE tb_product TO tb_product_220804;
重命名修复表为正式表
RENAME TABLE tb_product_repair TO tb_product;
查看启动日志,存在‘duplicate key productbase’异常信息,查看数据库tb_product表,存在id重复的数据(主键正常应该是id)
zoneid=0导致开具医生、复核护士、开具科室不生效
nextcloud上获取210930or220630最新知识建设前端包,规则重画即可
引擎执行报单位不合法,涉及到221020版本新增的axaiu\lsu\PNA单位等,导致该处方所有药品都不跑规则
210930及以上版本,引擎已做兼容处理,升级到最新版本即可,详见RED4-6995
210630及以下版本,解决方案如下
优先建议升级到210930最新fix版本
后续操作:把这个单位比对到其他单位,同时将知识建设库中tb_product*相关表中问题药品的单位都修改为引擎可识别的,若是维护的问题,就同时再将问题药品给到知识部进行调整(否则下次更新知识包后,问题会再次出现)
引擎执行报NumberFormatException:For input string:"NqXwABh4bn"这类错误
产生原因:历史版本配伍管理规则曾对表tb_pw_drug_match中的字段pw_drug_match_id做过id生成的调整,后来发现不适用又改回10打头,原先在历史版本中做过自定义配伍规则维护的医院会留存这批脏数据
修复方案:根据报错提示,在表中找到这条配伍规则,根据药品名称,到配伍管理的页面将规则删除重画即可(建议同时排查下是否还存在字母开头的其他配伍规则,一并改了)
3.5版本跑引擎出现引擎假死(进程在,但是跑不出警示信息)
可能原因:知识部在维护数据时,把最小药理分类挂在最底层的药品分类树叶子节点上
解决方案:通过以下sql进行检索,将检索到的数据记录截屏发给知识部,现场做删除处理可恢复正常
select * FROM( select p.*, (select 1 from tb_drug c where p.code = SUBSTRING(c.code, 1, length(c.code) -3) and length(c.code) > 3 limit 1) has_children FROM tb_drug p
where p.code like '001%' and p.id in(select drug_id from tb_drug_property where dict_code ='药理最小分类') ) t where has_children is null
where p.code like '001%' and p.id in(select drug_id from tb_drug_property where dict_code ='药理最小分类') ) t where has_children is null
3.5版本引擎启动报错
问题现象:引擎启动报错 Loading dictionary drug_category Parent is null
解决方案:查找脏数据并清理,重启服务即可 select * from tb_drug where flmcId not in (select id from tb_drug) and flmcId !="
知识包更新问题
服务工具导入知识包提示错误
查看/data/logs/initsystem/initsystem_error.log
存下以下信息:ERROR com.ipharmacare.initsystem.service.knowledgeimport.prod.StatisticExecute Line:224 - tb_drug row_format 不一致
存下以下信息:ERROR com.ipharmacare.initsystem.service.knowledgeimport.prod.StatisticExecute Line:224 - tb_drug row_format 不一致
修复方案
将ipharmacare_knowledge表结构改成与knowledge_temp表结构一致,重新导入知识包即可
如果存在表结构不清楚怎么修改,终极解决方案:修改当前ipharmacare_knowledge表名,使用knowledge_temp表结构在ipharmacare_knowledge库中建表,并手工恢复备份表中数据
在数据库中执行如下语句,可看出差异
SELECT table_catalog,table_type,engine,version,row_format,table_collation FROM information_schema.TABLES
where table_schema in ('ipharmacare_knowledge','knowledge_temp') and table_name = 'tb_drug';
select table_catalog,table_schema,table_name,column_name,is_nullable,data_type,character_set_name,collation_name from information_schema.columns
where table_schema in ('ipharmacare_knowledge','knowledge_temp') and table_name = 'tb_drug' order by column_name;
where table_schema in ('ipharmacare_knowledge','knowledge_temp') and table_name = 'tb_drug';
select table_catalog,table_schema,table_name,column_name,is_nullable,data_type,character_set_name,collation_name from information_schema.columns
where table_schema in ('ipharmacare_knowledge','knowledge_temp') and table_name = 'tb_drug' order by column_name;
报错是tb_rule_set表结构不一致
产生原因:全新安装系统后并激活系统后,未启动知识建设服务,导致表结构没有刷到最新(知识建设脚本内置到liqubase,启动服务时才自动刷升级脚本),此时进行知识包更新会报当前错误
修复方案:先执行以下脚本,然后重新更新知识包,alter table tb_rule_set MODIFY `created_zone_id` bigint(32) DEFAULT NULL COMMENT '创建院区';
报错是知识库版本不一致
修复方案:先修改sys_config表中的配置BASE_DATABASE_VERSION,将知识库版本改小后,重启服务工具,再次更新知识包
报insert语句错误,通讯链接异常
查看系统资源或mysql 内存配置,是否存在内存不足
修复方案
若内存不够,可以先将不用的服务停一下,更新完知识包后再重启服务
若系统资源内存充足,mysql 内存配置不足,则加大mysql内存配置后重启mysql服务,重新更新知识包
上传知识包过程中发生中段,报EOF read on the socket错误,以及broken pipe错误
一般来说是医院网络做了限制,需要与信息科进行确认
如果现场确实无法通过上传方式更新知识包,可以通过本地方式进行更新
http://confluence.ipharmacare.net/x/JgSxAQ
4.0_220331以下版本更新知识包失败
0331版本发版后,知识体系结构优化,内部端已升级到最新版本
修复方案:服务工具升级到最新版本,再重新导入知识包
服务工具链接:https://nextcloud.ipharmacare.net/index.php/f/20621648
知识包更新提示sql问题汇总
知识包更新时提示‘获取sql文件异常’,/data/soft/mysql-utilities/update_*.sql(No such file or directory)
检查/data/soft下的mysql-utilities目录权限是否是yyuser,服务工具的配置的路径是否正确
报错是/data/soft/mysql-utilities下的sql文件找不到
修复方案:检查目录的权限是不是yyuser,需要重新进行授权
全新安装系统后,服务工具页面打开显示‘加载中’
浏览器不兼容,需要使用chrome49及以上版本
规则集初始化进度条卡住
未更新知识包的情况下做规则集初始化,或者没有购买某个规则集,却对该规则集进行初始化操作,进度条会卡住不动
修复方案:更新知识包,再进行规则集初始化
知识包更新后出现字典对应异常
修复方案:重启知识建设和引擎服务
历史版本升级到4.0_210930版本,且更新了知识包
知识建设新增‘管理依据’这个功能,内部端当前没有开放出去,外部端如果遇到添加管理依据提示权限问题的,请刷以下sql脚本:
UPDATE `ipharmacare_knowledge`.`tb_dictionary_category` SET `open`='1', modify_date = now() WHERE `id`='2';
UPDATE `ipharmacare_knowledge`.`tb_dictionary_category` SET `open`='1', modify_date = now() WHERE `id`='2';
外部端迭代版本新增算子后,如果做了更新知识包操作,会把算子相关的配置表还原
现象1:如果更新知识包之前没用新算子画规则,更新后将看不到新的算子
现象2:如果更新知识包之前用新算子画了规则,更新后打开规则图会报错
出现上述现象后,请到以下目录重刷sql脚本:data_init_knowledge.sql
现象1:如果更新知识包之前没用新算子画规则,更新后将看不到新的算子
现象2:如果更新知识包之前用新算子画了规则,更新后打开规则图会报错
出现上述现象后,请到以下目录重刷sql脚本:data_init_knowledge.sql
https://nextcloud.ipharmacare.net/index.php/f/24243861
抗网、中药饮片、妊娠哺乳分级等知识数据更新
现场版本<0331,服务工具=0331,知识包包含抗网、中药饮片、妊娠哺乳分级数据,但不会更新到正式库(正式库没有对应的表结构)
现场版本<0331,服务工具=0331,知识包包含抗网、中药饮片、妊娠哺乳分级数据,但不会更新到正式库(正式库没有对应的表结构)
修复方案:直接刷数据脚本的方式更新数据
--妊娠哺乳分级 RED4-1728 tb_drug_hazard_level_desc
--抗网 RED4-2126 tb_dictionary_drug_generic tb_drug_generic 以及tb_dictionary_data表中category_code为antimicrobial_categories&generic_drug_name 的数据
--中药饮片 http://confluence.ipharmacare.net/pages/viewpage.action?pageId=49250641 herb_decoction_pieces_info herb_diagnose_prescription_mapping herb_order_diagnose_rule herb_order_drug_mapping herb_prescription_info
--自定义说明书图片 RED4-428 tb_product表字段pictureOperateUser、pictureOperateTime
--抗网 RED4-2126 tb_dictionary_drug_generic tb_drug_generic 以及tb_dictionary_data表中category_code为antimicrobial_categories&generic_drug_name 的数据
--中药饮片 http://confluence.ipharmacare.net/pages/viewpage.action?pageId=49250641 herb_decoction_pieces_info herb_diagnose_prescription_mapping herb_order_diagnose_rule herb_order_drug_mapping herb_prescription_info
--自定义说明书图片 RED4-428 tb_product表字段pictureOperateUser、pictureOperateTime
现场版本>=0331,服务工具>=0331,知识包包含抗网、中药饮片、妊娠哺乳分级数据,并且会更新到正式库
3.3版本知识包更新后,规则分类树出现重复
可能原因:之前小版本升级的时候未做中药饮片升级操作,后续升级更新知识包,规则库中存在两套分类数据
解决方案:1,create table xxx as (select * from tb_drug_rule where user_rule is not null) 把用户规则备份到一个自己命名的表里面
2,手动备份tb_drug_rule和tb_drug_rule_exe表
3,delete form tb_drug_rule where length(rule_id) <32 and product_id='0'
delete form tb_drug_rule where length(rule_id) <32 and product_id is null ---删除小于32位的rule_id
delete from tb_drug_rule_exe where rule_id not in (select rule_id from tb_drug_rule) ---删除对应的执行中规则
4,重启系统
5,备份表 user_rule 字段-> 正式表 user_rule字段 -> 界面上手动审核---手动拷贝字段值
2,手动备份tb_drug_rule和tb_drug_rule_exe表
3,delete form tb_drug_rule where length(rule_id) <32 and product_id='0'
delete form tb_drug_rule where length(rule_id) <32 and product_id is null ---删除小于32位的rule_id
delete from tb_drug_rule_exe where rule_id not in (select rule_id from tb_drug_rule) ---删除对应的执行中规则
4,重启系统
5,备份表 user_rule 字段-> 正式表 user_rule字段 -> 界面上手动审核---手动拷贝字段值
3.3升4.0问题
基础数据迁移失败
按文档检查升级步骤,是否有操作不到位的地方,确保迁移前,4.0系统是正常可用且规则图能打开的
修复方案:进行新迁移前,将4.0目标服务器的knowledge库中的tb_rule_transform以及tb_rule_transform_check表清空
工具链接:https://nextcloud.ipharmacare.net/index.php/f/18271505
机评报错提示: ArrayIndexOutOfBoundException: 2
3.3旧点评系统, 点评阶段显示警示类型参数的格式, 和4.0版本的参数格式不一致, 导致机评出现报错,如:在3.3中配置成
||5|全部,升级到4.0后,跑点评根据该配置进行切割是出现问题,发生报错
||5|全部,升级到4.0后,跑点评根据该配置进行切割是出现问题,发生报错
修复方案:在4.0系统中重新修改该参数为4.0版本标准格式, 即可
基础数据迁移后auth_user表id为负数
旧的迁移工具在自增上存在BUG,当auth_user表只存在-100、-200、-300出厂用户数据时直接做迁移,会触发
修复方案:需要使用最新迁移工具,重新迁移,迁移前先将异常数据删除
工具链接:https://nextcloud.ipharmacare.net/index.php/f/18271505
基础数据迁移后引擎服务启动失败
原因:全新安装4.0系统,0930版本后一键包已经不含知识库数据
修复方案:激活系统后,需要先导入知识包,再重启用户中心、知识建设和引擎服务
3.3升级4.0的顺序:全新安装4.0系统(未激活)->进行基础数据迁移->激活系统,导入知识包,重启用户中心、知识建设和引擎->规则迁入
若基础数据迁移之前已经激活了系统,需要修改下zone_id,与3.3系统保持一致
基础数据迁移后tb_product_drug表存在数据缺失(自定义添加的产品与挂载药品分类的关联关系丢失)导致引擎报空指针异常
需要进行数据修复:
SELECT * FROM tb_product_drug WHERE product_id LIKE 'c_0%';
SELECT * FROM tb_product WHERE id LIKE 'c_0%';
SELECT t.id product_id, t1.id drug_id, ypmc drug_name, code drug_code ,-200, NOW()
FROM tb_product t, tb_drug t1 WHERE t1.ypmc = t.drugCategoryName AND t.id LIKE 'c_0%'
INSERT INTO tb_product_drug (product_id,drug_id,drug_name,drug_code,modify_user,modify_date)
SELECT t.id product_id, t1.id drug_id, ypmc drug_name, code drug_code ,-200, NOW()
FROM tb_product t, tb_drug t1 WHERE t1.ypmc = t.drugCategoryName AND t.id LIKE 'c_0%'
SELECT * FROM tb_product_drug WHERE product_id LIKE 'c_0%';
SELECT * FROM tb_product WHERE id LIKE 'c_0%';
SELECT t.id product_id, t1.id drug_id, ypmc drug_name, code drug_code ,-200, NOW()
FROM tb_product t, tb_drug t1 WHERE t1.ypmc = t.drugCategoryName AND t.id LIKE 'c_0%'
INSERT INTO tb_product_drug (product_id,drug_id,drug_name,drug_code,modify_user,modify_date)
SELECT t.id product_id, t1.id drug_id, ypmc drug_name, code drug_code ,-200, NOW()
FROM tb_product t, tb_drug t1 WHERE t1.ypmc = t.drugCategoryName AND t.id LIKE 'c_0%'
数据修复后重启知识建设和引擎服务,再重跑引擎
自定义管理规则没有迁移成功
1. 检查规则校验文档以及迁移文档,该规则是否存在校验失败or迁移失败记录
若存在失败记录,按要求进行规则修改,再进行迁移操作
2. 由于各种原因需要重新迁移规则
先清理4.0目标库的transfrom两张表的数据
重新进行规则校验和规则迁移操作
若之前已经做了规则规整操作,则需要把表删除,重建后,重启服务工具
3.3升级到231222后登录不进去
问题原因:一般是基础数据迁移后,漏刷脚本导致【231222版本用户登录鉴权方式有变更,老版本数据迁移后需要手动刷脚本更新用户表数据】
解决方案:执行数据修复sql,并重启用户中心和服务工具
UPDATE `ipharmacare_systemcenter`.`auth_user` SET `password` = 'Iu7BMWnzsq+Bdm26bSrImN5wEm/4l0TWiXgGCLRopL/uxa4dyOwaFFc5FPYd3m+Y' WHERE `uid` = -300;
UPDATE `ipharmacare_systemcenter`.`auth_user` SET `password` = 'KLP8Qs/wyWkdhebqho5fWS9UX5gMF640hvG4cWXfXlvuxa4dyOwaFFc5FPYd3m+Y' WHERE `uid` = -200;
UPDATE `ipharmacare_systemcenter`.`auth_user` SET `password` = 'KLP8Qs/wyWkdhebqho5fWS9UX5gMF640hvG4cWXfXlvuxa4dyOwaFFc5FPYd3m+Y' WHERE `uid` = -100;
UPDATE `ipharmacare_systemcenter`.`auth_user` SET `password` = 'KLP8Qs/wyWkdhebqho5fWS9UX5gMF640hvG4cWXfXlvuxa4dyOwaFFc5FPYd3m+Y' WHERE `uid` = -200;
UPDATE `ipharmacare_systemcenter`.`auth_user` SET `password` = 'KLP8Qs/wyWkdhebqho5fWS9UX5gMF640hvG4cWXfXlvuxa4dyOwaFFc5FPYd3m+Y' WHERE `uid` = -100;
3.5升4.0问题
升级后规则丢失
进行3.5→4.0的升级过程中发生链接断开,规则升级出现异常,部分规则相关表的数据条数少了或直接为0,需要对规则进行修复
查规则是否有丢失: repair migrate库 engine_rule相关表数据条数
修复方案:http://confluence.ipharmacare.net/x/aIvvAg
查规则是否有丢失: repair migrate库 engine_rule相关表数据条数
升级后引擎启动失败
先排查app和db的升级日志,如果有报错代表升级失败,联系运维进行处理
升级后用户中心和引擎启动失败,报空指针异常
可能使用了老的升级包,脚本存在缺失,重新刷一下脚本即可 https://nextcloud.ipharmacare.net/index.php/f/18676810
4.0版本间升级问题
启动服务时出现锁,导致服务启动失败
修复方案:http://confluence.ipharmacare.net/x/vZecAw
231222高版本统一接口搭配低版本点评系统,数据上报进度0
修复方案:https://www.processon.com/view/link/62d11c5de401fd2596027bd1?cid=62d0fd825653bb2b401d4497
4.0全新安装问题
全新安装后,服务一键全部启动,系统运行不稳定,应用进程时有自动kill掉的情况
检查服务器内存资源,在服务器总体资源不足的情况下,应用服务运行高峰期会进行资源竞争,导致部分应用无响应或进程自动kill掉
全新安装后,rabbitmq页面登录不进去(http://192.168.1.138:15672/ 使用yyuser/ipharmacare登录,提示密码错误,导致业务系统无法启动)
解决方案:执行以下脚本进行mq账号重置 /data/bin/reset_rabbitmq.sh
运营平台
3.3版本,勾选菜单不生效
解决方案:切换到4.0版本保存后,再切换回3.3版本,重新勾选菜单并保存即可
自由主题
自由主题
0 条评论
下一页