Browse Source

合并

test
lzp 2 months ago
parent
commit
56a6006078
  1. 12
      ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml
  2. 2
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/HmsVersionDto.java
  3. 4
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java
  4. 11
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/HmsVersion.java
  5. 70
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/HmsVersionExample.java
  6. 1
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/HmsVersionVo.java
  7. 2
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/ReportVo.java
  8. 1
      ruisi_java/ruisi-system/src/main/resources/mapper/dao/SysVersionDao.xml
  9. 30
      ruisi_java/ruisi-system/src/main/resources/mapper/system/HmsVersionMapper.xml
  10. 18
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java
  11. 19
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java
  12. 2
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IHmsVersionServiceImpl.java
  13. 214
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java
  14. 60
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java
  15. 9
      ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml
  16. 10
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml
  17. 317
      sql/新增中医体质辨识表20260127.sql
  18. 8
      sql/添加bmi和问题code字段20260127.sql

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

@ -19,10 +19,10 @@
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/ruisi_cga_yf1?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8&amp;tinyInt1isBit=false"
userId="root"
password="q7510327">
password="123456">
<!--仅仅查询当前库的表,不查询其他库-->
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
@ -106,8 +106,8 @@
<!-- <table tableName="tzbs_qms_scale_cognitive" domainObjectName="TzbsQmsScaleCognitive"/>-->
<!-- <table tableName="tzbs_qms_scale_consti_ref_score" domainObjectName="TzbsQmsScaleConstiRefScore"/>-->
<!-- <table tableName="tzbs_qms_scale_consti_ysfa" domainObjectName="TzbsQmsScaleConstiYsfa"/>-->
<table tableName="tzbs_rms_report_result" domainObjectName="TzbsRmsReportResult"/>
<table tableName="tzbs_rms_report_ysjy" domainObjectName="TzbsRmsReportYsjy"/>
<!-- <table tableName="tzbs_rms_report_result" domainObjectName="TzbsRmsReportResult"/>-->
<!-- <table tableName="tzbs_rms_report_ysjy" domainObjectName="TzbsRmsReportYsjy"/>-->
<!-- <table tableName="ams_patient_answer_score" domainObjectName="AmsPatientAnswerScore"/>-->
<!-- <table tableName="ams_patient_canvas" domainObjectName="AmsPatientCanvas"/>-->
<!-- <table tableName="ams_patient_canvas_line" domainObjectName="AmsPatientCanvasLine"/>-->
@ -122,7 +122,7 @@
<!-- <table tableName="kms_knowledge_type" domainObjectName="KmsKnowledgeType"/>-->
<!-- <table tableName="qms_scale_ass_conf" domainObjectName="QmsScaleAssConf"/>-->
<!-- <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="kms_knowledge_detail" domainObjectName="KmsKnowledgeDetail"/>-->
@ -132,7 +132,7 @@
<!-- <table tableName="ams_report_template" domainObjectName="AmsReportTemplate"/>-->
<!-- <table tableName="tb_options" domainObjectName="TbOptions"/>-->
<!-- <table tableName="tb_question_conf" domainObjectName="TbQuestionConf"/>-->
<table tableName="tb_scale_ass_conf" domainObjectName="TbScaleAssConf"/>
<!-- <table tableName="tb_scale_ass_conf" domainObjectName="TbScaleAssConf"/>-->
<!-- <table tableName="tb_scale_conf" domainObjectName="TbScaleConf"/>-->
<!-- <table tableName="tb_icd" domainObjectName="TbIcd"/>-->
<!-- <table tableName="tb_drug" domainObjectName="TbDrug"/>-->

2
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/HmsVersionDto.java

@ -27,6 +27,8 @@ public class HmsVersionDto {
private String code;
private Integer sort;
@ApiModelProperty("状态")
private String status;
}
@Data

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

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

@ -22,6 +22,8 @@ public class HmsVersion implements Serializable {
private Byte delFlag;
private String status;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -96,6 +98,14 @@ public class HmsVersion implements Serializable {
this.delFlag = delFlag;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status == null ? null : status.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -111,6 +121,7 @@ public class HmsVersion implements Serializable {
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", delFlag=").append(delFlag);
sb.append(", status=").append(status);
sb.append("]");
return sb.toString();
}

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

@ -684,6 +684,76 @@ public class HmsVersionExample {
addCriterion("del_flag not between", value1, value2, "delFlag");
return (Criteria) this;
}
public Criteria andStatusIsNull() {
addCriterion("status is null");
return (Criteria) this;
}
public Criteria andStatusIsNotNull() {
addCriterion("status is not null");
return (Criteria) this;
}
public Criteria andStatusEqualTo(String value) {
addCriterion("status =", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotEqualTo(String value) {
addCriterion("status <>", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThan(String value) {
addCriterion("status >", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThanOrEqualTo(String value) {
addCriterion("status >=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThan(String value) {
addCriterion("status <", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThanOrEqualTo(String value) {
addCriterion("status <=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLike(String value) {
addCriterion("status like", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotLike(String value) {
addCriterion("status not like", value, "status");
return (Criteria) this;
}
public Criteria andStatusIn(List<String> values) {
addCriterion("status in", values, "status");
return (Criteria) this;
}
public Criteria andStatusNotIn(List<String> values) {
addCriterion("status not in", values, "status");
return (Criteria) this;
}
public Criteria andStatusBetween(String value1, String value2) {
addCriterion("status between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andStatusNotBetween(String value1, String value2) {
addCriterion("status not between", value1, value2, "status");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

1
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/HmsVersionVo.java

@ -20,6 +20,7 @@ public class HmsVersionVo {
private String version;
private String code;
private String status;
private Integer sort;
private String createBy;

2
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/ReportVo.java

@ -37,7 +37,7 @@ public class ReportVo {
}
public BigDecimal getZhScore() {
return zhScore == null ? BigDecimal.ZERO : zhScore.setScale(2, BigDecimal.ROUND_HALF_UP);
return zhScore == null || zhScore.compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : zhScore.setScale(2, BigDecimal.ROUND_HALF_UP);
}
}
}

1
ruisi_java/ruisi-system/src/main/resources/mapper/dao/SysVersionDao.xml

@ -27,6 +27,7 @@
version,
code,
sort,
status,
create_by as createBy,
create_time as createTime
from hms_version

30
ruisi_java/ruisi-system/src/main/resources/mapper/system/HmsVersionMapper.xml

@ -11,6 +11,7 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="del_flag" jdbcType="TINYINT" property="delFlag" />
<result column="status" jdbcType="VARCHAR" property="status" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -71,7 +72,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, version, code, sort, create_by, create_time, update_by, update_time, del_flag
id, version, code, sort, create_by, create_time, update_by, update_time, del_flag,
status
</sql>
<select id="selectByExample" parameterType="com.ccsens.system.domain.po.HmsVersionExample" resultMap="BaseResultMap">
select
@ -106,12 +108,12 @@
<insert id="insert" parameterType="com.ccsens.system.domain.po.HmsVersion">
insert into hms_version (id, version, code,
sort, create_by, create_time,
update_by, update_time, del_flag
)
update_by, update_time, del_flag,
status)
values (#{id,jdbcType=BIGINT}, #{version,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR},
#{sort,jdbcType=INTEGER}, #{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=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.system.domain.po.HmsVersion">
insert into hms_version
@ -143,6 +145,9 @@
<if test="delFlag != null">
del_flag,
</if>
<if test="status != null">
status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -172,6 +177,9 @@
<if test="delFlag != null">
#{delFlag,jdbcType=TINYINT},
</if>
<if test="status != null">
#{status,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.system.domain.po.HmsVersionExample" resultType="java.lang.Long">
@ -210,6 +218,9 @@
<if test="record.delFlag != null">
del_flag = #{record.delFlag,jdbcType=TINYINT},
</if>
<if test="record.status != null">
status = #{record.status,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -225,7 +236,8 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
del_flag = #{record.delFlag,jdbcType=TINYINT}
del_flag = #{record.delFlag,jdbcType=TINYINT},
status = #{record.status,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -257,6 +269,9 @@
<if test="delFlag != null">
del_flag = #{delFlag,jdbcType=TINYINT},
</if>
<if test="status != null">
status = #{status,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -269,7 +284,8 @@
create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP},
del_flag = #{delFlag,jdbcType=TINYINT}
del_flag = #{delFlag,jdbcType=TINYINT},
status = #{status,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

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

@ -1,11 +1,13 @@
package com.ccsens.client.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PhoneUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.client.service.IHmsService;
import com.ccsens.client.service.ILtHisConnectionService;
import com.ccsens.client.service.IPmsPatientService;
import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.core.controller.BaseController;
@ -32,6 +34,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
@ -295,4 +298,19 @@ public class PmsController extends BaseController {
patientService.addData(dto);
return JsonResponse.ok();
}
@Resource
private ILtHisConnectionService ltHisConnectionService;
@ApiOperation("流调版数据查询")
@PostMapping("/testHis")
public JsonResponse testHis(@RequestBody @Validated String cardNo) {
PmsPatientVo.PatientList patientByCardNo = ltHisConnectionService.getPatientByCardNo(cardNo);
Map<String, List> patientOtherMsgByCardNo = ltHisConnectionService.getPatientOtherMsgByCardNo(cardNo);
PmsPatientVo.PatientInfo patientInfo = new PmsPatientVo.PatientInfo();
BeanUtil.copyProperties(patientByCardNo, patientInfo);
patientInfo.setOtherMsg(patientOtherMsgByCardNo);
return JsonResponse.ok(patientInfo);
}
}

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

@ -0,0 +1,19 @@
package com.ccsens.client.persist.dao;
import com.ccsens.common.annotation.DataSource;
import com.ccsens.common.enums.DataSourceType;
import java.util.List;
/**
* @author zy
* @date 2026/1/25 20:16
*/
public interface HisConnectionDao {
@DataSource(DataSourceType.SLAVE)
List<Object> getGmxx(String cardNo);
@DataSource(DataSourceType.SLAVE)
List<Object> getBlxx(String cardNo);
}

2
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IHmsVersionServiceImpl.java

@ -25,7 +25,7 @@ public class IHmsVersionServiceImpl implements IHmsVersionService {
public List<HmsVersion> query() {
HmsVersionExample hmsVersionExample = new HmsVersionExample();
hmsVersionExample.setOrderByClause("sort asc");
hmsVersionExample.createCriteria().andDelFlagEqualTo((byte) 0);
hmsVersionExample.createCriteria().andDelFlagEqualTo((byte) 0).andStatusEqualTo("0");
return hmsVersionMapper.selectByExample(hmsVersionExample);
}
}

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

@ -1,11 +1,15 @@
package com.ccsens.client.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ccsens.client.persist.dao.HisConnectionDao;
import com.ccsens.client.service.ILtHisConnectionService;
import com.ccsens.system.domain.po.PmsPatient;
import com.ccsens.system.domain.vo.PmsPatientVo;
@ -14,6 +18,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -27,11 +34,13 @@ import java.util.Map;
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
@Resource
private HisConnectionDao hisConnectionDao;
/**
* 前端调用查询列表接口如果有数据则直接返回
* 如果没查到数据使用searchValue患者院内唯一标识cardNo去his查询
* 如果his有数据则插入一条基本信息pms_patient数据将cardNo保存在patient_number字段上
*
* ---
* 前端在列表显示当前查找到的患者信息点击患者准备测评时调用后台查询详情接口
* 详情接口根据id查找到患者信息检查patient_number字段是否有值如果有表示需要在院内his查找
* 通过patient_number在院内查找详细信息查找完成后将详细信息保存在对应的表内
@ -39,15 +48,26 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
*/
private static final String URL_PREFIX = "http://200.1.8.36:7801/roc";
private static final String URL_SUFFIX_1_1_4 = "/patient-service/api/v1/patient/archives/get?cardNo=";
//【RP1.1.4S054】查询患者档案信息
private static final String URL_SUFFIX_RP_1_1_4 = "/patient-service/api/v1/patient/archives/get?cardNo=";
//【RP2.1.6S062】查询门诊患者挂号记录
private static final String URL_SUFFIX_RP_2_1_6 = "/patient-service/api/v1/register/patient/getFinOprRegList";
//【RP2.1.7S063】查询住院患者入院记录
private static final String URL_SUFFIX_RP_2_1_7 = "/patient-service/api/v1/patient/getFinIprList";
//【RE2.1.5S234】新 获取病案首页基本信息
private static final String URL_SUFFIX_RE_2_1_5 = "/patient-service/api/v1/patient/getFinOprRegList?inPatientNo=";
@Override
public PmsPatientVo.PatientList getPatientByCardNo(String cardNo) {
PmsPatientVo.PatientList patientVo = null;
PmsPatientVo.PatientList patientVo;
//调用"【RP1.1.4S054】查询患者档案信息"接口
String url = URL_PREFIX + URL_SUFFIX_1_1_4 + cardNo;
HttpResponse response = getHttpResponse(cardNo, url);
String url = URL_PREFIX + URL_SUFFIX_RP_1_1_4 + cardNo;
HttpResponse response = getHttpResponse(url);
String body;
if (response.isOk()) {
body = response.body();
@ -59,11 +79,14 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
try {
JSONObject json = JSONUtil.parseObj(body);
log.info("【RP1.1.4S054】查询患者档案信息接口-返回数据: {}", json);
JSONObject data = json.getJSONObject("data");
if (data == null) {
log.warn("查询患者档案信息接口返回data为空");
// 获取data数组
JSONArray dataArray = json.getJSONArray("data");
if (CollUtil.isEmpty(dataArray)) {
log.warn("查询患者档案信息接口返回data为空或空数组");
return null;
}
// 取第一个患者信息
JSONObject data = dataArray.getJSONObject(0);
patientVo = new PmsPatientVo.PatientList();
patientVo.setPatientName(data.getStr("patientName"));
String genderCode = data.getStr("genderCode");
@ -100,51 +123,110 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
patientInfo.setNameInitial(PinyinUtil.getFirstLetter(patientInfo.getName(), ""));
patientInfo.setIdcard(patientVo.getIdCard());
patientInfo.setPatientNumber(cardNo);
//TODO 添加数据库
return patientVo;
}
@Override
public Map<String, List> getPatientOtherMsgByCardNo(String cardNo) {
//病史信息对应数据库个人史 PmsPatientPersonal
//数据库视图view_lnpg_blxx 和
//是否吸烟 smokingHistory
//吸烟年限 smokingYear
//是否戒烟 smokingQuit
//戒烟年限 smokingQuitYear
//是否饮酒 drinkHistory
//饮酒年限 drinkYear
//是否戒酒 drinkQuit
//戒酒年限 drinkQuitYear
//数据库视图view_lnpg_gmxx
//过敏信息 allergyDrug
//1.查询所有需要的信息
Map<String, Object> params = new HashMap<>();
params.put("cardNo", cardNo);
//查门诊信息
String mzUrl = URL_PREFIX + URL_SUFFIX_RP_2_1_6;
HttpResponse mzResponse = postHttpResponse(mzUrl, params);
JSONObject mzData = getApiData(mzResponse, "【RP2.1.6S062】查询门诊患者挂号记录");
//查住院信息
String zyUrl = URL_PREFIX + URL_SUFFIX_RP_2_1_7;
HttpResponse zyResponse = postHttpResponse(zyUrl, params);
JSONObject zyData = getApiData(zyResponse, "【RP2.1.7S063】查询住院患者入院记录");
//查视图过敏信息
List<Object> gmxx = hisConnectionDao.getGmxx(cardNo);
//查视图病历信息
List<Object> blxx = hisConnectionDao.getBlxx(cardNo);
//构建返回信息
Map<String, List> result = new HashMap<>();
// 病史信息 - PmsPatientPersonal
List<Map<String, Object>> personalList = new ArrayList<>();
Map<String, Object> personal = new HashMap<>();
if (CollUtil.isNotEmpty(blxx)) {
Object obj = blxx.get(0);
if (obj instanceof Map) {
Map<String, Object> item = (Map<String, Object>) obj;
personal.put("smokingHistory", item.get("是否吸烟"));
personal.put("smokingYear", item.get("吸烟年限"));
personal.put("smokingQuit", item.get("是否戒烟"));
personal.put("smokingQuitYear", item.get("戒烟年限"));
personal.put("drinkHistory", item.get("是否饮酒"));
personal.put("drinkYear", item.get("饮酒年限"));
personal.put("drinkQuit", item.get("是否戒酒"));
personal.put("drinkQuitYear", item.get("戒酒年限"));
}
}
// 过敏信息 - 也放入PmsPatientPersonal
if (CollUtil.isNotEmpty(gmxx)) {
Object obj = gmxx.get(0);
if (obj instanceof Map) {
Map<String, Object> item = (Map<String, Object>) obj;
personal.put("allergyDrug", item.get("过敏信息"));
}
}
personalList.add(personal);
result.put("pmsPatientPersonal", personalList);
//TODO "诊断用药(多个)对应数据库现病史 PmsPatientParentIllness" 暂无
//"就诊信息对应数据库病人基本信息表pmsPatientBody"
// 传入的cardNo,用户的唯一表示 cardNo outpatientNo 门诊/急诊/住院号
//"先查询【RP2.1.7S063】查询住院患者入院记录 如果没有住院 再查询【RP2.1.6S062】查询门诊患者挂号记录" age age 年龄
// deptName department 就诊科室
// "directorDocName(住院)docName(门诊)" doctor 就诊/主治医师
// "inDate(住院)receptDate(门诊)" admissionDate 就诊/入院日期
//【RP2.1.7S063】查询住院患者入院记录
// inTimes admissionCount 住院次数
// bedNo bedNumber 床位号
// outDate dischargeDate 出院日期
//【RE2.1.5S234】新 获取病案首页基本信息
// inWay admissionMethod 入院途径
// outType dischargeMethod 离院方式
//
//"检查信息对应数据库病人基本信息表pmsPatientBody"
//数据库视图view_lnpg_blxx
//身高 height 身高
//体重 weight 体重
//体温 temperature 体温
//血压 bloodPressureShrink 收缩压
//血压 bloodPressureDiastole 舒张压
//脉搏 pulse 脉搏
//肌酐 creatinine 肌酐
// 就诊信息和检查信息 - pmsPatientBody
List<Map<String, Object>> bodyList = new ArrayList<>();
Map<String, Object> bodyInfo = new HashMap<>();
// 基本信息
bodyInfo.put("outpatientNo", cardNo);
if(ObjectUtil.isNotNull(zyData) && zyData != null){
bodyInfo.put("age", zyData.getStr("age"));
bodyInfo.put("department", zyData.getStr("deptName"));
bodyInfo.put("doctor", zyData.getStr("directorDocName"));
bodyInfo.put("admissionDate", zyData.getStr("inDate"));
bodyInfo.put("admissionCount", zyData.getStr("inTimes"));
bodyInfo.put("bedNumber", zyData.getStr("bedNo"));
bodyInfo.put("dischargeDate", zyData.getStr("outDate"));
bodyInfo.put("diagnosisType","2");
bodyInfo.put("isMainDiagnosis","1");
bodyInfo.put("diagnosisName", zyData.getStr("ryDiagnose"));
bodyInfo.put("diagnosisCode", zyData.getStr("ryDiagnoseCode"));
bodyInfo.put("diagnosisDate", zyData.getStr("inDate"));
//如果住院信息不为空,查病案首页信息
String baUrl = URL_PREFIX + URL_SUFFIX_RE_2_1_5 + zyData.getStr("inPatientNo");
HttpResponse baResponse = getHttpResponse(baUrl);
JSONObject baData = getApiData(baResponse, "【RE2.1.5S234】新 获取病案首页基本信息");
if(ObjectUtil.isNotNull(baData) && baData != null){
bodyInfo.put("admissionMethod", baData.getStr("inWay"));
bodyInfo.put("dischargeMethod", baData.getStr("outType"));
}
}else if(ObjectUtil.isNotNull(mzData) && mzData != null){
bodyInfo.put("age", mzData.getStr("age"));
bodyInfo.put("department", mzData.getStr("deptName"));
bodyInfo.put("doctor", mzData.getStr("docName"));
bodyInfo.put("admissionDate", mzData.getStr("receptDate"));
}
if (CollUtil.isNotEmpty(blxx)) {
Object obj = blxx.get(0);
if (obj instanceof Map) {
Map<String, Object> item = (Map<String, Object>) obj;
bodyInfo.put("height", item.get("身高"));
bodyInfo.put("weight", item.get("体重"));
bodyInfo.put("temperature", item.get("体温"));
//TODO 血压需要处理
bodyInfo.put("bloodPressureShrink", item.get("血压"));
bodyInfo.put("bloodPressureDiastole", item.get("血压"));
bodyInfo.put("pulse", item.get("脉搏"));
bodyInfo.put("creatinine", item.get("肌酐"));
}
}
bodyList.add(bodyInfo);
result.put("pmsPatientBody", bodyList);
//TODO 暂无 tz T值
// oxygenSaturation 血氧饱和度
@ -154,24 +236,46 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService {
// hematocrit 凝血酶原时间
// dimer D-二聚体
//"诊断信息对应数据库病人基本信息表pmsPatientBody"
// 【RP2.1.7S063】查询住院患者入院记录
//查询入院患者的诊断 diagnosisType 诊断类型
//默认主诊断 isMainDiagnosis 是否主要诊断
//ryDiagnose diagnosisName 诊断名称
//ryDiagnoseCode diagnosisCode 诊断编码
//同入院日期 diagnosisDate 诊断日期
return result;
}
return null;
private JSONObject getApiData(HttpResponse response, String errorString) {
JSONObject mzData = null;
if (response.isOk()) {
String mzBody = response.body();
try {
JSONObject json = JSONUtil.parseObj(mzBody);
JSONArray dataArray = json.getJSONArray("data");
if (CollUtil.isEmpty(dataArray)) {
log.warn(errorString + "接口返回data为空或空数组");
return null;
}
mzData = dataArray.getJSONObject(0);
}catch (Exception e){
log.error(errorString + "接口-请求失败: {}", response.getStatus());
}
} else {
log.error(errorString + "接口-请求失败: {}", response.getStatus());
}
return mzData;
}
private HttpResponse getHttpResponse(String cardNo, String url) {
private HttpResponse getHttpResponse(String url) {
return HttpRequest.get(url)
.header("Content-Type", "application/json;charset=utf-8")
.header("Domain", "LNPG")
.header("Key", "9d36990a-7154-41e3-bba5-e0d4f7b952e7")
.form("cardNo", cardNo) // 使用 form 方法添加参数
.timeout(5000) // 设置超时时间
.execute();
}
private HttpResponse postHttpResponse(String url, Map<String, Object> params) {
return HttpRequest.post(url)
.header("Content-Type", "application/json;charset=utf-8")
.header("Domain", "LNPG")
.header("Key", "9d36990a-7154-41e3-bba5-e0d4f7b952e7")
.form(params)
.timeout(5000)
.execute();
}
}

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

@ -154,29 +154,31 @@ public class RmsServiceImpl implements IRmsService {
if (CollUtil.isNotEmpty(scores)) {
scores.forEach(score -> {
//添加体质辨识结论
// List<TzbsRmsReportResult> reportResultList = score.getReportResultList();
// if (CollUtil.isNotEmpty(reportResultList)) {
// reportResultList.forEach(reportResult -> {
// reportResult.setReportId(report.getId());
// });
// clientEvaDao.batchInsertReportResult(reportResultList);
// }
// //添加体质辨识养生建议
// List<TzbsRmsReportYsjy> reportYsjyList = score.getReportYsjyList();
// if (CollUtil.isNotEmpty(reportYsjyList)) {
// reportYsjyList.forEach(reportResult -> {
// reportResult.setReportId(report.getId());
// rmsReportYsjyMapper.insertSelective(reportResult);
// });
// }
//获取初步印象
// ClientEvaVo.ReportView reportView = reportView(dto.getEvaluationId(), score.getCode());
// if (reportView != null) {
// score.setImpression(reportView.getResult());
// score.setScore(reportView.getTotalScore());
// }
if ("TZBS_LN".equals(score.getCode()) || "TZBS_BZ".equals(score.getCode())) {
// 添加体质辨识结论
List<TzbsRmsReportResult> reportResultList = score.getReportResultList();
if (CollUtil.isNotEmpty(reportResultList)) {
reportResultList.forEach(reportResult -> {
reportResult.setReportId(report.getId());
});
clientEvaDao.batchInsertReportResult(reportResultList);
}
//添加体质辨识养生建议
List<TzbsRmsReportYsjy> reportYsjyList = score.getReportYsjyList();
if (CollUtil.isNotEmpty(reportYsjyList)) {
reportYsjyList.forEach(reportResult -> {
reportResult.setReportId(report.getId());
rmsReportYsjyMapper.insertSelective(reportResult);
});
}
// 获取初步印象
ClientEvaVo.ReportView reportView = reportView(dto.getEvaluationId(), score.getCode());
if (reportView != null) {
score.setImpression(reportView.getResult());
score.setScore(reportView.getTotalScore());
}
}
//添加量表分数统计
RmsReportScaleScore reportScaleScore = new RmsReportScaleScore();
reportScaleScore.setId(IDGenerator.nextSnowflakeId());
@ -1040,12 +1042,12 @@ public class RmsServiceImpl implements IRmsService {
});
//生成中医体质辨识结果
// scores.forEach(score -> {
// if ("TZBS_LN".equals(score.getCode()) || "TZBS_BZ".equals(score.getCode())) {
// score.setSubReport(new ArrayList<>());
// zytzbs(evaluationId, score);
// }
// });
scores.forEach(score -> {
if ("TZBS_LN".equals(score.getCode()) || "TZBS_BZ".equals(score.getCode())) {
score.setSubReport(new ArrayList<>());
zytzbs(evaluationId, score);
}
});
return scores;
}

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

@ -12,10 +12,11 @@ spring:
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
enabled: true
driverClassName: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@200.1.8.115:1521:hisdb
username: interface_lnpg
password: interface_lnpg
# 初始连接数
initialSize: 5
# 最小连接池数量

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

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ccsens.client.persist.dao.HisConnectionDao">
<select id="getGmxx" resultType="java.lang.Object">
select * from view_lnpg_gmxx where "患者卡号" = #{cardNo};
</select>
<select id="getBlxx" resultType="java.lang.Object">
select * from view_lnpg_blxx where "患者卡号" = #{cardNo};
</select>
</mapper>

317
sql/新增中医体质辨识表20260127.sql

File diff suppressed because one or more lines are too long

8
sql/添加bmi和问题code字段20260127.sql

@ -0,0 +1,8 @@
ALTER TABLE `pms_patient_body`
ADD COLUMN `bmi` varchar(255) NULL COMMENT 'BMI';
ALTER TABLE `qms_question`
ADD COLUMN `question_code` varchar(255) NULL COMMENT '问题CODE(关联tzbs_qms_scale_cognitive的ques_code)';
ALTER TABLE `hms_version`
ADD COLUMN `status` varchar(2) DEFAULT 0 COMMENT '状态 0正常 1禁用';
Loading…
Cancel
Save