فهرست منبع

自动创建住院证以及尝试不执行医技科室的医嘱

xiaochan 3 هفته پیش
والد
کامیت
9e1b274727

+ 6 - 0
src/main/java/thyyxxk/webserver/controller/inpatient/xmlr/XiangMuLuRuController.java

@@ -223,5 +223,11 @@ public class XiangMuLuRuController {
         return service.delOrder(orderNo);
     }
 
+    @GetMapping("/queryByQrcode")
+    public ResultVo<Object> queryByQrcode(@RequestParam("qrCode") String qrCode,
+                                          @RequestParam("execUnit") String execUnit) {
+        return service.queryByQrcode(qrCode, execUnit);
+    }
+
 }
 

+ 2 - 3
src/main/java/thyyxxk/webserver/dao/his/inpatient/xmlr/XiangMuLuRuDao.java

@@ -925,16 +925,15 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
             "                          drug_specification, mini_unit, drug_weight, drug_weight_unit,\n" +
             "                          self_buy, drug_volume, drug_vol_unit, dose, dose_unit, drug_occ,\n" +
             "                          serial, group_no, ward_code,\n" +
-            "                          doctor_flag /*1*/, dept_code, exec_unit)\n" +
+            "                          doctor_flag /*1*/, dept_code, exec_unit,performance_time)\n" +
             "values (#{item.actOrderNo},#{info.inpatientNo},#{info.admissTimes},#{item.code},#{item.name},#{item.chargeDate},'ONCE', " +
             "#{item.chargeDate}," +
             "#{doctorCode},#{item.chargeDate},#{item.chargeDate},#{info.infantFlag},#{item.orderDrugFlag},#{item.supplyCode}," +
             "#{doctorCode},#{item.chargeDate},#{doctorCode},#{userCode},'5',#{item.chargeDate},#{item.drugQuan},#{item.instruction,jdbcType=CHAR}," +
             "#{item.specification},#{item.miniUnit},#{item.weight},#{item.weighUnit},'6',#{item.volum,jdbcType=DECIMAL},#{item.volUnit,jdbcType=CHAR},#{item.dose,jdbcType=DECIMAL},#{item.doseUnit,jdbcType=CHAR},#{item.dose,jdbcType=DECIMAL}," +
-            "#{item.serial},'73',#{info.wardCode},'1',#{info.wardCode},#{item.execUnit})")
+            "#{item.serial},'73',#{info.wardCode},'1',#{info.wardCode},#{item.execUnit},#{item.chargeDate})")
     void addOrder(XinZhenYiZhu info, SaveOrderReq.OrderData item, String doctorCode, String userCode);
 
-
     @Delete("delete yz_act_order where act_order_no = #{order} and isnull(self_buy,'0') = '6'")
     int delOrder(BigDecimal order);
 

+ 1 - 0
src/main/java/thyyxxk/webserver/service/autocreateemr/imp/ZhuYuanZheng.java

@@ -52,6 +52,7 @@ public class ZhuYuanZheng implements AutoCreateEmr {
             }});
         }});
         rst.setData(data);
+        rst.setCreateCode(data.getString("doctorCode"));
         return rst;
     }
 

+ 17 - 1
src/main/java/thyyxxk/webserver/service/inpatient/xmlr/XiangMuLuRuService.java

@@ -3,6 +3,7 @@ package thyyxxk.webserver.service.inpatient.xmlr;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import cn.hutool.extra.template.TemplateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.TransactionTemplate;
 import org.springframework.web.bind.annotation.RequestParam;
+import thyyxxk.webserver.config.envionment.ApiUrl;
 import thyyxxk.webserver.config.exception.BizException;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.inpatient.xmlr.XiangMuLuRuDao;
@@ -72,7 +74,8 @@ public class XiangMuLuRuService {
     private final EmrServer emrServer;
     private final YiZhuLuRuDao yiZhuLuRuDao;
     private final TransactionTemplate transactionTemplate;
-
+    private final ApiUrl apiUrl;
+    private final RestTemplateUtils templateUtil;
 
     private XiangMuLuRuService getThis() {
         return SpringUtil.getBean(this.getClass());
@@ -1061,6 +1064,19 @@ public class XiangMuLuRuService {
         return R.ok(ExceptionEnum.SUCCESS_AND_EL_MESSAGE);
     }
 
+    public ResultVo<Object> queryByQrcode(String qrCode, String execUnit) {
+        String thirdpartApi = apiUrl.getThirdpartApi() + "/spd/findByUdi";
+        ResultVo<JSONObject> rst = templateUtil.get(thirdpartApi, new JSONObject() {{
+            put("uid", qrCode);
+            put("dept", execUnit);
+        }}, JSONObject.class);
+
+        if (rst.getCode().equals(200)) {
+            return R.ok();
+        }
+        return R.fail(ExceptionEnum.LOGICAL_ERROR, rst.getMessage());
+    }
+
 
 }
 

+ 7 - 0
src/main/java/thyyxxk/webserver/service/medicaladvice/patientinfo/AdjustBedService.java

@@ -30,6 +30,7 @@ import thyyxxk.webserver.entity.medicaladvice.medicamanage.patientinfo.ZyBedMiPa
 import thyyxxk.webserver.entity.medicaladvice.medicamanage.weixin.WeiXinPreBedMsgParam;
 import thyyxxk.webserver.http.websocket.SocketV2;
 import thyyxxk.webserver.http.websocket.dto.WebSocketByListUserCode;
+import thyyxxk.webserver.service.autocreateemr.AutoCreateEmrParams;
 import thyyxxk.webserver.service.externalhttp.WxServer;
 import thyyxxk.webserver.service.hutoolcache.DeptCache;
 import thyyxxk.webserver.service.hutoolcache.UserCache;
@@ -59,6 +60,7 @@ public class AdjustBedService {
     private final SocketV2 intergrationPlatformSocket;
     private final UserCache userCache;
     private final DeptCache deptCache;
+    private final AutoCreateEmrParams autoCreateEmrParams;
 
     public ResultVo<String> preAllocationBed(MzZyReq mzZyReq) {
         mzZyReq.setVisitDateStr(DateUtil.formatDateTime(mzZyReq.getVisitDate()));
@@ -168,6 +170,11 @@ public class AdjustBedService {
     }
 
     public void receivePatient(ZyActpatient actpatient) {
+        AutoCreateEmrParams.Params params = new AutoCreateEmrParams.Params();
+        params.setPatNo(actpatient.getInpatientNo());
+        params.setTimes(actpatient.getAdmissTimes());
+        // 自动创建病程记录
+        autoCreateEmrServer.createEmrAsync(params);
         dao.updateBedStatus(actpatient.getInpatientNo(), actpatient.getPhry());
     }
 

+ 1 - 4
src/main/java/thyyxxk/webserver/service/zhuyuanyiji/YiJiFeiYongLuRuServer.java

@@ -21,9 +21,7 @@ import thyyxxk.webserver.utils.StringUtil;
 @Service
 @Slf4j
 public class YiJiFeiYongLuRuServer {
-
     private final YiJiFeiYongLuRuDao dao;
-
     private final PublicServer publicServer;
 
     public YiJiFeiYongLuRuServer(YiJiFeiYongLuRuDao dao, PublicServer publicServer) {
@@ -37,7 +35,6 @@ public class YiJiFeiYongLuRuServer {
      * @return 返回患者信息
      */
     public ResultVo<ZyActpatient> getHuanZheXinXi(String inpatientNo, Integer zaiYuanChuYuan, Integer admissTimes) {
-        log.info("医技查询患者信息:住院号{},是否在院{},住院次数:{}", inpatientNo, zaiYuanChuYuan, admissTimes);
         if (StringUtil.isBlank(inpatientNo)) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "住院号不能为空。");
         }
@@ -55,7 +52,7 @@ public class YiJiFeiYongLuRuServer {
             return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
         }
         if (zaiYuanChuYuan == 0) {
-            Integer jieSuan = dao.getHuanZheSFJieSuan(publicServer.getInpatientNo(inpatientNo), zyActpatient.getAdmissTimes());
+            Integer jieSuan = dao.getHuanZheSFJieSuan(PublicServer.getInpatientNo(inpatientNo), zyActpatient.getAdmissTimes());
             if (jieSuan == null || jieSuan != 0) {
                 return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者已经结算。");
             }