Browse Source

合并后端

dock
lzp 5 days ago
parent
commit
219b210213
  1. 17
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/RmsVo.java
  2. 3
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/StatisticsDao.java
  3. 9
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/StatisticsServiceImpl.java
  4. 21
      ruisi_java/ruisi-system/src/main/resources/mapper/dao/StatisticsDao.xml
  5. 22
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java
  6. 65
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java
  7. 21
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java
  8. 6
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/RmsDao.xml

17
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/RmsVo.java

@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.common.constant.CultureEnum;
import com.ccsens.common.constant.GenConstants;
import com.ccsens.common.constant.JobEnum;
import com.ccsens.common.enums.BaseEnum;
import com.ccsens.common.utils.PdfUtil;
import com.ccsens.system.domain.po.TzbsRmsReportResult;
@ -281,7 +282,23 @@ public class RmsVo {
@ApiModelProperty("出生日期")
private String birthday;
@ApiModelProperty("患者联系电话")
private String mobile;
@ApiModelProperty("婚姻状况1:未婚2:已婚 3:离异 4:丧偶 5:未知 ")
private Byte maritalStatus;
@ApiModelProperty("居住状态(1:独居 2:夫妻同住 3:多代加入同住; 4养老院; 5其他)")
private Byte dwellingState;
@ApiModelProperty("信仰")
private String belief;
public String getMarial(){
return maritalStatus == null ? "" : maritalStatus == 1 ? "未婚" : maritalStatus == 2 ? "已婚" : maritalStatus == 3 ? "离异" : maritalStatus == 4 ? "丧偶" : "未知";
}
public String getDwelling(){
return dwellingState == null ? "" : dwellingState == 1 ? "独居" : dwellingState == 2 ? "夫妻同住" : dwellingState == 3 ? "多代加入同住" : dwellingState == 4 ? "养老院" : "其他";
}
public List<PdfUtil.Row> toPdfRow() {
List<PdfUtil.Row> rows = getInitRows();
//第四栏

3
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/StatisticsDao.java

@ -21,6 +21,9 @@ public interface StatisticsDao {
*/
HomeDpVo.Zhsjgl nntotal(@Param("dto") StatisticsDto.Query dto);
Integer getPatientNum(@Param("dto") StatisticsDto.Query dto,
@Param("sex") Byte sex);
/**
* BMI
* @param dto

9
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/StatisticsServiceImpl.java

@ -32,7 +32,14 @@ public class StatisticsServiceImpl implements StatisticsService {
dto.setBeginTime(dateByType.get(0));
dto.setEndTime(dateByType.get(1));
}
return statisticsDao.nntotal(dto);
HomeDpVo.Zhsjgl nntotal = statisticsDao.nntotal(dto);
if (nntotal == null) {
nntotal = new HomeDpVo.Zhsjgl();
}
nntotal.setPtotal(statisticsDao.getPatientNum(dto, null));
nntotal.setMtotal(statisticsDao.getPatientNum(dto, (byte) 0));
nntotal.setFtotal(statisticsDao.getPatientNum(dto, (byte) 1));
return nntotal;
}
@Override

21
ruisi_java/ruisi-system/src/main/resources/mapper/dao/StatisticsDao.xml

@ -25,6 +25,27 @@
</if>
</select>
<select id="getPatientNum" resultType="java.lang.Integer">
SELECT
COUNT(DISTINCT p.id) AS total
FROM
pms_patient p
LEFT JOIN ums_user u ON p.create_by = u.user_name
where p.del_flag = 0
<if test="dto.deptId != null">
AND u.dept_id = #{dto.deptId}
</if>
<if test="dto.beginTime != null">
AND p.create_time >= #{dto.beginTime}
</if>
<if test="dto.endTime != null">
AND p.create_time &lt;= #{dto.endTime}
</if>
<if test="sex != null">
and p.sex = #{sex}
</if>
</select>
<select id="nnbmihjxy" resultType="com.ccsens.system.domain.vo.HomeDpVo$Bmi">
SELECT
SUM(CASE WHEN (pb.weight/(pb.height*pb.height/10000)) &lt; 18.5 THEN 1 ELSE 0 END) AS bmi1,

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

@ -61,7 +61,7 @@ public class PmsController extends BaseController {
@ApiOperation("获取患者信息列表")
@PostMapping("/queryList")
public JsonResponse<PageInfo<PmsPatientVo.PatientList>> queryPatientList(@RequestBody @Validated BaseDto<PmsPatientDto.QueryPatient> dto) {
List<PmsPatientVo.PatientList> list = new ArrayList<>();
// List<PmsPatientVo.PatientList> list = new ArrayList<>();
// PmsPatientDto.QueryPatient param = dto.getParam();
// if (StrUtil.isNotEmpty(param.getSearchValue()) && param.getSearchValue().length() == 10) {
@ -86,18 +86,18 @@ public class PmsController extends BaseController {
startPageOvertop(dto);
List<PmsPatientVo.PatientList> serverList = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername());
if (CollUtil.isNotEmpty(serverList)) {
list.addAll(serverList);
}
// 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);
// // 创建一个 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));
return JsonResponse.ok(new PageInfo<>(serverList));
}
@ApiOperation("通过身份证号查询患者信息,方便页面展示返回和列表一样的格式")

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

@ -1756,17 +1756,17 @@ public class AmsReportServiceImpl implements AmsReportService {
params.put("doctor", pmsPatientBodyMap.get("doctor"));
params.put("admissionDate", pmsPatientBodyMap.get("admission_date"));
params.put("num", pmsPatientBodyMap.get("admission_count"));
params.put("admissionMethod", pmsPatientBodyMap.get("admission_method"));
params.put("admissionMethod", ObjectUtil.isNull(pmsPatientBodyMap.get("admission_method")) ? "" : ObjectUtil.equals(pmsPatientBodyMap.get("admission_method"), "1") ? "急诊": ObjectUtil.equals(pmsPatientBodyMap.get("admission_method"), "2") ? "门诊": ObjectUtil.equals(pmsPatientBodyMap.get("admission_method"), "3") ? "其他医疗机构转入": "其他");
params.put("bedNumber", pmsPatientBodyMap.get("bed_number"));
params.put("dischargeDate", pmsPatientBodyMap.get(""));
params.put("dischargeMethod", pmsPatientBodyMap.get("discharge_date"));
params.put("dischargeDate", ObjectUtil.isNull(pmsPatientBodyMap.get("dischargeDate")) ? "" : DateUtil.format(DateUtil.parse(pmsPatientBodyMap.get("dischargeDate").toString()), "yyyy-MM-dd"));
params.put("dischargeMethod", pmsPatientBodyMap.get("dischargeMethod"));
params.put("height", pmsPatientBodyMap.get("height"));
params.put("weight", pmsPatientBodyMap.get("weight"));
params.put("bmi", pmsPatientBodyMap.get("bmi"));
params.put("tz", pmsPatientBodyMap.get("tz"));
params.put("temperature", pmsPatientBodyMap.get("temperature"));
params.put("systolic_pressure", pmsPatientBodyMap.get("systolic_pressure"));
params.put("diastolic_pressure", pmsPatientBodyMap.get("diastolic_pressure"));
params.put("systolic_pressure", pmsPatientBodyMap.get("systolicPressure"));
params.put("diastolic_pressure", pmsPatientBodyMap.get("diastolicPressure"));
params.put("pulse", pmsPatientBodyMap.get("pulse"));
params.put("creatinine", pmsPatientBodyMap.get("creatinine"));
params.put("oxygen_saturation", pmsPatientBodyMap.get("oxygen_saturation"));
@ -2017,6 +2017,32 @@ public class AmsReportServiceImpl implements AmsReportService {
params.put("p_name", patientInfo.getPatientName());
params.put("p_sex", patientInfo.getSex() == 0 ? "男" : "女");
params.put("p_age", patientInfo.getPatientAge());
params.put("phone", patientInfo.getMobile());
if (dto.getVersion() != null) {
if(dto.getVersion() == 0) {
params.put("versionName", "完整版");
}
if(dto.getVersion() == 1) {
params.put("versionName", "医生版");
}
if(dto.getVersion() == 2) {
params.put("versionName", "个人版");
}
if(dto.getVersion() == 3) {
params.put("versionName", "阳性版");
}
}
if (patientInfo.getCareer() != null) {
JobEnum jobEnum = BaseEnum.codeOf(JobEnum.class, patientInfo.getCareer().intValue());
if (jobEnum != null) {
params.put("job", jobEnum.getDesc());
}
}
params.put("marital", patientInfo.getMarial());
params.put("dwelling", patientInfo.getDwelling());
params.put("nation", patientInfo.getNation());
params.put("belief", patientInfo.getBelief());
params.put("testerName", patientInfo.getTesterName());
CultureEnum cultureEnum = null;
if (dto.getSignId() != null) {
HmsDoctorSign emsEvaluationInformedConsent = hmsDoctorSignMapper.selectByPrimaryKey(dto.getSignId());
@ -2068,30 +2094,30 @@ public class AmsReportServiceImpl implements AmsReportService {
params.put("hobby", patientInfoById.getHobby());
params.put("aboBlood", patientInfoById.getAboBloodType());
params.put("rhBlood", patientInfoById.getRhBloodType());
params.put("visit_type", pmsPatientBodyMap.get("visit_type"));
params.put("visitNo", pmsPatientBodyMap.get("outpatient_no"));
params.put("visit_type", ObjectUtil.isEmpty(pmsPatientBodyMap.get("visitType")) ? "" : ObjectUtil.equals(pmsPatientBodyMap.get("visitType"), "1") ? "门诊" : "住院");
params.put("visitNo", pmsPatientBodyMap.get("outpatientNo"));
params.put("age", pmsPatientBodyMap.get("age"));
params.put("dept", pmsPatientBodyMap.get("department"));
params.put("doctor", pmsPatientBodyMap.get("doctor"));
params.put("admissionDate", pmsPatientBodyMap.get("admission_date"));
params.put("num", pmsPatientBodyMap.get("admission_count"));
params.put("admissionMethod", pmsPatientBodyMap.get("admission_method"));
params.put("bedNumber", pmsPatientBodyMap.get("bed_number"));
params.put("dischargeDate", pmsPatientBodyMap.get(""));
params.put("dischargeMethod", pmsPatientBodyMap.get("discharge_date"));
params.put("admissionDate", ObjectUtil.isEmpty(pmsPatientBodyMap.get("admissionDate")) ? "": DateUtil.format(DateUtil.parse(pmsPatientBodyMap.get("admissionDate").toString()), "yyyy-MM-dd"));
params.put("num", pmsPatientBodyMap.get("admissionCount"));
params.put("admissionMethod", ObjectUtil.isNull(pmsPatientBodyMap.get("admissionMethod")) ? "" : ObjectUtil.equals(pmsPatientBodyMap.get("admissionMethod"), "1") ? "急诊": ObjectUtil.equals(pmsPatientBodyMap.get("admissionMethod"), "2") ? "门诊": ObjectUtil.equals(pmsPatientBodyMap.get("admissionMethod"), "3") ? "其他医疗机构转入": "其他");
params.put("bedNumber", pmsPatientBodyMap.get("bedNumber"));
params.put("dischargeDate", ObjectUtil.isEmpty(pmsPatientBodyMap.get("dischargeDate")) ? "": DateUtil.format(DateUtil.parse(pmsPatientBodyMap.get("dischargeDate").toString()), "yyyy-MM-dd"));
params.put("dischargeMethod", ObjectUtil.isNull(pmsPatientBodyMap.get("dischargeMethod")) ? "": ObjectUtil.equals(pmsPatientBodyMap.get("dischargeMethod"), "1") ? "医嘱离院" : ObjectUtil.equals(pmsPatientBodyMap.get("dischargeMethod"), "2") ? "医嘱转院" :ObjectUtil.equals(pmsPatientBodyMap.get("dischargeMethod"), "3") ? "医嘱转社区卫生服务机构/乡镇卫生院":ObjectUtil.equals(pmsPatientBodyMap.get("dischargeMethod"), "4") ? "非医嘱离院":ObjectUtil.equals(pmsPatientBodyMap.get("dischargeMethod"), "5") ? "死亡": "其他");
params.put("height", pmsPatientBodyMap.get("height"));
params.put("weight", pmsPatientBodyMap.get("weight"));
params.put("bmi", pmsPatientBodyMap.get("bmi"));
params.put("tz", pmsPatientBodyMap.get("tz"));
params.put("temperature", pmsPatientBodyMap.get("temperature"));
params.put("systolic_pressure", pmsPatientBodyMap.get("systolic_pressure"));
params.put("diastolic_pressure", pmsPatientBodyMap.get("diastolic_pressure"));
params.put("systolic_pressure", pmsPatientBodyMap.get("systolicPressure"));
params.put("diastolic_pressure", pmsPatientBodyMap.get("diastolicPressure"));
params.put("pulse", pmsPatientBodyMap.get("pulse"));
params.put("creatinine", pmsPatientBodyMap.get("creatinine"));
params.put("oxygen_saturation", pmsPatientBodyMap.get("oxygen_saturation"));
params.put("oxygen_saturation", pmsPatientBodyMap.get("oxygenSaturation"));
params.put("albumin", pmsPatientBodyMap.get("albumin"));
params.put("total_protein", pmsPatientBodyMap.get("total_protein"));
params.put("vitamin_d3", pmsPatientBodyMap.get("vitamin_d3"));
params.put("total_protein", pmsPatientBodyMap.get("totalProtein"));
params.put("vitamin_d3", pmsPatientBodyMap.get("vitaminD3"));
params.put("hematocrit", pmsPatientBodyMap.get("hematocrit"));
params.put("dimer", pmsPatientBodyMap.get("dimer"));
}
@ -2123,6 +2149,7 @@ public class AmsReportServiceImpl implements AmsReportService {
// params.put("cpy_img_url", patientInfo.getName());
params.put("report_date", DateUtil.date(patientInfo.getReportTime()));
params.put("reportDate", DateUtil.format(DateUtil.date(patientInfo.getReportTime()), "yyyy-MM-dd"));
//生成表格
// 创建带有样式的文本
@ -2294,7 +2321,7 @@ public class AmsReportServiceImpl implements AmsReportService {
if (dto.getVersion() != null && dto.getVersion() == 0 && StrUtil.isNotEmpty(report.getAllUrl())) {
AmsReportVo.Result result = new AmsReportVo.Result();
result.setPath(report.getAllUrl());
return result;
// return result;
}
if (dto.getVersion() != null && dto.getVersion() == 1 && StrUtil.isNotEmpty(report.getUrl())) {
AmsReportVo.Result result = new AmsReportVo.Result();

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

@ -433,7 +433,28 @@ public class RmsServiceImpl implements IRmsService {
if (CollUtil.isNotEmpty(scores)) {
//组装成父子级关系
scores = buildReportScoreTree(scores, 0L);
for (RmsVo.ReportScore score : scores) {
//查询量表的总分趋势信息
List<RmsVo.ScoreTrend> scoreTrend = rmsDao.getScoreTrend(reportPatient.getPatientId(), score.getCode(), time.getMinTime(), time.getMaxTime());
//折线图上只显示近5条记录
if (CollectionUtil.isNotEmpty(scoreTrend) && scoreTrend.size() > 5) {
scoreTrend = scoreTrend.subList(scoreTrend.size() - 5, scoreTrend.size());
}
score.setScoreTrend(scoreTrend);
//给moca添加雷达图信息
if (GenConstants.Ht.Report.MOCA.equals(score.getCode())) {
List<RmsVo.EvaluationScoreDistribution> scoreDistributions = rmsDao.getScoreDistributions(reportPatient.getPatientId());
if (CollUtil.isNotEmpty(scoreDistributions)) {
//处理认知域
List<RmsVo.EvaluationScoreDistribution> distributions = disposeDistribution(scoreDistributions);
//根据日期倒序排序
distributions.sort(Comparator.comparing(RmsVo.EvaluationScoreDistribution::getDay).reversed());
score.setScoreDistributions(distributions);
}
}
}
}
detail.setPatient(reportPatient);
detail.setScores(scores);
return detail;

6
ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/RmsDao.xml

@ -44,7 +44,11 @@
b.doctor,
ee.version,
h.version AS versionName,
pp.birthday
pp.birthday,
pp.marital_status as maritalStatus,
pp.dwelling_state as dwellingState,
pp.nation,
pp.belief
FROM
ems_evaluation ee
LEFT JOIN rms_report rr on ee.id = rr.evaluation_id

Loading…
Cancel
Save