|
@@ -1,28 +1,41 @@
|
|
|
package com.hgwebservice.service.syncCdm2;
|
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.hgwebservice.config.PeriodMarkEnum;
|
|
|
import com.hgwebservice.dal.dataobject.data.PatientDataDO;
|
|
|
+import com.hgwebservice.dal.mysql.data.DmsMeasureMapper;
|
|
|
+import com.hgwebservice.dal.mysql.data.HisMeasureDataMapper;
|
|
|
import com.hgwebservice.dal.mysql.data.PatientDataMapper;
|
|
|
import com.hgwebservice.dal.mysql.data.SyncToHisMapper;
|
|
|
+import com.hgwebservice.entity.hisview.HisMeasureData;
|
|
|
import com.hgwebservice.entity.hisview.PatientData;
|
|
|
import com.hgwebservice.entity.hisview.SyncToHisDO;
|
|
|
import com.hgwebservice.entity.server.MeasureData;
|
|
|
import com.hgwebservice.util.WebServiceUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
|
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class MeasureServiceImpl implements MeasureService {
|
|
|
@Resource
|
|
|
SyncToHisMapper syncToHisMapper;
|
|
|
@Resource
|
|
|
PatientDataMapper patientDataMapper;
|
|
|
+ @Resource
|
|
|
+ DmsMeasureMapper dmsMeasureMapper;
|
|
|
+ @Resource
|
|
|
+ HisMeasureDataMapper hisMeasureDataMapper;
|
|
|
@Value("${hospital_id}")
|
|
|
private Integer hospitalId;
|
|
|
@Override
|
|
@@ -33,7 +46,7 @@ public class MeasureServiceImpl implements MeasureService {
|
|
|
syncToHisDOLambdaQueryWrapper.eq(SyncToHisDO::getValidflag,1);
|
|
|
syncToHisDOLambdaQueryWrapper.eq(SyncToHisDO::getIsSync,0);
|
|
|
List<SyncToHisDO> syncToHisDOS = syncToHisMapper.selectList(syncToHisDOLambdaQueryWrapper);
|
|
|
-
|
|
|
+ log.info("需要同步的数据条数"+syncToHisDOS.size());
|
|
|
LambdaQueryWrapper<PatientDataDO> patientDataDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
patientDataDOLambdaQueryWrapper.eq(PatientDataDO::getHospitalId,hospitalId);
|
|
|
List<PatientDataDO> patientDataDOS = patientDataMapper.selectList(patientDataDOLambdaQueryWrapper);
|
|
@@ -59,4 +72,34 @@ public class MeasureServiceImpl implements MeasureService {
|
|
|
}
|
|
|
return syncToHisDOS.size();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int dmsMeasure(String startTime,String endTime) {
|
|
|
+ DateTime start = DateUtil.parseDateTime(startTime);
|
|
|
+ DateTime end = DateUtil.parseDateTime(endTime);
|
|
|
+ // 读取华广数据
|
|
|
+ List<MeasureData> measureDataByMark = dmsMeasureMapper.getMeasureDataByMark(start, end);
|
|
|
+ log.info("读取华广数据"+measureDataByMark.size());
|
|
|
+ for (MeasureData measureData : measureDataByMark) {
|
|
|
+ HisMeasureData hisMeasureData = new HisMeasureData();
|
|
|
+ hisMeasureData.setCode(measureData.getMeasureID().toString());
|
|
|
+ hisMeasureData.setPatientcode(measureData.getPatientNO());
|
|
|
+ hisMeasureData.setPatientname(measureData.getName());
|
|
|
+ hisMeasureData.setAdmcode(measureData.getAdmCode());
|
|
|
+ hisMeasureData.setType("BS");
|
|
|
+ hisMeasureData.setVal(measureData.getMeasureValue());
|
|
|
+ hisMeasureData.setUnit("mmol/l");
|
|
|
+ hisMeasureData.setMeasuretime(measureData.getMeasureDate());
|
|
|
+ hisMeasureData.setDatafrom("HIS");
|
|
|
+ hisMeasureData.setOperatorcode(measureData.getAcc());
|
|
|
+ hisMeasureData.setOperatorname(measureData.getAccName());
|
|
|
+ hisMeasureData.setValidflag(1);
|
|
|
+ hisMeasureData.setCreatetime(new Date());
|
|
|
+ hisMeasureData.setUpdatetime(new Date());
|
|
|
+ hisMeasureData.setHospitalId(Long.valueOf(hospitalId));
|
|
|
+ hisMeasureData.setPeriod(PeriodMarkEnum.getByDesc(measureData.getPeriodCode()).getCode());
|
|
|
+ hisMeasureDataMapper.insert(hisMeasureData);
|
|
|
+ }
|
|
|
+ return measureDataByMark.size();
|
|
|
+ }
|
|
|
}
|