Browse Source

检查检验信息

zhangzw 4 years ago
parent
commit
db02108e18

+ 1 - 1
src/main/java/com/diagbot/enums/data/LeaveHospitalTypeEnum.java

@@ -3,7 +3,7 @@ package com.diagbot.enums.data;
 import lombok.Setter;
 
 public enum LeaveHospitalTypeEnum implements AKeyedNamed{
-    LEAVE_HOSPTAIL("1", "医离院"),
+    LEAVE_HOSPTAIL("1", "医离院"),
     TRANSFER_MEDICAL("2", "医嘱转院"),
     TRANSFER_COMMUNITY("3", "医嘱转社区卫生服务机构/乡镇卫生院"),
     NO_TRANSFER_MEDICAL("4", "非医嘱离院"),

+ 45 - 0
src/main/java/com/diagbot/enums/data/medicalRecordQualityEnum.java

@@ -0,0 +1,45 @@
+package com.diagbot.enums.data;
+
+import lombok.Setter;
+
+public enum medicalRecordQualityEnum implements AKeyedNamed{
+
+    A("1", "甲"),
+    B("2", "乙"),
+    C("3", "丙");
+
+    @Setter
+    private String key;
+
+    @Setter
+    private String name;
+
+    medicalRecordQualityEnum(String key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static medicalRecordQualityEnum getEnum(String key) {
+        for (medicalRecordQualityEnum item : medicalRecordQualityEnum.values()) {
+            if (key.equals(item.getKey())) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(String key) {
+        medicalRecordQualityEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public String getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 2 - 2
src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java

@@ -56,8 +56,8 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
     public void executeBehospital() {
         //String sql="select * from br_inpatientinfo where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //String sql="select * from br_inpatientinfo where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
-        //String sql = "SELECT * FROM AI_V_SENDPATIENTINFO t WHERE t.BEHOSPITALDATE >= to_date('2018-11-01','yyyy-mm-dd')";
-        String sql = sqlProperties.getBeHospitalInfoSql();
+        String sql = "select * from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-06-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-10-01','yyyy-mm-dd') and BEHDEPTID is not null";
+//        String sql = sqlProperties.getBeHospitalInfoSql();
         List<BehospitalInfo> behospitalInfoList = tzDBConn.getBehospitalInfo(sql);
         execute(behospitalInfoList);
     }

+ 3 - 1
src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java

@@ -42,7 +42,9 @@ public class ADoctorAdviceFacade extends DoctorAdviceServiceImpl{
     public void executeDoctorAdvice() {
         //String sql="select * from br_doctadvice where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //String sql="select * from br_doctadvice where BRZYID in (select BRZYID from br_inpatientinfo where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) and requestflag='1')";
-        String sql = sqlProperties.getDoctorAdviceSql();
+//        String sql = sqlProperties.getDoctorAdviceSql();
+//        String sql ="select * from ai_v_senddoctoradvice where behospitalcode in(select behospitalcode from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-10-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-11-22','yyyy-mm-dd'))";
+        String sql ="select * from ai_v_senddoctoradvice where behospitalcode in()";
         List<DoctorAdvice> doctorAdviceList = tzDBConn.getDoctorAdvice(sql);
         execute(doctorAdviceList);
     }

+ 2 - 1
src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java

@@ -42,7 +42,8 @@ public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
         //String sql="select * from br_recdiagnose where BASYID in (select BASYID from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate())";//今年的数据
         //前一天的数据
         //String sql="select * from br_recdiagnose where BASYID in (select BASYID from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-1,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)))";
-        String sql = sqlProperties.getHomeDiagnoseInfoSql();
+//        String sql = sqlProperties.getHomeDiagnoseInfoSql();
+        String sql ="select * from ai_v_sendhomepageing_cyzd where homepageid in()";
         List<HomeDiagnoseInfo> homeDiagnoseList = tzDBConn.getHomeDiagnose(sql);
         execute(homeDiagnoseList);
     }

+ 2 - 1
src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java

@@ -41,7 +41,8 @@ public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
         //String sql="select * from br_recoperation where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //前一天数据
         //String sql="select * from br_recoperation where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23))";
-        String sql = sqlProperties.getHomeOperationInfoSql();
+//        String sql = sqlProperties.getHomeOperationInfoSql();
+        String sql = "select * from ai_v_sendhomepageing_ssqk where homepageid in()";
         List<HomeOperationInfo> homeOperationList = tzDBConn.getHomeOperation(sql);
         execute(homeOperationList);
     }

+ 10 - 3
src/main/java/com/diagbot/facade/data/AHomePageFacade.java

@@ -58,8 +58,8 @@ public class AHomePageFacade extends HomePageServiceImpl{
         //String sql="select * from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //同步前一天的数据
         //String sql="select * from br_rechome where cjcxrq>=(CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(CONVERT(varchar,GETDATE(),23))";
-        String sql = "select * from AI_V_SENDHOMEPAGEING a where a.BEHOSPITALCODE='10522280'";
-//        String sql = "select * from AI_V_SENDHOMEPAGEING a where a.BEHOSPITALCODE in (select t.BEHOSPITALCODE from AI_V_SENDMRRECORDING t where t.recTitle like '入院记录') ";
+        //String sql = "select * from ai_v_sendhomepageing where behospitalcode in(select behospitalcode from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-10-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-11-22','yyyy-mm-dd'));";
+        String sql = "select * from ai_v_sendhomepageing where behospitalcode in()";
         List<HomePage> homePageList = tzDBConn.getHomePage(sql);
         execute(homePageList);
     }
@@ -192,7 +192,14 @@ public class AHomePageFacade extends HomePageServiceImpl{
                 if(StringUtil.isNotEmpty(s.getIsRadiatePathology())){
                     homePage.setIsRadiatePathology(DiagnoseTypeEnum.getName(s.getIsRadiatePathology()));
                 }
-
+                if(StringUtil.isNotEmpty(s.getAgainBehospitalPlan())){
+                    /**31天再住院计划*/
+                    homePage.setAgainBehospitalPlan(IsMedAllergyEnum.getName(s.getAgainBehospitalPlan()));
+                }
+                if(StringUtil.isNotEmpty(s.getHomePageQuality())){
+                    /**病案质量,1:甲,2:乙,3:丙*/
+                    homePage.setHomePageQuality(medicalRecordQualityEnum.getName(s.getHomePageQuality()));
+                }
                 if(StringUtil.isNotBlank(s.getBirthday())){
                     homePage.setBirthday(DateUtil.parseDateTime(DateUtil.formatDateTime(DateUtil.parseDate(s.getBirthday(),"yyyy-MM-dd"))));
                 }

+ 2 - 0
src/main/java/com/diagbot/facade/data/AMedLisInfoFacade.java

@@ -15,10 +15,12 @@ import com.diagbot.vo.data.ADeleteFlagVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.List;
 
+@Component
 public class AMedLisInfoFacade extends MedLisInfoServiceImpl {
 
     private TZDBConn tzDBConn = new TZDBConn();

+ 2 - 1
src/main/java/com/diagbot/facade/data/AMedLisResultFacade.java

@@ -40,7 +40,8 @@ public class AMedLisResultFacade extends MedLisResultServiceImpl {
         //String sql="select * from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //同步前一天的数据
         //String sql="select * from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23))";
-        String sql = sqlProperties.getLisResultSql();
+//        String sql = sqlProperties.getLisResultSql();
+        String sql ="select * from AI_V_SENDLISRESULTS where behospitalcode in(select behospitalcode from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-10-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-11-22','yyyy-mm-dd'))";
         List<MedLisResult> medLisResultList= tzDBConn.getLisResult(sql);
         execute(medLisResultList);
     }

+ 2 - 1
src/main/java/com/diagbot/facade/data/AMedPacsResultFacade.java

@@ -40,7 +40,8 @@ public class AMedPacsResultFacade extends MedPacsResultServiceImpl {
         //String sql="select * from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //同步前一天的数据
         //String sql="select * from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23))";
-        String sql = sqlProperties.getPacsResultSql();
+//        String sql = sqlProperties.getPacsResultSql();
+        String sql ="select * from AI_V_SENDPACSRESULTS where behospitalcode in(select behospitalcode from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-10-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-11-22','yyyy-mm-dd'))";
         List<MedPacsResult> medPacsResultList= tzDBConn.getPacsResult(sql);
         execute(medPacsResultList);
     }

+ 2 - 5
src/main/java/com/diagbot/facade/data/AMedicalRecordContentFacade.java

@@ -44,11 +44,8 @@ public class AMedicalRecordContentFacade extends MedicalRecordContentServiceImpl
     public void executeMrRecordContent() {
         //String sql="select * from mr_mrcontent  where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //String sql="select BLJLID,BLJLNR from mr_mrcontent  where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
-        //String sql="SELECT RECID AS BLJLID,CONTENTS AS BLJLNR FROM AI_V_SENDMRRECORDING t WHERE t.RECDATE>=to_date('2018-11-01','yyyy-mm-dd') AND t.RECDATE<=to_date('2019-12-30','yyyy-mm-dd') ORDER BY t.RECDATE ASC";
-        //String sql="SELECT RECID AS BLJLID,CONTENTS AS BLJLNR FROM AI_V_SENDMRRECORDING t WHERE t.RECDATE>=to_date('2019-12-30','yyyy-mm-dd') AND t.RECDATE<=to_date('2020-06-30','yyyy-mm-dd') ORDER BY t.RECDATE ASC";
-        //String sql="SELECT RECID AS BLJLID,CONTENTS AS BLJLNR FROM AI_V_SENDMRRECORDING t WHERE t.RECDATE>=to_date('2020-06-30','yyyy-mm-dd') AND t.RECDATE<=to_date('2020-10-16','yyyy-mm-dd') ORDER BY t.RECDATE ASC";
-        //String sql="SELECT RECID AS BLJLID,CONTENTS AS BLJLNR FROM AI_V_SENDMRRECORDING t";
-        String sql = sqlProperties.getRecordContentSql();
+//        String sql = sqlProperties.getRecordContentSql();
+        String sql = "select * from ai_v_sendmrrecording where behospitalcode in(select behospitalcode from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-06-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-06-15','yyyy-mm-dd'))";
         List<MedicalRecordContent> mrContentList = tzDBConn.getMedicalRecordContent(sql);
         execute(mrContentList);
     }

+ 10 - 6
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -72,9 +72,8 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
     public void executeMrRecord() {
         //String sql="select * from mr_medicalrecords  where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
         //String sql="select * from mr_medicalrecords  where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
-        //String sql="SELECT RECID AS BLJLID,BEHOSPITALCODE AS BRZYID,RECTYPEID AS BLMBID,RECDATE AS BCJLSJ,RECTITLE AS BLJLMC FROM AI_V_SENDMRRECORDING t t WHERE t.RECDATE>=to_date('2020-06-30','yyyy-mm-dd') AND t.RECDATE<=to_date('2020-10-16','yyyy-mm-dd') ORDER BY t.RECDATE ASC";
-        //String sql="SELECT RECID AS BLJLID,BEHOSPITALCODE AS BRZYID,RECTYPEID AS BLMBID,RECDATE AS BCJLSJ,RECTITLE AS BLJLMC FROM AI_V_SENDMRRECORDING t";
-        String sql = sqlProperties.getRecordInfoSql();
+        String sql="select * from ai_v_sendmrrecording where behospitalcode in(select behospitalcode from AI_V_SENDPATIENTINFO where leavehospitaldate >=to_date('2020-10-01','yyyy-mm-dd') and leavehospitaldate<to_date('2020-11-22','yyyy-mm-dd'))";
+//        String sql = sqlProperties.getRecordInfoSql();
         List<MedicalRecord> medicalRecordList = tzDBConn.getMedicalRecord(sql);
         execute(medicalRecordList);
     }
@@ -183,7 +182,7 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
                 //aMedAbnormalInfoFacade.saveAbnormalInfo("文书信息",JSON.toJSONString(aMrContentVO),JSON.toJSONString(RespDTO.onSuc(map)),"操作正常!");
                 return RespDTO.onSuc(map);
             }else if(aMrContentVO.getDockModeType().equals("1")){
-                if(modeId==0 || modeId==null){
+                if(modeId==null || modeId==0){
                     return RespDTO.onError("无对应的文书类型");
                 }
                 //页面模式
@@ -380,12 +379,17 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
                 modeId=mode.getStandModelId();
             }else{
                 modeId=Long.valueOf("0");
-                if(medicalRecord.getRecTitle().contains("查房")){
+                if(medicalRecord.getRecTitle().contains("查房") || medicalRecord.getRecTitle().contains("知情同意书")){
                     ModelHospital modelHospital=new ModelHospital();
                     modelHospital.setHospitalId(5L);
                     modelHospital.setHospitalModelName(medicalRecord.getRecTitle());
                     modelHospital.setStandModelId(4L);
-                    modelHospital.setStandModelName("查房记录");
+                    if(medicalRecord.getRecTitle().contains("查房")){
+                        modelHospital.setStandModelName("查房记录");
+                    }
+                    if(medicalRecord.getRecTitle().contains("知情同意书")){
+                        modelHospital.setStandModelName("知情同意书");
+                    }
                     modelHospitalFacade.save(modelHospital);
                     modeId=4L;
                 }

+ 9 - 7
src/main/java/com/diagbot/util/SocketServer.java

@@ -60,9 +60,16 @@ public class SocketServer {
                         logger.info("responseMsg========================>");
                         System.out.println(responseMsg);
                         sendMessage(socket, String.valueOf(responseMsg));
-                        socket.close();
+                        //socket.close();
                     } catch (Exception e) {
                         e.printStackTrace();
+                    }finally {
+                        try {
+                            socket.shutdownInput();
+                            socket.shutdownOutput();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
                     }
                 };
                 //接收线程返回结果
@@ -94,7 +101,6 @@ public class SocketServer {
 //                sb.append(new String(bytes, 0, len, "UTF-8"));
 //            }
             //此处,需要关闭服务器的输出流,但不能使用inputStream.close().
-            socket.shutdownInput();
             return sb;
         } catch (IOException e) {
             e.printStackTrace();
@@ -114,13 +120,9 @@ public class SocketServer {
             OutputStream outputStream = socket.getOutputStream();
             //首先需要计算得知消息的长度
             byte[] sendBytes = message.getBytes("UTF-8");
-            //然后将消息的长度优先发送出去
-//            outputStream.write(sendBytes.length >> 8);
-//            outputStream.write(sendBytes.length);
-            //然后将消息再次发送出去
             outputStream.write(sendBytes);
             outputStream.flush();
-            outputStream.close();
+            //outputStream.close();
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 2 - 2
src/main/java/com/diagbot/util/TZDBConn.java

@@ -472,9 +472,9 @@ public class TZDBConn {
 					doctorAdviceVO.setDaStartDate(DateUtil.parseDate(rs.getString("DASTARTDATE"),DateUtil.DATE_TIME_FORMAT));//医嘱开始时间
 				}
 				doctorAdviceVO.setDaItemName(rs.getString("DAITEMNAME"));//医嘱项目名称
-				doctorAdviceVO.setDaStatus(DoctorAdviceStatusEnum.getName(rs.getString("DASTATUS")));//医嘱状态判别
+				doctorAdviceVO.setDaStatus(rs.getString("DASTATUS"));//医嘱状态判别
 				if (StringUtil.isNotEmpty(rs.getString("DASTOPDATE"))){
-					doctorAdviceVO.setDaStartDate(DateUtil.parseDate(rs.getString("DASTOPDATE"),DateUtil.DATE_TIME_FORMAT));//医嘱结束时间
+					doctorAdviceVO.setDaStopDate(DateUtil.parseDate(rs.getString("DASTOPDATE"),DateUtil.DATE_TIME_FORMAT));//医嘱结束时间
 				}
 				doctorAdviceVO.setDaGroupNo(rs.getString("DAGROUPNO"));//医嘱同组序号
 				doctorAdviceVO.setDaPrescriptionType(rs.getString("DAPRESCRIPTIONTYPE"));//医嘱处方类型

+ 86 - 9
src/main/java/com/diagbot/util/YWAnalysis.java

@@ -11,6 +11,8 @@ import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
 import java.util.List;
 
 @Component
@@ -23,8 +25,12 @@ public class YWAnalysis {
     @Autowired
     private ADoctorAdviceFacade aDoctorAdviceFacade;
     @Autowired
+    private AMedPacsInfoFacade aMedPacsInfoFacade;
+    @Autowired
     private AMedPacsResultFacade aMedPacsResultFacade;
     @Autowired
+    private AMedLisInfoFacade aMedLisInfoFacade;
+    @Autowired
     private AMedLisResultFacade aMedLisResultFacade;
     @Autowired
     private AMedCrisisFacade aMedCrisisFacade;
@@ -39,11 +45,12 @@ public class YWAnalysis {
 
     public static final Long HOSPITAL_ID = Long.valueOf("5");//1:长兴,2:邵逸夫,3:台州市立医院,5义乌妇幼医院
 
+    @Transactional
     public void executeAnalysis(String hisMessage) {
         try {
             Message message = pipeParser.parse(hisMessage);
             Terser terser = new Terser(message);
-            //院登记
+            //院登记
             if (message.getName().equals("ADT_A01")) {
                 aBehospitalInfoFacade.execute(getBehospitalInfoToView(terser.get("/.PV1-19-1")));
             }
@@ -53,10 +60,12 @@ public class YWAnalysis {
             }
             //检查结果
             if (message.getName().equals("ORU_R01")) {
+                aMedPacsInfoFacade.execute(getPacsInfoToMsg(hisMessage));
                 aMedPacsResultFacade.execute(getPacsResultToView(terser.get("/.ORC-2-1")));
             }
             //化验
             if (message.getName().equals("OUL_R21")) {
+                aMedLisInfoFacade.execute(getLisInfoToMsg(hisMessage));
                 aMedLisResultFacade.execute(getLisResultToView(terser.get("/.OBR-2-3")));
             }
         } catch (Exception e) {
@@ -174,6 +183,40 @@ public class YWAnalysis {
         return doctorAdviceList;
     }
 
+
+    /**
+     * 解析检查信息消息pacsInfo
+     * @param hisMessage
+     * @return
+     */
+    public List<MedPacsInfo> getPacsInfoToMsg(String hisMessage){
+        List<MedPacsInfo> medPacsInfoList = Lists.newLinkedList();
+        MedPacsInfo medPacsInfo = new MedPacsInfo();
+        try {
+            Message message = pipeParser.parse(hisMessage);
+            Terser terser = new Terser(message);
+            medPacsInfo.setRepNo(terser.get("/.ORC-2-1"));//报告单号
+            medPacsInfo.setHospitalId(HOSPITAL_ID);
+            medPacsInfo.setBehospitalCode(terser.get("/.PV1-19-1"));//住院病人ID
+            medPacsInfo.setRepName(terser.get("/.OBR-15-1-2"));//报告名称
+            medPacsInfo.setRepType(null);//报告类型代码
+            medPacsInfo.setRepName(terser.get("/.OBR-4-5"));//检查类型名称
+            medPacsInfo.setPart(terser.get("/.OBR-4-2"));//检查部位
+            medPacsInfo.setRepDate(terser.get("/.OBR-22-1"));//发布时间
+            medPacsInfo.setCheckDate(terser.get("/.ORC-9-1"));//报告检查时间
+            medPacsInfo.setApplyDoctor(terser.get("/.ORC-12-3"));//申请医生
+            medPacsInfo.setDeptId(terser.get("/.ORC-17-1"));//开单科室代码
+            medPacsInfo.setDeptName(terser.get("/.ORC-17-2"));//开单科室名称
+            medPacsInfo.setRegisterFlag(terser.get("/.OBR-25"));//报告单状态
+            medPacsInfo.setReportDoctor(terser.get("/.ORC-12-3"));//报告医生
+            medPacsInfo.setChecker(terser.get("/.ORC-11-3"));//报告审核医生
+            medPacsInfo.setYjpdz(null);//云胶片地址
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        medPacsInfoList.add(medPacsInfo);
+        return medPacsInfoList;
+    }
     /**
      * 解析检查结果消息(视图获取/消息解析)
      * @param queryParam
@@ -192,13 +235,17 @@ public class YWAnalysis {
             Terser terser = new Terser(message);
             medPacsResult.setRepNo(terser.get("/.ORC-2-1"));
             medPacsResult.setHospitalId(HOSPITAL_ID);
-            medPacsResult.setBehospitalCode("");
+            medPacsResult.setBehospitalCode(terser.get("/.PV1-19-1"));
             medPacsResult.setReptName(terser.get("/.OBR-4-5"));
             medPacsResult.setPart(terser.get("/.OBR-4-2"));
-            medPacsResult.setClinicSight("");
-            medPacsResult.setReptDiag("");
-            medPacsResult.setRemark("");
-            medPacsResult.setClinicDiag("");
+            if(terser.get("/.OBR-3-1").equals("IMP") && terser.get("/.OBR-2").equals("CE")){
+                medPacsResult.setClinicSight(terser.get("/.OBX-5"));
+            }
+            if(terser.get("/.OBR-3-1").equals("GDT") && terser.get("/.OBR-2").equals("TX")){
+                medPacsResult.setReptDiag(terser.get("/.OBX-5"));
+            }
+            medPacsResult.setRemark(null);
+            medPacsResult.setClinicDiag(terser.get("/.DG1-4"));
             medPacsResult.setApplyDoctor(terser.get("/.ORC-12-1"));
             medPacsResult.setCheckerDoctor(terser.get("/.OBR-34-1-1"));
             medPacsResult.setReportDoctor(terser.get("/.ORC-10-1"));
@@ -210,6 +257,38 @@ public class YWAnalysis {
         return medPacsResultList;
     }
 
+    /**
+     * 解析化验信息消息lisInfo
+     * @param hisMessage
+     * @return
+     */
+    public List<MedLisInfo> getLisInfoToMsg(String hisMessage){
+        List<MedLisInfo> medLisInfoList = Lists.newLinkedList();
+        MedLisInfo medLisInfo = new MedLisInfo();
+        try {
+            Message message = pipeParser.parse(hisMessage);
+            Terser terser = new Terser(message);
+            medLisInfo.setRepNo(terser.get("/.OBR-2-3"));//报告单号
+            medLisInfo.setHospitalId(HOSPITAL_ID);
+            medLisInfo.setBehospitalCode(terser.get("/.PV1-19-1"));//住院病人ID
+            medLisInfo.setRepType(terser.get("/.OBR-4-4"));//报告类型代码
+            medLisInfo.setRepName(terser.get("/.OBR-4-2"));//报告名称
+            medLisInfo.setRepTypeName(null);//检查类型名称
+            medLisInfo.setSlideType(null);//标本名称
+            if(StringUtils.isNotEmpty(terser.get("/.OBR-22-1"))){
+                //发布时间
+                medLisInfo.setRepDate(DateUtil.formatDate(DateUtil.parseDate(YWDateUtils.convJsonDateToString(terser.get("/.OBR-22-1"), DateUtil.DATE_TIME_FORMAT), DateUtil.DATE_TIME_FORMAT)));
+            }
+            medLisInfo.setCheckDate(null);//报告检查时间
+            medLisInfo.setApplyDoctor(terser.get("/.ORC-12-3"));//申请医生
+            medLisInfo.setDeptId(terser.get("/.ORC-17-1"));//开单科室代码
+            medLisInfo.setRegisterFlag(terser.get("/.OBR-25"));//报告单状态
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        medLisInfoList.add(medLisInfo);
+        return medLisInfoList;
+    }
     /**
      * 化验结果消息(视图获取/消息解析)
      * @param queryParam
@@ -220,19 +299,17 @@ public class YWAnalysis {
         List<MedLisResult> medLisResultList = tzDBConn.getLisResult(queryLisResultSql);
         return medLisResultList;
     }
-
     public List<MedLisResult> getLisResultToMsg(String hisMessage) {
         List<MedLisResult> medLisResultList = Lists.newLinkedList();
         try {
             Message message = pipeParser.parse(hisMessage);
             Terser terser = new Terser(message);
             int OBXCounts = hisMsgHeaderCounts(hisMessage, "OBX|");
-            System.out.println(terser);
             for (int i = 0; i < OBXCounts; i++) {
                 MedLisResult medLisResult = new MedLisResult();
                 medLisResult.setRepNo(terser.get("/.OBR-2-3"));
                 medLisResult.setHospitalId(HOSPITAL_ID);
-                //medLisResult.setBehospitalCode("");
+                medLisResult.setBehospitalCode(terser.get("/.PV1-19-1"));
                 medLisResult.setItemCode(terser.get("/.OBSERVATION(" + i + ")/OBX-3-1"));
                 medLisResult.setItemName(terser.get("/.OBSERVATION(" + i + ")/OBX-3-2"));
                 medLisResult.setResult(terser.get("/.OBSERVATION(" + i + ")/OBX-5"));

+ 1 - 1
src/main/resources/mapper/DoctorAdviceMapper.xml

@@ -152,7 +152,7 @@
                     is_deleted = #{item.isDeleted},
                 </if>
                 <if test="item.gmtModified != null">
-                    gmt_modified = #{item.gmtModmasterified},
+                    gmt_modified = #{item.gmtModified},
                 </if>
                 <if test="item.modifier != null">
                     modifier = #{item.modifier},