Browse Source

合并

whszxyjhyy
lzp 2 months ago
parent
commit
354c92ffce
  1. 12
      ruisi_java/pom.xml
  2. 2
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/DruidConfig.java
  3. 6
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/LoadingDataSource.java
  4. 1
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java
  5. 11
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java
  6. 6
      ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml
  7. 4
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java
  8. 10
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/RmsDto.java
  9. 11
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluation.java
  10. 70
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluationExample.java
  11. 11
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReport.java
  12. 70
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReportExample.java
  13. 27
      ruisi_java/ruisi-system/src/main/resources/mapper/system/EmsEvaluationMapper.xml
  14. 27
      ruisi_java/ruisi-system/src/main/resources/mapper/system/RmsReportMapper.xml
  15. 40
      ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/controller/ReportPdfController.java
  16. 4
      ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/IRmsService.java
  17. 38
      ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java
  18. 9
      ruisi_java/ruisi-web-admin/src/main/resources/application-prod.yml
  19. 2
      ruisi_java/ruisi-web-admin/src/main/resources/logback.xml
  20. 57
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java
  21. 3
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java
  22. 5
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/ILtHisConnectionService.java
  23. 17
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java
  24. 13
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IEmsServiceImpl.java
  25. 138
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java
  26. 3
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java
  27. 3
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java
  28. 3
      ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml
  29. 13
      ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml
  30. 2
      ruisi_java/ruisi-web-client/src/main/resources/logback.xml
  31. 3
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml
  32. 4
      web_admin/adminapi/index.html
  33. 1
      web_admin/adminapi/static/css/chunk-22c4205e.28a30b08.css

12
ruisi_java/pom.xml

@ -230,7 +230,19 @@
<artifactId>HikariCP</artifactId> <artifactId>HikariCP</artifactId>
<version>${hikaricp.version}</version> <version>${hikaricp.version}</version>
</dependency> </dependency>
<!-- Oracle JDBC驱动 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.9.0.0</version>
</dependency>
<!-- Apache Commons Lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies> </dependencies>

2
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/DruidConfig.java

@ -58,7 +58,7 @@ public class DruidConfig {
public DynamicDataSource dataSource(DataSource masterDataSource) { public DynamicDataSource dataSource(DataSource masterDataSource) {
Map<Object, Object> targetDataSources = new HashMap<>(); Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
// setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
return new DynamicDataSource(masterDataSource, targetDataSources); return new DynamicDataSource(masterDataSource, targetDataSources);
} }

6
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/LoadingDataSource.java

@ -2,6 +2,7 @@ package com.ccsens.framework.config;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.common.utils.ExceptionUtil; import com.ccsens.common.utils.ExceptionUtil;
import com.ccsens.common.utils.StringUtils;
import com.ccsens.framework.datasource.DataSourceManager; import com.ccsens.framework.datasource.DataSourceManager;
import com.ccsens.framework.datasource.DynamicDataSource; import com.ccsens.framework.datasource.DynamicDataSource;
import com.ccsens.system.domain.po.UmsDataSource; import com.ccsens.system.domain.po.UmsDataSource;
@ -10,6 +11,7 @@ import com.ccsens.system.persist.mapper.UmsDataSourceMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -51,5 +53,9 @@ public class LoadingDataSource implements InitializingBean {
log.error("加载数据源失败:", ExceptionUtil.getExceptionMessage(e)); log.error("加载数据源失败:", ExceptionUtil.getExceptionMessage(e));
} }
} }
// 3. 打印当前所有数据源
log.info("当前数据源池中的key: {}", DataSourceManager.DATA_SOURCE_POOL_JDBC.keySet());
} }
} }

1
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java

@ -1,5 +1,6 @@
package com.ccsens.framework.datasource; package com.ccsens.framework.datasource;
import com.ccsens.common.utils.StringUtils;
import com.ccsens.system.domain.po.UmsDataSource; import com.ccsens.system.domain.po.UmsDataSource;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

11
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java

@ -5,6 +5,7 @@ import java.sql.SQLException;
import java.util.Map; import java.util.Map;
import javax.sql.DataSource; import javax.sql.DataSource;
import cn.hutool.core.collection.CollUtil;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
/** /**
@ -38,13 +39,19 @@ public class DynamicDataSource extends AbstractRoutingDataSource {
if (dataSourceKey == null) { if (dataSourceKey == null) {
return super.getResolvedDefaultDataSource(); return super.getResolvedDefaultDataSource();
} }
DataSource dataSource = DataSourceManager.DATA_SOURCE_POOL_JDBC.get(dataSourceKey);
DataSource dataSource;
Map<Object, DataSource> resolvedDataSources = super.getResolvedDataSources();
if (CollUtil.isNotEmpty(resolvedDataSources) && resolvedDataSources.containsKey(dataSourceKey)) {
dataSource = resolvedDataSources.get(dataSourceKey);
}else {
dataSource = DataSourceManager.DATA_SOURCE_POOL_JDBC.get(dataSourceKey);
}
if (dataSource == null) { if (dataSource == null) {
throw new RuntimeException("数据源不存在!"); throw new RuntimeException("数据源不存在!");
} }
return dataSource; return dataSource;
} }

6
ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml

@ -81,7 +81,7 @@
<!-- <table tableName="ems_evaluation_question_duration" domainObjectName="EmsEvaluationQuestionDuration"/>--> <!-- <table tableName="ems_evaluation_question_duration" domainObjectName="EmsEvaluationQuestionDuration"/>-->
<!-- <table tableName="hms_report_config" domainObjectName="HmsReportConfig"/>--> <!-- <table tableName="hms_report_config" domainObjectName="HmsReportConfig"/>-->
<!-- <table tableName="ems_evaluation" domainObjectName="EmsEvaluation"/>--> <table tableName="ems_evaluation" domainObjectName="EmsEvaluation"/>
<!-- <table tableName="ems_evaluation_informed_consent" domainObjectName="EmsEvaluationInformedConsent"/>--> <!-- <table tableName="ems_evaluation_informed_consent" domainObjectName="EmsEvaluationInformedConsent"/>-->
<!-- <table tableName="ems_evaluation_question_version" domainObjectName="EmsEvaluationQuestionVersion"/>--> <!-- <table tableName="ems_evaluation_question_version" domainObjectName="EmsEvaluationQuestionVersion"/>-->
<!-- <table tableName="ems_evaluation_scale_relevance" domainObjectName="EmsEvaluationScaleRelevance"/>--> <!-- <table tableName="ems_evaluation_scale_relevance" domainObjectName="EmsEvaluationScaleRelevance"/>-->
@ -114,7 +114,7 @@
<!-- <table tableName="ams_patient_question_record" domainObjectName="AmsPatientQuestionRecord"/>--> <!-- <table tableName="ams_patient_question_record" domainObjectName="AmsPatientQuestionRecord"/>-->
<!-- <table tableName="ams_patient_question_record_desc" domainObjectName="AmsPatientQuestionRecordDesc"/>--> <!-- <table tableName="ams_patient_question_record_desc" domainObjectName="AmsPatientQuestionRecordDesc"/>-->
<!-- <table tableName="rms_report" domainObjectName="RmsReport"/>--> <table tableName="rms_report" domainObjectName="RmsReport"/>
<!-- <table tableName="rms_report_basics_record" domainObjectName="RmsReportBasicsRecord"/>--> <!-- <table tableName="rms_report_basics_record" domainObjectName="RmsReportBasicsRecord"/>-->
<!-- <table tableName="rms_report_range" domainObjectName="RmsReportRange"/>--> <!-- <table tableName="rms_report_range" domainObjectName="RmsReportRange"/>-->
<!-- <table tableName="rms_report_scale_score" domainObjectName="RmsReportScaleScore"/>--> <!-- <table tableName="rms_report_scale_score" domainObjectName="RmsReportScaleScore"/>-->
@ -122,7 +122,7 @@
<!-- <table tableName="kms_knowledge_type" domainObjectName="KmsKnowledgeType"/>--> <!-- <table tableName="kms_knowledge_type" domainObjectName="KmsKnowledgeType"/>-->
<!-- <table tableName="qms_scale_ass_conf" domainObjectName="QmsScaleAssConf"/>--> <!-- <table tableName="qms_scale_ass_conf" domainObjectName="QmsScaleAssConf"/>-->
<!-- <table tableName="kms_knowledge" domainObjectName="KmsKnowledge"/>--> <!-- <table tableName="kms_knowledge" domainObjectName="KmsKnowledge"/>-->
<table tableName="hms_version" domainObjectName="HmsVersion"/> <!-- <table tableName="hms_version" domainObjectName="HmsVersion"/>-->
<!-- <table tableName="qms_scale_ass_conf" domainObjectName="QmsScaleAssConf"/>--> <!-- <table tableName="qms_scale_ass_conf" domainObjectName="QmsScaleAssConf"/>-->
<!-- <table tableName="kms_knowledge_detail" domainObjectName="KmsKnowledgeDetail"/>--> <!-- <table tableName="kms_knowledge_detail" domainObjectName="KmsKnowledgeDetail"/>-->

4
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java

@ -69,7 +69,7 @@ public class PmsPatientDto {
private String patientNumber; private String patientNumber;
@ApiModelProperty("病人住院号") @ApiModelProperty("病人住院号")
private String hospitalNumber; private String hospitalNumber;
@NotNull(message="请填写身份证号") // @NotNull(message="请填写身份证号")
@ApiModelProperty("病人身份证号") @ApiModelProperty("病人身份证号")
private String idcard; private String idcard;
@NotNull(message = "请选择性别") @NotNull(message = "请选择性别")
@ -101,7 +101,7 @@ public class PmsPatientDto {
// @NotNull(message="请填写联系人") // @NotNull(message="请填写联系人")
// @ApiModelProperty("联系人") // @ApiModelProperty("联系人")
// private String contact; // private String contact;
@NotNull(message = "请填写联系电话") // @NotNull(message = "请填写联系电话")
@ApiModelProperty("手机") @ApiModelProperty("手机")
private String mobile; private String mobile;
@ApiModelProperty("电话") @ApiModelProperty("电话")

10
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/RmsDto.java

@ -252,4 +252,14 @@ public class RmsDto {
@ApiModelProperty("结束时间") @ApiModelProperty("结束时间")
private String endTime; private String endTime;
} }
@ApiModel("导出历史报告单-DTO")
@Data
public static class ReportPDF{
@ApiModelProperty("患者的就诊流水号")
private String patientNo;
@ApiModelProperty("医护人员工号")
private String emplCode;
}
} }

11
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluation.java

@ -44,6 +44,8 @@ public class EmsEvaluation implements Serializable {
private String version; private String version;
private String visitNo;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -206,6 +208,14 @@ public class EmsEvaluation implements Serializable {
this.version = version == null ? null : version.trim(); this.version = version == null ? null : version.trim();
} }
public String getVisitNo() {
return visitNo;
}
public void setVisitNo(String visitNo) {
this.visitNo = visitNo == null ? null : visitNo.trim();
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -232,6 +242,7 @@ public class EmsEvaluation implements Serializable {
sb.append(", delFlag=").append(delFlag); sb.append(", delFlag=").append(delFlag);
sb.append(", status=").append(status); sb.append(", status=").append(status);
sb.append(", version=").append(version); sb.append(", version=").append(version);
sb.append(", visitNo=").append(visitNo);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

70
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluationExample.java

@ -1384,6 +1384,76 @@ public class EmsEvaluationExample {
addCriterion("version not between", value1, value2, "version"); addCriterion("version not between", value1, value2, "version");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andVisitNoIsNull() {
addCriterion("visit_no is null");
return (Criteria) this;
}
public Criteria andVisitNoIsNotNull() {
addCriterion("visit_no is not null");
return (Criteria) this;
}
public Criteria andVisitNoEqualTo(String value) {
addCriterion("visit_no =", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotEqualTo(String value) {
addCriterion("visit_no <>", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoGreaterThan(String value) {
addCriterion("visit_no >", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoGreaterThanOrEqualTo(String value) {
addCriterion("visit_no >=", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoLessThan(String value) {
addCriterion("visit_no <", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoLessThanOrEqualTo(String value) {
addCriterion("visit_no <=", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoLike(String value) {
addCriterion("visit_no like", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotLike(String value) {
addCriterion("visit_no not like", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoIn(List<String> values) {
addCriterion("visit_no in", values, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotIn(List<String> values) {
addCriterion("visit_no not in", values, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoBetween(String value1, String value2) {
addCriterion("visit_no between", value1, value2, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotBetween(String value1, String value2) {
addCriterion("visit_no not between", value1, value2, "visitNo");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

11
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReport.java

@ -50,6 +50,8 @@ public class RmsReport implements Serializable {
private Byte delFlag; private Byte delFlag;
private String visitNo;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -236,6 +238,14 @@ public class RmsReport implements Serializable {
this.delFlag = delFlag; this.delFlag = delFlag;
} }
public String getVisitNo() {
return visitNo;
}
public void setVisitNo(String visitNo) {
this.visitNo = visitNo == null ? null : visitNo.trim();
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -265,6 +275,7 @@ public class RmsReport implements Serializable {
sb.append(", updateBy=").append(updateBy); sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime); sb.append(", updateTime=").append(updateTime);
sb.append(", delFlag=").append(delFlag); sb.append(", delFlag=").append(delFlag);
sb.append(", visitNo=").append(visitNo);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

70
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReportExample.java

@ -1614,6 +1614,76 @@ public class RmsReportExample {
addCriterion("del_flag not between", value1, value2, "delFlag"); addCriterion("del_flag not between", value1, value2, "delFlag");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andVisitNoIsNull() {
addCriterion("visit_no is null");
return (Criteria) this;
}
public Criteria andVisitNoIsNotNull() {
addCriterion("visit_no is not null");
return (Criteria) this;
}
public Criteria andVisitNoEqualTo(String value) {
addCriterion("visit_no =", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotEqualTo(String value) {
addCriterion("visit_no <>", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoGreaterThan(String value) {
addCriterion("visit_no >", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoGreaterThanOrEqualTo(String value) {
addCriterion("visit_no >=", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoLessThan(String value) {
addCriterion("visit_no <", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoLessThanOrEqualTo(String value) {
addCriterion("visit_no <=", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoLike(String value) {
addCriterion("visit_no like", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotLike(String value) {
addCriterion("visit_no not like", value, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoIn(List<String> values) {
addCriterion("visit_no in", values, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotIn(List<String> values) {
addCriterion("visit_no not in", values, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoBetween(String value1, String value2) {
addCriterion("visit_no between", value1, value2, "visitNo");
return (Criteria) this;
}
public Criteria andVisitNoNotBetween(String value1, String value2) {
addCriterion("visit_no not between", value1, value2, "visitNo");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

27
ruisi_java/ruisi-system/src/main/resources/mapper/system/EmsEvaluationMapper.xml

@ -22,6 +22,7 @@
<result column="del_flag" jdbcType="TINYINT" property="delFlag" /> <result column="del_flag" jdbcType="TINYINT" property="delFlag" />
<result column="status" jdbcType="TINYINT" property="status" /> <result column="status" jdbcType="TINYINT" property="status" />
<result column="version" jdbcType="VARCHAR" property="version" /> <result column="version" jdbcType="VARCHAR" property="version" />
<result column="visit_no" jdbcType="VARCHAR" property="visitNo" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -84,7 +85,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, doctor_name, patient_id, patient_idcard, patient_age, tester_id, serial_number, id, doctor_name, patient_id, patient_idcard, patient_age, tester_id, serial_number,
check_time, remark, hospital, complete_status, recording, duration, create_by, create_time, check_time, remark, hospital, complete_status, recording, duration, create_by, create_time,
update_by, update_time, del_flag, status, version update_by, update_time, del_flag, status, version, visit_no
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.system.domain.po.EmsEvaluationExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.system.domain.po.EmsEvaluationExample" resultMap="BaseResultMap">
select select
@ -123,14 +124,16 @@
hospital, complete_status, recording, hospital, complete_status, recording,
duration, create_by, create_time, duration, create_by, create_time,
update_by, update_time, del_flag, update_by, update_time, del_flag,
status, version) status, version, visit_no
)
values (#{id,jdbcType=BIGINT}, #{doctorName,jdbcType=VARCHAR}, #{patientId,jdbcType=BIGINT}, values (#{id,jdbcType=BIGINT}, #{doctorName,jdbcType=VARCHAR}, #{patientId,jdbcType=BIGINT},
#{patientIdcard,jdbcType=VARCHAR}, #{patientAge,jdbcType=INTEGER}, #{testerId,jdbcType=BIGINT}, #{patientIdcard,jdbcType=VARCHAR}, #{patientAge,jdbcType=INTEGER}, #{testerId,jdbcType=BIGINT},
#{serialNumber,jdbcType=VARCHAR}, #{checkTime,jdbcType=BIGINT}, #{remark,jdbcType=VARCHAR}, #{serialNumber,jdbcType=VARCHAR}, #{checkTime,jdbcType=BIGINT}, #{remark,jdbcType=VARCHAR},
#{hospital,jdbcType=VARCHAR}, #{completeStatus,jdbcType=TINYINT}, #{recording,jdbcType=TINYINT}, #{hospital,jdbcType=VARCHAR}, #{completeStatus,jdbcType=TINYINT}, #{recording,jdbcType=TINYINT},
#{duration,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{duration,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=TINYINT}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=TINYINT},
#{status,jdbcType=TINYINT}, #{version,jdbcType=VARCHAR}) #{status,jdbcType=TINYINT}, #{version,jdbcType=VARCHAR}, #{visitNo,jdbcType=VARCHAR}
)
</insert> </insert>
<insert id="insertSelective" parameterType="com.ccsens.system.domain.po.EmsEvaluation"> <insert id="insertSelective" parameterType="com.ccsens.system.domain.po.EmsEvaluation">
insert into ems_evaluation insert into ems_evaluation
@ -195,6 +198,9 @@
<if test="version != null"> <if test="version != null">
version, version,
</if> </if>
<if test="visitNo != null">
visit_no,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -257,6 +263,9 @@
<if test="version != null"> <if test="version != null">
#{version,jdbcType=VARCHAR}, #{version,jdbcType=VARCHAR},
</if> </if>
<if test="visitNo != null">
#{visitNo,jdbcType=VARCHAR},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.ccsens.system.domain.po.EmsEvaluationExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.ccsens.system.domain.po.EmsEvaluationExample" resultType="java.lang.Long">
@ -328,6 +337,9 @@
<if test="record.version != null"> <if test="record.version != null">
version = #{record.version,jdbcType=VARCHAR}, version = #{record.version,jdbcType=VARCHAR},
</if> </if>
<if test="record.visitNo != null">
visit_no = #{record.visitNo,jdbcType=VARCHAR},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -354,7 +366,8 @@
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
del_flag = #{record.delFlag,jdbcType=TINYINT}, del_flag = #{record.delFlag,jdbcType=TINYINT},
status = #{record.status,jdbcType=TINYINT}, status = #{record.status,jdbcType=TINYINT},
version = #{record.version,jdbcType=VARCHAR} version = #{record.version,jdbcType=VARCHAR},
visit_no = #{record.visitNo,jdbcType=VARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -419,6 +432,9 @@
<if test="version != null"> <if test="version != null">
version = #{version,jdbcType=VARCHAR}, version = #{version,jdbcType=VARCHAR},
</if> </if>
<if test="visitNo != null">
visit_no = #{visitNo,jdbcType=VARCHAR},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -442,7 +458,8 @@
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
del_flag = #{delFlag,jdbcType=TINYINT}, del_flag = #{delFlag,jdbcType=TINYINT},
status = #{status,jdbcType=TINYINT}, status = #{status,jdbcType=TINYINT},
version = #{version,jdbcType=VARCHAR} version = #{version,jdbcType=VARCHAR},
visit_no = #{visitNo,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

27
ruisi_java/ruisi-system/src/main/resources/mapper/system/RmsReportMapper.xml

@ -25,6 +25,7 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" /> <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="del_flag" jdbcType="TINYINT" property="delFlag" /> <result column="del_flag" jdbcType="TINYINT" property="delFlag" />
<result column="visit_no" jdbcType="VARCHAR" property="visitNo" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -88,7 +89,7 @@
id, name, evaluation_id, initial_impression, clinical_diagnosis, pasi, patient_age, id, name, evaluation_id, initial_impression, clinical_diagnosis, pasi, patient_age,
department, bed_number, report_time, evaluation_code, url, qr_code_url, sign_url, department, bed_number, report_time, evaluation_code, url, qr_code_url, sign_url,
remark, show_status, hospital, working_score, create_by, create_time, update_by, remark, show_status, hospital, working_score, create_by, create_time, update_by,
update_time, del_flag update_time, del_flag, visit_no
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.system.domain.po.RmsReportExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.system.domain.po.RmsReportExample" resultMap="BaseResultMap">
select select
@ -128,7 +129,8 @@
qr_code_url, sign_url, remark, qr_code_url, sign_url, remark,
show_status, hospital, working_score, show_status, hospital, working_score,
create_by, create_time, update_by, create_by, create_time, update_by,
update_time, del_flag) update_time, del_flag, visit_no
)
values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{evaluationId,jdbcType=BIGINT}, values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{evaluationId,jdbcType=BIGINT},
#{initialImpression,jdbcType=VARCHAR}, #{clinicalDiagnosis,jdbcType=VARCHAR}, #{pasi,jdbcType=TINYINT}, #{initialImpression,jdbcType=VARCHAR}, #{clinicalDiagnosis,jdbcType=VARCHAR}, #{pasi,jdbcType=TINYINT},
#{patientAge,jdbcType=INTEGER}, #{department,jdbcType=VARCHAR}, #{bedNumber,jdbcType=VARCHAR}, #{patientAge,jdbcType=INTEGER}, #{department,jdbcType=VARCHAR}, #{bedNumber,jdbcType=VARCHAR},
@ -136,7 +138,8 @@
#{qrCodeUrl,jdbcType=VARCHAR}, #{signUrl,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{qrCodeUrl,jdbcType=VARCHAR}, #{signUrl,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
#{showStatus,jdbcType=TINYINT}, #{hospital,jdbcType=VARCHAR}, #{workingScore,jdbcType=INTEGER}, #{showStatus,jdbcType=TINYINT}, #{hospital,jdbcType=VARCHAR}, #{workingScore,jdbcType=INTEGER},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=TINYINT}) #{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=TINYINT}, #{visitNo,jdbcType=VARCHAR}
)
</insert> </insert>
<insert id="insertSelective" parameterType="com.ccsens.system.domain.po.RmsReport"> <insert id="insertSelective" parameterType="com.ccsens.system.domain.po.RmsReport">
insert into rms_report insert into rms_report
@ -210,6 +213,9 @@
<if test="delFlag != null"> <if test="delFlag != null">
del_flag, del_flag,
</if> </if>
<if test="visitNo != null">
visit_no,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -281,6 +287,9 @@
<if test="delFlag != null"> <if test="delFlag != null">
#{delFlag,jdbcType=TINYINT}, #{delFlag,jdbcType=TINYINT},
</if> </if>
<if test="visitNo != null">
#{visitNo,jdbcType=VARCHAR},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.ccsens.system.domain.po.RmsReportExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.ccsens.system.domain.po.RmsReportExample" resultType="java.lang.Long">
@ -361,6 +370,9 @@
<if test="record.delFlag != null"> <if test="record.delFlag != null">
del_flag = #{record.delFlag,jdbcType=TINYINT}, del_flag = #{record.delFlag,jdbcType=TINYINT},
</if> </if>
<if test="record.visitNo != null">
visit_no = #{record.visitNo,jdbcType=VARCHAR},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -390,7 +402,8 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR}, update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
del_flag = #{record.delFlag,jdbcType=TINYINT} del_flag = #{record.delFlag,jdbcType=TINYINT},
visit_no = #{record.visitNo,jdbcType=VARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -464,6 +477,9 @@
<if test="delFlag != null"> <if test="delFlag != null">
del_flag = #{delFlag,jdbcType=TINYINT}, del_flag = #{delFlag,jdbcType=TINYINT},
</if> </if>
<if test="visitNo != null">
visit_no = #{visitNo,jdbcType=VARCHAR},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -490,7 +506,8 @@
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR}, update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
del_flag = #{delFlag,jdbcType=TINYINT} del_flag = #{delFlag,jdbcType=TINYINT},
visit_no = #{visitNo,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

40
ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/controller/ReportPdfController.java

@ -0,0 +1,40 @@
package com.ccsens.admin.controller;
import com.ccsens.admin.service.IRmsService;
import com.ccsens.common.annotation.Anonymous;
import com.ccsens.common.core.domain.JsonResponse;
import com.ccsens.system.domain.dto.RmsDto;
import com.ccsens.system.domain.vo.RmsVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
* @author zy
* @date 2026/1/29 15:25
*/
@Slf4j
@Api(tags = "通过就诊号查询患者的评估报告单")
@RestController
@RequestMapping("")
public class ReportPdfController {
@Resource
private IRmsService rmsService;
@Anonymous
@ApiOperation(value = "通过就诊号查询患者的评估报告单",notes = "")
@PostMapping(value="/reportPDF")
public JsonResponse<String> generate(@RequestBody @ApiParam @Valid RmsDto.ReportPDF dto){
log.info("通过就诊号查询患者的评估报告单:{}", dto);
String url = rmsService.viewReportPDF(dto);
return JsonResponse.ok(url);
}
}

4
ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/IRmsService.java

@ -37,4 +37,8 @@ public interface IRmsService {
List<RmsVo.ReportName> queryAllReports(RmsDto.AdminQueryReport param, Long userId); List<RmsVo.ReportName> queryAllReports(RmsDto.AdminQueryReport param, Long userId);
Workbook exportAnalyse(List<Long> ids); Workbook exportAnalyse(List<Long> ids);
String viewReportPDF(RmsDto.ReportPDF dto);
} }

38
ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ccsens.admin.persist.dao.RmsDao; import com.ccsens.admin.persist.dao.RmsDao;
@ -13,16 +14,23 @@ import com.ccsens.common.config.AppConfig;
import com.ccsens.common.constant.CultureEnum; import com.ccsens.common.constant.CultureEnum;
import com.ccsens.common.constant.ErrorConstant; import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.constant.GenConstants; import com.ccsens.common.constant.GenConstants;
import com.ccsens.common.constant.JobEnum;
import com.ccsens.common.core.redis.RedisCache; import com.ccsens.common.core.redis.RedisCache;
import com.ccsens.common.enums.BaseEnum;
import com.ccsens.common.exception.ServiceException;
import com.ccsens.common.exception.base.BaseException; import com.ccsens.common.exception.base.BaseException;
import com.ccsens.common.utils.*; import com.ccsens.common.utils.*;
import com.ccsens.system.domain.dto.AmsDto; import com.ccsens.system.domain.dto.AmsDto;
import com.ccsens.system.domain.dto.RmsDto; import com.ccsens.system.domain.dto.RmsDto;
import com.ccsens.system.domain.po.*; import com.ccsens.system.domain.po.*;
import com.ccsens.system.domain.vo.AmsReportVo;
import com.ccsens.system.domain.vo.AmsVo; import com.ccsens.system.domain.vo.AmsVo;
import com.ccsens.admin.domain.vo.LdPatientExportVo; import com.ccsens.admin.domain.vo.LdPatientExportVo;
import com.ccsens.system.domain.vo.HmsVo;
import com.ccsens.system.domain.vo.RmsVo; import com.ccsens.system.domain.vo.RmsVo;
import com.ccsens.system.persist.mapper.*; import com.ccsens.system.persist.mapper.*;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.*;
import com.github.pagehelper.util.StringUtil; import com.github.pagehelper.util.StringUtil;
import com.itextpdf.text.BadElementException; import com.itextpdf.text.BadElementException;
import com.itextpdf.text.Image; import com.itextpdf.text.Image;
@ -31,6 +39,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.category.DefaultCategoryDataset;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -39,12 +48,16 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import static com.ccsens.common.constant.GenConstants.Ht.Report.MoCA_B_8; import static com.ccsens.common.constant.GenConstants.Ht.Report.MoCA_B_8;
import static com.ccsens.common.utils.PropUtil.path;
import static com.ccsens.common.utils.PropUtil.reportDomain;
/** /**
* @author: * @author:
@ -77,6 +90,12 @@ public class RmsServiceImpl implements IRmsService {
@Resource @Resource
private ScoreService scoreService; private ScoreService scoreService;
@Value("${informed.prefixWord}")
private String prefixWord;
@Value("${file.reportPath}")
private String reportPath;
public int getAge(PmsPatient pmsPatient) { public int getAge(PmsPatient pmsPatient) {
if (pmsPatient.getBirthYear() != null) { if (pmsPatient.getBirthYear() != null) {
Calendar instance = Calendar.getInstance(); Calendar instance = Calendar.getInstance();
@ -910,6 +929,25 @@ public class RmsServiceImpl implements IRmsService {
return workbook; return workbook;
} }
@Override
public String viewReportPDF(RmsDto.ReportPDF dto) {
if(StrUtil.isBlank(dto.getPatientNo())){
throw new ServiceException("患者就诊号不能为空");
}
//根据就诊流水号查询患者的
RmsReport report;
RmsReportExample example = new RmsReportExample();
example.createCriteria().andVisitNoEqualTo(dto.getPatientNo()).andDelFlagEqualTo((byte) 0);
List<RmsReport> reports = rmsReportMapper.selectByExample(example);
if (CollectionUtil.isNotEmpty(reports)) {
report = reports.get(0);
if(ObjectUtil.isNotNull(report)){
return report.getUrl();
}
}
return null;
}
private void dealMMSEScored(List<RmsVo.Analyse> analyses) { private void dealMMSEScored(List<RmsVo.Analyse> analyses) {
analyses.forEach(analyse -> { analyses.forEach(analyse -> {
List<RmsVo.MMSEScore> mmseScores = analyse.getMmseScores(); List<RmsVo.MMSEScore> mmseScores = analyse.getMmseScores();

9
ruisi_java/ruisi-web-admin/src/main/resources/application-prod.yml

@ -6,9 +6,9 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://192.168.0.128:3306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://200.1.8.141:23306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: Sxinf18aA password: xian#2024!!!
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
@ -62,13 +62,13 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: localhost host: 172.17.0.1
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 1 database: 1
# 密码 # 密码
password: 123456 password: "redis111^#"
# 连接超时时间 # 连接超时时间
timeout: 10s timeout: 10s
lettuce: lettuce:
@ -114,3 +114,4 @@ informed:
template: /data/cgav2/server/profile/知情同意模板.docx template: /data/cgav2/server/profile/知情同意模板.docx
wordUrl: /data/cgav2/server/profile/informed/ wordUrl: /data/cgav2/server/profile/informed/
prefixWord: /data/cgav2/server/profile/ prefixWord: /data/cgav2/server/profile/

2
ruisi_java/ruisi-web-admin/src/main/resources/logback.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<!-- 日志存放路径 --> <!-- 日志存放路径 -->
<property name="log.path" value="/data/cgav2/logs" /> <property name="log.path" value="/data/cgav2/logs/admin" />
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

57
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java

@ -9,6 +9,7 @@ import cn.hutool.core.util.StrUtil;
import com.ccsens.client.service.IHmsService; import com.ccsens.client.service.IHmsService;
import com.ccsens.client.service.ILtHisConnectionService; import com.ccsens.client.service.ILtHisConnectionService;
import com.ccsens.client.service.IPmsPatientService; import com.ccsens.client.service.IPmsPatientService;
import com.ccsens.common.annotation.Anonymous;
import com.ccsens.common.constant.ErrorConstant; import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.core.controller.BaseController; import com.ccsens.common.core.controller.BaseController;
import com.ccsens.common.core.domain.BaseDto; import com.ccsens.common.core.domain.BaseDto;
@ -26,6 +27,7 @@ import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -33,8 +35,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.*;
import java.util.Map; import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/** /**
@ -49,11 +54,24 @@ public class PmsController extends BaseController {
private IPmsPatientService patientService; private IPmsPatientService patientService;
@Resource @Resource
private IHmsService hmsService; private IHmsService hmsService;
@Resource
private ILtHisConnectionService ltHisConnectionService;
private final String hospitalConfKey = "patient_encryption"; private final String hospitalConfKey = "patient_encryption";
@ApiOperation("获取患者信息列表") @ApiOperation("获取患者信息列表")
@PostMapping("/queryList") @PostMapping("/queryList")
public JsonResponse<PageInfo<PmsPatientVo.PatientList>> queryPatientList(@RequestBody @Validated BaseDto<PmsPatientDto.QueryPatient> dto) { public JsonResponse<PageInfo<PmsPatientVo.PatientList>> queryPatientList(@RequestBody @Validated BaseDto<PmsPatientDto.QueryPatient> dto) {
List<PmsPatientVo.PatientList> list = new ArrayList<>();
//
// PmsPatientDto.QueryPatient param = dto.getParam();
// if (StrUtil.isNotEmpty(param.getSearchValue()) && param.getSearchValue().length() == 10) {
// //关键字不为空,且长度等于10,先查询院内his信息
// List<PmsPatientVo.PatientList> hisList = ltHisConnectionService.queryHisPatient(param.getSearchValue());
// if (CollUtil.isNotEmpty(hisList)) {
// list.addAll(hisList);
// }
// }
//获取用户的权限 //获取用户的权限
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
//当前默认一个用户只有一个角色 //当前默认一个用户只有一个角色
@ -67,8 +85,19 @@ public class PmsController extends BaseController {
} }
startPageOvertop(dto); startPageOvertop(dto);
List<PmsPatientVo.PatientList> list = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername()); List<PmsPatientVo.PatientList> serverList = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername());
return JsonResponse.ok(new PageInfo<>(list)); if (CollUtil.isNotEmpty(serverList)) {
list.addAll(serverList);
}
// 创建一个 TreeSet,通过 Comparator 根据 patientId 去重
Set<PmsPatientVo.PatientList> uniqueSet = new TreeSet<>(
Comparator.comparing(PmsPatientVo.PatientList::getPatientId)
);
uniqueSet.addAll(list);
List<PmsPatientVo.PatientList> uniqueList = new ArrayList<>(uniqueSet);
return JsonResponse.ok(new PageInfo<>(uniqueList));
} }
@ApiOperation("通过身份证号查询患者信息,方便页面展示返回和列表一样的格式") @ApiOperation("通过身份证号查询患者信息,方便页面展示返回和列表一样的格式")
@ -300,17 +329,11 @@ public class PmsController extends BaseController {
} }
@Resource // @Anonymous
private ILtHisConnectionService ltHisConnectionService; // @PostMapping("/testHis")
@ApiOperation("流调版数据查询") // public JsonResponse testHis(@RequestBody @Validated String cardNo) {
@PostMapping("/testHis") // //关键字不为空,且长度等于10,先查询院内his信息
public JsonResponse testHis(@RequestBody @Validated String cardNo) { // List<PmsPatientVo.PatientList> hisList = ltHisConnectionService.queryHisPatient(cardNo);
PmsPatientVo.PatientList patientByCardNo = ltHisConnectionService.getPatientByCardNo(cardNo); // return JsonResponse.ok(hisList);
Map<String, List> patientOtherMsgByCardNo = ltHisConnectionService.getPatientOtherMsgByCardNo(cardNo); // }
PmsPatientVo.PatientInfo patientInfo = new PmsPatientVo.PatientInfo();
BeanUtil.copyProperties(patientByCardNo, patientInfo);
patientInfo.setOtherMsg(patientOtherMsgByCardNo);
return JsonResponse.ok(patientInfo);
}
} }

3
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java

@ -16,4 +16,7 @@ public interface HisConnectionDao {
@DataSource(DataSourceType.SLAVE) @DataSource(DataSourceType.SLAVE)
List<Object> getBlxx(String cardNo); List<Object> getBlxx(String cardNo);
@DataSource(DataSourceType.SLAVE)
List<Object> getBlxxAll();
} }

5
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/ILtHisConnectionService.java

@ -1,6 +1,7 @@
package com.ccsens.client.service; package com.ccsens.client.service;
import com.ccsens.system.domain.vo.PmsPatientVo; import com.ccsens.system.domain.vo.PmsPatientVo;
import org.apache.poi.ss.formula.functions.T;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -13,5 +14,7 @@ public interface ILtHisConnectionService {
PmsPatientVo.PatientList getPatientByCardNo(String cardNo); PmsPatientVo.PatientList getPatientByCardNo(String cardNo);
Map<String, List> getPatientOtherMsgByCardNo(String cardNo); Map<String, List<Map<String, Object>>> getPatientOtherMsgByCardNo(String cardNo);
List<PmsPatientVo.PatientList> queryHisPatient(String cardNo);
} }

17
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java

@ -14,8 +14,10 @@ import com.ccsens.client.service.AmsReportService;
import com.ccsens.client.service.IReportInfoService; import com.ccsens.client.service.IReportInfoService;
import com.ccsens.client.service.IRmsService; import com.ccsens.client.service.IRmsService;
import com.ccsens.common.constant.CultureEnum; import com.ccsens.common.constant.CultureEnum;
import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.constant.JobEnum; import com.ccsens.common.constant.JobEnum;
import com.ccsens.common.enums.BaseEnum; import com.ccsens.common.enums.BaseEnum;
import com.ccsens.common.exception.base.BaseException;
import com.ccsens.common.utils.AsposeUtils; import com.ccsens.common.utils.AsposeUtils;
import com.ccsens.common.utils.SecurityUtils; import com.ccsens.common.utils.SecurityUtils;
import com.ccsens.common.utils.StringUtils; import com.ccsens.common.utils.StringUtils;
@ -61,6 +63,8 @@ public class AmsReportServiceImpl implements AmsReportService {
@Resource @Resource
private IRmsService rmsService; private IRmsService rmsService;
@Resource @Resource
private RmsReportMapper rmsReportMapper;
@Resource
private QmsScaleMapper qmsScaleMapper; private QmsScaleMapper qmsScaleMapper;
@Resource @Resource
private QmsScaleTypeMapper qmsScaleTypeMapper; private QmsScaleTypeMapper qmsScaleTypeMapper;
@ -963,6 +967,14 @@ public class AmsReportServiceImpl implements AmsReportService {
@Override @Override
public AmsReportVo.Result exportYs(RmsDto.ExportReport1Dto dto) { public AmsReportVo.Result exportYs(RmsDto.ExportReport1Dto dto) {
RmsReport report = rmsReportMapper.selectByPrimaryKey(dto.getReportId());
if (ObjectUtil.isNotNull(report) && StrUtil.isNotBlank(report.getUrl())) {
AmsReportVo.Result result = new AmsReportVo.Result();
result.setPath(report.getUrl());
return result;
}
RmsDto.QueryDetail queryDetail = new RmsDto.QueryDetail(); RmsDto.QueryDetail queryDetail = new RmsDto.QueryDetail();
queryDetail.setEvaluationId(dto.getEvaluationId()); queryDetail.setEvaluationId(dto.getEvaluationId());
RmsVo.ReportDetail detail = rmsService.queryReportDetail(queryDetail); RmsVo.ReportDetail detail = rmsService.queryReportDetail(queryDetail);
@ -1184,6 +1196,11 @@ public class AmsReportServiceImpl implements AmsReportService {
AmsReportVo.Result result = new AmsReportVo.Result(); AmsReportVo.Result result = new AmsReportVo.Result();
result.setWord(filePath); result.setWord(filePath);
result.setPath(pdfPath); result.setPath(pdfPath);
//将生成的文件路径保存到报告单内
if(ObjectUtil.isNotNull(report)){
report.setUrl(pdfPath);
rmsReportMapper.updateByPrimaryKeySelective(report);
}
return result; return result;
} }

13
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IEmsServiceImpl.java

@ -76,6 +76,8 @@ public class IEmsServiceImpl implements IEmsService {
@Resource @Resource
private PmsPatientMapper pmsPatientMapper; private PmsPatientMapper pmsPatientMapper;
@Resource @Resource
private PmsPatientBodyMapper patientBodyMapper;
@Resource
private AmsPatientAnswerScoreMapper amsPatientAnswerScoreMapper; private AmsPatientAnswerScoreMapper amsPatientAnswerScoreMapper;
@Resource @Resource
private EmsEvaluationQuestionVersionMapper emsEvaluationQuestionVersionMapper; private EmsEvaluationQuestionVersionMapper emsEvaluationQuestionVersionMapper;
@ -244,6 +246,14 @@ public class IEmsServiceImpl implements IEmsService {
if (ObjectUtil.isNull(patient)) { if (ObjectUtil.isNull(patient)) {
throw new BaseException(ErrorConstant.PATIENT_ERROR); throw new BaseException(ErrorConstant.PATIENT_ERROR);
} }
//查找患者就诊信息(pms_patient_body)
PmsPatientBody patientBody = null;
PmsPatientBodyExample patientBodyExample = new PmsPatientBodyExample();
patientBodyExample.createCriteria().andPatientIdEqualTo(dto.getPatientId());
List<PmsPatientBody> pmsPatientBodies = patientBodyMapper.selectByExample(patientBodyExample);
if (CollectionUtil.isNotEmpty(pmsPatientBodies)) {
patientBody = pmsPatientBodies.get(0);
}
//查找病人信息 //查找病人信息
// emsEvaluation.setPatientAge(IdcardUtil.getAgeByIdCard(patient.getIdcard())); // emsEvaluation.setPatientAge(IdcardUtil.getAgeByIdCard(patient.getIdcard()));
emsEvaluation.setPatientAge(getAge(patient)); emsEvaluation.setPatientAge(getAge(patient));
@ -251,6 +261,9 @@ public class IEmsServiceImpl implements IEmsService {
emsEvaluation.setVersion(dto.getVersion()); emsEvaluation.setVersion(dto.getVersion());
emsEvaluation.setPatientId(dto.getPatientId()); emsEvaluation.setPatientId(dto.getPatientId());
emsEvaluation.setUpdateBy(loginUser.getUsername()); emsEvaluation.setUpdateBy(loginUser.getUsername());
if(ObjectUtil.isNotNull(patientBody)){
emsEvaluation.setVisitNo(patientBody.getOutpatientNo());
}
return evaluationMapper.updateByPrimaryKeySelective(emsEvaluation); return evaluationMapper.updateByPrimaryKeySelective(emsEvaluation);
} }

138
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java

@ -2,6 +2,7 @@ package com.ccsens.client.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
@ -10,10 +11,17 @@ import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ccsens.client.persist.dao.HisConnectionDao; import com.ccsens.client.persist.dao.HisConnectionDao;
import com.ccsens.client.persist.dao.PmsPatientDao;
import com.ccsens.client.service.ILtHisConnectionService; import com.ccsens.client.service.ILtHisConnectionService;
import com.ccsens.client.service.IPmsPatientService;
import com.ccsens.common.core.domain.model.LoginUser;
import com.ccsens.common.utils.IDGenerator;
import com.ccsens.system.domain.dto.PmsPatientDto;
import com.ccsens.system.domain.po.PmsPatient; import com.ccsens.system.domain.po.PmsPatient;
import com.ccsens.system.domain.po.PmsPatientExample;
import com.ccsens.system.domain.vo.PmsPatientVo; import com.ccsens.system.domain.vo.PmsPatientVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -24,6 +32,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.ccsens.common.utils.SecurityUtils.getLoginUser;
/** /**
* @author zy * @author zy
@ -31,11 +41,15 @@ import java.util.Map;
*/ */
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class LtHisConnectionServiceImpl implements ILtHisConnectionService { public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
@Resource @Resource
private HisConnectionDao hisConnectionDao; private HisConnectionDao hisConnectionDao;
@Resource
private IPmsPatientService patientService;
@Resource
private PmsPatientDao patientDao;
/** /**
* 前端调用查询列表接口如果有数据则直接返回 * 前端调用查询列表接口如果有数据则直接返回
* 如果没查到数据使用searchValue患者院内唯一标识cardNo去his查询 * 如果没查到数据使用searchValue患者院内唯一标识cardNo去his查询
@ -62,6 +76,72 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
private static final String URL_SUFFIX_RE_2_1_5 = "/patient-service/api/v1/patient/getFinOprRegList?inPatientNo="; private static final String URL_SUFFIX_RE_2_1_5 = "/patient-service/api/v1/patient/getFinOprRegList?inPatientNo=";
@Override
public List<PmsPatientVo.PatientList> queryHisPatient(String cardNo) {
LoginUser loginUser = null;
try {
loginUser = getLoginUser();
}catch (Exception e){
}
try {
PmsPatientVo.PatientList patientByCardNo = getPatientByCardNo(cardNo);
if (ObjectUtil.isNotNull(patientByCardNo)) {
//检查当前患者信息是否在系统内已存在
PmsPatient pmsPatient;
PmsPatientExample example = new PmsPatientExample();
example.createCriteria().andIdcardEqualTo(patientByCardNo.getIdCardEncrypt()).andDelFlagEqualTo((byte) 0);
List<PmsPatient> pmsPatients = patientDao.selectByExample(example);
if (CollUtil.isEmpty(pmsPatients)) {
pmsPatient = new PmsPatient();
}else {
pmsPatient = pmsPatients.get(0);
}
//查找到患者信息,先添加基本信息
BeanUtil.copyProperties(patientByCardNo, pmsPatient);
pmsPatient.setName(patientByCardNo.getPatientName());
pmsPatient.setIdcard(patientByCardNo.getIdCardEncrypt());
pmsPatient.setHospitalId(ObjectUtil.isNull(loginUser) ? 176 : loginUser.getHospitalId());
pmsPatient.setNameFull(PinyinUtil.getPinyin(pmsPatient.getName(), ""));
pmsPatient.setNameInitial(PinyinUtil.getFirstLetter(pmsPatient.getName(), ""));
pmsPatient.setPatientNumber(cardNo);
PmsPatientVo.PatientInfo pmsPatientVo = patientService.editPatient(pmsPatient);
//保存id
patientByCardNo.setPatientId(pmsPatientVo.getId());
//根据cardNo查询其他信息
try {
Map<String, List<Map<String, Object>>> patientOtherMsgByCardNo = getPatientOtherMsgByCardNo(cardNo);
if(CollUtil.isNotEmpty(patientOtherMsgByCardNo)){
//不为空则添加其他信息
patientOtherMsgByCardNo.forEach((key, valueList) -> {
if(CollUtil.isNotEmpty(valueList)){
valueList.forEach(value -> {
com.alibaba.fastjson2.JSONObject valueJson = com.alibaba.fastjson2.JSONObject.parseObject(JSONUtil.toJsonStr(value));
valueJson.put("patientId", patientByCardNo.getPatientId());
PmsPatientDto.EditOtherMsg param = new PmsPatientDto.EditOtherMsg();
param.setEditType(key);
param.setModel(valueJson);
patientService.editPatientOtherMsg(param);
});
}
});
}
}catch (Exception e){
log.error("获取患者其他信息失败", e);
}
List<PmsPatientVo.PatientList> list = new ArrayList<>();
list.add(patientByCardNo);
return list;
}else {
return null;
}
}catch (Exception e){
log.error("查询患者失败", e);
return null;
}
}
@Override @Override
public PmsPatientVo.PatientList getPatientByCardNo(String cardNo) { public PmsPatientVo.PatientList getPatientByCardNo(String cardNo) {
PmsPatientVo.PatientList patientVo; PmsPatientVo.PatientList patientVo;
@ -78,15 +158,16 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
try { try {
JSONObject json = JSONUtil.parseObj(body); JSONObject json = JSONUtil.parseObj(body);
// String localJsonStr = FileUtil.readUtf8String("C:\\Users\\dou\\Desktop\\柳铁部署\\lthis.json");
// JSONObject json = JSONUtil.parseObj(localJsonStr);
log.info("【RP1.1.4S054】查询患者档案信息接口-返回数据: {}", json); log.info("【RP1.1.4S054】查询患者档案信息接口-返回数据: {}", json);
// 获取data数组 // 获取data数组
JSONArray dataArray = json.getJSONArray("data"); JSONObject data = json.getJSONObject("data");
if (CollUtil.isEmpty(dataArray)) { if (CollUtil.isEmpty(data)) {
log.warn("查询患者档案信息接口返回data为空或空数组"); log.warn("查询患者档案信息接口返回data为空");
return null; return null;
} }
// 取第一个患者信息 // 取第一个患者信息
JSONObject data = dataArray.getJSONObject(0);
patientVo = new PmsPatientVo.PatientList(); patientVo = new PmsPatientVo.PatientList();
patientVo.setPatientName(data.getStr("patientName")); patientVo.setPatientName(data.getStr("patientName"));
String genderCode = data.getStr("genderCode"); String genderCode = data.getStr("genderCode");
@ -106,29 +187,21 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
patientVo.setContactMobile(data.getStr("linkmanTel")); patientVo.setContactMobile(data.getStr("linkmanTel"));
patientVo.setIdCardType(data.getStr("idCardType")); patientVo.setIdCardType(data.getStr("idCardType"));
patientVo.setIdCard(data.getStr("idCardNumber")); patientVo.setIdCard(data.getStr("idCardNumber"));
patientVo.setIdCardEncrypt(data.getStr("idCardNumber"));
patientVo.setAboBloodType(data.getStr("bloodCode")); patientVo.setAboBloodType(data.getStr("bloodCode"));
//TODO 职业和婚姻状况待定 //TODO 职业和婚姻状况待定
// patient.setMaritalStatus(data.getStr("mari")); patientVo.setMaritalStatus(Byte.valueOf(data.getStr("mari")));
// patient.setCareer(data.getStr("profCode")); patientVo.setCareer(Byte.valueOf(data.getStr("profCode")));
log.info("处理后的patient信息: {}", patientVo); log.info("处理后的patient信息: {}", patientVo);
} catch (Exception e) { } catch (Exception e) {
log.error("查询患者档案信息异常", e); log.error("查询患者档案信息异常", e);
return null; return null;
} }
//根据查找到的信息,添加pms_patient数据
PmsPatient patientInfo = new PmsPatient();
BeanUtil.copyProperties(patientVo, patientInfo);
patientInfo.setName(patientVo.getPatientName());
patientInfo.setNameFull(PinyinUtil.getPinyin(patientInfo.getName(), ""));
patientInfo.setNameInitial(PinyinUtil.getFirstLetter(patientInfo.getName(), ""));
patientInfo.setIdcard(patientVo.getIdCard());
patientInfo.setPatientNumber(cardNo);
return patientVo; return patientVo;
} }
@Override @Override
public Map<String, List> getPatientOtherMsgByCardNo(String cardNo) { public Map<String, List<Map<String, Object>>> getPatientOtherMsgByCardNo(String cardNo) {
//1.查询所有需要的信息 //1.查询所有需要的信息
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("cardNo", cardNo); params.put("cardNo", cardNo);
@ -142,12 +215,24 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
JSONObject zyData = getApiData(zyResponse, "【RP2.1.7S063】查询住院患者入院记录"); JSONObject zyData = getApiData(zyResponse, "【RP2.1.7S063】查询住院患者入院记录");
//查视图过敏信息 //查视图过敏信息
List<Object> gmxx = hisConnectionDao.getGmxx(cardNo); List<Object> gmxx = new ArrayList<>();
try {
gmxx = hisConnectionDao.getGmxx(cardNo);
log.info("查询视图gmxx成功:{}", gmxx);
}catch (Exception e){
log.error("查询视图gmxx异常", e);
}
//查视图病历信息 //查视图病历信息
List<Object> blxx = hisConnectionDao.getBlxx(cardNo); List<Object> blxx = new ArrayList<>();
try {
blxx = hisConnectionDao.getBlxx(cardNo);
log.info("查询视图blxx成功:{}", blxx);
}catch (Exception e){
log.error("查询视图blxx异常", e);
}
//构建返回信息 //构建返回信息
Map<String, List> result = new HashMap<>(); Map<String, List<Map<String, Object>>> result = new HashMap<>();
// 病史信息 - PmsPatientPersonal // 病史信息 - PmsPatientPersonal
List<Map<String, Object>> personalList = new ArrayList<>(); List<Map<String, Object>> personalList = new ArrayList<>();
Map<String, Object> personal = new HashMap<>(); Map<String, Object> personal = new HashMap<>();
@ -174,7 +259,9 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
} }
} }
personalList.add(personal); personalList.add(personal);
if(CollUtil.isNotEmpty(personalList)){
result.put("pmsPatientPersonal", personalList); result.put("pmsPatientPersonal", personalList);
}
//TODO "诊断用药(多个)对应数据库现病史 PmsPatientParentIllness" 暂无 //TODO "诊断用药(多个)对应数据库现病史 PmsPatientParentIllness" 暂无
@ -226,7 +313,9 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
} }
} }
bodyList.add(bodyInfo); bodyList.add(bodyInfo);
if(CollUtil.isNotEmpty(bodyList)){
result.put("pmsPatientBody", bodyList); result.put("pmsPatientBody", bodyList);
}
//TODO 暂无 tz T值 //TODO 暂无 tz T值
// oxygenSaturation 血氧饱和度 // oxygenSaturation 血氧饱和度
@ -239,18 +328,21 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
return result; return result;
} }
private JSONObject getApiData(HttpResponse response, String errorString) { private JSONObject getApiData(HttpResponse response, String errorString) {
JSONObject mzData = null; JSONObject mzData = null;
if (response.isOk()) { if (response.isOk()) {
String mzBody = response.body(); String mzBody = response.body();
try { try {
JSONObject json = JSONUtil.parseObj(mzBody); JSONObject json = JSONUtil.parseObj(mzBody);
JSONArray dataArray = json.getJSONArray("data"); JSONObject dataArray = json.getJSONObject("data");
// JSONArray dataArray = json.getJSONArray("data");
if (CollUtil.isEmpty(dataArray)) { if (CollUtil.isEmpty(dataArray)) {
log.warn(errorString + "接口返回data为空或空数组"); log.warn(errorString + "接口返回data为空或空数组");
return null; return null;
} }
mzData = dataArray.getJSONObject(0); mzData = dataArray;
}catch (Exception e){ }catch (Exception e){
log.error(errorString + "接口-请求失败: {}", response.getStatus()); log.error(errorString + "接口-请求失败: {}", response.getStatus());
} }
@ -261,6 +353,7 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
} }
private HttpResponse getHttpResponse(String url) { private HttpResponse getHttpResponse(String url) {
log.info("调用接口:{}", url);
return HttpRequest.get(url) return HttpRequest.get(url)
.header("Content-Type", "application/json;charset=utf-8") .header("Content-Type", "application/json;charset=utf-8")
.header("Domain", "LNPG") .header("Domain", "LNPG")
@ -270,6 +363,7 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
} }
private HttpResponse postHttpResponse(String url, Map<String, Object> params) { private HttpResponse postHttpResponse(String url, Map<String, Object> params) {
log.info("调用接口:{}--参数:{}", url, params);
return HttpRequest.post(url) return HttpRequest.post(url)
.header("Content-Type", "application/json;charset=utf-8") .header("Content-Type", "application/json;charset=utf-8")
.header("Domain", "LNPG") .header("Domain", "LNPG")

3
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java

@ -292,7 +292,8 @@ public class PmsPatientServiceImpl implements IPmsPatientService {
} }
log.info("{}:{}", methodName, json); log.info("{}:{}", methodName, json);
//请求参数 //请求参数
Class<?> modelClass = Class.forName("com.ccsens.system.domain.po." + type); String className = type.substring(0, 1).toUpperCase() + type.substring(1);
Class<?> modelClass = Class.forName("com.ccsens.system.domain.po." + className);
Object model = json.toJavaObject(modelClass); Object model = json.toJavaObject(modelClass);
//方法 //方法
Method method = bean.getClass().getMethod(methodName, modelClass); Method method = bean.getClass().getMethod(methodName, modelClass);

3
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java

@ -144,6 +144,7 @@ public class RmsServiceImpl implements IRmsService {
emsEvaluation.setCompleteStatus(dto.getComplateStatus()); emsEvaluation.setCompleteStatus(dto.getComplateStatus());
} }
emsEvaluationMapper.updateByPrimaryKeySelective(emsEvaluation); emsEvaluationMapper.updateByPrimaryKeySelective(emsEvaluation);
report.setVisitNo(emsEvaluation.getVisitNo());
} }
rmsReportMapper.insertSelective(report); rmsReportMapper.insertSelective(report);
@ -217,7 +218,9 @@ public class RmsServiceImpl implements IRmsService {
List<RmsReportScaleScore> rmsReportScaleScores = rmsReportScaleScoreMapper.selectByExample(scoreExample); List<RmsReportScaleScore> rmsReportScaleScores = rmsReportScaleScoreMapper.selectByExample(scoreExample);
if (CollUtil.isNotEmpty(rmsReportScaleScores)) { if (CollUtil.isNotEmpty(rmsReportScaleScores)) {
score.setImpression(rmsReportScaleScores.get(0).getImpression()); score.setImpression(rmsReportScaleScores.get(0).getImpression());
if ("TZBS_LN".equals(score.getCode()) || "TZBS_BZ".equals(score.getCode())) {
score.setScore(rmsReportScaleScores.get(0).getScore()); score.setScore(rmsReportScaleScores.get(0).getScore());
}
reportScaleScoreMap.put(score.getCode(), rmsReportScaleScores.get(0)); reportScaleScoreMap.put(score.getCode(), rmsReportScaleScores.get(0));
} }

3
ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml

@ -16,9 +16,6 @@ spring:
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
enabled: false enabled: false
url:
username:
password:
# 初始连接数 # 初始连接数
initialSize: 5 initialSize: 5
# 最小连接池数量 # 最小连接池数量

13
ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml

@ -6,9 +6,9 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://192.168.0.128:3306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://200.1.8.141:23306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: Sxinf18aA password: xian#2024!!!
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
@ -63,13 +63,13 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: localhost host: 172.17.0.1
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 1 database: 1
# 密码 # 密码
password: 123456 password: "redis111^#"
# 连接超时时间 # 连接超时时间
timeout: 10s timeout: 10s
lettuce: lettuce:
@ -94,10 +94,7 @@ app:
workerId: 1 workerId: 1
# 分布式ID-DataCenterID # 分布式ID-DataCenterID
dataCenterId: 1 dataCenterId: 1
ht:
project:
patientUrl: http://172.16.40.155/htage2023/client/#
name: 认知功能评测云平台系统
file: file:
path: /data/cgav2/server/profile/ path: /data/cgav2/server/profile/
# webPath: http://172.16.40.155:59001/ruisi/client/# # webPath: http://172.16.40.155:59001/ruisi/client/#

2
ruisi_java/ruisi-web-client/src/main/resources/logback.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<!-- 日志存放路径 --> <!-- 日志存放路径 -->
<property name="log.path" value="/data/cgav2/logs" /> <property name="log.path" value="/data/cgav2/logs/client" />
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

3
ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml

@ -7,4 +7,7 @@
<select id="getBlxx" resultType="java.lang.Object"> <select id="getBlxx" resultType="java.lang.Object">
select * from view_lnpg_blxx where "患者卡号" = #{cardNo}; select * from view_lnpg_blxx where "患者卡号" = #{cardNo};
</select> </select>
<select id="getBlxxAll" resultType="java.lang.Object">
select * from view_lnpg_blxx;
</select>
</mapper> </mapper>

4
web_admin/adminapi/index.html

File diff suppressed because one or more lines are too long

1
web_admin/adminapi/static/css/chunk-22c4205e.28a30b08.css

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save