liusheng
2024-09-18 722fa40345f1fc650eaeae4a721c3ae4106d92a8
smartor/src/main/java/com/smartor/service/impl/ServiceThirdDataServiceImpl.java
@@ -3,6 +3,7 @@
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;
@@ -15,10 +16,9 @@
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.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -65,18 +65,41 @@
                    objectList = adt_a01.explainPID(message, dataInfo);
                }
                HospitalRecord hospitalRecord = (HospitalRecord) objectList.get(0);
                log.info("hospitalRecord的值为:{}", hospitalRecord);
                iHospitalRecordService.insertHospitalRecord(hospitalRecord);
                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);
                iHospitalUserinfoService.insertHospitalUserinfo(hospitalUserinfo);
                int ii = serviceThirdDataMapper.updateIsDeal(std.getId());
                //只有入院才会往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为空,再存record就成脏数据了
                if (StringUtils.isNotBlank(hospitalUserinfo.getPatientID())) {
                    hospitalRecord.setMessageID(std.getId().toString());
                    iHospitalRecordService.insertHospitalRecord(hospitalRecord);
                }
                //将service_third_data的id放到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();