package com.smartor.service.impl; import ca.uhn.hl7v2.HL7Exception; import ca.uhn.hl7v2.model.Message; import ca.uhn.hl7v2.parser.PipeParser; 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_A03; import lombok.extern.log4j.Log4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 第三方厂商数据Service业务层处理 * * @author ruoyi * @date 2023-10-10 */ @Log4j @Service public class ServiceThirdDataServiceImpl implements IServiceThirdDataService { @Autowired private ServiceThirdDataMapper serviceThirdDataMapper; @Autowired private IHospitalRecordService iHospitalRecordService; @Autowired private IHospitalUserinfoService iHospitalUserinfoService; @Override public List queryList(ServiceThirdData serviceThirdData) { List serviceThirdDataList = serviceThirdDataMapper.selectServiceThirdDataList(serviceThirdData); 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); ADT_A03 adt_a03 = new ADT_A03(); List objectList = adt_a03.explainPID(message, dataInfo); HospitalRecord hospitalRecord = (HospitalRecord) objectList.get(0); iHospitalRecordService.insertHospitalRecord(hospitalRecord); HospitalUserinfo hospitalUserinfo = (HospitalUserinfo) objectList.get(1); iHospitalUserinfoService.insertHospitalUserinfo(hospitalUserinfo); int ii = serviceThirdDataMapper.updateIsDeal(std.getId()); System.out.println("是否修改成功:" + ii); } catch (HL7Exception e) { e.printStackTrace(); } } return new ArrayList<>(); } }