From 521830bb883faafdd7feb1e2e8af7464c789f8c0 Mon Sep 17 00:00:00 2001
From: zhangheng <3226558941@qq.com>
Date: Tue, 26 Mar 2024 17:45:29 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/xinelu/common/utils/AgeUtil.java | 67 ++++++++++++++++
.../controller/agency/AgencyController.java | 2 +-
.../PatientTaskExecuteRecordController.java | 8 ++
.../TaskStatusDictController.java | 5 ++
.../PatientTaskExecuteRecord.java | 3 +
.../PatientVisitRecord.java | 2 +
.../PatientTaskExecuteRecordMapper.java | 8 ++
.../manage/service/agency/IAgencyService.java | 8 --
.../agency/impl/AgencyServiceImpl.java | 12 ---
.../IPatientTaskExecuteRecordService.java | 9 +++
.../PatientTaskExecuteRecordServiceImpl.java | 15 ++++
.../PatientTaskExecuteRecordVO.java | 80 +++----------------
.../PatientTaskExecuteRecordMapper.xml | 40 ++++++++--
13 files changed, 164 insertions(+), 95 deletions(-)
create mode 100644 postdischarge-common/src/main/java/com/xinelu/common/utils/AgeUtil.java
diff --git a/postdischarge-common/src/main/java/com/xinelu/common/utils/AgeUtil.java b/postdischarge-common/src/main/java/com/xinelu/common/utils/AgeUtil.java
new file mode 100644
index 00000000..5c9d13d0
--- /dev/null
+++ b/postdischarge-common/src/main/java/com/xinelu/common/utils/AgeUtil.java
@@ -0,0 +1,67 @@
+package com.xinelu.common.utils;
+
+import com.xinelu.common.exception.ServiceException;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+ * @author ljh
+ * @version 1.0
+ * Create by 2023/2/27 11:45
+ */
+public class AgeUtil {
+
+ /**
+ * 根据出生日期计算年龄数值
+ *
+ * @param date 出生日期
+ * @return 年龄数值
+ */
+ public static Long getAgeMonth(String date) {
+ if (StringUtils.isBlank(date)) {
+ throw new ServiceException("请输入正确的出生日期!");
+ }
+ String[] data = StringUtils.split(date, "-");
+ if (data.length < 3) {
+ throw new ServiceException("请输入正确的出生日期!");
+ }
+ Calendar birthday = new GregorianCalendar(Integer.parseInt(data[0]), Integer.parseInt(data[1]), Integer.parseInt(data[2]));
+ Calendar now = Calendar.getInstance();
+ int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH);
+ //月份从0开始计算,所以需要+1
+ int month = now.get(Calendar.MONTH) + 1 - birthday.get(Calendar.MONTH);
+ BigDecimal monthFraction;
+ int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
+ //按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
+ if (day < 0) {
+ month -= 1;
+ //得到上一个月,用来得到上个月的天数。
+ now.add(Calendar.MONTH, -1);
+ }
+ if (month < 0) {
+ //当前月份加12个月
+ monthFraction = BigDecimal.valueOf(month).add(BigDecimal.valueOf(12)).divide(BigDecimal.valueOf(12), 1, RoundingMode.HALF_UP);
+ year--;
+ } else {
+ //当前月份
+ monthFraction = BigDecimal.valueOf(month).divide(BigDecimal.valueOf(12), 1, RoundingMode.HALF_UP);
+ }
+ BigDecimal bigDecimal = BigDecimal.ZERO;
+ if (year >= 0) {
+ bigDecimal = bigDecimal.add(BigDecimal.valueOf(year));
+ }
+ if ((monthFraction.compareTo(BigDecimal.ZERO) > 0)) {
+ bigDecimal = bigDecimal.add(monthFraction);
+ }
+ //今天出生
+ if (year == 0 && month == 0 && day == 0) {
+ return BigDecimal.ZERO.longValue();
+ }
+ return Math.round(bigDecimal.doubleValue());
+ }
+
+}
+
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/agency/AgencyController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/agency/AgencyController.java
index 0cdb002d..fd670f1f 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/agency/AgencyController.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/agency/AgencyController.java
@@ -59,7 +59,7 @@ public class AgencyController extends BaseController {
if (Objects.isNull(agency) || Objects.isNull(agency.getParentId())) {
return AjaxResult.success();
}
- return agencyService.subordinateAgencyList(agency);
+ return agencyService.selectAgencyByIdList(agency);
}
/**
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patienttaskexecuterecord/PatientTaskExecuteRecordController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patienttaskexecuterecord/PatientTaskExecuteRecordController.java
index 57ab0956..6fefa55f 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patienttaskexecuterecord/PatientTaskExecuteRecordController.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patienttaskexecuterecord/PatientTaskExecuteRecordController.java
@@ -76,4 +76,12 @@ public class PatientTaskExecuteRecordController extends BaseController {
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(patientTaskExecuteRecordService.deletePatientTaskExecuteRecordByIds(ids));
}
+
+ /**
+ * 根据患者信息查询就诊记录
+ */
+ @GetMapping("/selectVisitRecord")
+ public AjaxResult selectVisitRecord(Long id) {
+ return patientTaskExecuteRecordService.selectVisitRecord(id);
+ }
}
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/taskstatusdict/TaskStatusDictController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/taskstatusdict/TaskStatusDictController.java
index ff067538..427cbda5 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/taskstatusdict/TaskStatusDictController.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/taskstatusdict/TaskStatusDictController.java
@@ -38,6 +38,11 @@ public class TaskStatusDictController extends BaseController {
return getDataTable(list);
}
+ @GetMapping("/taskStatusDictList")
+ public AjaxResult taskStatusDictList(TaskStatusDict taskStatusDict) {
+ return AjaxResult.success(taskStatusDictService.selectTaskStatusDictList(taskStatusDict));
+ }
+
/**
* 导出任务状态字典列表
*/
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java
index 1db99cc0..6bbd0bdf 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java
@@ -112,6 +112,9 @@ public class PatientTaskExecuteRecord extends BaseEntity {
@Excel(name = "备注信息")
private String executeRemark;
+ @ApiModelProperty(value = "患者就诊记录基本信息表id")
+ @Excel(name = "患者就诊记录基本信息表id")
+ private Long visitRecordId;
@Override
public String toString() {
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientvisitrecord/PatientVisitRecord.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientvisitrecord/PatientVisitRecord.java
index 17ca9406..4c1878e0 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientvisitrecord/PatientVisitRecord.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientvisitrecord/PatientVisitRecord.java
@@ -218,4 +218,6 @@ public class PatientVisitRecord extends BaseEntity {
@Excel(name = "手术名称")
private String surgicalName;
+ @ApiModelProperty(value = "手术记录")
+ private String surgicalRecord;
}
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.java
index c5d1cbb2..e603d004 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.java
@@ -67,4 +67,12 @@ public interface PatientTaskExecuteRecordMapper {
* @return 结果
*/
int deletePatientTaskExecuteRecordByIds(Long[] ids);
+
+ /**
+ * 根据患者信息查询就诊记录
+ *
+ * @param id id
+ * @return AjaxResult
+ */
+ PatientTaskExecuteRecordVO selectVisitRecord(Long id);
}
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/IAgencyService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/IAgencyService.java
index 6b758978..f0e90cd4 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/IAgencyService.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/IAgencyService.java
@@ -40,14 +40,6 @@ public interface IAgencyService {
*/
AjaxResult selectAgencyByIdList(Agency agency);
- /**
- * 查询院区机构信息列表
- *
- * @param agency 机构信息
- * @return 机构信息集合
- */
- AjaxResult subordinateAgencyList(Agency agency);
-
/**
* 新增机构信息
*
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java
index a77de1ff..8a8f85a0 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java
@@ -98,18 +98,6 @@ public class AgencyServiceImpl implements IAgencyService {
}
- /**
- * 查询院区机构信息列表
- *
- * @param agency 机构信息
- * @return 机构信息
- */
- @Override
- public AjaxResult subordinateAgencyList(Agency agency) {
- return AjaxResult.success(agencyMapper.selectAgencyList(agency));
- }
-
-
/**
* 新增机构信息
*
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/IPatientTaskExecuteRecordService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/IPatientTaskExecuteRecordService.java
index b3d41ea2..891e2721 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/IPatientTaskExecuteRecordService.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/IPatientTaskExecuteRecordService.java
@@ -1,5 +1,6 @@
package com.xinelu.manage.service.patienttaskexecuterecord;
+import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO;
@@ -59,4 +60,12 @@ public interface IPatientTaskExecuteRecordService {
* @return 结果
*/
int deletePatientTaskExecuteRecordById(Long id);
+
+ /**
+ * 根据患者信息查询就诊记录
+ *
+ * @param id 记录id
+ * @return AjaxResult
+ */
+ AjaxResult selectVisitRecord(Long id);
}
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java
index cb7baeb8..f0e16fd9 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java
@@ -1,5 +1,7 @@
package com.xinelu.manage.service.patienttaskexecuterecord.impl;
+import com.xinelu.common.core.domain.AjaxResult;
+import com.xinelu.common.utils.AgeUtil;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper;
import com.xinelu.manage.service.patienttaskexecuterecord.IPatientTaskExecuteRecordService;
@@ -88,4 +90,17 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
public int deletePatientTaskExecuteRecordById(Long id) {
return patientTaskExecuteRecordMapper.deletePatientTaskExecuteRecordById(id);
}
+
+ /**
+ * 根据患者信息查询就诊记录
+ *
+ * @param id id
+ * @return AjaxResult
+ */
+ @Override
+ public AjaxResult selectVisitRecord(Long id) {
+ PatientTaskExecuteRecordVO patientTaskExecuteRecordVO = patientTaskExecuteRecordMapper.selectVisitRecord(id);
+ patientTaskExecuteRecordVO.setAge(AgeUtil.getAgeMonth(patientTaskExecuteRecordVO.getBirthDate().toString()));
+ return AjaxResult.success(patientTaskExecuteRecordVO);
+ }
}
diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java
index 5f15f5d2..b13a3070 100644
--- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java
+++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java
@@ -2,12 +2,9 @@ package com.xinelu.manage.vo.patienttaskexecuterecord;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
-import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
import java.time.LocalDate;
@@ -18,102 +15,57 @@ import java.time.LocalDate;
* @author xinelu
* @date 2024-03-25
*/
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
-@ApiModel(value = "患者管理任务执行记录对象", description = "patient_task_execute_record")
+@Data
public class PatientTaskExecuteRecordVO extends PatientTaskExecuteRecord {
- /**
- * 患者姓名
- */
+ @ApiModelProperty(value = "患者年龄")
+ private Long age;
+
@ApiModelProperty(value = "患者姓名")
private String patientName;
- /**
- * 患者电话
- */
@ApiModelProperty(value = "患者电话")
private String patientPhone;
- /**
- * 就诊流水号
- */
@ApiModelProperty(value = "就诊流水号")
private String visitSerialNumber;
- /**
- * 所属医院id
- */
@ApiModelProperty(value = "所属医院id")
private Long hospitalAgencyId;
- /**
- * 所属医院名称
- */
@ApiModelProperty(value = "所属医院名称")
private String hospitalAgencyName;
- /**
- * 所属院区id
- */
@ApiModelProperty(value = "所属院区id")
private Long campusAgencyId;
- /**
- * 所属院区名称
- */
@ApiModelProperty(value = "所属院区名称")
private String campusAgencyName;
- /**
- * 所属科室id
- */
@ApiModelProperty(value = "所属科室id")
private Long departmentId;
- /**
- * 所属科室名称
- */
@ApiModelProperty(value = "所属科室名称")
private String departmentName;
- /**
- * 所属病区id
- */
@ApiModelProperty(value = "所属病区id")
private Long wardId;
- /**
- * 所属病区名称
- */
@ApiModelProperty(value = "所属病区名称")
private String wardName;
- /**
- * 手术名称
- */
@ApiModelProperty(value = "手术名称")
private String surgicalName;
- /**
- * 入院时间,时间格式:yyyy-MM-dd
- */
@ApiModelProperty(value = "入院时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate admissionDate;
- /**
- * 出院时间(出院患者),时间格式:yyyy-MM-dd
- */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "出院时间(出院患者)")
private LocalDate dischargeDate;
- /**
- * 就诊方式,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL
- */
@ApiModelProperty(value = "就诊方式,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL")
private String visitMethod;
@@ -123,34 +75,28 @@ public class PatientTaskExecuteRecordVO extends PatientTaskExecuteRecord {
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate endDate;
- /**
- * 家属电话
- */
@ApiModelProperty(value = "家属电话")
private String familyMemberPhone;
- /**
- * 出生日期,格式:yyyy-MM-dd
- */
@ApiModelProperty(value = "出生日期,格式:yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthDate;
- /**
- * 身份证号
- */
@ApiModelProperty(value = "身份证号")
private String cardNo;
- /**
- * 性别,男:MALE,女:FEMALE
- */
@ApiModelProperty(value = "性别,男:MALE,女:FEMALE")
private String sex;
- /**
- * 住址
- */
@ApiModelProperty(value = "住址")
private String address;
+
+ @ApiModelProperty(value = "入院病历信息,存储患者入院的整个病历信息")
+ private String inHospitalInfo;
+
+ @ApiModelProperty(value = "出院病历信息,存储患者出院的整个病历信息")
+ private String outHospitalInfo;
+
+ @ApiModelProperty(value = "手术记录")
+ private String surgicalRecord;
}
diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml
index 3b94e350..4c5846e3 100644
--- a/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml
+++ b/postdischarge-manage/src/main/resources/mapper/manage/patienttaskexecuterecord/PatientTaskExecuteRecordMapper.xml
@@ -17,6 +17,7 @@
+
@@ -36,6 +37,7 @@
execute_person,
execute_type,
execute_remark,
+ visit_record_id,
create_by,
create_time,
update_by,
@@ -56,6 +58,9 @@
and manage_route_node_id = #{manageRouteNodeId}
+
+ and visit_record_id = #{visitRecordId}
+
and patient_name like concat('%', #{patientName}, '%')
@@ -96,7 +101,6 @@
pter.execute_time,
pter.execute_person,
pter.execute_type,
- pi.patient_phone,
pi.patient_type,
pi.visit_method,
pi.hospital_agency_name,
@@ -107,13 +111,9 @@
pi.admission_date,
pi.discharge_date,
pi.in_hospital_number,
- pi.family_member_phone,
- pi.birth_date,
- pi.card_no,
- pi.sex,
- pi.address
+ pi.patient_phone
from patient_task_execute_record pter
- left join patient_info pi ON pi.id = pter.patient_id
+ LEFT JOIN patient_info pi ON pi.id = pter.patient_id
where pi.del_flag = 0
and pi.patient_name = #{patientName}
@@ -181,6 +181,8 @@
update_time,
+ visit_record_id,
+
#{patientId},
@@ -213,6 +215,8 @@
#{updateTime},
+ #{visitRecordId},
+
@@ -228,6 +232,9 @@
manage_route_node_id =
#{manageRouteNodeId},
+
+ and visit_record_id = #{visitRecordId}
+
patient_name =
#{patientName},
@@ -280,4 +287,23 @@
#{id}
+
+
\ No newline at end of file