收到封存消息,使用封存id调用其他采集

docus_webservice_1.1
tan 2 years ago
parent 1edc6424ea
commit a217021871

@ -1,191 +1,336 @@
2023-10-09 16:57:06,321 INFO (StartupInfoLogger.java:55)- Starting DocusWebserviceApplication using Java 1.8.0_101 on T with PID 508 (D:\WokeCode\WebService\docus-webservice\docus-webservice\target\classes started by Tzr in D:\WokeCode\WebService\docus-webservice\docus-webservice)
2023-10-09 16:57:06,328 INFO (SpringApplication.java:659)- No active profile set, falling back to default profiles: default
2023-10-09 16:57:09,042 INFO (StartupInfoLogger.java:61)- Started DocusWebserviceApplication in 3.189 seconds (JVM running for 4.55)
2023-10-09 16:59:35,604 INFO (TBasicWebService.java:314)- 出院成员信息新增xml
2023-12-26 00:44:17,020 INFO (StartupInfoLogger.java:55)- Starting DocusWebserviceApplication using Java 1.8.0_101 on T with PID 27760 (D:\WokeCode\WebService\docus-webservice\docus-webservice\target\classes started by Tzr in D:\WokeCode\WebService\docus-webservice\docus-webservice)
2023-12-26 00:44:17,025 INFO (SpringApplication.java:659)- No active profile set, falling back to default profiles: default
2023-12-26 00:44:19,876 INFO (StartupInfoLogger.java:61)- Started DocusWebserviceApplication in 3.246 seconds (JVM running for 4.21)
2023-12-26 00:47:07,747 INFO (TBasicWebService.java:92)- 住院成员信息新增xml
<Request>
<Msg>
<!--统一记帐号-->
<ACCOUNT_NUM>1</ACCOUNT_NUM >
<!--住院号-->
<INHOSP_INDEX_NO>331651</INHOSP_INDEX_NO>
<!--所在院区-->
<SUBOR_HOSPITAL_DISTRICT>1</SUBOR_HOSPITAL_DISTRICT >
<!--电子健康码-->
<VUID>1</VUID>
<VUID>444</VUID>
<!--住院号-->
<INHOSP_INDEX_NO>8877</INHOSP_INDEX_NO>
<!--住院就诊号-->
<INHOSP_NO>65432111</INHOSP_NO>
<INHOSP_NO>8777</INHOSP_NO>
<!--患者主索引号-->
<EMPI_ID>123</EMPI_ID>
<EMPI_ID>11</EMPI_ID>
<!--患者姓名-->
<PAT_NAME>何德达</PAT_NAME>
<PAT_NAME>ppp</PAT_NAME>
<!--就诊次数-->
<VISIT_NO>1</VISIT_NO>
<!--就诊类别代码-->
<VISIT_TYPE_CODE>123</VISIT_TYPE_CODE>
<VISIT_TYPE_CODE>11</VISIT_TYPE_CODE>
<!--就诊类别名称-->
<VISIT_TYPE_NAME>123</VISIT_TYPE_NAME>
<!--出院日期时间-->
<DISCHARGE_DATETIME>2022-01-01 10: 00: 00</DISCHARGE_DATETIME>
<!--住院天数-->
<INHOSP_DAYS>1</INHOSP_DAYS>
<VISIT_TYPE_NAME>怕</VISIT_TYPE_NAME>
<!--入院日期时间-->
<ADMIT_DATETIME>2020-01-04 10:00:00</ADMIT_DATETIME>
<!--就诊原因-->
<VISIT_REASON>啊如果</VISIT_REASON>
<!--医保类别代码-->
<MEDICARE_CATEG_CODE>463</MEDICARE_CATEG_CODE>
<!--医保类别名称-->
<MEDICARE_CATEG_NAME>634</MEDICARE_CATEG_NAME>
<!--住院次数-->
<INHOSP_NUM>1</INHOSP_NUM>
<!--身份证号-->
<ID_NUMBER>1</ID_NUMBER>
<!--登记操作人工号-->
<SIGN_OPERATOR_CODE>1</SIGN_OPERATOR_CODE>
<!--登记操作人姓名-->
<SIGN_OPERATOR_NAME>1</SIGN_OPERATOR_NAME>
<ID_NUMBER>361658413216845165</ID_NUMBER>
<!--责任医师工号-->
<PRIMARY_DR_CODE>1234</PRIMARY_DR_CODE>
<!--责任医师姓名-->
<PRIMARY_DR_NAME>哦哦</PRIMARY_DR_NAME>
<!--科室代码-->
<DEPT_CODE>123</DEPT_CODE>
<!--科室名称-->
<DEPT_NAME>123</DEPT_NAME>
<!--病区代码-->
<WARD_CODE>123</WARD_CODE>
<!--病区名称-->
<WARD_NAME>123</WARD_NAME>
<!--病房代码-->
<SICKROOM_CODE>123</SICKROOM_CODE>
<!--病房名称-->
<SICKROOM_NAME>123</SICKROOM_NAME>
<!--病床代码-->
<BED_CODE>123</BED_CODE>
<!--病床名称-->
<BED_NAME>123</BED_NAME>
<!--医疗机构代码-->
<MI_CODE>123</MI_CODE>
<!--医疗机构名称-->
<MI_NAME>123</MI_NAME>
<!--西药诊断代码-->
<WM_DIAG_CODE>1</WM_DIAG_CODE>
<WM_DIAG_CODE>123</WM_DIAG_CODE>
<!--西药诊断名称-->
<WM_DIAG_NAME>1</WM_DIAG_NAME>
<WM_DIAG_NAME>123</WM_DIAG_NAME>
<!--西药诊断医师工号-->
<WM_DIAG_DR_CODE>1</WM_DIAG_DR_CODE>
<WM_DIAG_DR_CODE>123</WM_DIAG_DR_CODE>
<!--西药诊断医师姓名-->
<WM_DIAG_DR_NAME>1</WM_DIAG_DR_NAME>
<WM_DIAG_DR_NAME>123</WM_DIAG_DR_NAME>
<!--中医诊断代码-->
<TCM_DIAG_CODE>1</TCM_DIAG_CODE>
<TCM_DIAG_CODE>123</TCM_DIAG_CODE>
<!--中医诊断名称-->
<TCM_DIAG_NAME>1</TCM_DIAG_NAME>
<!--中医诊断医师工号-->
<TCM_DIAG_DR_CODE>1</TCM_DIAG_DR_CODE>
<!--中医诊断医师姓名-->
<TCM_DIAG_DR_NAME>1</TCM_DIAG_DR_NAME>
<!--出院科室代码-->
<DEPT_CODE>1</DEPT_CODE>
<!--出院科室名称-->
<DEPT_NAME>1</DEPT_NAME>
<!--出院病区代码-->
<WARD_CODE>1</WARD_CODE>
<!--出院病区名称-->
<WARD_NAME>1</WARD_NAME>
<!--入院科室代码-->
<ADMIT_DEPT_CODE>1</ADMIT_DEPT_CODE>
<!--入院科室名称-->
<ADMIT_DEPT_NAME>1</ADMIT_DEPT_NAME>
<!--入院病区代码-->
<ADMIT_WARD_CODE>1</ADMIT_WARD_CODE>
<!--入院病区名称-->
<ADMIT_WARD_NAME>1</ADMIT_WARD_NAME>
<!--入院日期-->
<ADMIT_DATE>2022-01-01 10: 00: 00</ADMIT_DATE>
<!--死亡标识-->
<DEATH_FLAG>1</DEATH_FLAG>
<BED_CODE>1</BED_CODE>
<ROOM_CODE>1</ROOM_CODE>
<CHAR_DOC_CODE>1234</CHAR_DOC_CODE>
<MED_DOC_CODE>12345</MED_DOC_CODE>
<PROF_DOC_CODE>1234</PROF_DOC_CODE>
<WEST_DIAG_ICD1>1</WEST_DIAG_ICD1>
<WEST_DIAG_NAME1>1</WEST_DIAG_NAME1>
<WEST_DIAG_ICD2>1</WEST_DIAG_ICD2>
<WEST_DIAG_NAME2>1</WEST_DIAG_NAME2>
<WEST_DIAG_ICD3>1</WEST_DIAG_ICD3>
<WEST_DIAG_NAME3>1</WEST_DIAG_NAME3>
<WEST_DIAG_ICD4>1</WEST_DIAG_ICD4>
<WEST_DIAG_NAME4>1</WEST_DIAG_NAME4>
<WEST_DIAG_ICD5>1</WEST_DIAG_ICD5>
<WEST_DIAG_NAME5>1</WEST_DIAG_NAME5>
<OPER_EMP_CODE>1</OPER_EMP_CODE>
<IS_ADM_CANCEL>1</IS_ADM_CANCEL>
<TCM_DIAG_NAME>123</TCM_DIAG_NAME>
<PRE_INHOSP_NO>123456</PRE_INHOSP_NO>
</Msg>
</Request>
2023-10-09 16:59:35,605 INFO (TBasicWebService.java:542)- 开始解析xml
2023-10-09 16:59:35,844 ERROR (TBasicWebService.java:361)- DISCHARGE_REG方法中错误信息:For input string: "2022-01-01 10: 00: 00"
2023-10-09 17:01:06,154 INFO (TBasicWebService.java:314)- 出院成员信息新增xml
<Request>
2023-12-26 00:47:07,748 INFO (TBasicWebService.java:155)- 开始解析xml
2023-12-26 00:47:10,101 ERROR (TBasicWebService.java:217)- 预住院错误信息nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
### The error may exist in com/docus/webservice/mapper/TBasicMapper.java (best guess)
### The error may involve com.docus.webservice.mapper.TBasicMapper.selectOne
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
2023-12-26 00:47:42,619 INFO (TBasicWebService.java:92)- 住院成员信息新增xml
<Request>
<Msg>
<!--统一记帐号-->
<ACCOUNT_NUM>1</ACCOUNT_NUM >
<!--电子健康码-->
<VUID>444</VUID>
<!--住院号-->
<INHOSP_INDEX_NO>331651</INHOSP_INDEX_NO>
<!--所在院区-->
<SUBOR_HOSPITAL_DISTRICT>1</SUBOR_HOSPITAL_DISTRICT >
<INHOSP_INDEX_NO>8877</INHOSP_INDEX_NO>
<!--住院就诊号-->
<INHOSP_NO>8777</INHOSP_NO>
<!--患者主索引号-->
<EMPI_ID>11</EMPI_ID>
<!--患者姓名-->
<PAT_NAME>ppp</PAT_NAME>
<!--就诊次数-->
<VISIT_NO>1</VISIT_NO>
<!--就诊类别代码-->
<VISIT_TYPE_CODE>11</VISIT_TYPE_CODE>
<!--就诊类别名称-->
<VISIT_TYPE_NAME>怕</VISIT_TYPE_NAME>
<!--入院日期时间-->
<ADMIT_DATETIME>2020-01-04 10:00:00</ADMIT_DATETIME>
<!--就诊原因-->
<VISIT_REASON>啊如果</VISIT_REASON>
<!--医保类别代码-->
<MEDICARE_CATEG_CODE>463</MEDICARE_CATEG_CODE>
<!--医保类别名称-->
<MEDICARE_CATEG_NAME>634</MEDICARE_CATEG_NAME>
<!--住院次数-->
<INHOSP_NUM>1</INHOSP_NUM>
<!--身份证号-->
<ID_NUMBER>361658413216845165</ID_NUMBER>
<!--责任医师工号-->
<PRIMARY_DR_CODE>1234</PRIMARY_DR_CODE>
<!--责任医师姓名-->
<PRIMARY_DR_NAME>哦哦</PRIMARY_DR_NAME>
<!--科室代码-->
<DEPT_CODE>123</DEPT_CODE>
<!--科室名称-->
<DEPT_NAME>123</DEPT_NAME>
<!--病区代码-->
<WARD_CODE>123</WARD_CODE>
<!--病区名称-->
<WARD_NAME>123</WARD_NAME>
<!--病房代码-->
<SICKROOM_CODE>123</SICKROOM_CODE>
<!--病房名称-->
<SICKROOM_NAME>123</SICKROOM_NAME>
<!--病床代码-->
<BED_CODE>123</BED_CODE>
<!--病床名称-->
<BED_NAME>123</BED_NAME>
<!--医疗机构代码-->
<MI_CODE>123</MI_CODE>
<!--医疗机构名称-->
<MI_NAME>123</MI_NAME>
<!--西药诊断代码-->
<WM_DIAG_CODE>123</WM_DIAG_CODE>
<!--西药诊断名称-->
<WM_DIAG_NAME>123</WM_DIAG_NAME>
<!--西药诊断医师工号-->
<WM_DIAG_DR_CODE>123</WM_DIAG_DR_CODE>
<!--西药诊断医师姓名-->
<WM_DIAG_DR_NAME>123</WM_DIAG_DR_NAME>
<!--中医诊断代码-->
<TCM_DIAG_CODE>123</TCM_DIAG_CODE>
<!--中医诊断名称-->
<TCM_DIAG_NAME>123</TCM_DIAG_NAME>
<PRE_INHOSP_NO>123456</PRE_INHOSP_NO>
</Msg>
</Request>
2023-12-26 00:47:42,620 INFO (TBasicWebService.java:155)- 开始解析xml
2023-12-26 00:47:42,709 ERROR (TBasicWebService.java:217)- 预住院错误信息null
2023-12-26 00:47:42,739 INFO (PcmachineServiceImpl.java:90)- --------------异步调用此方法---------------
2023-12-26 00:47:42,740 INFO (PcmachineServiceImpl.java:91)- 病案对象TBasic(patientId=1739327067581374466, admissTimes=1, inpatientNo=8877, admissId=null, name=ppp, ph=null, sex=null, age=null, ageMonth=null, ageDay=null, idCard=361658413216845165, telphone=null, admissDate=Sat Jan 04 10:00:00 CST 2020, admissDept=null, admissDeptName=null, disDate=null, disDept=123, disDeptName=123, admissDays=null, attending=1234, attendingName=哦哦, mainDiagCode=null, mainDiagName=null, mainOperateCode=null, mainOperateName=null, isDead=null, createTime=Tue Dec 26 00:47:42 CST 2023, updateTime=null, isArchive=null, archiveTime=null, fileSource=1, integrityDesc=null, bColumn1=null, bColumn2=null, bColumn3=null, bColumn4=null, bColumn5=null, bColumn6=null, bColumn7=null, bColumn8=null, bColumn9=null, bColumn10=null, nameSpell=null, sexName=null, jzh=8777, empId=11, visitTypeCode=11, visitTypeName=怕, tcmDiagCode=null, tcmDiagName=null, wardPalce=null, isCancel=null)
2023-12-26 00:47:42,742 INFO (TBasicWebService.java:141)- OUT_HOS_REG返回结果:<?xml version="1.0" encoding="UTF-8"?>
<Response><RetInfo><RetCode>0</RetCode><RetCon>成功</RetCon></RetInfo></Response>
2023-12-26 00:49:37,280 INFO (StartupInfoLogger.java:55)- Starting DocusWebserviceApplication using Java 1.8.0_101 on T with PID 13080 (D:\WokeCode\WebService\docus-webservice\docus-webservice\target\classes started by Tzr in D:\WokeCode\WebService\docus-webservice\docus-webservice)
2023-12-26 00:49:37,284 INFO (SpringApplication.java:659)- No active profile set, falling back to default profiles: default
2023-12-26 00:49:40,158 INFO (StartupInfoLogger.java:61)- Started DocusWebserviceApplication in 3.42 seconds (JVM running for 5.092)
2023-12-26 00:50:06,211 INFO (TBasicWebService.java:92)- 住院成员信息新增xml
<Request>
<Msg>
<!--电子健康码-->
<VUID>1</VUID>
<VUID>444</VUID>
<!--住院号-->
<INHOSP_INDEX_NO>9966</INHOSP_INDEX_NO>
<!--住院就诊号-->
<INHOSP_NO>65432111</INHOSP_NO>
<INHOSP_NO>996</INHOSP_NO>
<!--患者主索引号-->
<EMPI_ID>123</EMPI_ID>
<EMPI_ID>11</EMPI_ID>
<!--患者姓名-->
<PAT_NAME>何德达</PAT_NAME>
<PAT_NAME>aaa</PAT_NAME>
<!--就诊次数-->
<VISIT_NO>1</VISIT_NO>
<!--就诊类别代码-->
<VISIT_TYPE_CODE>123</VISIT_TYPE_CODE>
<VISIT_TYPE_CODE>11</VISIT_TYPE_CODE>
<!--就诊类别名称-->
<VISIT_TYPE_NAME>123</VISIT_TYPE_NAME>
<!--出院日期时间-->
<DISCHARGE_DATETIME>2022-01-01 10:00:00</DISCHARGE_DATETIME>
<!--住院天数-->
<INHOSP_DAYS>1</INHOSP_DAYS>
<VISIT_TYPE_NAME>怕</VISIT_TYPE_NAME>
<!--入院日期时间-->
<ADMIT_DATETIME>2020-01-04 10:00:00</ADMIT_DATETIME>
<!--就诊原因-->
<VISIT_REASON>啊如果</VISIT_REASON>
<!--医保类别代码-->
<MEDICARE_CATEG_CODE>463</MEDICARE_CATEG_CODE>
<!--医保类别名称-->
<MEDICARE_CATEG_NAME>634</MEDICARE_CATEG_NAME>
<!--住院次数-->
<INHOSP_NUM>1</INHOSP_NUM>
<!--身份证号-->
<ID_NUMBER>1</ID_NUMBER>
<!--登记操作人工号-->
<SIGN_OPERATOR_CODE>1</SIGN_OPERATOR_CODE>
<!--登记操作人姓名-->
<SIGN_OPERATOR_NAME>1</SIGN_OPERATOR_NAME>
<ID_NUMBER>361658413216845165</ID_NUMBER>
<!--责任医师工号-->
<PRIMARY_DR_CODE>1234</PRIMARY_DR_CODE>
<!--责任医师姓名-->
<PRIMARY_DR_NAME>哦哦</PRIMARY_DR_NAME>
<!--科室代码-->
<DEPT_CODE>123</DEPT_CODE>
<!--科室名称-->
<DEPT_NAME>123</DEPT_NAME>
<!--病区代码-->
<WARD_CODE>123</WARD_CODE>
<!--病区名称-->
<WARD_NAME>123</WARD_NAME>
<!--病房代码-->
<SICKROOM_CODE>123</SICKROOM_CODE>
<!--病房名称-->
<SICKROOM_NAME>123</SICKROOM_NAME>
<!--病床代码-->
<BED_CODE>123</BED_CODE>
<!--病床名称-->
<BED_NAME>123</BED_NAME>
<!--医疗机构代码-->
<MI_CODE>123</MI_CODE>
<!--医疗机构名称-->
<MI_NAME>123</MI_NAME>
<!--西药诊断代码-->
<WM_DIAG_CODE>1</WM_DIAG_CODE>
<WM_DIAG_CODE>123</WM_DIAG_CODE>
<!--西药诊断名称-->
<WM_DIAG_NAME>1</WM_DIAG_NAME>
<WM_DIAG_NAME>123</WM_DIAG_NAME>
<!--西药诊断医师工号-->
<WM_DIAG_DR_CODE>1</WM_DIAG_DR_CODE>
<WM_DIAG_DR_CODE>123</WM_DIAG_DR_CODE>
<!--西药诊断医师姓名-->
<WM_DIAG_DR_NAME>1</WM_DIAG_DR_NAME>
<WM_DIAG_DR_NAME>123</WM_DIAG_DR_NAME>
<!--中医诊断代码-->
<TCM_DIAG_CODE>1</TCM_DIAG_CODE>
<TCM_DIAG_CODE>123</TCM_DIAG_CODE>
<!--中医诊断名称-->
<TCM_DIAG_NAME>1</TCM_DIAG_NAME>
<!--中医诊断医师工号-->
<TCM_DIAG_DR_CODE>1</TCM_DIAG_DR_CODE>
<!--中医诊断医师姓名-->
<TCM_DIAG_DR_NAME>1</TCM_DIAG_DR_NAME>
<!--出院科室代码-->
<DEPT_CODE>1</DEPT_CODE>
<!--出院科室名称-->
<DEPT_NAME>1</DEPT_NAME>
<!--出院病区代码-->
<WARD_CODE>1</WARD_CODE>
<!--出院病区名称-->
<WARD_NAME>1</WARD_NAME>
<!--入院科室代码-->
<ADMIT_DEPT_CODE>1</ADMIT_DEPT_CODE>
<!--入院科室名称-->
<ADMIT_DEPT_NAME>1</ADMIT_DEPT_NAME>
<!--入院病区代码-->
<ADMIT_WARD_CODE>1</ADMIT_WARD_CODE>
<!--入院病区名称-->
<ADMIT_WARD_NAME>1</ADMIT_WARD_NAME>
<!--入院日期-->
<ADMIT_DATE>2022-01-01 10:00:00</ADMIT_DATE>
<!--死亡标识-->
<DEATH_FLAG>1</DEATH_FLAG>
<BED_CODE>1</BED_CODE>
<ROOM_CODE>1</ROOM_CODE>
<CHAR_DOC_CODE>1234</CHAR_DOC_CODE>
<MED_DOC_CODE>12345</MED_DOC_CODE>
<PROF_DOC_CODE>1234</PROF_DOC_CODE>
<WEST_DIAG_ICD1>1</WEST_DIAG_ICD1>
<WEST_DIAG_NAME1>1</WEST_DIAG_NAME1>
<WEST_DIAG_ICD2>1</WEST_DIAG_ICD2>
<WEST_DIAG_NAME2>1</WEST_DIAG_NAME2>
<WEST_DIAG_ICD3>1</WEST_DIAG_ICD3>
<WEST_DIAG_NAME3>1</WEST_DIAG_NAME3>
<WEST_DIAG_ICD4>1</WEST_DIAG_ICD4>
<WEST_DIAG_NAME4>1</WEST_DIAG_NAME4>
<WEST_DIAG_ICD5>1</WEST_DIAG_ICD5>
<WEST_DIAG_NAME5>1</WEST_DIAG_NAME5>
<OPER_EMP_CODE>1</OPER_EMP_CODE>
<IS_ADM_CANCEL>1</IS_ADM_CANCEL>
<TCM_DIAG_NAME>123</TCM_DIAG_NAME>
<PRE_INHOSP_NO>112233</PRE_INHOSP_NO>
</Msg>
</Request>
2023-10-09 17:01:06,154 INFO (TBasicWebService.java:542)- 开始解析xml
2023-10-09 17:01:06,192 INFO (TBasicWebService.java:330)- 65432111取消入院成功
2023-10-09 17:01:06,193 INFO (TBasicWebService.java:368)- DISCHARGE_REG返回结果:<?xml version="1.0" encoding="UTF-8"?>
2023-12-26 00:50:06,212 INFO (TBasicWebService.java:155)- 开始解析xml
2023-12-26 00:52:18,344 ERROR (TBasicWebService.java:217)- 预住院错误信息null
2023-12-26 00:52:18,419 INFO (PcmachineServiceImpl.java:90)- --------------异步调用此方法---------------
2023-12-26 00:52:18,420 INFO (PcmachineServiceImpl.java:91)- 病案对象TBasic(patientId=1739328223883853825, admissTimes=1, inpatientNo=9966, admissId=null, name=aaa, ph=null, sex=null, age=null, ageMonth=null, ageDay=null, idCard=361658413216845165, telphone=null, admissDate=Sat Jan 04 10:00:00 CST 2020, admissDept=null, admissDeptName=null, disDate=null, disDept=123, disDeptName=123, admissDays=null, attending=1234, attendingName=哦哦, mainDiagCode=null, mainDiagName=null, mainOperateCode=null, mainOperateName=null, isDead=null, createTime=Tue Dec 26 00:52:18 CST 2023, updateTime=null, isArchive=null, archiveTime=null, fileSource=1, integrityDesc=null, bColumn1=null, bColumn2=null, bColumn3=null, bColumn4=null, bColumn5=null, bColumn6=null, bColumn7=null, bColumn8=null, bColumn9=null, bColumn10=null, nameSpell=null, sexName=null, jzh=996, empId=11, visitTypeCode=11, visitTypeName=怕, tcmDiagCode=null, tcmDiagName=null, wardPalce=null, isCancel=null)
2023-12-26 00:52:18,425 INFO (TBasicWebService.java:141)- OUT_HOS_REG返回结果:<?xml version="1.0" encoding="UTF-8"?>
<Response><RetInfo><RetCode>0</RetCode><RetCon>成功</RetCon></RetInfo></Response>
2023-12-26 00:52:33,436 INFO (StartupInfoLogger.java:55)- Starting DocusWebserviceApplication using Java 1.8.0_101 on T with PID 37252 (D:\WokeCode\WebService\docus-webservice\docus-webservice\target\classes started by Tzr in D:\WokeCode\WebService\docus-webservice\docus-webservice)
2023-12-26 00:52:33,438 INFO (SpringApplication.java:659)- No active profile set, falling back to default profiles: default
2023-12-26 00:52:36,305 INFO (StartupInfoLogger.java:61)- Started DocusWebserviceApplication in 3.294 seconds (JVM running for 4.555)
2023-12-26 00:52:41,299 INFO (TBasicWebService.java:92)- 住院成员信息新增xml
<Request>
<Msg>
<!--电子健康码-->
<VUID>444</VUID>
<!--住院号-->
<INHOSP_INDEX_NO>9966</INHOSP_INDEX_NO>
<!--住院就诊号-->
<INHOSP_NO>996</INHOSP_NO>
<!--患者主索引号-->
<EMPI_ID>11</EMPI_ID>
<!--患者姓名-->
<PAT_NAME>aaa</PAT_NAME>
<!--就诊次数-->
<VISIT_NO>1</VISIT_NO>
<!--就诊类别代码-->
<VISIT_TYPE_CODE>11</VISIT_TYPE_CODE>
<!--就诊类别名称-->
<VISIT_TYPE_NAME>怕</VISIT_TYPE_NAME>
<!--入院日期时间-->
<ADMIT_DATETIME>2020-01-04 10:00:00</ADMIT_DATETIME>
<!--就诊原因-->
<VISIT_REASON>啊如果</VISIT_REASON>
<!--医保类别代码-->
<MEDICARE_CATEG_CODE>463</MEDICARE_CATEG_CODE>
<!--医保类别名称-->
<MEDICARE_CATEG_NAME>634</MEDICARE_CATEG_NAME>
<!--住院次数-->
<INHOSP_NUM>1</INHOSP_NUM>
<!--身份证号-->
<ID_NUMBER>361658413216845165</ID_NUMBER>
<!--责任医师工号-->
<PRIMARY_DR_CODE>1234</PRIMARY_DR_CODE>
<!--责任医师姓名-->
<PRIMARY_DR_NAME>哦哦</PRIMARY_DR_NAME>
<!--科室代码-->
<DEPT_CODE>123</DEPT_CODE>
<!--科室名称-->
<DEPT_NAME>123</DEPT_NAME>
<!--病区代码-->
<WARD_CODE>123</WARD_CODE>
<!--病区名称-->
<WARD_NAME>123</WARD_NAME>
<!--病房代码-->
<SICKROOM_CODE>123</SICKROOM_CODE>
<!--病房名称-->
<SICKROOM_NAME>123</SICKROOM_NAME>
<!--病床代码-->
<BED_CODE>123</BED_CODE>
<!--病床名称-->
<BED_NAME>123</BED_NAME>
<!--医疗机构代码-->
<MI_CODE>123</MI_CODE>
<!--医疗机构名称-->
<MI_NAME>123</MI_NAME>
<!--西药诊断代码-->
<WM_DIAG_CODE>123</WM_DIAG_CODE>
<!--西药诊断名称-->
<WM_DIAG_NAME>123</WM_DIAG_NAME>
<!--西药诊断医师工号-->
<WM_DIAG_DR_CODE>123</WM_DIAG_DR_CODE>
<!--西药诊断医师姓名-->
<WM_DIAG_DR_NAME>123</WM_DIAG_DR_NAME>
<!--中医诊断代码-->
<TCM_DIAG_CODE>123</TCM_DIAG_CODE>
<!--中医诊断名称-->
<TCM_DIAG_NAME>123</TCM_DIAG_NAME>
<PRE_INHOSP_NO>112233</PRE_INHOSP_NO>
</Msg>
</Request>
2023-12-26 00:52:41,300 INFO (TBasicWebService.java:155)- 开始解析xml
2023-12-26 00:52:57,845 ERROR (TBasicWebService.java:212)- 正式住院: 996 预住院或正式住院患者不存在!
2023-12-26 00:53:12,590 INFO (TBasicServiceImpl.java:280)- selectTBasic耗时---------44
2023-12-26 00:53:13,143 INFO (TBasicServiceImpl.java:286)- tBasicMapper.update耗时----------552

@ -0,0 +1,27 @@
{
"sealCollectClassify": "SEAL_COLLECT",
"sealCollectConfigs":[
{
"desc":"封存病案-扫描视图报告采集",
"url":"http://127.0.0.1:9316/gdszy/patscan/collect/seal/collectBySealId"
},{
"desc":"封存病案-Lis检验报告采集",
"url":"http://127.0.0.1:9315/collect/gdszy/lisBySealId"
},{
"desc":"封存病案-pacs检查报告采集",
"url":"http://127.0.0.1:9303/seal/collect/pacs"
},{
"desc":"封存病案-内镜报告采集",
"url":"http://127.0.0.1:9304/seal/collect/endoscopy"
},{
"desc":"封存病案-心电报告采集",
"url":"http://127.0.0.1:9305/seal/collect/ecg"
},{
"desc":"封存病案-重症报告采集",
"url":"http://127.0.0.1:9409/seal/collect/icu"
},{
"desc":"封存病案-手麻报告采集",
"url":"http://127.0.0.1:9306/seal/collect/surgicalAnesthesia"
}
]
}

@ -0,0 +1,31 @@
package com.docus.webservice.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @author YongBin Wen
* @date 2024/1/15 13:36
*/
@Configuration
public class ThreadPoolConfig {
public ThreadPoolConfig() {
}
@Bean
public ThreadPoolExecutor threadPoolExecutor() {
return new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(),
(int)((double)Runtime.getRuntime().availableProcessors() / 0.1),
60L, TimeUnit.SECONDS,
new LinkedBlockingQueue(Runtime.getRuntime().availableProcessors()),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.CallerRunsPolicy());
}
}

@ -0,0 +1,65 @@
package com.docus.webservice.dto;
import lombok.Data;
import java.util.List;
/**
*
* @author YongBin Wen
* @date 2024/1/15 11:33
*/
@Data
public class SystemCollectConfig {
/**
* -
*/
private String sealCollectClassify;
/**
*
*/
private List<CollectConfig> sealCollectConfigs;
@Data
public static class CollectConfig {
private String desc;
private String url;
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
public enum Classify {
/**
* -
*/
SEAL_COLLECT("SEAL_COLLECT");
/**
*
*/
final String classify;
Classify(String classify) {
this.classify = classify;
}
public String getClassify() {
return classify;
}
}
}

@ -6,43 +6,43 @@ import javax.jws.WebService;
@WebService
public interface ITBasicWebService {
/**
*
* @param tbasic
* @return
*/
@WebMethod
String OUT_HOS_REG(String tbasic);
/**
*
* @param tbasic
* @return
*/
@WebMethod
String OUT_HOS_CAN(String tbasic);
/**
*
* @param tbasic
* @return
*/
@WebMethod
String DISCHARGE_REG(String tbasic);
// /**
// * 住院患者信息新增
// * @param tbasic
// * @return
// */
// @WebMethod
// String OUT_HOS_REG(String tbasic);
//
// /**
// * 住院患者修改
// * @param tbasic
// * @return
// */
// @WebMethod
// String OUT_HOS_CAN(String tbasic);
//
// /**
// * 出院患者信息新增
// * @param tbasic
// * @return
// */
// @WebMethod
// String DISCHARGE_REG(String tbasic);
//
// /**
// * 出院患者修改
// * @param tbasic
// * @return
// */
// @WebMethod
// String DISCHARGE_CAN(String tbasic);
/**
*
* @param tbasic
*
* @param tseal
* @return
*/
@WebMethod
String DISCHARGE_CAN(String tbasic);
// /**
// * 病案封存
// * @param tseal
// * @return
// */
// @WebMethod
// String MEDICAL_RECORD_SEAL(String tseal);
String MEDICAL_RECORD_SEAL(String tseal);
}

@ -4,6 +4,7 @@ package com.docus.webservice.handler;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.docus.webservice.dto.SelectColumn;
import com.docus.webservice.dto.SystemCollectConfig;
import com.docus.webservice.entity.*;
import com.docus.webservice.enums.Codes;
@ -17,6 +18,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import javax.jws.WebService;
import java.io.ByteArrayInputStream;
import java.io.File;
@ -24,6 +26,9 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadPoolExecutor;
@WebService
public class TBasicWebService implements ITBasicWebService {
@ -53,6 +58,8 @@ public class TBasicWebService implements ITBasicWebService {
private TSealMapper tSealMapper;
private Logger log = LogManager.getLogger(TBasicWebService.class);
@Resource
private ThreadPoolExecutor threadPoolExecutor;
/**
* jar
@ -81,85 +88,428 @@ public class TBasicWebService implements ITBasicWebService {
mrReportErrorService.save(mrReportError);
}
// /**
// * 住院成员信息新增
// *
// * @param tbasic
// * @return
// */
// @Override
// public String OUT_HOS_REG(String tbasic) {
// log.info("住院成员信息新增xml" + tbasic);
// try {
// //解析xml
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap dateMap = new HashMap<>();
// // Date disDate=null;
// parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
// //处理业务
// TBasic tBasic;
// if (tBasicMap != null && tBasicMap.size() > 0) {
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// //特殊处理出院时间 没有就取当前时间
// Date currentDate = new Date();
//// if(tBasic.getDisDate()==null){
//// tBasic.setDisDate(currentDate);
//// }
// //tBasic.setCreateTime(currentDate);
// tBasic.setCreateTime(currentDate);
// itBasicService.savaAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
// // this.saveAndCall(tBasic);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// SimpleDateFormat sdf1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);
// if (dateMap.size() > 1) {
// Date admissDate = sdf1.parse(String.valueOf(dateMap.get("admissDate")));
// Date disDate = sdf1.parse(String.valueOf(dateMap.get("disDate")));
// tBasic.setAdmissDate(sdf.parse(sdf.format(admissDate)));
// tBasic.setDisDate(sdf.parse(sdf.format(disDate)));
// tBasic.setInpatientNo(dateMap.get("inpatientNo").toString());
// }
// pcmachineService.saveAndCall(tBasic);
// } else {
// insertLog(tbasic);
// log.info("请提供完整的xml");
// return ResultUtils.fail("请提供完整的xml");
// }
// } catch (RuntimeException e) {
// insertLog(tbasic);
// log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// } catch (Exception e) {
// e.printStackTrace();
// log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("OUT_HOS_REG返回结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
//
// /**
// * 住院解析xml
// *
// * @param tbasic
// * @param tBasicMap
// * @param tBasicSubMap
// */
// private void parseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap dateMap) {
// XmlUtils xmlUtils = null;
// log.info("开始解析xml");
// try {
// xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
// //解析json映射文件
// String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_ADDRESS.getMessage());
// Map jsonMap = JSON.parseObject(json, Map.class);
//
// List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
// String value;
// for (SelectColumn selectColumn : selectColumns) {
// try {
// value = xmlUtils.getElementText(selectColumn.getQualityColumn()) == null ? null : String.valueOf(xmlUtils.getElementText(selectColumn.getQualityColumn()));
// } catch (RuntimeException e) {
// String message = e.getMessage();
// log.error("解析xml出现:" + message);
// throw new RuntimeException(message);
// }
// if (StringUtils.isBlank(value)) {
// if (selectColumn.getByNull() == 0) {
// insertLog(tbasic);
// log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
// throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
// } else {
// continue;
// }
// } else {
// if (selectColumn.getTableName().equals("t_basic")) {
// tBasicMap.put(selectColumn.getColumnName(), value);
// }
// if (selectColumn.getTableName().equals("t_basic_sub")) {
// tBasicSubMap.put(selectColumn.getColumnName(), value);
// }
// }
// }
// try {
// String preJzh = xmlUtils.getElementText("PRE_INHOSP_NO");
// System.err.println(preJzh);
// if (null != preJzh && !"".equals(preJzh)) {
// //预住院患者记录
// TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", preJzh));
// //正式住院患者记录
// TBasic tBasic1 = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
// if (null != tBasic && null != tBasic1) {
// dateMap.put("admissDate", tBasic.getAdmissDate().toString());
// dateMap.put("disDate", tBasic1.getAdmissDate().toString());
// dateMap.put("inpatientNo", tBasic.getInpatientNo());
// //将预住院患者病历文件patient_id改为正式住院的patient_id合并病历
// int i = tScanAssortMapper.updateByPatientId(tBasic1.getPatientId(), tBasic.getPatientId());
// if (i <= 0) {
// log.info("当前预住院没有文件!");
// }else {
// log.info( tBasic1.getJzh()+"本次预住院合并"+i+"份报告");
// }
// } else {
// log.error("正式住院: "+tBasicMap.get("jzh") + " 预住院或正式住院患者不存在!");
// }
// }
// dateMap.put("preJzh",preJzh);
// } catch (Exception e) {
// log.error("预住院错误信息{}", e.getMessage());
// }
//
// }
//
// /**
// * 住院成员信息修改
// *
// * @param tbasic
// * @return
// */
// @Override
// public String OUT_HOS_CAN(String tbasic) {
// log.info("住院成员信息修改xml" + tbasic);
// try {
// long l = System.currentTimeMillis();
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap<String, Date> dateMap = new HashMap<>();
// //parseXml(tbasic, tBasicMap, tBasicSubMap);
// parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
// TBasic tBasic;
// XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
// String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
// if (elementText.equals("1")) {
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// tBasic.setIsCancel("1");
// int update = tBasicMapper.update(tBasic, new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
// if (update > 0) {
// log.info(tBasic.getJzh() + "取消入院成功!");
// }
//
// } else {
// long l1 = System.currentTimeMillis();
// log.info("解析xml时间------" + (l1 - l));
// //处理业务
// long l2 = System.currentTimeMillis();
//
// if (tBasicMap != null && tBasicMap.size() > 0) {
// long l3 = System.currentTimeMillis();
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// long l4 = System.currentTimeMillis();
// log.info("获取tBasic对象时间----------" + (l4 - l3));
// if (StringUtils.isBlank(tBasic.getEmpId())) {
// insertLog(tbasic);
// log.info("emp_id字段不能为空值");
// return ResultUtils.fail("emp_id字段不能为空值");
// }
// long l5 = System.currentTimeMillis();
// tBasic.setUpdateTime(new Date());
// try {
// itBasicService.updateAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
//// this.saveAndCall(tBasic);
// long l6 = System.currentTimeMillis();
// log.info("update耗时----------" + (l6 - l5));
// long l7 = System.currentTimeMillis();
// tBasic.setAdmissDate(dateMap.get("admissDate"));
// tBasic.setDisDate(dateMap.get("disDate"));
// pcmachineService.saveAndCall(tBasic);
// long l8 = System.currentTimeMillis();
// log.info("saveAndCall耗时-------" + (l8 - l7));
// } catch (RuntimeException e) {
// insertLog(tbasic);
// e.printStackTrace();
// log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// } else {
// insertLog(tbasic);
// return ResultUtils.fail("请提供完整的xml");
// }
// long l3 = System.currentTimeMillis();
// log.info("业务处理时间------------" + (l3 - l2));
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("OUT_HOS_CAN方法运行结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
//
// /**
// * 出院成员信息新增
// *
// * @param tbasic
// * @return
// */
// @Override
// public String DISCHARGE_REG(String tbasic) {
// log.info("出院成员信息新增xml" + tbasic);
// try {
// //解析xml
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap<String, Object> tBasicExtendMap = new HashMap<>();
// OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
// //处理业务
// TBasic tBasic;
// XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
//// String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
//// if (elementText.equals("1")) {
//// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
//// tBasic.setIsCancel("1");
//// int update = tBasicMapper.update(tBasic, new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
//// if (update > 0) {
//// log.info(tBasic.getJzh() + "取消入院成功!");
//// }
////
//// }else {
// TBasicExtend tBasicExtend;
// if (tBasicMap != null && tBasicMap.size() > 0) {
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
// tBasicExtend.setPatientId(tBasic.getPatientId());
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// //特殊处理出院时间 没有就取当前时间
//
//// if(tBasic.getDisDate()==null){
//// tBasic.setDisDate(currentDate);
//// }
// //tBasic.setCreateTime(currentDate);
//
// itBasicService.OutSavaAndSub(tBasic, tBasicSubMap, tBasicExtend);
// // this.saveAndCall(tBasic);
// pcmachineService.saveAndCallOut(tBasic);
// } else {
// insertLog(tbasic);
// log.info("请提供完整的xml");
// return ResultUtils.fail("请提供完整的xml");
// }
// // }
// } catch (RuntimeException e) {
// insertLog(tbasic);
// log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// } catch (Exception e) {
// e.printStackTrace();
// log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("DISCHARGE_REG返回结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
// /**
// * 出院成员信息修改
// *
// * @param tbasic
// * @return
// */
// @Override
// public String DISCHARGE_CAN(String tbasic) {
// log.info("出院成员信息修改xml" + tbasic);
//
// try {
//
// long l = System.currentTimeMillis();
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap<String, Object> tBasicExtendMap = new HashMap<>();
// TBasic tBasic;
// TBasicExtend tBasicExtend;
// OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
// long l1 = System.currentTimeMillis();
// log.info("解析xml时间------" + (l1 - l));
// //处理业务
// long l2 = System.currentTimeMillis();
//
// if (tBasicMap != null && tBasicMap.size() > 0) {
// long l3 = System.currentTimeMillis();
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
// tBasicExtend.setPatientId(tBasic.getPatientId());
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// long l4 = System.currentTimeMillis();
// log.info("获取tBasic对象时间----------" + (l4 - l3));
// if (StringUtils.isBlank(tBasic.getJzh())) {
// insertLog(tbasic);
// log.info("INHOSP_NO字段不能为空值");
// return ResultUtils.fail("INHOSP_NO字段不能为空值");
// }
// long l5 = System.currentTimeMillis();
// tBasic.setUpdateTime(new Date());
// try {
// itBasicService.OutUpdateAndSub(tBasic, tBasicSubMap, tBasicExtend);
//// this.saveAndCall(tBasic);
// long l6 = System.currentTimeMillis();
// log.info("update耗时----------" + (l6 - l5));
// long l7 = System.currentTimeMillis();
// pcmachineService.saveAndCallOut(tBasic);
// long l8 = System.currentTimeMillis();
// log.info("saveAndCall耗时-------" + (l8 - l7));
// } catch (RuntimeException e) {
// insertLog(tbasic);
// e.printStackTrace();
// log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// } else {
// insertLog(tbasic);
// return ResultUtils.fail("请提供完整的xml");
// }
// long l3 = System.currentTimeMillis();
// log.info("业务处理时间------------" + (l3 - l2));
// } catch (Exception e) {
// e.printStackTrace();
// log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("DISCHARGE_CAN方法运行结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
/**
*
*
*
* @param tbasic
* @param tseal
* @return
*/
@Override
public String OUT_HOS_REG(String tbasic) {
log.info("住院成员信息新增xml" + tbasic);
public String MEDICAL_RECORD_SEAL(String tseal) {
log.info("病案封存" + tseal);
try {
//解析xml
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap dateMap = new HashMap<>();
// Date disDate=null;
parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
HashMap<String, Object> tSealMap = new HashMap<>();
SealParseXml(tseal, tSealMap);
//处理业务
TBasic tBasic;
if (tBasicMap != null && tBasicMap.size() > 0) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
//特殊处理出院时间 没有就取当前时间
Date currentDate = new Date();
// if(tBasic.getDisDate()==null){
// tBasic.setDisDate(currentDate);
// }
//tBasic.setCreateTime(currentDate);
tBasic.setCreateTime(currentDate);
itBasicService.savaAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
// this.saveAndCall(tBasic);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);
if (dateMap.size() > 1) {
Date admissDate = sdf1.parse(String.valueOf(dateMap.get("admissDate")));
Date disDate = sdf1.parse(String.valueOf(dateMap.get("disDate")));
tBasic.setAdmissDate(sdf.parse(sdf.format(admissDate)));
tBasic.setDisDate(sdf.parse(sdf.format(disDate)));
tBasic.setInpatientNo(dateMap.get("inpatientNo").toString());
TSeal tSeal;
if (tSealMap != null && tSealMap.size() > 0) {
tSeal = JSON.parseObject(JSON.toJSONString(tSealMap), TSeal.class);
int insert = tSealMapper.insert(tSeal);
if (insert > 0){
log.info(tSeal.getJzh()+"----封存信息插入成功!");
}else {
log.info(tSeal.getJzh()+"----封存信息插入失败!");
}
pcmachineService.saveAndCall(tBasic);
sealCollect(tSeal.getSealId());
} else {
insertLog(tbasic);
insertLog(tseal);
log.info("请提供完整的xml");
return ResultUtils.fail("请提供完整的xml");
}
} catch (RuntimeException e) {
insertLog(tbasic);
log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
insertLog(tseal);
log.error("MEDICAL_RECORD_SEAL方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
log.error("MEDICAL_RECORD_SEAL中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
log.info("OUT_HOS_REG返回结果:" + ResultUtils.success().asXML());
log.info("MEDICAL_RECORD_SEAL返回结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
* xml
*
* @param tbasic
* @param tBasicMap
* @param tBasicSubMap
// * 封存解析xml
// *
// * @param tSeal
// * @param tSealMap
*/
private void parseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap dateMap) {
private void SealParseXml(String tSeal, HashMap<String, Object> tSealMap) {
XmlUtils xmlUtils = null;
log.info("开始解析xml");
try {
xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
xmlUtils = new XmlUtils(new ByteArrayInputStream(tSeal.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (StringUtils.isBlank(xmlUtils.getElementText("SEAL_ID"))){
log.error("SEAL_ID 字段不能为空值");
throw new RuntimeException("SEAL_ID 字段不能为空值");
}
//解析json映射文件
String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_ADDRESS.getMessage());
String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_SEAL_ADDRESS.getMessage());
Map jsonMap = JSON.parseObject(json, Map.class);
List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
@ -174,334 +524,92 @@ public class TBasicWebService implements ITBasicWebService {
}
if (StringUtils.isBlank(value)) {
if (selectColumn.getByNull() == 0) {
insertLog(tbasic);
insertLog(tSeal);
log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
} else {
continue;
}
} else {
if (selectColumn.getTableName().equals("t_basic")) {
tBasicMap.put(selectColumn.getColumnName(), value);
}
if (selectColumn.getTableName().equals("t_basic_sub")) {
tBasicSubMap.put(selectColumn.getColumnName(), value);
if (selectColumn.getTableName().equals("t_seal")) {
tSealMap.put(selectColumn.getColumnName(), value);
}
}
}
try {
String preJzh = xmlUtils.getElementText("PRE_INHOSP_NO");
System.err.println(preJzh);
if (null != preJzh && !"".equals(preJzh)) {
//预住院患者记录
TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", preJzh));
//正式住院患者记录
TBasic tBasic1 = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
if (null != tBasic && null != tBasic1) {
dateMap.put("admissDate", tBasic.getAdmissDate().toString());
dateMap.put("disDate", tBasic1.getAdmissDate().toString());
dateMap.put("inpatientNo", tBasic.getInpatientNo());
//将预住院患者病历文件patient_id改为正式住院的patient_id合并病历
int i = tScanAssortMapper.updateByPatientId(tBasic1.getPatientId(), tBasic.getPatientId());
if (i <= 0) {
log.info("当前预住院没有文件!");
}else {
log.info( tBasic1.getJzh()+"本次预住院合并"+i+"份报告");
}
} else {
log.error("正式住院: "+tBasic1.getJzh() + " 预住院或正式住院患者不存在!");
}
}
dateMap.put("preJzh",preJzh);
} catch (Exception e) {
log.error("预住院错误信息{}", e.getMessage());
}
}
/**
*
*
* @param tbasic
* @return
*/
@Override
public String OUT_HOS_CAN(String tbasic) {
log.info("住院成员信息修改xml" + tbasic);
private void sealCollect(String sealId) {
final String systemCollectConfigFileName = "dataConfig" + File.separator + "SystemCollectConfig";
List<SystemCollectConfig.CollectConfig> sealCollectConfigs;
try {
long l = System.currentTimeMillis();
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap<String, Date> dateMap = new HashMap<>();
//parseXml(tbasic, tBasicMap, tBasicSubMap);
parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
TBasic tBasic;
XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
if (elementText.equals("1")) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasic.setIsCancel("1");
int update = tBasicMapper.update(tBasic, new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
if (update > 0) {
log.info(tBasic.getJzh() + "取消入院成功!");
}
String configJson = FileUtils.readJsonFromCurrentProject(systemCollectConfigFileName);
} else {
long l1 = System.currentTimeMillis();
log.info("解析xml时间------" + (l1 - l));
//处理业务
long l2 = System.currentTimeMillis();
if (tBasicMap != null && tBasicMap.size() > 0) {
long l3 = System.currentTimeMillis();
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
long l4 = System.currentTimeMillis();
log.info("获取tBasic对象时间----------" + (l4 - l3));
if (StringUtils.isBlank(tBasic.getEmpId())) {
insertLog(tbasic);
log.info("emp_id字段不能为空值");
return ResultUtils.fail("emp_id字段不能为空值");
}
long l5 = System.currentTimeMillis();
tBasic.setUpdateTime(new Date());
try {
itBasicService.updateAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
// this.saveAndCall(tBasic);
long l6 = System.currentTimeMillis();
log.info("update耗时----------" + (l6 - l5));
long l7 = System.currentTimeMillis();
tBasic.setAdmissDate(dateMap.get("admissDate"));
tBasic.setDisDate(dateMap.get("disDate"));
pcmachineService.saveAndCall(tBasic);
long l8 = System.currentTimeMillis();
log.info("saveAndCall耗时-------" + (l8 - l7));
} catch (RuntimeException e) {
insertLog(tbasic);
e.printStackTrace();
log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
} else {
insertLog(tbasic);
return ResultUtils.fail("请提供完整的xml");
SystemCollectConfig systemCollectConfig = JSON.parseObject(configJson, SystemCollectConfig.class);
String sealCollectClassify = systemCollectConfig.getSealCollectClassify();
if (!SystemCollectConfig.Classify.SEAL_COLLECT.getClassify().equals(sealCollectClassify)) {
throw new RuntimeException("封存病案采集配置未配置!");
}
sealCollectConfigs = systemCollectConfig.getSealCollectConfigs();
for (SystemCollectConfig.CollectConfig config : sealCollectConfigs) {
if (StringUtils.isBlank(config.getDesc()) || StringUtils.isBlank(config.getUrl())) {
throw new RuntimeException("封存病案采集配置中描述和地址不能为空!");
}
long l3 = System.currentTimeMillis();
log.info("业务处理时间------------" + (l3 - l2));
}
} catch (Exception e) {
e.printStackTrace();
log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
} catch (RuntimeException runtimeException) {
log.error(runtimeException.getMessage(), runtimeException);
return;
} catch (Exception ex) {
log.error("封存病案获取采集配置出现未知错误!", ex);
return;
}
log.info("OUT_HOS_CAN方法运行结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
*
*
* @param tbasic
* @return
*/
@Override
public String DISCHARGE_REG(String tbasic) {
log.info("出院成员信息新增xml" + tbasic);
try {
//解析xml
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap<String, Object> tBasicExtendMap = new HashMap<>();
OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
//处理业务
TBasic tBasic;
XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
if (elementText.equals("1")) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasic.setIsCancel("1");
int update = tBasicMapper.update(tBasic, new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
if (update > 0) {
log.info(tBasic.getJzh() + "取消入院成功!");
}
}else {
TBasicExtend tBasicExtend;
if (tBasicMap != null && tBasicMap.size() > 0) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
tBasicExtend.setPatientId(tBasic.getPatientId());
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
//特殊处理出院时间 没有就取当前时间
// if(tBasic.getDisDate()==null){
// tBasic.setDisDate(currentDate);
// }
//tBasic.setCreateTime(currentDate);
itBasicService.OutSavaAndSub(tBasic, tBasicSubMap, tBasicExtend);
// this.saveAndCall(tBasic);
pcmachineService.saveAndCallOut(tBasic);
} else {
insertLog(tbasic);
log.info("请提供完整的xml");
return ResultUtils.fail("请提供完整的xml");
}
// 添加封存采集任务的容器
List<CompletableFuture<Void>> completableFutureList = new CopyOnWriteArrayList<>();
for (SystemCollectConfig.CollectConfig config : sealCollectConfigs) {
CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(() -> {
sealCollect(sealId, config);
}, threadPoolExecutor);
completableFutureList.add(completableFuture);
}
// 封存采集任务的容器不为空,阻塞到所有任务完成
if (!completableFutureList.isEmpty()) {
CompletableFuture<Void> allFutures = CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0]));
try {
allFutures.get();
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
}
} catch (RuntimeException e) {
insertLog(tbasic);
log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
log.info("DISCHARGE_REG返回结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
*
*
* @param tbasic
* @return
*/
@Override
public String DISCHARGE_CAN(String tbasic) {
log.info("出院成员信息修改xml" + tbasic);
private void sealCollect(String sealId, SystemCollectConfig.CollectConfig config) {
String url = config.getUrl() + "?sealId=" + sealId;
String desc = config.getDesc();
try {
long l = System.currentTimeMillis();
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap<String, Object> tBasicExtendMap = new HashMap<>();
TBasic tBasic;
TBasicExtend tBasicExtend;
OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
long l1 = System.currentTimeMillis();
log.info("解析xml时间------" + (l1 - l));
//处理业务
long l2 = System.currentTimeMillis();
if (tBasicMap != null && tBasicMap.size() > 0) {
long l3 = System.currentTimeMillis();
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
tBasicExtend.setPatientId(tBasic.getPatientId());
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
long l4 = System.currentTimeMillis();
log.info("获取tBasic对象时间----------" + (l4 - l3));
if (StringUtils.isBlank(tBasic.getJzh())) {
insertLog(tbasic);
log.info("INHOSP_NO字段不能为空值");
return ResultUtils.fail("INHOSP_NO字段不能为空值");
}
long l5 = System.currentTimeMillis();
tBasic.setUpdateTime(new Date());
try {
itBasicService.OutUpdateAndSub(tBasic, tBasicSubMap, tBasicExtend);
// this.saveAndCall(tBasic);
long l6 = System.currentTimeMillis();
log.info("update耗时----------" + (l6 - l5));
long l7 = System.currentTimeMillis();
pcmachineService.saveAndCallOut(tBasic);
long l8 = System.currentTimeMillis();
log.info("saveAndCall耗时-------" + (l8 - l7));
} catch (RuntimeException e) {
insertLog(tbasic);
e.printStackTrace();
log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
} else {
insertLog(tbasic);
return ResultUtils.fail("请提供完整的xml");
}
long l3 = System.currentTimeMillis();
log.info("业务处理时间------------" + (l3 - l2));
} catch (Exception e) {
e.printStackTrace();
log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
log.info("{},采集地址:{}", desc, url);
String result = HttpUtils.get(url);
log.info("{},采集地址:{},采集结果:{}", desc, url, result);
} catch (Exception ex) {
log.error(desc + ",采集地址:" + url + ",采集失败!", ex);
}
log.info("DISCHARGE_CAN方法运行结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
*
*
* @param tseal
* @return
*/
// @Override
// public String MEDICAL_RECORD_SEAL(String tseal) {
// log.info("病案封存" + tseal);
// try {
// //解析xml
// HashMap<String, Object> tSealMap = new HashMap<>();
// SealParseXml(tseal, tSealMap);
// //处理业务
// TSeal tSeal;
// if (tSealMap != null && tSealMap.size() > 0) {
// tSeal = JSON.parseObject(JSON.toJSONString(tSealMap), TSeal.class);
// int insert = tSealMapper.insert(tSeal);
// if (insert > 0){
// log.info(tSeal.getJzh()+"----封存信息插入成功!");
// }else {
// log.info(tSeal.getJzh()+"----封存信息插入失败!");
// }
// } else {
// insertLog(tseal);
// log.info("请提供完整的xml");
// return ResultUtils.fail("请提供完整的xml");
// }
// } catch (RuntimeException e) {
// insertLog(tseal);
// log.error("MEDICAL_RECORD_SEAL方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// } catch (Exception e) {
// e.printStackTrace();
// log.error("MEDICAL_RECORD_SEAL中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("MEDICAL_RECORD_SEAL返回结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
// /**
// * 封存解析xml
// * 出院解析xml
// *
// * @param tSeal
// * @param tSealMap
// * @param tbasic
// * @param tBasicMap
// * @param tBasicSubMap
// */
// private void SealParseXml(String tSeal, HashMap<String, Object> tSealMap) {
// private void OutParseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap<String, Object> tBasicExtendMap) {
// XmlUtils xmlUtils = null;
// log.info("开始解析xml");
// try {
// xmlUtils = new XmlUtils(new ByteArrayInputStream(tSeal.getBytes("UTF-8")));
// xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
//
// if (StringUtils.isBlank(xmlUtils.getElementText("SEAL_ID"))){
// log.error("SEAL_ID 字段不能为空值");
// throw new RuntimeException("SEAL_ID 字段不能为空值");
// }
// //解析json映射文件
// String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_SEAL_ADDRESS.getMessage());
// String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_OUT_ADDRESS.getMessage());
// Map jsonMap = JSON.parseObject(json, Map.class);
//
// List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
@ -516,76 +624,32 @@ public class TBasicWebService implements ITBasicWebService {
// }
// if (StringUtils.isBlank(value)) {
// if (selectColumn.getByNull() == 0) {
// insertLog(tSeal);
// insertLog(tbasic);
// log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
// throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
// } else {
// continue;
// }
// } else {
// if (selectColumn.getTableName().equals("t_seal")) {
// tSealMap.put(selectColumn.getColumnName(), value);
// if (selectColumn.getTableName().equals("t_basic")) {
// tBasicMap.put(selectColumn.getColumnName(), value);
// }
// if (selectColumn.getTableName().equals("t_basic_extend")) {
// tBasicExtendMap.put(selectColumn.getColumnName(), value);
// }
// if (selectColumn.getTableName().equals("t_basic_sub")) {
// tBasicSubMap.put(selectColumn.getColumnName(), value);
// }
// }
// }
// try {
// TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
// tBasicMap.put("patient_id",tBasic.getPatientId());
//
// itBasicService.merge(tBasicMap);
// }catch (Exception e) {
// log.info(e.getMessage());
// }
// }
//
/**
* xml
*
* @param tbasic
* @param tBasicMap
* @param tBasicSubMap
*/
private void OutParseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap<String, Object> tBasicExtendMap) {
XmlUtils xmlUtils = null;
log.info("开始解析xml");
try {
xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//解析json映射文件
String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_OUT_ADDRESS.getMessage());
Map jsonMap = JSON.parseObject(json, Map.class);
List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
String value;
for (SelectColumn selectColumn : selectColumns) {
try {
value = xmlUtils.getElementText(selectColumn.getQualityColumn()) == null ? null : String.valueOf(xmlUtils.getElementText(selectColumn.getQualityColumn()));
} catch (RuntimeException e) {
String message = e.getMessage();
log.error("解析xml出现:" + message);
throw new RuntimeException(message);
}
if (StringUtils.isBlank(value)) {
if (selectColumn.getByNull() == 0) {
insertLog(tbasic);
log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
} else {
continue;
}
} else {
if (selectColumn.getTableName().equals("t_basic")) {
tBasicMap.put(selectColumn.getColumnName(), value);
}
if (selectColumn.getTableName().equals("t_basic_extend")) {
tBasicExtendMap.put(selectColumn.getColumnName(), value);
}
if (selectColumn.getTableName().equals("t_basic_sub")) {
tBasicSubMap.put(selectColumn.getColumnName(), value);
}
}
}
TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
tBasicMap.put("patient_id",tBasic.getPatientId());
try {
itBasicService.merge(tBasicMap);
}catch (Exception e) {
log.error(e.getMessage());
}
}
}

@ -182,7 +182,6 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
merge(patientId);
} catch (Exception e) {
log.error(e.getMessage());
continue;
}
}
@ -191,7 +190,7 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
}
@Override
public void merge(Map patientId) throws RuntimeException {
public void merge(Map patientId) {
TBasicExtend tBasicExtend;
TBasic tBasic;
log.info(patientId.get("inpatient_no") + ":合并预住院病历开始");
@ -211,7 +210,7 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
log.info(patientId.get("inpatient_no")+":未查询到预住院信息!");
}
} catch (Exception e) {
throw new RuntimeException("预住院文件合并出错!--" + e.getMessage());
log.info("预住院文件合并出错!--" + e.getMessage());
}
}
@ -241,14 +240,26 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
}
if (null != preJzh && !preJzh.equals("")) {
TBasic tbasic1 = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
if (tbasic1 != null) {
TBasicExtend tBasicExtend1 = tBasicExtendMapper.selectOne(new QueryWrapper<TBasicExtend>().eq("patient_id", tbasic1.getPatientId()));
if (null!=tbasic1) {
TBasicExtend tBasicExtend = new TBasicExtend();
tBasicExtend.setPatientId(tbasic1.getPatientId());
tBasicExtend.setPreJzh(preJzh);
int insert = tBasicExtendMapper.insert(tBasicExtend);
if (insert <= 0) {
throw new RuntimeException("数据库执行出错,请重试");
if(null!=tBasicExtend1){
tBasicExtend1.setPreJzh(preJzh);
int update = tBasicExtendMapper.update(tBasicExtend1, new QueryWrapper<TBasicExtend>().eq("patient_id", tBasicExtend1.getPatientId()));
if (update <= 0) {
throw new RuntimeException("tBasicExtend修改出错请重试");
}
}else {
tBasicExtend.setPatientId(tbasic1.getPatientId());
tBasicExtend.setPreJzh(preJzh);
int insert = tBasicExtendMapper.insert(tBasicExtend);
if (insert <= 0) {
throw new RuntimeException("tBasicExtend新增出错请重试");
}
}
}
}

@ -0,0 +1,44 @@
package com.docus.webservice.utils;
import com.alibaba.fastjson.JSON;
import java.io.File;
import java.io.IOException;
import java.util.Map;
public class FileUtils {
/**
* jar
*
* @return
*/
public static String currentPath() {
File dir = new File(".");
String currentpath = "";
try {
currentpath = dir.getCanonicalPath();
} catch (IOException e) {
e.printStackTrace();
}
return currentpath;
}
/**
*
*
* @param fileName json
* @return json
*/
public static String readJsonFromCurrentProject(String fileName) {
//获取目录结构
String path = FileUtils.currentPath();
String filePath = path + File.separator + fileName;
//解析json映射文件
return JsonUtils.readJsonFile(filePath);
}
}
Loading…
Cancel
Save