ソースを参照

邵逸夫对接

gaodm 5 年 前
コミット
b96e3f5c5a

+ 5 - 0
docs/032.20200228自诊程序对接/init_zzcx.sql

@@ -0,0 +1,5 @@
+use `sys-zzcx`;
+
+ALTER TABLE `zzcx_inquiry_info` ADD `inquiry_code` varchar(50) NOT NULL DEFAULT '' COMMENT '就诊序列号' AFTER `id_num`;
+
+ALTER TABLE `zzcx_inquiry_detail` MODIFY COLUMN `remark` varchar(3000) DEFAULT NULL COMMENT '备注';

+ 2 - 0
znwz-service/src/main/java/com/diagbot/vo/SaveInquiryVO.java

@@ -103,5 +103,7 @@ public class SaveInquiryVO {
     @NotBlank(message = "链接来源必传")
     private String from;
 
+    @ApiModelProperty(value = "自诊程序产生的ID")
+    private Long inquiryId;
 
 }

+ 26 - 0
zzcx-service/src/main/java/com/diagbot/dto/GetInquiryCodeDTO.java

@@ -0,0 +1,26 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/28 15:46
+ */
+@Getter
+@Setter
+public class GetInquiryCodeDTO {
+
+    /**
+     * 医院名称
+     */
+    private String hospitalCode;
+
+    /**
+     * 诊序列号
+     */
+    private String inquiryCode;
+}

+ 6 - 1
zzcx-service/src/main/java/com/diagbot/entity/InquiryInfo.java

@@ -94,7 +94,12 @@ public class InquiryInfo implements Serializable {
     /**
      * 证件号
      */
-    private String idNum;
+    private String 就诊序列号;
+
+    /**
+     * 证件号
+     */
+    private String inquiryCode;
 
     /**
      * 诊断程度(1:高,2:中,3:低)

+ 16 - 0
zzcx-service/src/main/java/com/diagbot/entity/Option.java

@@ -0,0 +1,16 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 题目选项
+ * @author: gaodm
+ * @time: 2020/2/28 15:57
+ */
+@Getter
+@Setter
+public class Option {
+    private Boolean select;
+    private String name;
+}

+ 35 - 12
zzcx-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -8,25 +8,27 @@ import com.diagbot.entity.InquiryDetail;
 import com.diagbot.entity.InquiryInfo;
 import com.diagbot.enums.IdTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.InquiryDetailServiceImpl;
 import com.diagbot.service.impl.InquiryInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.GsonUtil;
 import com.diagbot.util.HttpUtils;
 import com.diagbot.util.IdCard;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.HospitalVO;
+import com.diagbot.vo.InquiryCodeVO;
 import com.diagbot.vo.InquiryDetailVO;
 import com.diagbot.vo.InquiryPatInquiryVO;
 import com.diagbot.vo.InquiryPatVO;
+import com.diagbot.vo.SaveInquiryDetailVO;
 import com.diagbot.vo.SaveInquiryVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -48,7 +50,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
     @Qualifier("inquiryDetailServiceImpl")
     private InquiryDetailServiceImpl inquiryDetailService;
 
-    public void saveInquiry(SaveInquiryVO saveInquiryVO) {
+    public Long saveInquiry(SaveInquiryVO saveInquiryVO) {
         if (StringUtil.isBlank(saveInquiryVO.getHospitalCode())) {
             saveInquiryVO.setHospitalCode("朗通通用");
         }
@@ -92,24 +94,36 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             );
             // 删除原明细
             inquiryDetailFacade.update(new UpdateWrapper<InquiryDetail>()
-                   .set("gmt_modified", now)
-                   .set("is_deleted", IsDeleteEnum.Y.getKey())
-                   .eq("inquiry_id", inquiryInfo.getId())
+                    .set("gmt_modified", now)
+                    .set("is_deleted", IsDeleteEnum.Y.getKey())
+                    .eq("inquiry_id", inquiryInfo.getId())
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
             );
         }
         Long id = inquiryInfo.getId();
-        List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
-        inquiryDetailList.forEach(i -> {
-            i.setInquiryId(id);
-            i.setGmtCreate(now);
-            i.setGmtModified(now);
-        });
+        List<InquiryDetail> inquiryDetailList = new ArrayList<>();
+        if (ListUtil.isNotEmpty(saveInquiryVO.getDetailList())) {
+            for (SaveInquiryDetailVO saveInquiryDetailVO : saveInquiryVO.getDetailList()) {
+                InquiryDetail inquiryDetail = new InquiryDetail();
+                BeanUtil.copyProperties(saveInquiryDetailVO, inquiryDetail);
+                inquiryDetail.setInquiryId(id);
+                inquiryDetail.setGmtCreate(now);
+                inquiryDetail.setGmtModified(now);
+                if (ListUtil.isNotEmpty(saveInquiryDetailVO.getOptions())) {
+                    inquiryDetail.setRemark(GsonUtil.toJson(saveInquiryDetailVO.getOptions()));
+                }
+                inquiryDetailList.add(inquiryDetail);
+            }
+        }
         inquiryDetailService.saveBatch(inquiryDetailList);
 
         HospitalVO hospitalVO = new HospitalVO();
         hospitalVO.setHospitalCode(saveInquiryVO.getHospitalCode());
         // 保存记录表
         optInfoFacade.saveOptOnfo(hospitalVO, "2");
+
+        return id;
+
     }
 
 
@@ -130,5 +144,14 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         return list;
     }
 
+    public Boolean upInquiryCode(InquiryCodeVO inquiryCodeVO) {
+        Date now = DateUtil.now();
+        return this.update(new UpdateWrapper<InquiryInfo>()
+                .set("gmt_modified", now)
+                .set("inquiry_code", inquiryCodeVO.getInquiryCode())
+                .eq("id", inquiryCodeVO.getInquiryId())
+                .eq("hospital_code", inquiryCodeVO.getHospitalCode())
+        );
+    }
 
 }

+ 29 - 0
zzcx-service/src/main/java/com/diagbot/vo/GetInquiryCodeVO.java

@@ -0,0 +1,29 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/28 15:46
+ */
+@Getter
+@Setter
+public class GetInquiryCodeVO {
+
+    /**
+     * 医院名称
+     */
+    @NotBlank(message = "请输入医院名称")
+    private String hospitalCode;
+
+    /**
+     * 诊序列号
+     */
+    @NotBlank(message = "请输入就诊序列号")
+    private String inquiryCode;
+}

+ 35 - 0
zzcx-service/src/main/java/com/diagbot/vo/InquiryCodeVO.java

@@ -0,0 +1,35 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/28 15:46
+ */
+@Getter
+@Setter
+public class InquiryCodeVO {
+
+    /**
+     * 病历ID
+     */
+    @NotNull(message = "请输入病历ID")
+    private Long inquiryId;
+
+    /**
+     * 医院名称
+     */
+    @NotBlank(message = "请输入医院名称")
+    private String hospitalCode;
+
+    /**
+     * 诊序列号
+     */
+    @NotBlank(message = "请输入就诊序列号")
+    private String inquiryCode;
+}

+ 8 - 0
zzcx-service/src/main/java/com/diagbot/vo/SaveInquiryDetailVO.java

@@ -1,8 +1,11 @@
 package com.diagbot.vo;
 
+import com.diagbot.entity.Option;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @author rengb
  * @Description
@@ -22,5 +25,10 @@ public class SaveInquiryDetailVO {
      */
     private String answer;
 
+    /**
+     * 题目选项
+     */
+    private List<Option> options;
+
 
 }

+ 12 - 3
zzcx-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -4,24 +4,23 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.InquiryDTO;
 import com.diagbot.dto.InquiryPatDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.SaveInquiryDTO;
 import com.diagbot.entity.InquiryDetail;
 import com.diagbot.facade.InquiryInfoFacade;
+import com.diagbot.vo.InquiryCodeVO;
 import com.diagbot.vo.InquiryDetailVO;
 import com.diagbot.vo.InquiryPatInquiryVO;
 import com.diagbot.vo.InquiryPatVO;
 import com.diagbot.vo.SaveInquiryVO;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -84,4 +83,14 @@ public class InquiryInfoController {
         List<InquiryDetail> data = inquiryInfoFacade.getDetail(inquiryDetailVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "更新病历就诊号[by:gaodm]",
+            notes = "hospitalCode:医院名称<br>" +
+                    "inquiryId:病历ID<br>" +
+                    "inquiryCode:诊序列号<br>")
+    @PostMapping("/upInquiryCode")
+    @SysLogger("upInquiryCode")
+    public RespDTO<Boolean> upInquiryCode(@RequestBody @Validated InquiryCodeVO inquiryCodeVO) {
+        return RespDTO.onSuc(inquiryInfoFacade.upInquiryCode(inquiryCodeVO));
+    }
 }