From 01a79d5b431b71cc79cf5f6cc92cd4f3432781dd Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 30 四月 2024 12:39:54 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceThirdDataServiceImpl.java |   96 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 93 insertions(+), 3 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceThirdDataServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceThirdDataServiceImpl.java
index bbfb7fc..abd1101 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceThirdDataServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceThirdDataServiceImpl.java
@@ -1,10 +1,27 @@
 package com.smartor.service.impl;
 
-import java.util.List;
-
+import ca.uhn.hl7v2.HL7Exception;
+import ca.uhn.hl7v2.model.Message;
+import ca.uhn.hl7v2.parser.PipeParser;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.HospitalRecord;
+import com.smartor.domain.HospitalUserinfo;
 import com.smartor.domain.ServiceThirdData;
+import com.smartor.mapper.ServiceThirdDataMapper;
+import com.smartor.service.IHospitalRecordService;
+import com.smartor.service.IHospitalUserinfoService;
 import com.smartor.service.IServiceThirdDataService;
+import com.smartor.yiwudataanalysis.ADT_A01;
+import com.smartor.yiwudataanalysis.ADT_A03;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -13,12 +30,85 @@
  * @author ruoyi
  * @date 2023-10-10
  */
+@Slf4j
 @Service
 public class ServiceThirdDataServiceImpl implements IServiceThirdDataService {
 
+    @Autowired
+    private ServiceThirdDataMapper serviceThirdDataMapper;
+
+    @Autowired
+    private IHospitalRecordService iHospitalRecordService;
+    @Autowired
+    private IHospitalUserinfoService iHospitalUserinfoService;
 
     @Override
     public List<ServiceThirdData> queryList(ServiceThirdData serviceThirdData) {
-        return null;
+
+        log.info("------serviceThirdData鐨勫叆鍙傦細{}", serviceThirdData);
+        List<ServiceThirdData> serviceThirdDataList = serviceThirdDataMapper.selectServiceThirdDataList(serviceThirdData);
+        log.info("------serviceThirdDataList鑾峰彇鏁版嵁鐨勬暟閲忥細{}", serviceThirdDataList.size());
+        for (ServiceThirdData std : serviceThirdDataList) {
+            PipeParser parser = new PipeParser();
+            Message message = null;
+            try {
+                String dataInfo = std.getDataInfo().substring(1);
+                dataInfo = dataInfo.replaceAll("\n", "");
+                dataInfo = dataInfo.substring(0, dataInfo.length() - 1);
+                message = parser.parse(dataInfo);
+                List<Object> objectList = new ArrayList<>();
+                if (serviceThirdData.getDataType().equals("ADT^A03")) {
+                    ADT_A03 adt_a03 = new ADT_A03();
+                    objectList = adt_a03.explainPID(message, dataInfo);
+                } else if (serviceThirdData.getDataType().equals("ADT^A01")) {
+                    ADT_A01 adt_a01 = new ADT_A01();
+                    objectList = adt_a01.explainPID(message, dataInfo);
+                }
+
+                HospitalUserinfo hospitalUserinfo = (HospitalUserinfo) objectList.get(1);
+                Date currentTime = new Date();
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String formattedDate = formatter.format(currentTime);
+                hospitalUserinfo.setCreateTime(formattedDate);
+
+                //鍙湁鍏ラ櫌鎵嶄細寰�userInfo閲屽啓鐢ㄦ埛淇℃伅
+                if (serviceThirdData.getDataType().equals("ADT^A03") && StringUtils.isNotBlank(hospitalUserinfo.getPatientID())) {
+                    //鍏堝垽鏂竴涓嬶紝patientid鏄惁宸茬粡鍦ㄨ〃涓瓨鍦紝濡傛灉瀛樺湪锛屽氨涓嶆彃鍏ヤ簡锛屼笉瀛樺湪锛屽氨鎻掑叆
+                    HospitalUserinfo hospitalUserinfo1 = new HospitalUserinfo();
+                    hospitalUserinfo1.setPatientID(hospitalUserinfo.getPatientID());
+                    List<HospitalUserinfo> hospitalUserinfos = iHospitalUserinfoService.selectHospitalUserinfoList(hospitalUserinfo1);
+                    if (CollectionUtils.isEmpty(hospitalUserinfos)) {
+                        iHospitalUserinfoService.insertHospitalUserinfo(hospitalUserinfo);
+                    } else {
+                        iHospitalUserinfoService.updateHospitalUserinfoByPatientID(hospitalUserinfo);
+                        hospitalUserinfo.setID(hospitalUserinfos.get(0).getID());
+                    }
+                }
+
+                HospitalRecord hospitalRecord = (HospitalRecord) objectList.get(0);
+                log.info("hospitalRecord鐨勫�间负锛歿}", hospitalRecord);
+                //濡傛灉patientid涓虹┖锛屽啀瀛榬ecord灏辨垚鑴忔暟鎹簡
+                if (StringUtils.isNotBlank(hospitalUserinfo.getPatientID())) {
+                    hospitalRecord.setMessageID(std.getId().toString());
+                    iHospitalRecordService.insertHospitalRecord(hospitalRecord);
+                }
+                //灏唖ervice_third_data鐨刬d鏀惧埌messageid閲岋紝鏂逛究鍚庨潰鏌ョ湅闂
+                ServiceThirdData serviceThirdData2 = new ServiceThirdData();
+                serviceThirdData2.setId(std.getId());
+                if (StringUtils.isEmpty(hospitalUserinfo.getPatientID())) {
+                    serviceThirdData2.setRemark("PatientID涓虹┖");
+                }
+                serviceThirdData2.setUserInfoId(hospitalUserinfo.getID());
+                int ii = serviceThirdDataMapper.updateIsDeal(serviceThirdData2);
+                System.out.println("鏄惁淇敼鎴愬姛锛�" + ii);
+            } catch (HL7Exception e) {
+                e.printStackTrace();
+            }
+
+        }
+
+        return new ArrayList<>();
     }
+
+
 }

--
Gitblit v1.9.3