fix: 慢性病管理自测问题修复。
This commit is contained in:
@@ -145,6 +145,12 @@
|
|||||||
<artifactId>mybatis-plus-extension</artifactId>
|
<artifactId>mybatis-plus-extension</artifactId>
|
||||||
<version>3.5.5</version>
|
<version>3.5.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- PostgreSQL JDBC Driver -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -58,10 +58,10 @@ public class ChronicDiseaseRecordController extends BaseController
|
|||||||
*/
|
*/
|
||||||
@ApiOperation(value = "根据成员ID查询慢性疾病档案列表", response = ChronicDiseaseRecordVo.class)
|
@ApiOperation(value = "根据成员ID查询慢性疾病档案列表", response = ChronicDiseaseRecordVo.class)
|
||||||
@RequiresPermissions("health:chronicDisease:list")
|
@RequiresPermissions("health:chronicDisease:list")
|
||||||
@GetMapping("/listByMember/{memberId}")
|
@GetMapping({"/listByPerson/{personId}", "/listByMember/{personId}"})
|
||||||
public AjaxResult listByMember(@PathVariable("memberId") Long memberId)
|
public AjaxResult listByMember(@PathVariable("personId") Long personId)
|
||||||
{
|
{
|
||||||
List<ChronicDiseaseRecordVo> list = chronicDiseaseRecordService.selectChronicDiseaseRecordByMemberId(memberId);
|
List<ChronicDiseaseRecordVo> list = chronicDiseaseRecordService.selectChronicDiseaseRecordByMemberId(personId);
|
||||||
return success(list);
|
return success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.Map;
|
|||||||
* @date 2026-03-19
|
* @date 2026-03-19
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/health/adherence")
|
@RequestMapping("/adherence")
|
||||||
@Api(tags = "依从性统计")
|
@Api(tags = "依从性统计")
|
||||||
public class MedicationAdherenceController {
|
public class MedicationAdherenceController {
|
||||||
|
|
||||||
@@ -31,52 +31,52 @@ public class MedicationAdherenceController {
|
|||||||
@GetMapping("/overall")
|
@GetMapping("/overall")
|
||||||
@ApiOperation("获取总体依从性统计")
|
@ApiOperation("获取总体依从性统计")
|
||||||
public AjaxResult getOverallAdherence(
|
public AjaxResult getOverallAdherence(
|
||||||
@RequestParam(required = false) Long memberId,
|
@RequestParam(required = false) Long personId,
|
||||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
|
||||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
|
||||||
MedicationAdherenceVo vo = adherenceService.getOverallAdherence(memberId, startDate, endDate);
|
MedicationAdherenceVo vo = adherenceService.getOverallAdherence(personId, startDate, endDate);
|
||||||
return AjaxResult.success(vo);
|
return AjaxResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/daily")
|
@GetMapping("/daily")
|
||||||
@ApiOperation("获取每日依从性统计列表")
|
@ApiOperation("获取每日依从性统计列表")
|
||||||
public AjaxResult getDailyAdherenceList(
|
public AjaxResult getDailyAdherenceList(
|
||||||
@RequestParam(required = false) Long memberId,
|
@RequestParam(required = false) Long personId,
|
||||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
|
||||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
|
||||||
List<DailyAdherenceVo> list = adherenceService.getDailyAdherenceList(memberId, startDate, endDate);
|
List<DailyAdherenceVo> list = adherenceService.getDailyAdherenceList(personId, startDate, endDate);
|
||||||
return AjaxResult.success(list);
|
return AjaxResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/calendar")
|
@GetMapping("/calendar")
|
||||||
@ApiOperation("获取日历视图数据")
|
@ApiOperation("获取日历视图数据")
|
||||||
public AjaxResult getCalendarData(
|
public AjaxResult getCalendarData(
|
||||||
@RequestParam(required = false) Long memberId,
|
@RequestParam(required = false) Long personId,
|
||||||
@RequestParam String yearMonth) {
|
@RequestParam String yearMonth) {
|
||||||
List<DailyAdherenceVo> list = adherenceService.getCalendarData(memberId, yearMonth);
|
List<DailyAdherenceVo> list = adherenceService.getCalendarData(personId, yearMonth);
|
||||||
return AjaxResult.success(list);
|
return AjaxResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/timeSlot")
|
@GetMapping("/timeSlot")
|
||||||
@ApiOperation("获取各时段服药统计")
|
@ApiOperation("获取各时段服药统计")
|
||||||
public AjaxResult getTimeSlotAdherence(
|
public AjaxResult getTimeSlotAdherence(
|
||||||
@RequestParam(required = false) Long memberId,
|
@RequestParam(required = false) Long personId,
|
||||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
|
||||||
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
|
||||||
Map<String, MedicationAdherenceVo> map = adherenceService.getTimeSlotAdherence(memberId, startDate, endDate);
|
Map<String, MedicationAdherenceVo> map = adherenceService.getTimeSlotAdherence(personId, startDate, endDate);
|
||||||
return AjaxResult.success(map);
|
return AjaxResult.success(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/dashboard")
|
@GetMapping("/dashboard")
|
||||||
@ApiOperation("获取仪表盘概览数据")
|
@ApiOperation("获取仪表盘概览数据")
|
||||||
public AjaxResult getDashboard(@RequestParam(required = false) Long memberId) {
|
public AjaxResult getDashboard(@RequestParam(required = false) Long personId) {
|
||||||
LocalDate today = LocalDate.now();
|
LocalDate today = LocalDate.now();
|
||||||
LocalDate weekAgo = today.minusDays(7);
|
LocalDate weekAgo = today.minusDays(7);
|
||||||
|
|
||||||
Map<String, Object> result = new java.util.HashMap<>();
|
Map<String, Object> result = new java.util.HashMap<>();
|
||||||
result.put("overall", adherenceService.getOverallAdherence(memberId, weekAgo, today));
|
result.put("overall", adherenceService.getOverallAdherence(personId, weekAgo, today));
|
||||||
result.put("dailyTrend", adherenceService.getDailyAdherenceList(memberId, weekAgo, today));
|
result.put("dailyTrend", adherenceService.getDailyAdherenceList(personId, weekAgo, today));
|
||||||
result.put("timeSlot", adherenceService.getTimeSlotAdherence(memberId, weekAgo, today));
|
result.put("timeSlot", adherenceService.getTimeSlotAdherence(personId, weekAgo, today));
|
||||||
|
|
||||||
return AjaxResult.success(result);
|
return AjaxResult.success(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import java.util.List;
|
|||||||
* @date 2026-03-19
|
* @date 2026-03-19
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/health/medicationPlan")
|
@RequestMapping("/medicationPlan")
|
||||||
@Api(tags = "用药计划管理")
|
@Api(tags = "用药计划管理")
|
||||||
public class MedicationPlanController extends BaseController {
|
public class MedicationPlanController extends BaseController {
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import java.util.List;
|
|||||||
* @date 2026-03-19
|
* @date 2026-03-19
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/health/medicationTask")
|
@RequestMapping("/medicationTask")
|
||||||
@Api(tags = "服药任务管理")
|
@Api(tags = "服药任务管理")
|
||||||
public class MedicationTaskController extends BaseController {
|
public class MedicationTaskController extends BaseController {
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.intc.health.domain;
|
package com.intc.health.domain;
|
||||||
|
|
||||||
import com.intc.common.core.domain.BaseEntity;
|
import com.intc.common.core.web.domain.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -21,7 +21,7 @@ public class ChronicDiseaseRecord extends BaseEntity {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("疾病名称")
|
@ApiModelProperty("疾病名称")
|
||||||
private String diseaseName;
|
private String diseaseName;
|
||||||
@@ -47,6 +47,9 @@ public class ChronicDiseaseRecord extends BaseEntity {
|
|||||||
@ApiModelProperty("备注说明")
|
@ApiModelProperty("备注说明")
|
||||||
private String notes;
|
private String notes;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否启用:1-启用 0-禁用")
|
||||||
|
private Integer isActive;
|
||||||
|
|
||||||
@ApiModelProperty("删除标记:0-正常 1-删除")
|
@ApiModelProperty("删除标记:0-正常 1-删除")
|
||||||
private Integer delFlag;
|
private Integer delFlag;
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.intc.health.domain;
|
package com.intc.health.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.intc.common.core.domain.BaseEntity;
|
import com.intc.common.core.web.domain.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -25,7 +25,7 @@ public class MedicationPlan extends BaseEntity {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("关联慢性疾病ID")
|
@ApiModelProperty("关联慢性疾病ID")
|
||||||
private Long chronicDiseaseId;
|
private Long chronicDiseaseId;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.intc.health.domain;
|
package com.intc.health.domain;
|
||||||
|
|
||||||
import com.intc.common.core.domain.BaseEntity;
|
import com.intc.common.core.web.domain.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -29,7 +29,7 @@ public class MedicationTask extends BaseEntity {
|
|||||||
private Long planId;
|
private Long planId;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("药品名称")
|
@ApiModelProperty("药品名称")
|
||||||
private String medicineName;
|
private String medicineName;
|
||||||
|
|||||||
@@ -21,11 +21,7 @@ public class ChronicDiseaseRecordDto implements Serializable
|
|||||||
|
|
||||||
/** 关联成员ID */
|
/** 关联成员ID */
|
||||||
@ApiModelProperty(value = "关联成员ID")
|
@ApiModelProperty(value = "关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
/** 关联疾病ID */
|
|
||||||
@ApiModelProperty(value = "关联疾病ID")
|
|
||||||
private Long diseaseId;
|
|
||||||
|
|
||||||
/** 疾病名称 */
|
/** 疾病名称 */
|
||||||
@ApiModelProperty(value = "疾病名称")
|
@ApiModelProperty(value = "疾病名称")
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class MedicationPlanDto {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("关联慢性疾病ID")
|
@ApiModelProperty("关联慢性疾病ID")
|
||||||
private Long chronicDiseaseId;
|
private Long chronicDiseaseId;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class MedicationTaskDto {
|
|||||||
private Long planId;
|
private Long planId;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("药品名称")
|
@ApiModelProperty("药品名称")
|
||||||
private String medicineName;
|
private String medicineName;
|
||||||
|
|||||||
@@ -16,9 +16,7 @@ public class ChronicDiseaseRecordVo extends ChronicDiseaseRecord
|
|||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 疾病类型(来自health_diseases表) */
|
/** 成员姓名(来自health_person表) */
|
||||||
private String diseaseType;
|
private String personName;
|
||||||
|
|
||||||
/** 疾病症状(来自health_diseases表) */
|
|
||||||
private String diseaseSymptom;
|
|
||||||
}
|
}
|
||||||
@@ -23,10 +23,10 @@ public class MedicationPlanVo {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("成员名称")
|
@ApiModelProperty("成员名称")
|
||||||
private String memberName;
|
private String personName;
|
||||||
|
|
||||||
@ApiModelProperty("关联慢性疾病ID")
|
@ApiModelProperty("关联慢性疾病ID")
|
||||||
private Long chronicDiseaseId;
|
private Long chronicDiseaseId;
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ public class MedicationTaskVo {
|
|||||||
private String planName;
|
private String planName;
|
||||||
|
|
||||||
@ApiModelProperty("关联成员ID")
|
@ApiModelProperty("关联成员ID")
|
||||||
private Long memberId;
|
private Long personId;
|
||||||
|
|
||||||
@ApiModelProperty("成员名称")
|
@ApiModelProperty("成员名称")
|
||||||
private String memberName;
|
private String personName;
|
||||||
|
|
||||||
@ApiModelProperty("药品名称")
|
@ApiModelProperty("药品名称")
|
||||||
private String medicineName;
|
private String medicineName;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.intc.health.service.impl;
|
package com.intc.health.service.impl;
|
||||||
|
|
||||||
|
import com.intc.common.core.exception.ServiceException;
|
||||||
import com.intc.common.core.utils.DateUtils;
|
import com.intc.common.core.utils.DateUtils;
|
||||||
import com.intc.common.security.utils.SecurityUtils;
|
import com.intc.common.security.utils.SecurityUtils;
|
||||||
import com.intc.health.domain.MedicationPlan;
|
import com.intc.health.domain.MedicationPlan;
|
||||||
@@ -43,6 +44,18 @@ public class MedicationPlanServiceImpl implements IMedicationPlanService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int insert(MedicationPlan plan) {
|
public int insert(MedicationPlan plan) {
|
||||||
|
if (plan.getPersonId() == null) {
|
||||||
|
throw new ServiceException("关联成员ID不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getMedicineName() == null || plan.getMedicineName().isEmpty()) {
|
||||||
|
throw new ServiceException("药品名称不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getFrequencyType() == null) {
|
||||||
|
throw new ServiceException("频次类型不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getStartDate() == null) {
|
||||||
|
throw new ServiceException("开始日期不能为空");
|
||||||
|
}
|
||||||
plan.setStatus(1); // 默认执行中
|
plan.setStatus(1); // 默认执行中
|
||||||
plan.setDelFlag(0);
|
plan.setDelFlag(0);
|
||||||
plan.setCreateBy(SecurityUtils.getUsername());
|
plan.setCreateBy(SecurityUtils.getUsername());
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class MedicationRemindJob {
|
|||||||
*/
|
*/
|
||||||
private void sendReminder(MedicationTaskVo task) {
|
private void sendReminder(MedicationTaskVo task) {
|
||||||
log.info("发送提醒: 成员={}, 药品={}, 计划时间={} {}",
|
log.info("发送提醒: 成员={}, 药品={}, 计划时间={} {}",
|
||||||
task.getMemberName(), task.getMedicineName(),
|
task.getPersonName(), task.getMedicineName(),
|
||||||
task.getPlannedDate(), task.getPlannedTime());
|
task.getPlannedDate(), task.getPlannedTime());
|
||||||
|
|
||||||
// TODO: 实现消息推送
|
// TODO: 实现消息推送
|
||||||
@@ -106,7 +106,7 @@ public class MedicationRemindJob {
|
|||||||
*/
|
*/
|
||||||
private void sendOverdueReminder(MedicationTaskVo task) {
|
private void sendOverdueReminder(MedicationTaskVo task) {
|
||||||
log.warn("超时未服药: 成员={}, 药品={}, 计划时间={} {}",
|
log.warn("超时未服药: 成员={}, 药品={}, 计划时间={} {}",
|
||||||
task.getMemberName(), task.getMedicineName(),
|
task.getPersonName(), task.getMedicineName(),
|
||||||
task.getPlannedDate(), task.getPlannedTime());
|
task.getPlannedDate(), task.getPlannedTime());
|
||||||
|
|
||||||
// TODO: 实现超时提醒逻辑
|
// TODO: 实现超时提醒逻辑
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import javax.annotation.Resource;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.DayOfWeek;
|
import java.time.DayOfWeek;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
@@ -201,7 +202,7 @@ public class MedicationTaskJob {
|
|||||||
|
|
||||||
MedicationTask task = new MedicationTask();
|
MedicationTask task = new MedicationTask();
|
||||||
task.setPlanId(plan.getId());
|
task.setPlanId(plan.getId());
|
||||||
task.setMemberId(plan.getMemberId());
|
task.setPersonId(plan.getPersonId());
|
||||||
task.setMedicineName(plan.getMedicineName());
|
task.setMedicineName(plan.getMedicineName());
|
||||||
task.setPlannedDate(date);
|
task.setPlannedDate(date);
|
||||||
task.setPlannedTime(time);
|
task.setPlannedTime(time);
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<resultMap type="ChronicDiseaseRecordVo" id="ChronicDiseaseRecordResult">
|
<resultMap type="ChronicDiseaseRecordVo" id="ChronicDiseaseRecordResult">
|
||||||
<result property="id" column="id"/>
|
<result property="id" column="id"/>
|
||||||
<result property="memberId" column="member_id"/>
|
<result property="personId" column="person_id"/>
|
||||||
<result property="memberName" column="member_name"/>
|
<result property="personName" column="person_name"/>
|
||||||
<result property="diseaseId" column="disease_id"/>
|
|
||||||
<result property="diseaseName" column="disease_name"/>
|
<result property="diseaseName" column="disease_name"/>
|
||||||
<result property="diseaseCode" column="disease_code"/>
|
<result property="diseaseCode" column="disease_code"/>
|
||||||
<result property="diagnosisDate" column="diagnosis_date"/>
|
<result property="diagnosisDate" column="diagnosis_date"/>
|
||||||
@@ -24,31 +24,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="updateTime" column="update_time"/>
|
<result property="updateTime" column="update_time"/>
|
||||||
<result property="delFlag" column="del_flag"/>
|
<result property="delFlag" column="del_flag"/>
|
||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
<result property="diseaseType" column="disease_type"/>
|
|
||||||
<result property="diseaseSymptom" column="disease_symptom"/>
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectChronicDiseaseRecordVo">
|
<sql id="selectChronicDiseaseRecordVo">
|
||||||
select a.id, a.member_id, a.disease_id, a.disease_name, a.disease_code, a.diagnosis_date,
|
select a.id, a.person_id, a.disease_name, a.disease_code, a.diagnosis_date,
|
||||||
a.disease_status, a.main_doctor, a.hospital, a.department, a.notes, a.is_active,
|
a.disease_status, a.main_doctor, a.hospital, a.department, a.notes, a.is_active,
|
||||||
a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, a.remark,
|
a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, a.remark,
|
||||||
p.name as member_name,
|
p.name as person_name
|
||||||
d.type as disease_type,
|
|
||||||
d.symptom as disease_symptom
|
|
||||||
from chronic_disease_record a
|
from chronic_disease_record a
|
||||||
left join health_person p on a.member_id = p.id
|
left join health_person p on a.person_id = p.id
|
||||||
left join health_diseases d on a.disease_id = d.id
|
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectChronicDiseaseRecordList" parameterType="ChronicDiseaseRecordDto" resultMap="ChronicDiseaseRecordResult">
|
<select id="selectChronicDiseaseRecordList" parameterType="ChronicDiseaseRecordDto" resultMap="ChronicDiseaseRecordResult">
|
||||||
<include refid="selectChronicDiseaseRecordVo"/>
|
<include refid="selectChronicDiseaseRecordVo"/>
|
||||||
<where>
|
<where>
|
||||||
a.del_flag = '0'
|
a.del_flag = '0'
|
||||||
<if test="memberId != null">
|
<if test="personId != null">
|
||||||
and a.member_id = #{memberId}
|
and a.person_id = #{personId}
|
||||||
</if>
|
|
||||||
<if test="diseaseId != null">
|
|
||||||
and a.disease_id = #{diseaseId}
|
|
||||||
</if>
|
</if>
|
||||||
<if test="diseaseName != null and diseaseName != ''">
|
<if test="diseaseName != null and diseaseName != ''">
|
||||||
and a.disease_name like '%' || #{diseaseName} || '%'
|
and a.disease_name like '%' || #{diseaseName} || '%'
|
||||||
@@ -79,7 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<select id="selectChronicDiseaseRecordByMemberId" parameterType="Long" resultMap="ChronicDiseaseRecordResult">
|
<select id="selectChronicDiseaseRecordByMemberId" parameterType="Long" resultMap="ChronicDiseaseRecordResult">
|
||||||
<include refid="selectChronicDiseaseRecordVo"/>
|
<include refid="selectChronicDiseaseRecordVo"/>
|
||||||
where a.del_flag = '0' and a.is_active = 1 and a.member_id = #{memberId}
|
where a.del_flag = '0' and a.is_active = 1 and a.person_id = #{personId}
|
||||||
order by a.disease_status desc, a.create_time desc
|
order by a.disease_status desc, a.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -87,8 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
insert into chronic_disease_record
|
insert into chronic_disease_record
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="id != null">id,</if>
|
<if test="id != null">id,</if>
|
||||||
<if test="memberId != null">member_id,</if>
|
<if test="personId != null">person_id,</if>
|
||||||
<if test="diseaseId != null">disease_id,</if>
|
|
||||||
<if test="diseaseName != null and diseaseName != ''">disease_name,</if>
|
<if test="diseaseName != null and diseaseName != ''">disease_name,</if>
|
||||||
<if test="diseaseCode != null">disease_code,</if>
|
<if test="diseaseCode != null">disease_code,</if>
|
||||||
<if test="diagnosisDate != null">diagnosis_date,</if>
|
<if test="diagnosisDate != null">diagnosis_date,</if>
|
||||||
@@ -107,8 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="id != null">#{id},</if>
|
<if test="id != null">#{id},</if>
|
||||||
<if test="memberId != null">#{memberId},</if>
|
<if test="personId != null">#{personId},</if>
|
||||||
<if test="diseaseId != null">#{diseaseId},</if>
|
|
||||||
<if test="diseaseName != null and diseaseName != ''">#{diseaseName},</if>
|
<if test="diseaseName != null and diseaseName != ''">#{diseaseName},</if>
|
||||||
<if test="diseaseCode != null">#{diseaseCode},</if>
|
<if test="diseaseCode != null">#{diseaseCode},</if>
|
||||||
<if test="diagnosisDate != null">#{diagnosisDate},</if>
|
<if test="diagnosisDate != null">#{diagnosisDate},</if>
|
||||||
@@ -130,8 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<update id="updateChronicDiseaseRecord" parameterType="ChronicDiseaseRecord">
|
<update id="updateChronicDiseaseRecord" parameterType="ChronicDiseaseRecord">
|
||||||
update chronic_disease_record
|
update chronic_disease_record
|
||||||
<trim prefix="SET" suffixOverrides=",">
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
<if test="memberId != null">member_id = #{memberId},</if>
|
<if test="personId != null">person_id = #{personId},</if>
|
||||||
<if test="diseaseId != null">disease_id = #{diseaseId},</if>
|
|
||||||
<if test="diseaseName != null and diseaseName != ''">disease_name = #{diseaseName},</if>
|
<if test="diseaseName != null and diseaseName != ''">disease_name = #{diseaseName},</if>
|
||||||
<if test="diseaseCode != null">disease_code = #{diseaseCode},</if>
|
<if test="diseaseCode != null">disease_code = #{diseaseCode},</if>
|
||||||
<if test="diagnosisDate != null">diagnosis_date = #{diagnosisDate},</if>
|
<if test="diagnosisDate != null">diagnosis_date = #{diagnosisDate},</if>
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
<resultMap type="com.intc.health.domain.vo.MedicationPlanVo" id="MedicationPlanResult">
|
<resultMap type="com.intc.health.domain.vo.MedicationPlanVo" id="MedicationPlanResult">
|
||||||
<id property="id" column="id"/>
|
<id property="id" column="id"/>
|
||||||
<result property="memberId" column="member_id"/>
|
<result property="personId" column="person_id"/>
|
||||||
<result property="memberName" column="member_name"/>
|
<result property="personName" column="person_name"/>
|
||||||
<result property="chronicDiseaseId" column="chronic_disease_id"/>
|
<result property="chronicDiseaseId" column="chronic_disease_id"/>
|
||||||
<result property="chronicDiseaseName" column="chronic_disease_name"/>
|
<result property="chronicDiseaseName" column="chronic_disease_name"/>
|
||||||
<result property="planName" column="plan_name"/>
|
<result property="planName" column="plan_name"/>
|
||||||
@@ -28,14 +28,14 @@
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectVo">
|
<sql id="selectVo">
|
||||||
select a.id, a.member_id, p.name as member_name, a.chronic_disease_id,
|
select a.id, a.person_id, p.name as person_name, a.chronic_disease_id,
|
||||||
c.disease_name as chronic_disease_name, a.plan_name, a.medicine_id,
|
c.disease_name as chronic_disease_name, a.plan_name, a.medicine_id,
|
||||||
a.medicine_name, a.specification, a.dosage_per_time, a.dosage_unit,
|
a.medicine_name, a.specification, a.dosage_per_time, a.dosage_unit,
|
||||||
a.frequency_type, a.frequency_config, a.time_slots, a.start_date, a.end_date,
|
a.frequency_type, a.frequency_config, a.time_slots, a.start_date, a.end_date,
|
||||||
a.remind_enabled, a.remind_advance_min, a.notify_family, a.family_member_ids,
|
a.remind_enabled, a.remind_advance_min, a.notify_family, a.family_member_ids,
|
||||||
a.status, a.create_time
|
a.status, a.create_time
|
||||||
from medication_plan a
|
from medication_plan a
|
||||||
left join health_person p on a.member_id = p.id
|
left join health_person p on a.person_id = p.id
|
||||||
left join chronic_disease_record c on a.chronic_disease_id = c.id
|
left join chronic_disease_record c on a.chronic_disease_id = c.id
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<include refid="selectVo"/>
|
<include refid="selectVo"/>
|
||||||
<where>
|
<where>
|
||||||
a.del_flag = 0
|
a.del_flag = 0
|
||||||
<if test="memberId != null"> and a.member_id = #{memberId}</if>
|
<if test="personId != null"> and a.person_id = #{personId}</if>
|
||||||
<if test="chronicDiseaseId != null"> and a.chronic_disease_id = #{chronicDiseaseId}</if>
|
<if test="chronicDiseaseId != null"> and a.chronic_disease_id = #{chronicDiseaseId}</if>
|
||||||
<if test="planName != null and planName != ''"> and a.plan_name like '%' || #{planName} || '%'</if>
|
<if test="planName != null and planName != ''"> and a.plan_name like '%' || #{planName} || '%'</if>
|
||||||
<if test="medicineId != null"> and a.medicine_id = #{medicineId}</if>
|
<if test="medicineId != null"> and a.medicine_id = #{medicineId}</if>
|
||||||
@@ -71,29 +71,61 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insert" parameterType="com.intc.health.domain.MedicationPlan" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insert" parameterType="com.intc.health.domain.MedicationPlan" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into medication_plan (
|
insert into medication_plan
|
||||||
member_id, chronic_disease_id, plan_name, medicine_id, medicine_name,
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
specification, dosage_per_time, dosage_unit, frequency_type,
|
<if test="personId != null">person_id,</if>
|
||||||
frequency_config, time_slots, start_date, end_date,
|
<if test="chronicDiseaseId != null">chronic_disease_id,</if>
|
||||||
remind_enabled, remind_advance_min, notify_family, family_member_ids, status,
|
<if test="planName != null and planName != ''">plan_name,</if>
|
||||||
create_by, create_time, remark, del_flag
|
<if test="medicineId != null">medicine_id,</if>
|
||||||
) values (
|
<if test="medicineName != null">medicine_name,</if>
|
||||||
#{memberId}, #{chronicDiseaseId}, #{planName}, #{medicineId}, #{medicineName},
|
<if test="specification != null">specification,</if>
|
||||||
#{specification}, #{dosagePerTime}, #{dosageUnit}, #{frequencyType},
|
<if test="dosagePerTime != null">dosage_per_time,</if>
|
||||||
#{frequencyConfig, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},
|
<if test="dosageUnit != null">dosage_unit,</if>
|
||||||
#{timeSlots, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},
|
<if test="frequencyType != null">frequency_type,</if>
|
||||||
#{startDate}, #{endDate},
|
<if test="frequencyConfig != null">frequency_config,</if>
|
||||||
#{remindEnabled}, #{remindAdvanceMin}, #{notifyFamily},
|
<if test="timeSlots != null">time_slots,</if>
|
||||||
#{familyMemberIds, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},
|
<if test="startDate != null">start_date,</if>
|
||||||
#{status},
|
<if test="endDate != null">end_date,</if>
|
||||||
#{createBy}, #{createTime}, #{remark}, 0
|
<if test="remindEnabled != null">remind_enabled,</if>
|
||||||
)
|
<if test="remindAdvanceMin != null">remind_advance_min,</if>
|
||||||
|
<if test="notifyFamily != null">notify_family,</if>
|
||||||
|
<if test="familyMemberIds != null">family_member_ids,</if>
|
||||||
|
<if test="status != null">status,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
del_flag,
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="personId != null">#{personId},</if>
|
||||||
|
<if test="chronicDiseaseId != null">#{chronicDiseaseId},</if>
|
||||||
|
<if test="planName != null and planName != ''">#{planName},</if>
|
||||||
|
<if test="medicineId != null">#{medicineId},</if>
|
||||||
|
<if test="medicineName != null">#{medicineName},</if>
|
||||||
|
<if test="specification != null">#{specification},</if>
|
||||||
|
<if test="dosagePerTime != null">#{dosagePerTime},</if>
|
||||||
|
<if test="dosageUnit != null">#{dosageUnit},</if>
|
||||||
|
<if test="frequencyType != null">#{frequencyType},</if>
|
||||||
|
<if test="frequencyConfig != null">#{frequencyConfig, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},</if>
|
||||||
|
<if test="timeSlots != null">#{timeSlots, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},</if>
|
||||||
|
<if test="startDate != null">#{startDate},</if>
|
||||||
|
<if test="endDate != null">#{endDate},</if>
|
||||||
|
<if test="remindEnabled != null">#{remindEnabled},</if>
|
||||||
|
<if test="remindAdvanceMin != null">#{remindAdvanceMin},</if>
|
||||||
|
<if test="notifyFamily != null">#{notifyFamily},</if>
|
||||||
|
<if test="familyMemberIds != null">#{familyMemberIds, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},</if>
|
||||||
|
<if test="status != null">#{status},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
0,
|
||||||
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="update" parameterType="com.intc.health.domain.MedicationPlan">
|
<update id="update" parameterType="com.intc.health.domain.MedicationPlan">
|
||||||
update medication_plan
|
update medication_plan
|
||||||
<set>
|
<set>
|
||||||
<if test="memberId != null">member_id = #{memberId},</if>
|
<if test="personId != null">person_id = #{personId},</if>
|
||||||
<if test="chronicDiseaseId != null">chronic_disease_id = #{chronicDiseaseId},</if>
|
<if test="chronicDiseaseId != null">chronic_disease_id = #{chronicDiseaseId},</if>
|
||||||
<if test="planName != null">plan_name = #{planName},</if>
|
<if test="planName != null">plan_name = #{planName},</if>
|
||||||
<if test="medicineId != null">medicine_id = #{medicineId},</if>
|
<if test="medicineId != null">medicine_id = #{medicineId},</if>
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<id property="id" column="id"/>
|
<id property="id" column="id"/>
|
||||||
<result property="planId" column="plan_id"/>
|
<result property="planId" column="plan_id"/>
|
||||||
<result property="planName" column="plan_name"/>
|
<result property="planName" column="plan_name"/>
|
||||||
<result property="memberId" column="member_id"/>
|
<result property="personId" column="person_id"/>
|
||||||
<result property="memberName" column="member_name"/>
|
<result property="personName" column="person_name"/>
|
||||||
<result property="medicineName" column="medicine_name"/>
|
<result property="medicineName" column="medicine_name"/>
|
||||||
<result property="plannedDate" column="planned_date"/>
|
<result property="plannedDate" column="planned_date"/>
|
||||||
<result property="plannedTime" column="planned_time"/>
|
<result property="plannedTime" column="planned_time"/>
|
||||||
@@ -23,13 +23,13 @@
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectVo">
|
<sql id="selectVo">
|
||||||
select a.id, a.plan_id, p.plan_name, a.member_id, m.name as member_name,
|
select a.id, a.plan_id, p.plan_name, a.person_id, m.name as person_name,
|
||||||
a.medicine_name, a.planned_date, a.planned_time, a.planned_dosage,
|
a.medicine_name, a.planned_date, a.planned_time, a.planned_dosage,
|
||||||
a.actual_time, a.actual_dosage, a.status, a.confirm_type, a.notes,
|
a.actual_time, a.actual_dosage, a.status, a.confirm_type, a.notes,
|
||||||
a.remind_status, a.remind_time, a.create_time
|
a.remind_status, a.remind_time, a.create_time
|
||||||
from medication_task a
|
from medication_task a
|
||||||
left join medication_plan p on a.plan_id = p.id
|
left join medication_plan p on a.plan_id = p.id
|
||||||
left join health_person m on a.member_id = m.id
|
left join health_person m on a.person_id = m.id
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectById" parameterType="Long" resultMap="MedicationTaskResult">
|
<select id="selectById" parameterType="Long" resultMap="MedicationTaskResult">
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<where>
|
<where>
|
||||||
a.del_flag = 0
|
a.del_flag = 0
|
||||||
<if test="planId != null"> and a.plan_id = #{planId}</if>
|
<if test="planId != null"> and a.plan_id = #{planId}</if>
|
||||||
<if test="memberId != null"> and a.member_id = #{memberId}</if>
|
<if test="personId != null"> and a.person_id = #{personId}</if>
|
||||||
<if test="medicineName != null and medicineName != ''"> and a.medicine_name like '%' || #{medicineName} || '%'</if>
|
<if test="medicineName != null and medicineName != ''"> and a.medicine_name like '%' || #{medicineName} || '%'</if>
|
||||||
<if test="status != null"> and a.status = #{status}</if>
|
<if test="status != null"> and a.status = #{status}</if>
|
||||||
<if test="plannedDateBegin != null"> and a.planned_date >= #{plannedDateBegin}</if>
|
<if test="plannedDateBegin != null"> and a.planned_date >= #{plannedDateBegin}</if>
|
||||||
@@ -57,11 +57,11 @@
|
|||||||
|
|
||||||
<insert id="insert" parameterType="com.intc.health.domain.MedicationTask" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insert" parameterType="com.intc.health.domain.MedicationTask" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into medication_task (
|
insert into medication_task (
|
||||||
plan_id, member_id, medicine_name, planned_date, planned_time,
|
plan_id, person_id, medicine_name, planned_date, planned_time,
|
||||||
planned_dosage, actual_time, actual_dosage, status, confirm_type,
|
planned_dosage, actual_time, actual_dosage, status, confirm_type,
|
||||||
notes, remind_status, remind_time, create_by, create_time, remark, del_flag
|
notes, remind_status, remind_time, create_by, create_time, remark, del_flag
|
||||||
) values (
|
) values (
|
||||||
#{planId}, #{memberId}, #{medicineName}, #{plannedDate}, #{plannedTime},
|
#{planId}, #{personId}, #{medicineName}, #{plannedDate}, #{plannedTime},
|
||||||
#{plannedDosage}, #{actualTime}, #{actualDosage}, #{status}, #{confirmType},
|
#{plannedDosage}, #{actualTime}, #{actualDosage}, #{status}, #{confirmType},
|
||||||
#{notes}, #{remindStatus}, #{remindTime}, #{createBy}, #{createTime}, #{remark}, 0
|
#{notes}, #{remindStatus}, #{remindTime}, #{createBy}, #{createTime}, #{remark}, 0
|
||||||
)
|
)
|
||||||
@@ -69,11 +69,11 @@
|
|||||||
|
|
||||||
<insert id="batchInsert" parameterType="java.util.List">
|
<insert id="batchInsert" parameterType="java.util.List">
|
||||||
insert into medication_task (
|
insert into medication_task (
|
||||||
plan_id, member_id, medicine_name, planned_date, planned_time,
|
plan_id, person_id, medicine_name, planned_date, planned_time,
|
||||||
planned_dosage, status, remind_status, create_time, del_flag
|
planned_dosage, status, remind_status, create_time, del_flag
|
||||||
) values
|
) values
|
||||||
<foreach collection="list" item="item" separator=",">
|
<foreach collection="list" item="item" separator=",">
|
||||||
(#{item.planId}, #{item.memberId}, #{item.medicineName}, #{item.plannedDate}, #{item.plannedTime},
|
(#{item.planId}, #{item.personId}, #{item.medicineName}, #{item.plannedDate}, #{item.plannedTime},
|
||||||
#{item.plannedDosage}, #{item.status}, #{item.remindStatus}, #{item.createTime}, 0)
|
#{item.plannedDosage}, #{item.status}, #{item.remindStatus}, #{item.createTime}, 0)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
then 1 else 0 end) as ontime_tasks
|
then 1 else 0 end) as ontime_tasks
|
||||||
from medication_task
|
from medication_task
|
||||||
where del_flag = 0
|
where del_flag = 0
|
||||||
<if test="memberId != null"> and member_id = #{memberId}</if>
|
<if test="personId != null"> and person_id = #{personId}</if>
|
||||||
<if test="startDate != null"> and planned_date >= #{startDate}</if>
|
<if test="startDate != null"> and planned_date >= #{startDate}</if>
|
||||||
<if test="endDate != null"> and planned_date <= #{endDate}</if>
|
<if test="endDate != null"> and planned_date <= #{endDate}</if>
|
||||||
</select>
|
</select>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
then 1 else 0 end) as ontime_tasks
|
then 1 else 0 end) as ontime_tasks
|
||||||
from medication_task
|
from medication_task
|
||||||
where del_flag = 0
|
where del_flag = 0
|
||||||
<if test="memberId != null"> and member_id = #{memberId}</if>
|
<if test="personId != null"> and person_id = #{personId}</if>
|
||||||
<if test="startDate != null"> and planned_date >= #{startDate}</if>
|
<if test="startDate != null"> and planned_date >= #{startDate}</if>
|
||||||
<if test="endDate != null"> and planned_date <= #{endDate}</if>
|
<if test="endDate != null"> and planned_date <= #{endDate}</if>
|
||||||
group by planned_date
|
group by planned_date
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
then 1 else 0 end) as ontime_tasks
|
then 1 else 0 end) as ontime_tasks
|
||||||
from medication_task
|
from medication_task
|
||||||
where del_flag = 0
|
where del_flag = 0
|
||||||
<if test="memberId != null"> and member_id = #{memberId}</if>
|
<if test="personId != null"> and person_id = #{personId}</if>
|
||||||
<if test="startDate != null"> and planned_date >= #{startDate}</if>
|
<if test="startDate != null"> and planned_date >= #{startDate}</if>
|
||||||
<if test="endDate != null"> and planned_date <= #{endDate}</if>
|
<if test="endDate != null"> and planned_date <= #{endDate}</if>
|
||||||
group by extract(hour from planned_time)
|
group by extract(hour from planned_time)
|
||||||
|
|||||||
Reference in New Issue
Block a user