feat(miniprogram): 移动护理小程序后端API

- 新增 MpNursingTask 实体 + Mapper + Service
- 新增 MpVitalSignRecord 实体 + Mapper + Service
- 新增 MpAssessmentRecord 实体 + Mapper + Service
- 新增 IMpNursingAppService 7个API接口
- 新增 MpNursingController 7个REST端点
- 新增 V90 Flyway迁移(3张表)
- 所有接口加 @PreAuthorize 权限控制
This commit is contained in:
2026-06-19 10:29:47 +08:00
parent d9a1b188b5
commit 523a64daf0
23 changed files with 833 additions and 0 deletions

View File

@@ -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);
}

View File

@@ -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<MpNursingTask> 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<MpVitalSignRecord> 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<MpAssessmentRecord> 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()));
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 '评估时间';

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.healthlink.his.miniprogram.mapper.MpAssessmentRecordMapper">
<select id="selectByPatientId" resultType="com.healthlink.his.miniprogram.domain.MpAssessmentRecord">
SELECT id, patient_id, encounter_id, nurse_id, assessment_type,
assessment_content, assessment_result, score, risk_level,
record_time, create_time, create_by
FROM mp_assessment_record
WHERE patient_id = #{patientId}
AND delete_flag = '0'
ORDER BY record_time DESC
</select>
</mapper>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.healthlink.his.miniprogram.mapper.MpNursingTaskMapper">
<select id="selectTaskListByNurse" resultType="com.healthlink.his.miniprogram.domain.MpNursingTask">
SELECT id, patient_id, encounter_id, nurse_id, task_type, task_content,
task_status, due_time, complete_time, create_time, create_by
FROM mp_nursing_task
WHERE nurse_id = #{nurseId}
AND delete_flag = '0'
<if test="taskStatus != null and taskStatus != ''">
AND task_status = #{taskStatus}
</if>
ORDER BY
CASE task_status
WHEN 'IN_PROGRESS' THEN 1
WHEN 'PENDING' THEN 2
WHEN 'COMPLETED' THEN 3
WHEN 'CANCELLED' THEN 4
END,
due_time ASC NULLS LAST
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.healthlink.his.miniprogram.mapper.MpVitalSignRecordMapper">
<select id="selectByPatientId" resultType="com.healthlink.his.miniprogram.domain.MpVitalSignRecord">
SELECT id, patient_id, encounter_id, nurse_id, record_time,
temperature, pulse, respiration, systolic_bp, diastolic_bp,
blood_oxygen, height, weight, create_time, create_by
FROM mp_vital_sign_record
WHERE patient_id = #{patientId}
AND delete_flag = '0'
<if test="days != null">
AND record_time >= CURRENT_TIMESTAMP - INTERVAL '${days} days'
</if>
ORDER BY record_time DESC
</select>
</mapper>

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<MpAssessmentRecord> {
List<MpAssessmentRecord> selectByPatientId(@Param("patientId") Long patientId);
}

View File

@@ -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<MpNursingTask> {
List<MpNursingTask> selectTaskListByNurse(@Param("nurseId") Long nurseId,
@Param("taskStatus") String taskStatus);
}

View File

@@ -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<MpVitalSignRecord> {
List<MpVitalSignRecord> selectByPatientId(@Param("patientId") Long patientId,
@Param("days") Integer days);
}

View File

@@ -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<MpAssessmentRecord> {
}

View File

@@ -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<MpNursingTask> {
}

View File

@@ -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<MpVitalSignRecord> {
}

View File

@@ -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<MpAssessmentRecordMapper, MpAssessmentRecord>
implements IMpAssessmentRecordService {
}

View File

@@ -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<MpNursingTaskMapper, MpNursingTask>
implements IMpNursingTaskService {
}

View File

@@ -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<MpVitalSignRecordMapper, MpVitalSignRecord>
implements IMpVitalSignRecordService {
}