Ver Fonte

每一份电子病历需要携带医生,主治,主任医生。

xiaochan há 2 anos atrás
pai
commit
2c68a5a69f

+ 27 - 0
src/main/java/thyyxxk/webserver/dao/his/PublicDao.java

@@ -9,6 +9,7 @@ import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.publicapi.ZkList;
 import thyyxxk.webserver.entity.socketmessage.SocketMessage;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
@@ -16,6 +17,7 @@ import thyyxxk.webserver.entity.zhuyuanyisheng.PatientAllergenInfo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.caoyaoyizhu.YzActOrderCy;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
 import thyyxxk.webserver.entity.zhuyuanyisheng.shoushu.OpRecord;
+import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.XinZhenYiZhu;
 import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.YaoPinXiangMu;
 
 import javax.print.DocFlavor;
@@ -348,4 +350,29 @@ public interface PublicDao {
                              String userCode);
 
 
+    @Select("select          rtrim(inpatient_no) as inpatient_no, " +
+            "                admiss_times, " +
+            "                rtrim(name)         as name, " +
+            "                rtrim(dept)         as dept_code, " +
+            "                rtrim(zk_ward)      as ward_code, " +
+            "                refer_physician, " +
+            "                times_billed, " +
+            "                admiss_date, " +
+            "                small_dept, " +
+            "                bed_no," +
+            "                zk_ward, " +
+            "    ledger_sn = (select max(ledger_sn) " +
+            "                 from zy_ledger_file with (NOLOCK) " +
+            "                 where a.inpatient_no = zy_ledger_file.inpatient_no " +
+            "                   and a.admiss_times = zy_ledger_file.admiss_times), " +
+            "                consult_physician, " +
+            "                dept_director " +
+            " from ${table} a with (NOLOCK)  " +
+            "where inpatient_no = #{patNo} " +
+            "  and admiss_times = #{times} ")
+    ZyPatientInfo queryPatientInfo(@Param("patNo") String patNo,
+                                   @Param("times") Integer times,
+                                   @Param("table") String table);
+
+
 }

+ 2 - 2
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/EmrPatientDao.java

@@ -45,9 +45,9 @@ public interface EmrPatientDao {
     Integer whetherThereIsAMedicalRecord(@Param("docmentId") String docmentId);
 
     @Insert("insert into emr_patient_data (pat_no, times, emr_document_id," +
-            " emr_category_code, emr_name,create_id,name,parent) " +
+            " emr_category_code, emr_name,create_id,name,parent,refer_physician,consult_physician,dept_director) " +
             "values (#{patNo},#{times},#{emrDocumentId}," +
-            "#{emrCategoryCode},#{emrName},#{createId},#{name},#{parent})")
+            "#{emrCategoryCode},#{emrName},#{createId},#{name},#{parent},#{referPhysician},#{consultPhysician},#{deptDirector})")
     void emrInsertForTheFirstTime(EmrPatientData param);
 
     @Update("update emr_patient_data " +

+ 10 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/inpatient/ZyPatientInfo.java

@@ -70,6 +70,16 @@ public class ZyPatientInfo {
 
     List<Integer> detailSns;
 
+    /**
+     * 主治医生
+     */
+    private String consultPhysician;
+
+    /**
+     * 主任医生
+     */
+    private String deptDirector;
+
     public Boolean getDbg() {
         return null != isDbg && isDbg;
     }

+ 15 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/emr/EmrPatientData.java

@@ -112,6 +112,21 @@ public class EmrPatientData implements Serializable {
 
     private String parent;
 
+    /**
+     * 管床医生
+     */
+    private String referPhysician;
+
+    /**
+     * 主治医生
+     */
+    private String consultPhysician;
+
+    /**
+     * 主任医生
+     */
+    private String deptDirector;
+
     public String getType() {
         return "category";
     }

+ 10 - 0
src/main/java/thyyxxk/webserver/service/PublicServer.java

@@ -28,6 +28,7 @@ import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
 import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.publicapi.ZkList;
 import thyyxxk.webserver.entity.settings.notification.SendMessageParam;
 import thyyxxk.webserver.entity.socketmessage.SocketMessage;
@@ -818,5 +819,14 @@ public class PublicServer {
         return ResultVoUtil.success(redisLikeService.getUserInfoByCode(code));
     }
 
+
+    public ZyPatientInfo getPatInfo(String patNo, Integer times) {
+        ZyPatientInfo p = dao.queryPatientInfo(patNo, times, "zy_actpatient");
+        if (p == null) {
+            p = dao.queryPatientInfo(patNo, times, "zy_inactpatient");
+        }
+        return p;
+    }
+
 }
 

+ 15 - 4
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/emr/EmrServer.java

@@ -25,6 +25,7 @@ import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.ZyZkList;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emr.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
+import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.XinZhenYiZhu;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.externalhttp.emr.EmrEditor;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
@@ -64,10 +65,6 @@ public class EmrServer {
      * @return 数据
      */
     public ResultVo<List<JSONObject>> getPatientDataTree(String patNo, Integer times) {
-        Map<String, JSONObject> temp = JSON.parseObject(JSON.toJSONString(TEMPLATE_DATA),
-                new TypeReference<LinkedHashMap<String, JSONObject>>() {
-                });
-
         List<EmrPatientData> list = dao.getPatientData(patNo, times);
         List<JSONObject> tree = new ArrayList<>(list.size());
 
@@ -79,6 +76,11 @@ public class EmrServer {
             tree();
         }
 
+        Map<String, JSONObject> temp = JSON.parseObject(JSON.toJSONString(TEMPLATE_DATA),
+                new TypeReference<LinkedHashMap<String, JSONObject>>() {
+                });
+
+
         list.forEach(item -> {
             JSONObject js = temp.get(item.getParent());
 
@@ -247,9 +249,18 @@ public class EmrServer {
         param.setCreateId(TokenUtil.getTokenUserId());
         boolean isUpdated = dao.whetherThereIsAMedicalRecord(param.getEmrDocumentId()).equals(1);
         Map<String, Object> extractedData = extractDataElement(param);
+
+
         if (isUpdated) {
             dao.updateCreatedTemplate(param);
         } else {
+            // 新增的时候插入数据
+            ZyPatientInfo patInfo = publicServer.getPatInfo(param.getPatNo(), param.getTimes());
+
+            param.setReferPhysician(patInfo.getReferPhysician())
+                    .setConsultPhysician(patInfo.getConsultPhysician())
+                    .setDeptDirector(patInfo.getDeptDirector());
+
             param.setParent(GROUP_MAP.get(param.getEmrCategoryCode()));
             dao.emrInsertForTheFirstTime(param);
         }