diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/INutritionScreeningAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/INutritionScreeningAppService.java new file mode 100644 index 000000000..8c72342b2 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/INutritionScreeningAppService.java @@ -0,0 +1,10 @@ +package com.healthlink.his.web.nursing.appservice; + +import com.healthlink.his.nursing.domain.NursingAssessment; + +import java.util.List; + +public interface INutritionScreeningAppService { + NursingAssessment screenNutrition(NursingAssessment assessment); + List getScreeningRecords(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/NutritionScreeningAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/NutritionScreeningAppServiceImpl.java new file mode 100644 index 000000000..d41520b7e --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/appservice/impl/NutritionScreeningAppServiceImpl.java @@ -0,0 +1,43 @@ +package com.healthlink.his.web.nursing.appservice.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.healthlink.his.nursing.domain.NursingAssessment; +import com.healthlink.his.nursing.service.INursingAssessmentService; +import com.healthlink.his.web.nursing.appservice.INutritionScreeningAppService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class NutritionScreeningAppServiceImpl implements INutritionScreeningAppService { + + @Autowired + private INursingAssessmentService assessmentService; + + @Override + public NursingAssessment screenNutrition(NursingAssessment assessment) { + assessment.setAssessmentTool("NRS2002"); + assessment.setAssessmentType("NUTRITION"); + assessment.setRiskLevel(calculateNutritionRiskLevel(assessment)); + assessment.setDeleteFlag("0"); + assessmentService.save(assessment); + return assessment; + } + + @Override + public List getScreeningRecords(Long encounterId) { + return assessmentService.list(new LambdaQueryWrapper() + .eq(NursingAssessment::getEncounterId, encounterId) + .eq(NursingAssessment::getAssessmentTool, "NRS2002") + .orderByDesc(NursingAssessment::getAssessmentTime)); + } + + private String calculateNutritionRiskLevel(NursingAssessment assessment) { + Integer totalScore = assessment.getTotalScore(); + if (totalScore == null) return "NORMAL"; + if (totalScore >= 3) return "HIGH"; + if (totalScore == 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/NutritionScreeningController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NutritionScreeningController.java new file mode 100644 index 000000000..71c2b96f9 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/nursing/controller/NutritionScreeningController.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.NursingAssessment; +import com.healthlink.his.web.nursing.appservice.INutritionScreeningAppService; +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 = "营养风险筛查NRS2002") +@RestController +@RequestMapping("/api/v1/nursing/nutrition") +public class NutritionScreeningController { + + @Autowired + private INutritionScreeningAppService nutritionScreeningAppService; + + @Operation(summary = "营养风险筛查") + @PostMapping("/screen") + @PreAuthorize("hasAuthority('nursing:nursing:edit')") + public AjaxResult screenNutrition(@RequestBody NursingAssessment assessment) { + return AjaxResult.success(nutritionScreeningAppService.screenNutrition(assessment)); + } + + @Operation(summary = "获取营养风险筛查记录") + @GetMapping("/list/{encounterId}") + @PreAuthorize("hasAuthority('nursing:nursing:list')") + public AjaxResult getScreeningRecords(@PathVariable Long encounterId) { + List records = nutritionScreeningAppService.getScreeningRecords(encounterId); + return AjaxResult.success(records); + } +} \ No newline at end of file diff --git a/healthlink-his-ui/src/views/nursing/assessment/NutritionScreening.vue b/healthlink-his-ui/src/views/nursing/assessment/NutritionScreening.vue new file mode 100644 index 000000000..80e0cfc05 --- /dev/null +++ b/healthlink-his-ui/src/views/nursing/assessment/NutritionScreening.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file