Преглед изворни кода

病案首页诊断、手术,增加删除操作

zhangzw пре 4 година
родитељ
комит
a1ccb474b5

+ 18 - 0
src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java

@@ -77,9 +77,17 @@ public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
         try {
             List<HomeDiagnoseInfo> addE = Lists.newLinkedList();
             List<HomeDiagnoseInfo> updateE = Lists.newLinkedList();
+            List<String> tempDiagnoseOrderNo = Lists.newLinkedList();
+            List<String> tempHomePageId = Lists.newLinkedList();
+            List<HomeDiagnoseInfo> tempHomeDiagnoseList = homeDiagnoseInfoService.list(new QueryWrapper<HomeDiagnoseInfo>()
+                    .eq("home_page_id",homeDiagnoseList.get(0).getHomePageId())
+                    .eq("hospital_id",homeDiagnoseList.get(0).getHospitalId())
+                    .eq("is_deleted",IsDeleteEnum.N));
             if (homeDiagnoseList != null && homeDiagnoseList.size() > 0) {
                 homeDiagnoseList.stream().forEach(s -> {
                     if(s.getHomePageId()!=null && !"".equals(s.getDiagnoseOrderNo())){
+                        tempDiagnoseOrderNo.add(s.getDiagnoseOrderNo());
+                        tempHomePageId.add(s.getHomePageId());
                         HomeDiagnoseInfo diagnoseInfo = this.getOne(new QueryWrapper<HomeDiagnoseInfo>()
                                 .eq("home_page_id", s.getHomePageId())
                                 .eq("hospital_id", s.getHospitalId())
@@ -94,6 +102,16 @@ public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
                     }
                 });
             }
+            if(tempHomeDiagnoseList != null && tempHomeDiagnoseList.size() > 0){
+                tempHomeDiagnoseList.stream().forEach(s ->{
+                    if(!tempDiagnoseOrderNo.contains(s.getDiagnoseOrderNo()) && tempHomePageId.contains(s.getHomePageId())){
+                        homeDiagnoseInfoService.remove(new QueryWrapper<HomeDiagnoseInfo>()
+                                .eq("home_page_id",s.getHomePageId())
+                                .eq("hospital_id",s.getHospitalId())
+                                .eq("diagnose_order_no",s.getDiagnoseOrderNo()));
+                    }
+                });
+            }
             if(addE.size()>0){
                 homeDiagnoseInfoService.saveBatch(addE);
             }

+ 18 - 0
src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java

@@ -72,9 +72,17 @@ public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
         try {
             List<HomeOperationInfo> addE = Lists.newLinkedList();
             List<HomeOperationInfo> updateE = Lists.newLinkedList();
+            List<String> tempOperationOrderNo = Lists.newLinkedList();
+            List<String> tempHomePageId = Lists.newLinkedList();
+            List<HomeOperationInfo> homeOperationInfoList = homeOperationInfoService.list(new QueryWrapper<HomeOperationInfo>()
+                    .eq("home_page_id",homeOperationList.get(0).getHomePageId())
+                    .eq("hospital_id",homeOperationList.get(0).getHospitalId())
+                    .eq("is_deleted",IsDeleteEnum.N));
             if (homeOperationList != null && homeOperationList.size() > 0) {
                 homeOperationList.stream().forEach(s -> {
                     if(s.getHomePageId()!=null && !"".equals(s.getOperationOrderNo())) {
+                        tempOperationOrderNo.add(s.getOperationOrderNo());
+                        tempHomePageId.add(s.getHomePageId());
                         QueryWrapper<HomeOperationInfo> queryWrapper = new QueryWrapper<>();
                         queryWrapper.eq("home_page_id", s.getHomePageId());
                         queryWrapper.eq("hospital_id", s.getHospitalId());
@@ -90,6 +98,16 @@ public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
                     }
                 });
             }
+            if(homeOperationInfoList != null && homeOperationInfoList.size() > 0){
+                homeOperationInfoList.stream().forEach(s ->{
+                    if(!tempOperationOrderNo.contains(s.getOperationOrderNo()) && tempHomePageId.contains(s.getHomePageId())){
+                        homeOperationInfoService.remove(new QueryWrapper<HomeOperationInfo>()
+                                .eq("home_page_id",s.getHomePageId())
+                                .eq("hospital_id",s.getHospitalId())
+                                .eq("operation_order_no",s.getOperationOrderNo()));
+                    }
+                });
+            }
             if(addE.size()>0){
                 homeOperationInfoService.saveBatch(addE);
             }

+ 14 - 0
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -331,9 +331,23 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
             if(behDeptId.equals("52425")){
                 /**妇科(住)日间病历、24小时出入院记录的病历模板,映射妇科日间*/
                 behDeptId = "52883";
+                BasDeptInfo basDeptInfo = basDeptInfoFacade.getOne(new QueryWrapper<BasDeptInfo>()
+                        .eq("dept_id",behDeptId)
+                        .eq("hospital_id",behospitalInfo.getHospitalId())
+                        .eq("is_deleted",IsDeleteEnum.N));
+                behospitalInfo.setBehDeptId(behDeptId);
+                behospitalInfo.setBehDeptName(basDeptInfo.getDeptName());
+                behospitalInfo.setGmtModified(DateUtil.now());
             }else if(behDeptId.equals("51944")){
                 /**乳腺外科日间病历、24小时出入院记录的病历模板,映射乳腺外科日间日间*/
                 behDeptId = "52923";
+                BasDeptInfo basDeptInfo = basDeptInfoFacade.getOne(new QueryWrapper<BasDeptInfo>()
+                        .eq("dept_id",behDeptId)
+                        .eq("hospital_id",behospitalInfo.getHospitalId())
+                        .eq("is_deleted",IsDeleteEnum.N));
+                behospitalInfo.setBehDeptId(behDeptId);
+                behospitalInfo.setBehDeptName(basDeptInfo.getDeptName());
+                behospitalInfo.setGmtModified(DateUtil.now());
             }
         }
         List<QcType> qcTypeList = qcTypeFacade.list(new QueryWrapper<QcType>()

+ 21 - 20
src/main/java/com/diagbot/util/YWAnalysis.java

@@ -4,7 +4,10 @@ import ca.uhn.hl7v2.model.Message;
 import ca.uhn.hl7v2.parser.PipeParser;
 import ca.uhn.hl7v2.util.Terser;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.entity.*;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.data.DoctorAdviceStatusEnum;
 import com.diagbot.facade.BehospitalInfoFacade;
 import com.diagbot.facade.data.*;
@@ -55,27 +58,25 @@ public class YWAnalysis {
         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")));
-//            }
-            if (message.getName().equals("ADT_A09") || message.getName().equals("ADT_A16") ) {
+            //入院/入科更新入院登记
+            if (message.getName().equals("ADT_A01") || message.getName().equals("ADT_A09")) {
                 aBehospitalInfoFacade.execute(getBehospitalInfoToView(terser.get("/.PV1-19-1")));
-                //从入科消息中获取更新入院时间
-//                BehospitalInfo behospitalInfo = behospitalInfoFacade.getOne(new QueryWrapper<BehospitalInfo>()
-//                        .eq("behospital_code", terser.get("/.PV1-19-1"))
-//                        .eq("hospital_id", HOSPITAL_ID)
-//                        .eq("is_deleted", IsDeleteEnum.N), false);
-//                if(behospitalInfo != null){
-//                    if(StringUtil.isNotEmpty(terser.get("/.PV1-44-1"))){
-//                        behospitalInfo.setBehospitalDate(DateUtil.parseDate(YWDateUtils.convJsonDateToString(terser.get("/.PV1-44-1"), DateUtil.DATE_TIME_FORMAT)));
-//                    }
-//                    QueryWrapper<BehospitalInfo> queryWrapper = new QueryWrapper<>();
-//                    queryWrapper.eq("behospital_code", terser.get("/.PV1-19-1"));
-//                    queryWrapper.eq("hospital_id", HOSPITAL_ID);
-//                    queryWrapper.eq("is_deleted", IsDeleteEnum.N);
-//                    behospitalInfoFacade.update(behospitalInfo,queryWrapper);
-//                }
+            }
+            if (message.getName().equals("ADT_A16") ) {
+                //预出院消息更新出院时间
+                BehospitalInfo behospitalInfo = behospitalInfoFacade.getOne(new QueryWrapper<BehospitalInfo>()
+                        .eq("behospital_code", terser.get("/.PV1-19-1"))
+                        .eq("hospital_id", HOSPITAL_ID)
+                        .eq("is_deleted", IsDeleteEnum.N), false);
+                if(behospitalInfo != null && StringUtil.isNotEmpty(terser.get("/.PV1-45-1"))){
+                    UpdateWrapper<BehospitalInfo> behospitalInfoUpdateWrapper = new UpdateWrapper<>();
+                    behospitalInfoUpdateWrapper.eq("behospital_code", behospitalInfo.getBehospitalCode())
+                    .eq("hospital_id", HOSPITAL_ID)
+                    .eq("is_deleted", IsDeleteEnum.N)
+                    .set("leave_hospital_date",DateUtil.parseDate(YWDateUtils.convJsonDateToString(terser.get("/.PV1-45-1"), DateUtil.DATE_TIME_FORMAT),"yyyy-MM-dd HH:mm:ss"))
+                    .set("gmt_modified",DateUtil.now());
+                    behospitalInfoFacade.update(behospitalInfoUpdateWrapper);
+                }
             }else if (message.getName().equals("OMP_O09")) {
                 //医嘱
                 aDoctorAdviceFacade.execute(getDoctorAdviceToView(terser.get("/.ORC-2-1")));