4.0平台遇到的坑
-----------------------------------------------------------------------------------------------------
============================================================================================================================
-----------------------------------------------------------------------------------------------------

自动合并
AutomaticUnion.html
============================================================================================================================

-----------------------------------------------------------------------------------------------------

============================================================================================================================
-----------------------------------------------------------------------------------------------------
单点登录修改主界面的背景图:
1.修改D:\NHIP\atc7-portal-8084\webapps\Portal\resources\css\metro.css 的.tile-area-scheme-dark
1 2 3 4 5 6 | .tile-area-scheme-dark { /* background-color: #1b6eae; */ background-color: #1d1d1d; background-image:url(../../resources/img/index/background.png); background-size:100% 100%; } |
2.将背景图片放置在D:\NHIP\atc7-portal-8084\webapps\Portal\resources\img\index\background.png
============================================================================================================================
-----------------------------------------------------------------------------------------------------
问题:单点登录启动时候报错

问题处理过程:
1.怀疑是ojdbc jar包的问题,处理无果;
2.安装oracle客户端后,发现TNS连不上,后来才知道网安做了限制;联系网安去除了限制;
3.仍然出现上面报错,后排查发现jdbc.driver=oracle.jdbc.driver.OracleDriver 后面有空格!!!去除空格后启动无报错。
4.启动后hebinate 没有自动建表,排查发现 hibernate.hbm2ddl.auto=update 改成了 hibernate.hbm2ddl.auto=none,改回update后重启正常。
============================================================================================================================
-----------------------------------------------------------------------------------------------------
问题:CDR服务换了地方部署,有些服务正常启动,有些服务启动报JDBC错误
解决:redis问题,redis没有使用主数据的redis而是另部署了一个新的redis,被日志误导为jdbc报错,tomcat的localhost日志也要看。
============================================================================================================================
-----------------------------------------------------------------------------------------------------
控制总线监控错误数量
============================================================================================================================
-----------------------------------------------------------------------------------------------------

解决:
1.agent需要把name放开并写上名称,应与服务器名称相同
2.grafana名称需要配置
============================================================================================================================
http://192.168.30.236:8181/CDA-Endpoint/ws/incrementCDA
http://192.168.30.236:8181/CDA-Endpoint/ws/cdaRead
-----------------------------------------------------------------------------------------------------
============================================================================================================================
-----------------------------------------------------------------------------------------------------

2.之前服务是好的,后来重启过交互服务后。用SoupUI分别调用“电子病历文档检索”和“新增个人身份注册”服务,服务是可以成功调用,但是“新增个人身份注册”的日志后来就不显示了。

问题解决:交互服务写入的操作时间是业务发生的时间。
============================================================================================================================
-----------------------------------------------------------------------------------------------------


============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDA4.5注册结构化数据到生成CDA
数据流向举例:EMR工具->CDA服务接口->Mongodb里的cdadata_#ip->CDA服务->MDM的CDA生成接口->Mongodb里的cda和cdaDocIndex
1.结构化数据通过mapping2cda去对应到MDM的CDA生成接口的数据,结构可能有问题对应不上,主要在后台上改;
2.CDA配置的前台界面
4.MDM的CDA生成接口
10.1.210.155:9093/Mdm/engine/webService/wsdl/CDA/C0006.wsdl
5.MDM里CDA模板配置的界面
============================================================================================================================
-----------------------------------------------------------------------------------------------------
BI增加分区参考SQL
SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202201'||' VALUES LESS THAN (TO_DATE(''2022-02-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202202'||' VALUES LESS THAN (TO_DATE(''2022-03-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202203'||' VALUES LESS THAN (TO_DATE(''2022-04-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202204'||' VALUES LESS THAN (TO_DATE(''2022-05-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202205'||' VALUES LESS THAN (TO_DATE(''2022-06-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202206'||' VALUES LESS THAN (TO_DATE(''2022-07-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202207'||' VALUES LESS THAN (TO_DATE(''2022-08-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202208'||' VALUES LESS THAN (TO_DATE(''2022-09-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202209'||' VALUES LESS THAN (TO_DATE(''2022-10-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202210'||' VALUES LESS THAN (TO_DATE(''2022-11-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202211'||' VALUES LESS THAN (TO_DATE(''2022-12-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202212'||' VALUES LESS THAN (TO_DATE(''2023-01-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%'
============================================================================================================================
-----------------------------------------------------------------------------------------------------
jsonc转json: https://www.cnblogs.com/tomtellyou/p/12880898.html
json转class: https://json2csharp.com/
============================================================================================================================
-----------------------------------------------------------------------------------------------------
平台日常维护
A.cdr、BI增加表空间
--查询表空间占用情况 SELECT a.tablespace_name "表空间名", round(a.bytes / 1024 / 1024 / 1024, 2) "当前总空间(G)", round(d.max_tbspace/1024/1024/1024,2) "最大总空间(G)", round(b.bytes / 1024 / 1024 / 1024, 2) "已使用空间(G)", round((d.max_tbspace-b.bytes) / 1024 / 1024 / 1024, 2) "剩余空间(G)", round((b.bytes * 100) / d.max_tbspace, 2) "使用率(%)" FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c, (select tablespace_name,sum(case when dd.AUTOEXTENSIBLE='YES' then MAXBYTES else dd.BYTES end) as max_tbspace from DBA_DATA_FILES dd group by dd.tablespace_name) d WHERE a.tablespace_name = b.tablespace_name AND a.tablespace_name = c.tablespace_name and a.tablespace_name=d.tablespace_name order by a.tablespace_name; --增加表空间,要修改表空间名称、表空间路径和文件名称 alter tablespace 表空间名称 add datafile '表空间路径\表空间名称.dbf' size 30G autoextend on next 30M;
============================================================================================================================
-----------------------------------------------------------------------------------------------------
集成视图CDA展现不出来:
后台日志报错:
查证原因:<?xml version="1.0" encoding="UTF-8"?>必须放在.xml文件的第一行最开头的位置!
============================================================================================================================
-----------------------------------------------------------------------------------------------------
cdr服务soupui调用慢:
createDiagnosis--消息发送失败
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for createDiagnosis-0: 30034 ms has passed since batch creation plus linger time
createChargeitem--消息发送成功
failureMsg--消息发送失败
**kafka服务挂了,重启解决。(此问题后来发现是log的存储目录建在了tmp下,导致tmp空间占满,因而服务挂了)
查看kafka状态:jps
看有没有Kafka进程
重启:
cd /usr/local/kafka/kafka_2.11-1.1.0/bin
./kafka-server-start.sh -daemon ../config/server.properties &
log.dirs(log的存储目录) (/home/kafka-logs)
注意:不要文件夹不要建立在根目录tmp下
============================================================================================================================
-----------------------------------------------------------------------------------------------------
tomcat限制内存
CATALINA_OPTS="-Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss256k"
应该加到catalina.sh最上方才有用,放在最下面没有用。
这样启动显示才有效
============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDR值域校验
a.主数据里要加一个001的系统域
b.需要将字典添加到系统域和缓存
c.提示valueCode不在值域范围内也有可能是名称错了
============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDR4.0调用EMPI报错:先解决CDR里的报错
============================================================================================================================
-----------------------------------------------------------------------------------------------------
调用toolkit报错:必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。
有一些字段不能为汉字
============================================================================================================================
-----------------------------------------------------------------------------------------------------
调用患者建档toolkit报错:Exception of type 'Neu.Nhip.Common.exp.RTBusinessException' was thrown.
EMPI报错,原因是数据库重启以后,EMPI服务需要重启。
============================================================================================================================

============================================================================================================================
-----------------------------------------------------------------------------------------------------
集成视图前端无法访问,manager日志如下:
**跨域访问问题,web.xml里找到下面位置,修改成如图即可。
============================================================================================================================
-----------------------------------------------------------------------------------------------------
BI单点登录报错
修改spring-security-cas.xml
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CDR没有日志看log4j2.xml配置的LOG_HOME
============================================================================================================================
-----------------------------------------------------------------------------------------------------
toolkit调用慢的处理
a.总线上需要设置附加实例数
============================================================================================================================
-----------------------------------------------------------------------------------------------------
empi的表空间很多在system上,需要调整到NHIP_EMPI
SELECT 'alter table '||TABLE_NAME||' move tablespace NHIP_EMPI;' FROM USER_TABLES WHERE TABLESPACE_NAME != 'NHIP_EMPI'
============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDA-Viewer里cdaDocId是文档序列号
http://192.0.2.76:9010/Cda-Viewer/CdaDocViewController/cdaDocView?cdaDocId=ed1b31c0-d962-4b9f-bffc-6dbb4101370a&cdaDocTypeCode=C0004
============================================================================================================================
-----------------------------------------------------------------------------------------------------
外部程序调用MQ获得不了数据
第一种方法:
ALTER CHL(SYSTEM.BKR.CONFIG) CHLTYPE(SVRCONN)
ALTER CHL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN)
ALTER CHL(SYSTEM.ADMIN.SSL.CHL) CHLTYPE(SVRCONN) SSLCAUTH(REQUIRED) SSLCIPH(NULL_SHA)
第二种方法:
当C# 或 java 连接 IBM MQ 是出现 2035 或 2013的错误时
java的错误提示:
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为队列管理器“QM1”提供的安全性认证无效,连接方式为“Client”,主机名为“9.186.105.212(1414)”。 请检查提供的用户名和密码在您连接至的队列管理器中是否正确。
at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:540)
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:440)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:295)
at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
at com.ibm.mq.jms.MQTopicConnectionFactory.createTopicConnection(MQTopicConnectionFactory.java:114)
at com.jn.test.MQPublisher.main(MQPublisher.java:39)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ 调用失败,完成代码为“2”(“MQCC_FAILED”),原因为“2035”(“MQRC_NOT_AUTHORIZED”)。
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
... 7 more
解决方法:
登录服务器 进入 IBM mq 所在目录 (linux一般在/opt/mqm下),再进入bin目录 切换到mqm用户(su mqm),输入runmqsc QM1 (QM1 是你的队列管理器的名字),进入命令模式,输入 ALTER CHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
SYSTEM.DEF.SVRCONN 是通道的名字
SVRCONN 是通道的类型
mqm 是mq的用户
一般linux安装完mq后 都会自动出现mqm用户。
解决mq 2035-MQRC_NOT_AUTHORIZED的错误【权限错误】
RUNMQSC 队列管理器名称
ALTER QMGR CHLAUTH(DISABLED)
如果以上命令执行结束以后还是2035的错误则进行如下操作:
之前在MQ8.0上使用以上命令可以正常关掉通道权限,但是最近在玩IBM MQ V9.0并不能起作用。
以下处理也适用于MQ7.5+
需要执行
#修改连接认证策略
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
#或者关闭连接认证
ALTER QMGR CONNAUTH(' ')
#最后刷新连接认证策略
REFRESH SECURITY TYPE(CONNAUTH)
============================================================================================================================
-----------------------------------------------------------------------------------------------------
单点登录的图标上传不成功,直接将png文件拷到/home/nhip/app/atc9-8084-PORTAL/webapps/Portal/upload
在线转换工具:https://www.aconvert.com/cn/image/ico-to-png/
============================================================================================================================
-----------------------------------------------------------------------------------------------------
saca datainsight 监听启动失败,配置正确,无日志报错,可以试试重新做授权
- 使用root用户修改dataInsight权限
chown datainsight:datainsight -R /opt/dataInsight
chmod 755 -R /opt/dataInsight
============================================================================================================================
-----------------------------------------------------------------------------------------------------
kibana无日志,查看es服务器发现无磁盘空间
系统管理-索引模式-刷新
如上一步骤报错,则在xshell里执行以下命令:
curl -XPUT -H "Content-Type: application/json" http://192.0.2.200:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
执行完成后再刷新,应该就可以了。
============================================================================================================================
-----------------------------------------------------------------------------------------------------
saca-datainsight内存溢出导致以下文件产生大文件,造成saca服务报错;
手工删除这些文件。
/opt/dataInsight/lib/WEB-INF/logstash/ls/jdbc-drivers
============================================================================================================================
-----------------------------------------------------------------------------------------------------
修改系统名称(找到文件打开修改后直接刷新页面,无需重启)
主数据管理系统:/Mdm/WEB-INF/jsp/includes/top.jsp 将Data Governance System 改为 **医院主数据管理系统
患者主索引管理系统:Empi/WEB-INF/jsp/security/index.jsp 将 患者主索引管理系统v2.1 改为 **医院患者主索引管理系统
总线监控:NHIP-ESB/WEB-INF/jsp/security/index.jsp
单点登录:Portal/WEB-INF/view/jsp/person/client.jsp
============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDA 报错:Unable to find resource ...
问题分析:
主数据的config.properties 的 template_path配置有误,需要以“/”结尾
非"/"结束会在TemplateCDATemplate里发布模板,但无法使用。
需要修改正确的路径,如果没有Template文件夹,需要创建文件夹。
以下为正确的路径下自动生成的文件夹:
正常发布CDA模板生成的文件夹,需要在主数据系统里点击“一键加载”和“PushWS”才能生出C001文件夹
============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDA文档统计从application.yml配置。
============================================================================================================================
-----------------------------------------------------------------------------------------------------
CDR4.0注册报告打印接口报错,数据查询无误。
ReportTypePaser增加报告类型,问题解决。
============================================================================================================================
-----------------------------------------------------------------------------------------------------
4.0平台无日志问题排查
IIB日志:
1.服务总线的监听没有开启
可能原因:a.IBM总线服务器或集成节点重新启动,需要打开统计信息和启动流监视
用MQTT工具测试是否正常
saca问题(较多出现):
1.磁盘空间满了导致的saca服务问题
首先用df -h命令查看磁盘空间占用率,占用率达到90%-100%应考虑清理磁盘空间。
磁盘空间占用较高可能原因及处理:
a.saca的log日志过大(40G+):用空日志文件替换;
b.saca内存泄露导致一些过大的文件:找到文件删除后重启。
c.其他程序导致磁盘空间占用较高,如ES数据库和saca装在同一台机器上:释放磁盘空间
如下,可在saca的数据归档里进行定期的日志清除,释放空间。或者手工清除ES数据。
2. 监听任务配置错误问题或者监听不能启动
登录saca后,管理任务->监听->刷新,看服务状态是否正常运行
如停止状态,需要手工启动;
启动失败的原因及处理:
a.监听配置错误:用MQTT工具测试地址和TOPIC,看配置的是否正确;
b.某些服务器重启的情况下,会导致saca部分临时文件无操作访问权限:需要授权
- 使用root用户修改dataInsight权限
chown datainsight:datainsight -R /opt/dataInsight chmod 755 -R /opt/dataInsightelasticsearch数据库
1.ES数据库停了
访问9200,看ES是否可以访问,不能访问看服务状态,如果没有启动,则重启;
总线监控
1.消息流监听未开启
在重新发布IIB工程时,消息流监听是停用状态,需要手工监听启用。
============================================================================================================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下