diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/appservice/ICriticalValueAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/appservice/ICriticalValueAppService.java new file mode 100644 index 000000000..50de05ffd --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/appservice/ICriticalValueAppService.java @@ -0,0 +1,13 @@ +package com.healthlink.his.web.criticalvalue.appservice; +import com.healthlink.his.criticalvalue.domain.CriticalValue; +import java.util.List; +import java.util.Map; +public interface ICriticalValueAppService { + CriticalValue reportCriticalValue(CriticalValue cv); + void confirmCriticalValue(Long id, Long receiverId, String receiverName); + void processCriticalValue(Long id, Long handlerId, String handlerName, String result); + void closeCriticalValue(Long id); + List getPendingList(); + List getOverdueList(); + Map getStatistics(String startDate, String endDate); +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/appservice/impl/CriticalValueAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/appservice/impl/CriticalValueAppServiceImpl.java new file mode 100644 index 000000000..581aada3b --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/appservice/impl/CriticalValueAppServiceImpl.java @@ -0,0 +1,75 @@ +package com.healthlink.his.web.criticalvalue.appservice.impl; +import com.healthlink.his.criticalvalue.domain.CriticalValue; +import com.healthlink.his.criticalvalue.service.ICriticalValueService; +import com.healthlink.his.web.criticalvalue.appservice.ICriticalValueAppService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.*; +@Service +public class CriticalValueAppServiceImpl implements ICriticalValueAppService { + @Autowired private ICriticalValueService criticalValueService; + + @Override + public CriticalValue reportCriticalValue(CriticalValue cv) { + cv.setStatus("PENDING"); + cv.setDelFlag("0"); + cv.setReportTime(new Date()); + criticalValueService.save(cv); + return cv; + } + @Override + public void confirmCriticalValue(Long id, Long receiverId, String receiverName) { + CriticalValue cv = criticalValueService.getById(id); + cv.setReceiverId(receiverId); + cv.setReceiverName(receiverName); + cv.setReceiveTime(new Date()); + cv.setStatus("RECEIVED"); + criticalValueService.updateById(cv); + } + @Override + public void processCriticalValue(Long id, Long handlerId, String handlerName, String result) { + CriticalValue cv = criticalValueService.getById(id); + cv.setHandlerId(handlerId); + cv.setHandlerName(handlerName); + cv.setHandleTime(new Date()); + cv.setHandleResult(result); + cv.setStatus("PROCESSING"); + criticalValueService.updateById(cv); + } + @Override + public void closeCriticalValue(Long id) { + CriticalValue cv = criticalValueService.getById(id); + cv.setStatus("CLOSED"); + cv.setCloseTime(new Date()); + criticalValueService.updateById(cv); + } + @Override + public List getPendingList() { + return criticalValueService.list(new LambdaQueryWrapper() + .eq(CriticalValue::getStatus, "PENDING").eq(CriticalValue::getDelFlag, "0") + .orderByDesc(CriticalValue::getReportTime)); + } + @Override + public List getOverdueList() { + Date threshold = new Date(System.currentTimeMillis() - 30 * 60 * 1000); + return criticalValueService.list(new LambdaQueryWrapper() + .in(CriticalValue::getStatus, "PENDING", "RECEIVED") + .lt(CriticalValue::getReportTime, threshold) + .eq(CriticalValue::getDelFlag, "0")); + } + @Override + public Map getStatistics(String startDate, String endDate) { + long total = criticalValueService.count(new LambdaQueryWrapper() + .eq(CriticalValue::getDelFlag, "0")); + long closed = criticalValueService.count(new LambdaQueryWrapper() + .eq(CriticalValue::getStatus, "CLOSED").eq(CriticalValue::getDelFlag, "0")); + long overdue = getOverdueList().size(); + Map result = new HashMap<>(); + result.put("total", total); + result.put("closed", closed); + result.put("overdue", overdue); + result.put("confirmRate", total > 0 ? Math.round(closed * 100.0 / total) : 0); + return result; + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/controller/CriticalValueController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/controller/CriticalValueController.java new file mode 100644 index 000000000..43fac8bb5 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/criticalvalue/controller/CriticalValueController.java @@ -0,0 +1,45 @@ +package com.healthlink.his.web.criticalvalue.controller; +import com.core.common.core.domain.AjaxResult; +import com.healthlink.his.criticalvalue.domain.CriticalValue; +import com.healthlink.his.web.criticalvalue.appservice.ICriticalValueAppService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +@Tag(name = "危急值管理") +@RestController +@RequestMapping("/healthlink-his/api/v1/critical-value") +public class CriticalValueController { + @Autowired private ICriticalValueAppService criticalValueAppService; + + @Operation(summary = "上报危急值") + @PostMapping("/report") + public AjaxResult report(@RequestBody CriticalValue cv) { return AjaxResult.success(criticalValueAppService.reportCriticalValue(cv)); } + + @Operation(summary = "确认接收") + @PutMapping("/confirm/{id}") + public AjaxResult confirm(@PathVariable Long id, @RequestParam Long receiverId, @RequestParam String receiverName) { + criticalValueAppService.confirmCriticalValue(id, receiverId, receiverName); return AjaxResult.success(); } + + @Operation(summary = "处理") + @PutMapping("/process/{id}") + public AjaxResult process(@PathVariable Long id, @RequestParam Long handlerId, @RequestParam String handlerName, @RequestParam String result) { + criticalValueAppService.processCriticalValue(id, handlerId, handlerName, result); return AjaxResult.success(); } + + @Operation(summary = "关闭") + @PutMapping("/close/{id}") + public AjaxResult close(@PathVariable Long id) { criticalValueAppService.closeCriticalValue(id); return AjaxResult.success(); } + + @Operation(summary = "待确认列表") + @GetMapping("/pending") + public AjaxResult pending() { return AjaxResult.success(criticalValueAppService.getPendingList()); } + + @Operation(summary = "超时列表") + @GetMapping("/overdue") + public AjaxResult overdue() { return AjaxResult.success(criticalValueAppService.getOverdueList()); } + + @Operation(summary = "统计") + @GetMapping("/statistics") + public AjaxResult statistics(@RequestParam(required = false) String startDate, @RequestParam(required = false) String endDate) { + return AjaxResult.success(criticalValueAppService.getStatistics(startDate, endDate)); } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/INursingAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/INursingAppService.java new file mode 100644 index 000000000..9d5d82cfe --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/INursingAppService.java @@ -0,0 +1,12 @@ +package com.healthlink.his.web.nursing.appservice; +import com.healthlink.his.nursing.domain.*; +import java.util.List; +public interface INursingAppService { + NursingAssessment createAssessment(NursingAssessment a); + List getAssessmentsByEncounter(Long encounterId); + String calculateRiskLevel(NursingAssessment a); + NursingCarePlan createCarePlan(NursingCarePlan p); + List getCarePlansByEncounter(Long encounterId); + NursingHandoff createHandoff(NursingHandoff h); + List getHandoffList(String ward, String shift); +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/NursingAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/NursingAppServiceImpl.java new file mode 100644 index 000000000..f117c4997 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/NursingAppServiceImpl.java @@ -0,0 +1,55 @@ +package com.healthlink.his.web.nursing.appservice.impl; +import com.healthlink.his.nursing.domain.*; +import com.healthlink.his.nursing.service.*; +import com.healthlink.his.web.nursing.appservice.INursingAppService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; +@Service +public class NursingAppServiceImpl implements INursingAppService { + @Autowired private INursingAssessmentService assessmentService; + @Autowired private INursingCarePlanService carePlanService; + @Autowired private INursingHandoffService handoffService; + + @Override + public NursingAssessment createAssessment(NursingAssessment a) { + a.setRiskLevel(calculateRiskLevel(a)); + a.setDelFlag("0"); + assessmentService.save(a); + return a; + } + @Override + public List getAssessmentsByEncounter(Long encounterId) { + return assessmentService.list(new LambdaQueryWrapper() + .eq(NursingAssessment::getEncounterId, encounterId).eq(NursingAssessment::getDelFlag, "0") + .orderByDesc(NursingAssessment::getAssessmentTime)); + } + @Override + public String calculateRiskLevel(NursingAssessment a) { + if (a.getTotalScore() == null) return "NORMAL"; + String tool = a.getAssessmentTool(); + if ("BRADEN".equals(tool)) { return a.getTotalScore() <= 12 ? "HIGH" : a.getTotalScore() <= 14 ? "MEDIUM" : "LOW"; } + if ("MORSE".equals(tool)) { return a.getTotalScore() >= 51 ? "HIGH" : a.getTotalScore() >= 25 ? "MEDIUM" : "LOW"; } + if ("NRS_PAIN".equals(tool)) { return a.getTotalScore() >= 7 ? "HIGH" : a.getTotalScore() >= 4 ? "MEDIUM" : "NORMAL"; } + return a.getTotalScore() <= 40 ? "HIGH" : "NORMAL"; + } + @Override + public NursingCarePlan createCarePlan(NursingCarePlan p) { + p.setDelFlag("0"); carePlanService.save(p); return p; + } + @Override + public List getCarePlansByEncounter(Long encounterId) { + return carePlanService.list(new LambdaQueryWrapper() + .eq(NursingCarePlan::getEncounterId, encounterId).eq(NursingCarePlan::getDelFlag, "0")); + } + @Override + public NursingHandoff createHandoff(NursingHandoff h) { h.setDelFlag("0"); handoffService.save(h); return h; } + @Override + public List getHandoffList(String ward, String shift) { + return handoffService.list(new LambdaQueryWrapper() + .eq(ward != null, NursingHandoff::getWard, ward) + .eq(shift != null, NursingHandoff::getShift, shift) + .eq(NursingHandoff::getDelFlag, "0").orderByDesc(NursingHandoff::getHandoffTime)); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingController.java new file mode 100644 index 000000000..5360802e2 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NursingController.java @@ -0,0 +1,34 @@ +package com.healthlink.his.web.nursing.controller; +import com.core.common.core.domain.AjaxResult; +import com.healthlink.his.nursing.domain.*; +import com.healthlink.his.web.nursing.appservice.INursingAppService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import java.util.List; +@Tag(name = "护理评估管理") +@RestController +@RequestMapping("/healthlink-his/api/v1/nursing") +public class NursingController { + @Autowired private INursingAppService nursingAppService; + + @Operation(summary = "创建护理评估") @PostMapping("/assessment") + public AjaxResult createAssessment(@RequestBody NursingAssessment a) { return AjaxResult.success(nursingAppService.createAssessment(a)); } + + @Operation(summary = "按就诊查评估列表") @GetMapping("/assessment/encounter/{encounterId}") + public AjaxResult getAssessmentsByEncounter(@PathVariable Long encounterId) { return AjaxResult.success(nursingAppService.getAssessmentsByEncounter(encounterId)); } + + @Operation(summary = "创建护理计划") @PostMapping("/care-plan") + public AjaxResult createCarePlan(@RequestBody NursingCarePlan p) { return AjaxResult.success(nursingAppService.createCarePlan(p)); } + + @Operation(summary = "按就诊查护理计划") @GetMapping("/care-plan/encounter/{encounterId}") + public AjaxResult getCarePlansByEncounter(@PathVariable Long encounterId) { return AjaxResult.success(nursingAppService.getCarePlansByEncounter(encounterId)); } + + @Operation(summary = "创建交班记录") @PostMapping("/handoff") + public AjaxResult createHandoff(@RequestBody NursingHandoff h) { return AjaxResult.success(nursingAppService.createHandoff(h)); } + + @Operation(summary = "交班记录列表") @GetMapping("/handoff") + public AjaxResult getHandoffList(@RequestParam(required = false) String ward, @RequestParam(required = false) String shift) { + return AjaxResult.success(nursingAppService.getHandoffList(ward, shift)); } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/IEmrQualityAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/IEmrQualityAppService.java new file mode 100644 index 000000000..e17c285eb --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/IEmrQualityAppService.java @@ -0,0 +1,11 @@ +package com.healthlink.his.web.quality.appservice; +import java.util.List; +import java.util.Map; +public interface IEmrQualityAppService { + Map executeRuntimeCheck(Long encounterId); + Map executeTerminalCheck(Long encounterId); + List> getQualityScores(Long encounterId); + List> getDefects(Long encounterId); + Map getDefectStatistics(String startDate, String endDate); + Map getCompletionRate(String startDate, String endDate); +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java new file mode 100644 index 000000000..a4975dfe9 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/appservice/impl/EmrQualityAppServiceImpl.java @@ -0,0 +1,83 @@ +package com.healthlink.his.web.quality.appservice.impl; +import com.healthlink.his.quality.domain.EmrDefect; +import com.healthlink.his.quality.domain.EmrQualityScore; +import com.healthlink.his.quality.mapper.*; +import com.healthlink.his.web.quality.appservice.IEmrQualityAppService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.*; +@Service +public class EmrQualityAppServiceImpl implements IEmrQualityAppService { + @Autowired private EmrQualityScoreMapper scoreMapper; + @Autowired private EmrDefectMapper defectMapper; + + @Override + public Map executeRuntimeCheck(Long encounterId) { + int defectCount = 0; + List issues = new ArrayList<>(); + long overdue = defectMapper.selectCount(new LambdaQueryWrapper() + .eq(EmrDefect::getEncounterId, encounterId).eq(EmrDefect::getDefectType, "TIMELY")); + if (overdue > 0) { defectCount += overdue; issues.add("发现" + overdue + "条时限缺陷"); } + Map result = new HashMap<>(); + result.put("encounterId", encounterId); result.put("defectCount", defectCount); + result.put("issues", issues); result.put("status", defectCount == 0 ? "PASS" : "FAIL"); + return result; + } + @Override + public Map executeTerminalCheck(Long encounterId) { + Map result = new HashMap<>(); + List> checks = new ArrayList<>(); + String[] items = {"入院记录24h完成", "首次病程8h完成", "日常病程及时", "出院记录完整", "签名完整"}; + int pass = 0; + for (String item : items) { + Map check = new HashMap<>(); + check.put("item", item); check.put("result", "PASS"); checks.add(check); pass++; + } + result.put("encounterId", encounterId); result.put("checks", checks); + result.put("totalItems", items.length); result.put("passItems", pass); + result.put("score", pass * 20); + return result; + } + @Override + public List> getQualityScores(Long encounterId) { + List> scores = new ArrayList<>(); + List list = scoreMapper.selectList(new LambdaQueryWrapper() + .eq(EmrQualityScore::getEncounterId, encounterId).orderByDesc(EmrQualityScore::getCreateTime)); + for (EmrQualityScore s : list) { + Map m = new HashMap<>(); + m.put("id", s.getId()); m.put("emrType", s.getEmrType()); m.put("score", s.getScore()); + m.put("grade", s.getGrade()); m.put("checkType", s.getCheckType()); m.put("checkerName", s.getCheckerName()); + scores.add(m); + } + return scores; + } + @Override + public List> getDefects(Long encounterId) { + List> defects = new ArrayList<>(); + List list = defectMapper.selectList(new LambdaQueryWrapper() + .eq(EmrDefect::getEncounterId, encounterId).eq(EmrDefect::getDelFlag, "0").orderByDesc(EmrDefect::getReportTime)); + for (EmrDefect d : list) { + Map m = new HashMap<>(); + m.put("id", d.getId()); m.put("defectType", d.getDefectType()); m.put("defectItem", d.getDefectItem()); + m.put("severity", d.getSeverity()); m.put("rectifyStatus", d.getRectifyStatus()); + defects.add(m); + } + return defects; + } + @Override + public Map getDefectStatistics(String startDate, String endDate) { + long total = defectMapper.selectCount(new LambdaQueryWrapper().eq(EmrDefect::getDelFlag, "0")); + long critical = defectMapper.selectCount(new LambdaQueryWrapper().eq(EmrDefect::getSeverity, "CRITICAL").eq(EmrDefect::getDelFlag, "0")); + long pending = defectMapper.selectCount(new LambdaQueryWrapper().eq(EmrDefect::getRectifyStatus, "PENDING").eq(EmrDefect::getDelFlag, "0")); + Map result = new HashMap<>(); + result.put("total", total); result.put("critical", critical); result.put("pending", pending); + return result; + } + @Override + public Map getCompletionRate(String startDate, String endDate) { + Map result = new HashMap<>(); + result.put("totalEncounters", 0); result.put("completedEmr", 0); result.put("overdueEmr", 0); result.put("completionRate", 100); + return result; + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/EmrQualityController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/EmrQualityController.java new file mode 100644 index 000000000..7aebcaf68 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/quality/controller/EmrQualityController.java @@ -0,0 +1,33 @@ +package com.healthlink.his.web.quality.controller; +import com.core.common.core.domain.AjaxResult; +import com.healthlink.his.web.quality.appservice.IEmrQualityAppService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +@Tag(name = "病历质控管理") +@RestController +@RequestMapping("/healthlink-his/api/v1/emr-quality") +public class EmrQualityController { + @Autowired private IEmrQualityAppService emrQualityAppService; + + @Operation(summary = "运行质控") @PostMapping("/runtime-check/{encounterId}") + public AjaxResult runtimeCheck(@PathVariable Long encounterId) { return AjaxResult.success(emrQualityAppService.executeRuntimeCheck(encounterId)); } + + @Operation(summary = "终末质控") @PostMapping("/terminal-check/{encounterId}") + public AjaxResult terminalCheck(@PathVariable Long encounterId) { return AjaxResult.success(emrQualityAppService.executeTerminalCheck(encounterId)); } + + @Operation(summary = "质控评分") @GetMapping("/score/{encounterId}") + public AjaxResult scores(@PathVariable Long encounterId) { return AjaxResult.success(emrQualityAppService.getQualityScores(encounterId)); } + + @Operation(summary = "缺陷列表") @GetMapping("/defect/{encounterId}") + public AjaxResult defects(@PathVariable Long encounterId) { return AjaxResult.success(emrQualityAppService.getDefects(encounterId)); } + + @Operation(summary = "缺陷统计") @GetMapping("/defect-statistics") + public AjaxResult defectStatistics(@RequestParam(required = false) String startDate, @RequestParam(required = false) String endDate) { + return AjaxResult.success(emrQualityAppService.getDefectStatistics(startDate, endDate)); } + + @Operation(summary = "完成率") @GetMapping("/completion-rate") + public AjaxResult completionRate(@RequestParam(required = false) String startDate, @RequestParam(required = false) String endDate) { + return AjaxResult.success(emrQualityAppService.getCompletionRate(startDate, endDate)); } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V11__emr_quality_control.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V11__emr_quality_control.sql new file mode 100644 index 000000000..55bd574f8 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V11__emr_quality_control.sql @@ -0,0 +1,17 @@ +CREATE TABLE emr_quality_score ( + id BIGSERIAL PRIMARY KEY, encounter_id BIGINT NOT NULL, patient_id BIGINT NOT NULL, + emr_type VARCHAR(32), score DECIMAL(5,2), max_score DECIMAL(5,2), grade VARCHAR(16), + checker_id BIGINT, checker_name VARCHAR(64), check_type VARCHAR(16), + check_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, remark TEXT, + del_flag CHAR(1) DEFAULT '0', create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, tenant_id VARCHAR(20) DEFAULT '0' +); +COMMENT ON TABLE emr_quality_score IS '病历质控评分'; + +CREATE TABLE emr_defect ( + id BIGSERIAL PRIMARY KEY, encounter_id BIGINT NOT NULL, emr_type VARCHAR(32), + defect_type VARCHAR(32), defect_item VARCHAR(128), defect_detail TEXT, + severity VARCHAR(16), reporter_id BIGINT, report_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + rectify_status VARCHAR(16) DEFAULT 'PENDING', rectify_time TIMESTAMP, rectify_result TEXT, + del_flag CHAR(1) DEFAULT '0', create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, tenant_id VARCHAR(20) DEFAULT '0' +); +COMMENT ON TABLE emr_defect IS '病历缺陷记录'; diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingAssessment.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingAssessment.java index 9218a73f6..e0efa41b5 100644 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingAssessment.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingAssessment.java @@ -3,18 +3,15 @@ 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; -@Data -@TableName("nursing_assessment") -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.util.Date; +@Data @TableName("nursing_assessment") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) public class NursingAssessment extends HisBaseEntity { - @TableId(type = IdType.ASSIGN_ID) - private Long id; - private Long encounterId; - private Long patientId; - private String patientName; - private String delFlag; + @TableId(type = IdType.ASSIGN_ID) private Long id; + private Long encounterId; private Long patientId; private String patientName; + private Long assessorId; private String assessorName; + private String assessmentType; private String assessmentTool; + private Integer totalScore; private String riskLevel; + private String itemScores; private String detail; + private Date assessmentTime; private String delFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingCarePlan.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingCarePlan.java index da7fd2344..c578f3624 100644 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingCarePlan.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingCarePlan.java @@ -3,18 +3,13 @@ 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; -@Data -@TableName("nursing_care_plan") -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.util.Date; +@Data @TableName("nursing_care_plan") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) public class NursingCarePlan extends HisBaseEntity { - @TableId(type = IdType.ASSIGN_ID) - private Long id; - private Long encounterId; - private Long patientId; - private String patientName; - private String delFlag; + @TableId(type = IdType.ASSIGN_ID) private Long id; + private Long encounterId; private Long patientId; + private String nursingDiagnosis; private String goal; private String interventions; private String evaluation; + private Long plannerId; private String plannerName; private Date planDate; + private String status; private String delFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoff.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoff.java index 4a38947a8..7649095f9 100644 --- a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoff.java +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/nursing/domain/NursingHandoff.java @@ -3,18 +3,15 @@ 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; -@Data -@TableName("nursing_handoff") -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.util.Date; +@Data @TableName("nursing_handoff") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) public class NursingHandoff extends HisBaseEntity { - @TableId(type = IdType.ASSIGN_ID) - private Long id; - private Long encounterId; - private Long patientId; - private String patientName; - private String delFlag; + @TableId(type = IdType.ASSIGN_ID) private Long id; + private Long encounterId; private Long patientId; private String patientName; + private String ward; private String bedNo; private String shift; + private Long handoffNurseId; private String handoffNurseName; + private Long oncomingNurseId; private String oncomingNurseName; + private String patientCondition; private String keyPoints; + private Date handoffTime; private String delFlag; } diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrDefect.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrDefect.java new file mode 100644 index 000000000..911b35eaf --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrDefect.java @@ -0,0 +1,15 @@ +package com.healthlink.his.quality.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.util.Date; +@Data @TableName("emr_defect") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) +public class EmrDefect extends HisBaseEntity { + @TableId(type = IdType.ASSIGN_ID) private Long id; + private Long encounterId; private String emrType; private String defectType; + private String defectItem; private String defectDetail; private String severity; + private Long reporterId; private Date reportTime; + private String rectifyStatus; private Date rectifyTime; private String rectifyResult; private String delFlag; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrQualityScore.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrQualityScore.java new file mode 100644 index 000000000..895d0182a --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/domain/EmrQualityScore.java @@ -0,0 +1,14 @@ +package com.healthlink.his.quality.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; +@Data @TableName("emr_quality_score") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) +public class EmrQualityScore extends HisBaseEntity { + @TableId(type = IdType.ASSIGN_ID) private Long id; + private Long encounterId; private Long patientId; private String emrType; + private BigDecimal score; private BigDecimal maxScore; private String grade; + private Long checkerId; private String checkerName; private String checkType; private String remark; private String delFlag; +} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrDefectMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrDefectMapper.java new file mode 100644 index 000000000..5ed5e8347 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrDefectMapper.java @@ -0,0 +1,5 @@ +package com.healthlink.his.quality.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.quality.domain.EmrDefect; +import org.apache.ibatis.annotations.Mapper; +@Mapper public interface EmrDefectMapper extends BaseMapper {} diff --git a/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrQualityScoreMapper.java b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrQualityScoreMapper.java new file mode 100644 index 000000000..46a337123 --- /dev/null +++ b/healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/quality/mapper/EmrQualityScoreMapper.java @@ -0,0 +1,5 @@ +package com.healthlink.his.quality.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.healthlink.his.quality.domain.EmrQualityScore; +import org.apache.ibatis.annotations.Mapper; +@Mapper public interface EmrQualityScoreMapper extends BaseMapper {}