From 523a64daf09cbc9e75ab31856f75a2ba7c7c8ae5 Mon Sep 17 00:00:00 2001 From: chenqi Date: Fri, 19 Jun 2026 10:29:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(miniprogram):=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E6=8A=A4=E7=90=86=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=90=8E=E7=AB=AF?= =?UTF-8?q?API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 MpNursingTask 实体 + Mapper + Service - 新增 MpVitalSignRecord 实体 + Mapper + Service - 新增 MpAssessmentRecord 实体 + Mapper + Service - 新增 IMpNursingAppService 7个API接口 - 新增 MpNursingController 7个REST端点 - 新增 V90 Flyway迁移(3张表) - 所有接口加 @PreAuthorize 权限控制 --- .../appservice/IMpNursingAppService.java | 57 ++++++ .../impl/MpNursingAppServiceImpl.java | 171 ++++++++++++++++++ .../controller/MpNursingController.java | 80 ++++++++ .../miniprogram/dto/AssessmentSubmitDto.java | 31 ++++ .../web/miniprogram/dto/PatientInfoDto.java | 32 ++++ .../web/miniprogram/dto/TaskCompleteDto.java | 14 ++ .../miniprogram/dto/VitalSignSubmitDto.java | 37 ++++ .../db/migration/V90__miniprogram_nursing.sql | 93 ++++++++++ .../miniprogram/MpAssessmentRecordMapper.xml | 15 ++ .../miniprogram/MpNursingTaskMapper.xml | 24 +++ .../miniprogram/MpVitalSignRecordMapper.xml | 18 ++ .../domain/MpAssessmentRecord.java | 43 +++++ .../his/miniprogram/domain/MpNursingTask.java | 41 +++++ .../miniprogram/domain/MpVitalSignRecord.java | 49 +++++ .../mapper/MpAssessmentRecordMapper.java | 17 ++ .../mapper/MpNursingTaskMapper.java | 18 ++ .../mapper/MpVitalSignRecordMapper.java | 18 ++ .../service/IMpAssessmentRecordService.java | 10 + .../service/IMpNursingTaskService.java | 10 + .../service/IMpVitalSignRecordService.java | 10 + .../impl/MpAssessmentRecordServiceImpl.java | 15 ++ .../impl/MpNursingTaskServiceImpl.java | 15 ++ .../impl/MpVitalSignRecordServiceImpl.java | 15 ++ 23 files changed, 833 insertions(+) create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/IMpNursingAppService.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/impl/MpNursingAppServiceImpl.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/controller/MpNursingController.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/AssessmentSubmitDto.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/PatientInfoDto.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/TaskCompleteDto.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/VitalSignSubmitDto.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V90__miniprogram_nursing.sql create mode 100644 healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpAssessmentRecordMapper.xml create mode 100644 healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpNursingTaskMapper.xml create mode 100644 healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpVitalSignRecordMapper.xml create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpAssessmentRecord.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpNursingTask.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpVitalSignRecord.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpAssessmentRecordMapper.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpNursingTaskMapper.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpVitalSignRecordMapper.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpAssessmentRecordService.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpNursingTaskService.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpVitalSignRecordService.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpAssessmentRecordServiceImpl.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpNursingTaskServiceImpl.java create mode 100644 healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpVitalSignRecordServiceImpl.java diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/IMpNursingAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/IMpNursingAppService.java new file mode 100644 index 000000000..c35571c72 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/IMpNursingAppService.java @@ -0,0 +1,57 @@ +package com.healthlink.his.web.miniprogram.appservice; + +import com.core.common.core.domain.R; +import com.healthlink.his.web.miniprogram.dto.AssessmentSubmitDto; +import com.healthlink.his.web.miniprogram.dto.TaskCompleteDto; +import com.healthlink.his.web.miniprogram.dto.VitalSignSubmitDto; + +/** + * 移动护理小程序 AppService + */ +public interface IMpNursingAppService { + + /** + * 获取护士任务列表 + * @param nurseId 护士ID + * @param status 任务状态(可选) + */ + R getTaskList(Long nurseId, String status); + + /** + * 完成任务 + * @param taskId 任务ID + * @param dto 完成结果 + */ + R completeTask(Long taskId, TaskCompleteDto dto); + + /** + * 获取患者信息(精简版) + * @param patientId 患者ID + */ + R getPatientInfo(Long patientId); + + /** + * 获取生命体征趋势 + * @param patientId 患者ID + * @param days 查询天数(默认7天) + */ + R getVitalSigns(Long patientId, Integer days); + + /** + * 录入生命体征 + * @param dto 体征数据 + */ + R submitVitalSign(VitalSignSubmitDto dto); + + /** + * 获取评估记录列表 + * @param patientId 患者ID + */ + R getAssessmentList(Long patientId); + + /** + * 提交护理评估 + * @param dto 评估数据 + */ + R submitAssessment(AssessmentSubmitDto dto); +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/impl/MpNursingAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/impl/MpNursingAppServiceImpl.java new file mode 100644 index 000000000..402e2621b --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/appservice/impl/MpNursingAppServiceImpl.java @@ -0,0 +1,171 @@ +package com.healthlink.his.web.miniprogram.appservice.impl; + +import com.core.common.core.domain.R; +import com.healthlink.his.miniprogram.domain.MpAssessmentRecord; +import com.healthlink.his.miniprogram.domain.MpNursingTask; +import com.healthlink.his.miniprogram.domain.MpVitalSignRecord; +import com.healthlink.his.miniprogram.mapper.MpAssessmentRecordMapper; +import com.healthlink.his.miniprogram.mapper.MpNursingTaskMapper; +import com.healthlink.his.miniprogram.mapper.MpVitalSignRecordMapper; +import com.healthlink.his.miniprogram.service.IMpAssessmentRecordService; +import com.healthlink.his.miniprogram.service.IMpNursingTaskService; +import com.healthlink.his.miniprogram.service.IMpVitalSignRecordService; +import com.healthlink.his.web.miniprogram.appservice.IMpNursingAppService; +import com.healthlink.his.web.miniprogram.dto.AssessmentSubmitDto; +import com.healthlink.his.web.miniprogram.dto.TaskCompleteDto; +import com.healthlink.his.web.miniprogram.dto.VitalSignSubmitDto; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import jakarta.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * 移动护理小程序 AppService实现 + */ +@Slf4j +@Service +public class MpNursingAppServiceImpl implements IMpNursingAppService { + + @Resource + private IMpNursingTaskService nursingTaskService; + + @Resource + private MpNursingTaskMapper nursingTaskMapper; + + @Resource + private IMpVitalSignRecordService vitalSignRecordService; + + @Resource + private MpVitalSignRecordMapper vitalSignRecordMapper; + + @Resource + private IMpAssessmentRecordService assessmentRecordService; + + @Resource + private MpAssessmentRecordMapper assessmentRecordMapper; + + @Override + @Transactional(readOnly = true) + public R getTaskList(Long nurseId, String status) { + List tasks = nursingTaskMapper.selectTaskListByNurse(nurseId, status); + long pendingCount = tasks.stream().filter(t -> "PENDING".equals(t.getTaskStatus())).count(); + long inProgressCount = tasks.stream().filter(t -> "IN_PROGRESS".equals(t.getTaskStatus())).count(); + long completedCount = tasks.stream().filter(t -> "COMPLETED".equals(t.getTaskStatus())).count(); + + return R.ok(Map.of( + "tasks", tasks, + "summary", Map.of( + "pending", pendingCount, + "inProgress", inProgressCount, + "completed", completedCount, + "total", tasks.size() + ) + )); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R completeTask(Long taskId, TaskCompleteDto dto) { + MpNursingTask task = nursingTaskService.getById(taskId); + if (task == null) { + return R.fail("任务不存在"); + } + if ("COMPLETED".equals(task.getTaskStatus())) { + return R.fail("任务已完成"); + } + + task.setTaskStatus("COMPLETED"); + task.setCompleteTime(LocalDateTime.now()); + nursingTaskService.updateById(task); + + log.info("任务完成: taskId={}, nurseId={}, result={}", taskId, task.getNurseId(), dto.getResult()); + return R.ok("任务已完成"); + } + + @Override + @Transactional(readOnly = true) + public R getPatientInfo(Long patientId) { + return R.ok(Map.of( + "patientId", patientId, + "message", "患者信息查询待接入基础数据模块" + )); + } + + @Override + @Transactional(readOnly = true) + public R getVitalSigns(Long patientId, Integer days) { + if (days == null || days <= 0) { + days = 7; + } + List records = vitalSignRecordMapper.selectByPatientId(patientId, days); + return R.ok(records); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R submitVitalSign(VitalSignSubmitDto dto) { + if (dto.getPatientId() == null || dto.getNurseId() == null) { + return R.fail("患者ID和护士ID不能为空"); + } + if (dto.getRecordTime() == null) { + dto.setRecordTime(LocalDateTime.now()); + } + + MpVitalSignRecord record = new MpVitalSignRecord(); + record.setPatientId(dto.getPatientId()); + record.setEncounterId(dto.getEncounterId()); + record.setNurseId(dto.getNurseId()); + record.setRecordTime(dto.getRecordTime()); + record.setTemperature(dto.getTemperature()); + record.setPulse(dto.getPulse()); + record.setRespiration(dto.getRespiration()); + record.setSystolicBp(dto.getSystolicBp()); + record.setDiastolicBp(dto.getDiastolicBp()); + record.setBloodOxygen(dto.getBloodOxygen()); + record.setHeight(dto.getHeight()); + record.setWeight(dto.getWeight()); + + vitalSignRecordService.save(record); + log.info("生命体征录入: patientId={}, nurseId={}, recordId={}", + dto.getPatientId(), dto.getNurseId(), record.getId()); + return R.ok(Map.of("recordId", record.getId())); + } + + @Override + @Transactional(readOnly = true) + public R getAssessmentList(Long patientId) { + List records = assessmentRecordMapper.selectByPatientId(patientId); + return R.ok(records); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R submitAssessment(AssessmentSubmitDto dto) { + if (dto.getPatientId() == null || dto.getNurseId() == null || dto.getAssessmentType() == null) { + return R.fail("患者ID、护士ID和评估类型不能为空"); + } + if (dto.getRecordTime() == null) { + dto.setRecordTime(LocalDateTime.now()); + } + + MpAssessmentRecord record = new MpAssessmentRecord(); + record.setPatientId(dto.getPatientId()); + record.setEncounterId(dto.getEncounterId()); + record.setNurseId(dto.getNurseId()); + record.setAssessmentType(dto.getAssessmentType()); + record.setAssessmentContent(dto.getAssessmentContent()); + record.setAssessmentResult(dto.getAssessmentResult()); + record.setScore(dto.getScore()); + record.setRiskLevel(dto.getRiskLevel()); + record.setRecordTime(dto.getRecordTime()); + + assessmentRecordService.save(record); + log.info("护理评估提交: patientId={}, type={}, recordId={}", + dto.getPatientId(), dto.getAssessmentType(), record.getId()); + return R.ok(Map.of("recordId", record.getId())); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/controller/MpNursingController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/controller/MpNursingController.java new file mode 100644 index 000000000..3c59dcdaa --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/controller/MpNursingController.java @@ -0,0 +1,80 @@ +package com.healthlink.his.web.miniprogram.controller; + +import com.core.common.core.domain.R; +import com.healthlink.his.web.miniprogram.appservice.IMpNursingAppService; +import com.healthlink.his.web.miniprogram.dto.AssessmentSubmitDto; +import com.healthlink.his.web.miniprogram.dto.TaskCompleteDto; +import com.healthlink.his.web.miniprogram.dto.VitalSignSubmitDto; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +/** + * 移动护理小程序 Controller + */ +@Slf4j +@Tag(name = "移动护理小程序") +@RestController +@RequestMapping("/mp/nursing") +public class MpNursingController { + + private final IMpNursingAppService mpNursingAppService; + + public MpNursingController(IMpNursingAppService mpNursingAppService) { + this.mpNursingAppService = mpNursingAppService; + } + + @Operation(summary = "获取护士任务列表") + @PreAuthorize("@ss.hasPermi('nursing:nursing:list')") + @GetMapping("/tasks") + public R getTaskList(@RequestParam Long nurseId, + @RequestParam(required = false) String status) { + return mpNursingAppService.getTaskList(nurseId, status); + } + + @Operation(summary = "完成任务") + @PreAuthorize("@ss.hasPermi('nursing:nursing:edit')") + @PostMapping("/tasks/{id}/complete") + public R completeTask(@PathVariable Long id, + @RequestBody TaskCompleteDto dto) { + return mpNursingAppService.completeTask(id, dto); + } + + @Operation(summary = "获取患者信息") + @PreAuthorize("@ss.hasPermi('nursing:nursing:list')") + @GetMapping("/patient/{id}") + public R getPatientInfo(@PathVariable Long id) { + return mpNursingAppService.getPatientInfo(id); + } + + @Operation(summary = "获取生命体征趋势") + @PreAuthorize("@ss.hasPermi('nursing:nursing:list')") + @GetMapping("/vital-signs/{patientId}") + public R getVitalSigns(@PathVariable Long patientId, + @RequestParam(required = false, defaultValue = "7") Integer days) { + return mpNursingAppService.getVitalSigns(patientId, days); + } + + @Operation(summary = "录入生命体征") + @PreAuthorize("@ss.hasPermi('nursing:nursing:edit')") + @PostMapping("/vital-sign") + public R submitVitalSign(@RequestBody VitalSignSubmitDto dto) { + return mpNursingAppService.submitVitalSign(dto); + } + + @Operation(summary = "获取评估记录列表") + @PreAuthorize("@ss.hasPermi('nursing:nursing:list')") + @GetMapping("/assessments/{patientId}") + public R getAssessmentList(@PathVariable Long patientId) { + return mpNursingAppService.getAssessmentList(patientId); + } + + @Operation(summary = "提交护理评估") + @PreAuthorize("@ss.hasPermi('nursing:nursing:edit')") + @PostMapping("/assessment") + public R submitAssessment(@RequestBody AssessmentSubmitDto dto) { + return mpNursingAppService.submitAssessment(dto); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/AssessmentSubmitDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/AssessmentSubmitDto.java new file mode 100644 index 000000000..dedcf03cc --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/AssessmentSubmitDto.java @@ -0,0 +1,31 @@ +package com.healthlink.his.web.miniprogram.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 护理评估提交请求DTO + */ +@Data +public class AssessmentSubmitDto { + + private Long patientId; + + private Long encounterId; + + private Long nurseId; + + private String assessmentType; + + private String assessmentContent; + + private String assessmentResult; + + private BigDecimal score; + + private String riskLevel; + + private LocalDateTime recordTime; +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/PatientInfoDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/PatientInfoDto.java new file mode 100644 index 000000000..659a3fc0e --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/PatientInfoDto.java @@ -0,0 +1,32 @@ +package com.healthlink.his.web.miniprogram.dto; + +import lombok.Data; + +import java.time.LocalDate; + +/** + * 患者信息精简版DTO + */ +@Data +public class PatientInfoDto { + + private Long id; + + private String patientName; + + private String gender; + + private LocalDate birthDate; + + private String medicalNo; + + private String phone; + + private String departmentName; + + private String bedNo; + + private String diagnosis; + + private String nurseLevel; +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/TaskCompleteDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/TaskCompleteDto.java new file mode 100644 index 000000000..441b45464 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/TaskCompleteDto.java @@ -0,0 +1,14 @@ +package com.healthlink.his.web.miniprogram.dto; + +import lombok.Data; + +/** + * 任务完成请求DTO + */ +@Data +public class TaskCompleteDto { + + private String result; + + private String remark; +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/VitalSignSubmitDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/VitalSignSubmitDto.java new file mode 100644 index 000000000..d984e6d7f --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/miniprogram/dto/VitalSignSubmitDto.java @@ -0,0 +1,37 @@ +package com.healthlink.his.web.miniprogram.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 生命体征录入请求DTO + */ +@Data +public class VitalSignSubmitDto { + + private Long patientId; + + private Long encounterId; + + private Long nurseId; + + private LocalDateTime recordTime; + + private BigDecimal temperature; + + private Integer pulse; + + private Integer respiration; + + private Integer systolicBp; + + private Integer diastolicBp; + + private BigDecimal bloodOxygen; + + private BigDecimal height; + + private BigDecimal weight; +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V90__miniprogram_nursing.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V90__miniprogram_nursing.sql new file mode 100644 index 000000000..d9c9b2a33 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V90__miniprogram_nursing.sql @@ -0,0 +1,93 @@ +-- 移动护理小程序 - 护理任务表 +CREATE TABLE IF NOT EXISTS mp_nursing_task ( + id BIGSERIAL PRIMARY KEY, + patient_id BIGINT NOT NULL, + encounter_id BIGINT NOT NULL, + nurse_id BIGINT NOT NULL, + task_type VARCHAR(32) NOT NULL, + task_content TEXT, + task_status VARCHAR(20) DEFAULT 'PENDING', + due_time TIMESTAMP, + complete_time TIMESTAMP, + tenant_id BIGINT DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + create_by VARCHAR(64) +); + +COMMENT ON TABLE mp_nursing_task IS '移动护理-护理任务'; +COMMENT ON COLUMN mp_nursing_task.id IS '主键ID'; +COMMENT ON COLUMN mp_nursing_task.patient_id IS '患者ID'; +COMMENT ON COLUMN mp_nursing_task.encounter_id IS '就诊ID'; +COMMENT ON COLUMN mp_nursing_task.nurse_id IS '护士ID'; +COMMENT ON COLUMN mp_nursing_task.task_type IS '任务类型'; +COMMENT ON COLUMN mp_nursing_task.task_content IS '任务内容'; +COMMENT ON COLUMN mp_nursing_task.task_status IS '任务状态: PENDING/IN_PROGRESS/COMPLETED/CANCELLED'; +COMMENT ON COLUMN mp_nursing_task.due_time IS '截止时间'; +COMMENT ON COLUMN mp_nursing_task.complete_time IS '完成时间'; + +-- 移动护理小程序 - 生命体征记录表 +CREATE TABLE IF NOT EXISTS mp_vital_sign_record ( + id BIGSERIAL PRIMARY KEY, + patient_id BIGINT NOT NULL, + encounter_id BIGINT NOT NULL, + nurse_id BIGINT NOT NULL, + record_time TIMESTAMP NOT NULL, + temperature DECIMAL(4,1), + pulse INTEGER, + respiration INTEGER, + systolic_bp INTEGER, + diastolic_bp INTEGER, + blood_oxygen DECIMAL(5,2), + height DECIMAL(5,1), + weight DECIMAL(5,1), + tenant_id BIGINT DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + create_by VARCHAR(64) +); + +COMMENT ON TABLE mp_vital_sign_record IS '移动护理-生命体征记录'; +COMMENT ON COLUMN mp_vital_sign_record.id IS '主键ID'; +COMMENT ON COLUMN mp_vital_sign_record.patient_id IS '患者ID'; +COMMENT ON COLUMN mp_vital_sign_record.encounter_id IS '就诊ID'; +COMMENT ON COLUMN mp_vital_sign_record.nurse_id IS '记录护士ID'; +COMMENT ON COLUMN mp_vital_sign_record.record_time IS '记录时间'; +COMMENT ON COLUMN mp_vital_sign_record.temperature IS '体温(℃)'; +COMMENT ON COLUMN mp_vital_sign_record.pulse IS '脉搏(次/分)'; +COMMENT ON COLUMN mp_vital_sign_record.respiration IS '呼吸(次/分)'; +COMMENT ON COLUMN mp_vital_sign_record.systolic_bp IS '收缩压(mmHg)'; +COMMENT ON COLUMN mp_vital_sign_record.diastolic_bp IS '舒张压(mmHg)'; +COMMENT ON COLUMN mp_vital_sign_record.blood_oxygen IS '血氧饱和度(%)'; +COMMENT ON COLUMN mp_vital_sign_record.height IS '身高(cm)'; +COMMENT ON COLUMN mp_vital_sign_record.weight IS '体重(kg)'; + +-- 移动护理小程序 - 护理评估记录表 +CREATE TABLE IF NOT EXISTS mp_assessment_record ( + id BIGSERIAL PRIMARY KEY, + patient_id BIGINT NOT NULL, + encounter_id BIGINT NOT NULL, + nurse_id BIGINT NOT NULL, + assessment_type VARCHAR(32) NOT NULL, + assessment_content TEXT, + assessment_result TEXT, + score DECIMAL(5,1), + risk_level VARCHAR(20), + record_time TIMESTAMP NOT NULL, + tenant_id BIGINT DEFAULT 0, + delete_flag CHAR(1) DEFAULT '0', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + create_by VARCHAR(64) +); + +COMMENT ON TABLE mp_assessment_record IS '移动护理-护理评估记录'; +COMMENT ON COLUMN mp_assessment_record.id IS '主键ID'; +COMMENT ON COLUMN mp_assessment_record.patient_id IS '患者ID'; +COMMENT ON COLUMN mp_assessment_record.encounter_id IS '就诊ID'; +COMMENT ON COLUMN mp_assessment_record.nurse_id IS '评估护士ID'; +COMMENT ON COLUMN mp_assessment_record.assessment_type IS '评估类型'; +COMMENT ON COLUMN mp_assessment_record.assessment_content IS '评估内容'; +COMMENT ON COLUMN mp_assessment_record.assessment_result IS '评估结果'; +COMMENT ON COLUMN mp_assessment_record.score IS '评分'; +COMMENT ON COLUMN mp_assessment_record.risk_level IS '风险等级'; +COMMENT ON COLUMN mp_assessment_record.record_time IS '评估时间'; diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpAssessmentRecordMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpAssessmentRecordMapper.xml new file mode 100644 index 000000000..c0bab5310 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpAssessmentRecordMapper.xml @@ -0,0 +1,15 @@ + + + + + + + diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpNursingTaskMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpNursingTaskMapper.xml new file mode 100644 index 000000000..c7e24c377 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpNursingTaskMapper.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpVitalSignRecordMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpVitalSignRecordMapper.xml new file mode 100644 index 000000000..0b4d52368 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/miniprogram/MpVitalSignRecordMapper.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpAssessmentRecord.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpAssessmentRecord.java new file mode 100644 index 000000000..d9ce07f51 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpAssessmentRecord.java @@ -0,0 +1,43 @@ +package com.healthlink.his.miniprogram.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 移动护理-护理评估记录 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@TableName("mp_assessment_record") +public class MpAssessmentRecord extends HisBaseEntity { + + @TableId(type = IdType.AUTO) + private Long id; + + private Long patientId; + + private Long encounterId; + + private Long nurseId; + + private String assessmentType; + + private String assessmentContent; + + private String assessmentResult; + + private BigDecimal score; + + private String riskLevel; + + private LocalDateTime recordTime; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpNursingTask.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpNursingTask.java new file mode 100644 index 000000000..b1ade59fa --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpNursingTask.java @@ -0,0 +1,41 @@ +package com.healthlink.his.miniprogram.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * 移动护理-护理任务 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@TableName("mp_nursing_task") +public class MpNursingTask extends HisBaseEntity { + + @TableId(type = IdType.AUTO) + private Long id; + + private Long patientId; + + private Long encounterId; + + private Long nurseId; + + private String taskType; + + private String taskContent; + + private String taskStatus; + + private LocalDateTime dueTime; + + private LocalDateTime completeTime; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpVitalSignRecord.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpVitalSignRecord.java new file mode 100644 index 000000000..34e945c7a --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/domain/MpVitalSignRecord.java @@ -0,0 +1,49 @@ +package com.healthlink.his.miniprogram.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.core.common.core.domain.HisBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 移动护理-生命体征记录 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@TableName("mp_vital_sign_record") +public class MpVitalSignRecord extends HisBaseEntity { + + @TableId(type = IdType.AUTO) + private Long id; + + private Long patientId; + + private Long encounterId; + + private Long nurseId; + + private LocalDateTime recordTime; + + private BigDecimal temperature; + + private Integer pulse; + + private Integer respiration; + + private Integer systolicBp; + + private Integer diastolicBp; + + private BigDecimal bloodOxygen; + + private BigDecimal height; + + private BigDecimal weight; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpAssessmentRecordMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpAssessmentRecordMapper.java new file mode 100644 index 000000000..07ddb16ce --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpAssessmentRecordMapper.java @@ -0,0 +1,17 @@ +package com.healthlink.his.miniprogram.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.miniprogram.domain.MpAssessmentRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 移动护理-护理评估记录 Mapper + */ +@Mapper +public interface MpAssessmentRecordMapper extends BaseMapper { + + List selectByPatientId(@Param("patientId") Long patientId); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpNursingTaskMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpNursingTaskMapper.java new file mode 100644 index 000000000..eb1b855b0 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpNursingTaskMapper.java @@ -0,0 +1,18 @@ +package com.healthlink.his.miniprogram.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.miniprogram.domain.MpNursingTask; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 移动护理-护理任务 Mapper + */ +@Mapper +public interface MpNursingTaskMapper extends BaseMapper { + + List selectTaskListByNurse(@Param("nurseId") Long nurseId, + @Param("taskStatus") String taskStatus); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpVitalSignRecordMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpVitalSignRecordMapper.java new file mode 100644 index 000000000..8310afa98 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/mapper/MpVitalSignRecordMapper.java @@ -0,0 +1,18 @@ +package com.healthlink.his.miniprogram.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.miniprogram.domain.MpVitalSignRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 移动护理-生命体征记录 Mapper + */ +@Mapper +public interface MpVitalSignRecordMapper extends BaseMapper { + + List selectByPatientId(@Param("patientId") Long patientId, + @Param("days") Integer days); +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpAssessmentRecordService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpAssessmentRecordService.java new file mode 100644 index 000000000..2b6cb8a65 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpAssessmentRecordService.java @@ -0,0 +1,10 @@ +package com.healthlink.his.miniprogram.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.miniprogram.domain.MpAssessmentRecord; + +/** + * 移动护理-护理评估记录 Service + */ +public interface IMpAssessmentRecordService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpNursingTaskService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpNursingTaskService.java new file mode 100644 index 000000000..600945bee --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpNursingTaskService.java @@ -0,0 +1,10 @@ +package com.healthlink.his.miniprogram.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.miniprogram.domain.MpNursingTask; + +/** + * 移动护理-护理任务 Service + */ +public interface IMpNursingTaskService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpVitalSignRecordService.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpVitalSignRecordService.java new file mode 100644 index 000000000..1189e8146 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/IMpVitalSignRecordService.java @@ -0,0 +1,10 @@ +package com.healthlink.his.miniprogram.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.healthlink.his.miniprogram.domain.MpVitalSignRecord; + +/** + * 移动护理-生命体征记录 Service + */ +public interface IMpVitalSignRecordService extends IService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpAssessmentRecordServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpAssessmentRecordServiceImpl.java new file mode 100644 index 000000000..c17ac0b5e --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpAssessmentRecordServiceImpl.java @@ -0,0 +1,15 @@ +package com.healthlink.his.miniprogram.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.miniprogram.domain.MpAssessmentRecord; +import com.healthlink.his.miniprogram.mapper.MpAssessmentRecordMapper; +import com.healthlink.his.miniprogram.service.IMpAssessmentRecordService; +import org.springframework.stereotype.Service; + +/** + * 移动护理-护理评估记录 Service实现 + */ +@Service +public class MpAssessmentRecordServiceImpl extends ServiceImpl + implements IMpAssessmentRecordService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpNursingTaskServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpNursingTaskServiceImpl.java new file mode 100644 index 000000000..ccadf4b33 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpNursingTaskServiceImpl.java @@ -0,0 +1,15 @@ +package com.healthlink.his.miniprogram.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.miniprogram.domain.MpNursingTask; +import com.healthlink.his.miniprogram.mapper.MpNursingTaskMapper; +import com.healthlink.his.miniprogram.service.IMpNursingTaskService; +import org.springframework.stereotype.Service; + +/** + * 移动护理-护理任务 Service实现 + */ +@Service +public class MpNursingTaskServiceImpl extends ServiceImpl + implements IMpNursingTaskService { +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpVitalSignRecordServiceImpl.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpVitalSignRecordServiceImpl.java new file mode 100644 index 000000000..238cfa932 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/miniprogram/service/impl/MpVitalSignRecordServiceImpl.java @@ -0,0 +1,15 @@ +package com.healthlink.his.miniprogram.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.healthlink.his.miniprogram.domain.MpVitalSignRecord; +import com.healthlink.his.miniprogram.mapper.MpVitalSignRecordMapper; +import com.healthlink.his.miniprogram.service.IMpVitalSignRecordService; +import org.springframework.stereotype.Service; + +/** + * 移动护理-生命体征记录 Service实现 + */ +@Service +public class MpVitalSignRecordServiceImpl extends ServiceImpl + implements IMpVitalSignRecordService { +}