From 7c3c22d02993c24d627cbc75068d942f7609abee Mon Sep 17 00:00:00 2001 From: chenqi Date: Thu, 18 Jun 2026 12:13:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(nursing):=20T6.1=20=E7=AE=A1=E9=81=93?= =?UTF-8?q?=E6=BB=91=E8=84=B1=E9=A3=8E=E9=99=A9=E8=AF=84=E4=BC=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/IPipeRiskAppService.java | 10 ++ .../impl/PipeRiskAppServiceImpl.java | 50 ++++++ .../controller/PipeRiskController.java | 36 +++++ .../nursing/assessment/PipeRiskAssessment.vue | 145 ++++++++++++++++++ 4 files changed, 241 insertions(+) create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/IPipeRiskAppService.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/PipeRiskAppServiceImpl.java create mode 100644 healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/PipeRiskController.java create mode 100644 healthlink-his-ui/src/views/nursing/assessment/PipeRiskAssessment.vue diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/IPipeRiskAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/IPipeRiskAppService.java new file mode 100644 index 000000000..b7c3eabb8 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/IPipeRiskAppService.java @@ -0,0 +1,10 @@ +package com.healthlink.his.web.nursing.appservice; + +import com.healthlink.his.nursing.domain.NursingAssessmentIntervention; + +import java.util.List; + +public interface IPipeRiskAppService { + NursingAssessmentIntervention assessPipeRisk(NursingAssessmentIntervention intervention); + List getPipeRiskRecords(Long encounterId); +} \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/PipeRiskAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/PipeRiskAppServiceImpl.java new file mode 100644 index 000000000..2de7cfbeb --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/PipeRiskAppServiceImpl.java @@ -0,0 +1,50 @@ +package com.healthlink.his.web.nursing.appservice.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.healthlink.his.nursing.domain.NursingAssessmentIntervention; +import com.healthlink.his.nursing.service.INursingAssessmentInterventionService; +import com.healthlink.his.web.nursing.appservice.IPipeRiskAppService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class PipeRiskAppServiceImpl implements IPipeRiskAppService { + + @Autowired + private INursingAssessmentInterventionService interventionService; + + @Override + public NursingAssessmentIntervention assessPipeRisk(NursingAssessmentIntervention intervention) { + intervention.setRiskLevel(calculatePipeRiskLevel(intervention)); + intervention.setInterventionType("TUBE"); + intervention.setStatus("PENDING"); + intervention.setDeleteFlag("0"); + interventionService.save(intervention); + return intervention; + } + + @Override + public List getPipeRiskRecords(Long encounterId) { + return interventionService.list(new LambdaQueryWrapper() + .eq(NursingAssessmentIntervention::getEncounterId, encounterId) + .eq(NursingAssessmentIntervention::getInterventionType, "TUBE") + .orderByDesc(NursingAssessmentIntervention::getCreateTime)); + } + + private String calculatePipeRiskLevel(NursingAssessmentIntervention intervention) { + String content = intervention.getInterventionContent(); + if (content == null) return "LOW"; + int score = 0; + if (content.contains("高风险")) score += 3; + else if (content.contains("中风险")) score += 2; + else if (content.contains("低风险")) score += 1; + if (content.contains("活动")) score += 2; + if (content.contains("固定")) score += 1; + if (score >= 4) return "HIGH"; + if (score >= 2) return "MEDIUM"; + return "LOW"; + } +} \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/PipeRiskController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/PipeRiskController.java new file mode 100644 index 000000000..8c4d18f05 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/PipeRiskController.java @@ -0,0 +1,36 @@ +package com.healthlink.his.web.nursing.controller; + +import com.core.common.core.domain.AjaxResult; +import com.healthlink.his.nursing.domain.NursingAssessmentIntervention; +import com.healthlink.his.web.nursing.appservice.IPipeRiskAppService; +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.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name = "管道滑脱风险评估") +@RestController +@RequestMapping("/api/v1/nursing/pipe-risk") +public class PipeRiskController { + + @Autowired + private IPipeRiskAppService pipeRiskAppService; + + @Operation(summary = "管道滑脱风险评估") + @PostMapping("/assess") + @PreAuthorize("hasAuthority('nursing:nursing:edit')") + public AjaxResult assessPipeRisk(@RequestBody NursingAssessmentIntervention intervention) { + return AjaxResult.success(pipeRiskAppService.assessPipeRisk(intervention)); + } + + @Operation(summary = "获取管道滑脱风险评估记录") + @GetMapping("/list/{encounterId}") + @PreAuthorize("hasAuthority('nursing:nursing:list')") + public AjaxResult getPipeRiskRecords(@PathVariable Long encounterId) { + List records = pipeRiskAppService.getPipeRiskRecords(encounterId); + return AjaxResult.success(records); + } +} \ No newline at end of file diff --git a/healthlink-his-ui/src/views/nursing/assessment/PipeRiskAssessment.vue b/healthlink-his-ui/src/views/nursing/assessment/PipeRiskAssessment.vue new file mode 100644 index 000000000..7ac08c701 --- /dev/null +++ b/healthlink-his-ui/src/views/nursing/assessment/PipeRiskAssessment.vue @@ -0,0 +1,145 @@ + + + + + \ No newline at end of file