Sfoglia il codice sorgente

问卷调查可以看到住院患者的填写情况

lighter 9 mesi fa
parent
commit
3d6a117cbe

+ 6 - 0
src/main/java/thyyxxk/webserver/controller/outpatient/interactive/clinicsatisfied/QuestionnaireController.java

@@ -8,6 +8,7 @@ import thyyxxk.webserver.entity.inpatient.nursemodule.response.PatientBriefInfo;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.request.ClinicSatisfiedInquiry;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.request.ModifyStatus;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.AnalyzeResultV2;
+import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.Patientinfo;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.QuestionnaireV2;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.SatisfiedResponse;
 import thyyxxk.webserver.service.outpatient.interactive.clinicsatisfied.QuestionnaireService;
@@ -30,6 +31,11 @@ public class QuestionnaireController {
         return service.getQuestionnaireBodies(inquiry);
     }
 
+    @PostMapping("/getPatInfoList")
+    public ResultVo<List<Patientinfo>> getPatInfoList(@RequestBody ClinicSatisfiedInquiry inquiry) {
+        return service.getPatInfoList(inquiry);
+    }
+
     @PostMapping("/getAllQuestionnaireBodies")
     public ResultVo<List<QuestionnaireV2>> getAllQuestionnaireBodies(@RequestBody ClinicSatisfiedInquiry inquiry) {
         return service.getAllQuestionnaireBodies(inquiry);

+ 11 - 0
src/main/java/thyyxxk/webserver/dao/his/outpatient/interactive/ClinicSatisfiedDao.java

@@ -7,8 +7,10 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import thyyxxk.webserver.entity.inpatient.nursemodule.response.PatientBriefInfo;
+import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.request.ClinicSatisfiedInquiry;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.request.ModifyStatus;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.BriefSuggestion;
+import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.Patientinfo;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.QuestionnaireV2;
 import thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response.SatisfiedBody;
 
@@ -106,4 +108,13 @@ public interface ClinicSatisfiedDao {
     @Select("select rtrim(name) as patName,rtrim(phone_no) as phoneNo,patNo=#{patNo} " +
             "from mz_patient_mi where patient_id=#{patNo}")
     PatientBriefInfo selectOutpatientBriefInfo(String patNo);
+
+    @Select("select patNo=rtrim(inpatient_no),times=admiss_times,patName=rtrim(a.name), " +
+            "disdate=convert(varchar(10),dis_date,21),disdept=b.name, " +
+            "questionnaireCount=(select count(1) from t_inpatient_questionnaire_v2 d " +
+            "where d.inpatient_no=a.inpatient_no and d.times=a.admiss_times " +
+            "and d.create_datetime>=#{start} and d.create_datetime<=#{end}) " +
+            "from zy_inactpatient a,zd_unit_code b where dis_date>=#{start} " +
+            "and dis_date<=#{end} ${statement} and b.code=a.dis_ward")
+    List<Patientinfo> getPatientinfoList(ClinicSatisfiedInquiry inquiry);
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/outpatient/interactive/clinicsatisfied/request/ClinicSatisfiedInquiry.java

@@ -7,10 +7,14 @@ public class ClinicSatisfiedInquiry {
     private VisitType visitType;
     private String start;
     private String end;
+    private String ward;
+    private String patNo;
+    private Integer times;
     private Integer pageNum;
     private Integer pageSize;
     private Integer deleted;
     private Boolean onlyShowUnsatisfied;
+    private String statement = "";
 
     public Boolean getOnlyShowUnsatisfied() {
         return null != onlyShowUnsatisfied && onlyShowUnsatisfied;

+ 18 - 0
src/main/java/thyyxxk/webserver/entity/outpatient/interactive/clinicsatisfied/response/Patientinfo.java

@@ -0,0 +1,18 @@
+package thyyxxk.webserver.entity.outpatient.interactive.clinicsatisfied.response;
+
+import lombok.Data;
+
+@Data
+public class Patientinfo {
+    private String patNo;
+    private Integer times;
+    private String patName;
+    private String disdate;
+    private String disdept;
+    private Integer questionnaireCount;
+    private String countDes;
+
+    public String getCountDes() {
+        return null != questionnaireCount && questionnaireCount > 0 ? "是" : "否";
+    }
+}

+ 17 - 0
src/main/java/thyyxxk/webserver/service/outpatient/interactive/clinicsatisfied/QuestionnaireService.java

@@ -19,6 +19,7 @@ import thyyxxk.webserver.utils.TokenUtil;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -48,6 +49,13 @@ public class QuestionnaireService {
         return ResultVoUtil.success(response);
     }
 
+    public ResultVo<List<Patientinfo>> getPatInfoList(ClinicSatisfiedInquiry inquiry) {
+        if (StringUtil.notBlank(inquiry.getWard())) {
+            inquiry.setStatement(" and dis_ward='" + inquiry.getWard() + "'");
+        }
+        return ResultVoUtil.success(dao.getPatientinfoList(inquiry));
+    }
+
     public ResultVo<List<QuestionnaireV2>> getAllQuestionnaireBodies(ClinicSatisfiedInquiry inquiry) {
         QueryWrapper<?> wrapper = makeQueryWrapper(inquiry);
         String table = inquiry.getVisitType() == VisitType.INPATIENT ?
@@ -72,11 +80,20 @@ public class QuestionnaireService {
         if (StringUtil.notBlank(inquiry.getEnd())) {
             wrapper.le("create_datetime", inquiry.getEnd());
         }
+        if (StringUtil.notBlank(inquiry.getPatNo())) {
+            wrapper.eq("inpatient_no", inquiry.getPatNo());
+            if (null != inquiry.getTimes()) {
+                wrapper.eq("times", inquiry.getTimes());
+            }
+        }
         if (inquiry.getVisitType() == VisitType.EMERGENCY) {
             wrapper.eq("jz_flag", 1);
         } else if (inquiry.getVisitType() == VisitType.OUTPATIENT) {
             wrapper.eq("jz_flag", 0);
         }
+        if (StringUtil.isBlank(inquiry.getPatNo()) && StringUtil.notBlank(inquiry.getWard())) {
+            wrapper.eq("ward_code", inquiry.getWard());
+        }
         if (inquiry.getOnlyShowUnsatisfied()) {
             String header = "(yjk='不满意' or fsk='不满意' or csyxk='不满意' or jyk='不满意' or sfck='不满意' or ybk='不满意' or yyhjws='不满意' ";
             String tail = inquiry.getVisitType() == VisitType.INPATIENT ?