Browse Source

电子病历上传

lighter 11 months ago
parent
commit
d0bd39545e

+ 4 - 0
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/EmrUploadDao.java

@@ -3,6 +3,7 @@ package thyyxxk.webserver.dao.his.medicalinsurance;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import thyyxxk.webserver.entity.medicalinsurance.emrupload.Adminfo;
+import thyyxxk.webserver.entity.medicalinsurance.emrupload.HeightWeight;
 import thyyxxk.webserver.entity.medicalinsurance.emrupload.SimpleEmrPatientData;
 
 import java.util.List;
@@ -37,4 +38,7 @@ public interface EmrUploadDao {
     @Select("select max(si_caty) from zd_unit_code where name=#{name} ")
     String getSiCaty(String name);
 
+    @Select("select isnull(max(body_length),0) as height,isnull(min(body_weight), 0) as weight " +
+            "from yz_temperature_sum where inpatient_no=#{patNo} and admiss_times=#{times}")
+    HeightWeight getHeightWeight(String patNo, int times);
 }

+ 9 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/emrupload/HeightWeight.java

@@ -0,0 +1,9 @@
+package thyyxxk.webserver.entity.medicalinsurance.emrupload;
+
+import lombok.Data;
+
+@Data
+public class HeightWeight {
+    private String height;
+    private String weight;
+}

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/outpatient/triage/FloorScreenSetting.java

@@ -0,0 +1,4 @@
+package thyyxxk.webserver.entity.outpatient.triage;
+
+public class FloorScreenSetting {
+}

+ 34 - 4
src/main/java/thyyxxk/webserver/service/medicalinsurance/EmrUploadService.java

@@ -55,6 +55,10 @@ public class EmrUploadService {
         if (null == adminfo) {
             throw new BizException("没有已经结算的就诊信息。");
         }
+        HeightWeight hw = dao.getHeightWeight(patNo, times);
+        adminfo.setPhysexmHeight(hw.getHeight());
+        adminfo.setPhysexmWt(hw.getWeight());
+
         TmpDiseinfo diseinfo = null;
         Coursrinfo coursrinfo = null;
         Dieinfo dieinfo = null;
@@ -165,17 +169,29 @@ public class EmrUploadService {
 
     public void getAndMergeAdminfo(Adminfo adminfo, SimpleEmrPatientData data) {
 
-        adminfo.setPhysexmHeight("172");
-        adminfo.setPhysexmWt("67");
         adminfo.setStopSmokDays("0");
-        adminfo.setSmokDay("0");
-        adminfo.setDrnkDay("0");
 
         JSONObject obj = JSONUtil.parseObj(data.getEmrDataElement());
         adminfo.setAdmRecNo(String.valueOf(data.getId()));
         adminfo.setChfcomp(obj.getByPath("主诉.value", String.class));
         adminfo.setDiseNow(obj.getByPath("现病史.value", String.class));
 
+        JSONObject rxyl = getFirstObjInArray(obj, "日吸烟量.value");
+        String tempRxyl = rxyl.getStr("name", "");
+        String smokDay = "0";
+        if (tempRxyl.contains(":") && tempRxyl.contains("支,")) {
+            smokDay = tempRxyl.replaceAll("支,", "").split(":")[1];
+        }
+        adminfo.setSmokDay(smokDay);
+
+        JSONObject ryjl = getFirstObjInArray(obj, "日饮酒量.value");
+        String tempRylj = ryjl.getStr("name", "");
+        String drnkDay = "0";
+        if (tempRylj.contains(":") && tempRylj.contains("mL,")) {
+            drnkDay = tempRylj.replaceAll("mL,", "").split(":")[1];
+        }
+        adminfo.setDrnkDay(drnkDay);
+
         JSONObject yfjzs = getFirstObjInArray(obj, "预防接种史.value");
         adminfo.setPrevVcnt(yfjzs.getStr("name", ""));
         JSONObject sss = getFirstObjInArray(obj, "手术史.value");
@@ -312,6 +328,16 @@ public class EmrUploadService {
         JSONObject zs1 = getFirstObjInArray(obj, "第一助手.value");
         JSONObject zs2 = getFirstObjInArray(obj, "第二助手.value");
         JSONObject mzys = getFirstObjInArray(obj, "麻醉医生.value");
+        JSONObject hyaMcbNBsf = obj.getByPath("hyaMcbNBsf.items", JSONObject.class);
+
+        String sqyngrStrVal = "否";
+        String yfkjywStrVal = "否";
+        if (null != hyaMcbNBsf) {
+            JSONObject sqyngr = getFirstObjInArray(hyaMcbNBsf, "术前院内感染.value");
+            sqyngrStrVal = sqyngr.getStr("name", "否");
+            JSONObject yfkjyw = getFirstObjInArray(hyaMcbNBsf, "预防抗菌药物.value");
+            yfkjywStrVal = yfkjyw.getStr("name", "否");
+        }
 
         String oprndate = obj.getByPath("手术日期.value", String.class);
         JSONArray oprns = getJSONArrayByPath(obj, "已行手术.value");
@@ -337,6 +363,10 @@ public class EmrUploadService {
             oprninfo.setOprnAsitName2(zs2.getStr("name", ""));
             oprninfo.setAnstDrCode(mzys.getStr("code"));
             oprninfo.setAnstDrName(mzys.getStr("name", ""));
+
+            oprninfo.setBfpnInhospIfet(sqyngrStrVal);
+            oprninfo.setPrevAbtlMedn(yfkjywStrVal);
+
             oprninfo.setValiFlag("1");
             list.add(oprninfo);
         }