|
@@ -1,12 +1,62 @@
|
|
|
package com.hgwebservice.service.syncCdm2;
|
|
|
|
|
|
+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.PatientDataMapper;
|
|
|
+import com.hgwebservice.dal.mysql.data.SyncToHisMapper;
|
|
|
+import com.hgwebservice.entity.hisview.PatientData;
|
|
|
+import com.hgwebservice.entity.hisview.SyncToHisDO;
|
|
|
+import com.hgwebservice.entity.server.MeasureData;
|
|
|
+import com.hgwebservice.util.WebServiceUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
+
|
|
|
@Service
|
|
|
public class MeasureServiceImpl implements MeasureService {
|
|
|
+ @Resource
|
|
|
+ SyncToHisMapper syncToHisMapper;
|
|
|
+ @Resource
|
|
|
+ PatientDataMapper patientDataMapper;
|
|
|
+ @Value("${hospital_id}")
|
|
|
+ private Integer hospitalId;
|
|
|
@Override
|
|
|
- public Boolean measure(HttpServletRequest request) {
|
|
|
- return null;
|
|
|
+ public int measure() {
|
|
|
+ LambdaQueryWrapper<SyncToHisDO> syncToHisDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ syncToHisDOLambdaQueryWrapper.eq(SyncToHisDO::getHospitalId,hospitalId);
|
|
|
+ syncToHisDOLambdaQueryWrapper.eq(SyncToHisDO::getType,"BS");
|
|
|
+ syncToHisDOLambdaQueryWrapper.eq(SyncToHisDO::getValidflag,1);
|
|
|
+ syncToHisDOLambdaQueryWrapper.eq(SyncToHisDO::getIsSync,0);
|
|
|
+ List<SyncToHisDO> syncToHisDOS = syncToHisMapper.selectList(syncToHisDOLambdaQueryWrapper);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PatientDataDO> patientDataDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ patientDataDOLambdaQueryWrapper.eq(PatientDataDO::getHospitalId,hospitalId);
|
|
|
+ List<PatientDataDO> patientDataDOS = patientDataMapper.selectList(patientDataDOLambdaQueryWrapper);
|
|
|
+ for (SyncToHisDO syncToHisDO : syncToHisDOS) {
|
|
|
+ MeasureData measureData=new MeasureData();
|
|
|
+ measureData.setAcc(syncToHisDO.getOperatorcode());
|
|
|
+ measureData.setAccName(syncToHisDO.getOperatorname());
|
|
|
+ measureData.setPeriodCode(PeriodMarkEnum.getByCode(syncToHisDO.getPeriod()).getDesc());
|
|
|
+ measureData.setTestID(syncToHisDO.getId());
|
|
|
+ measureData.setPatientNO(syncToHisDO.getPatientcode());
|
|
|
+ measureData.setName(syncToHisDO.getPatientname());
|
|
|
+ measureData.setMeasureValue(syncToHisDO.getVal());
|
|
|
+ Optional<PatientDataDO> first = patientDataDOS.stream().filter(item -> item.getPatientNo().equals(syncToHisDO.getPatientcode())).findFirst();
|
|
|
+ if (first.isPresent()){
|
|
|
+ PatientDataDO patientDataDO = first.get();
|
|
|
+ measureData.setStripLot(patientDataDO.getBedNo());
|
|
|
+ measureData.setMeterSn(patientDataDO.getWristbandNo());
|
|
|
+ }
|
|
|
+ Boolean aBoolean = WebServiceUtil.insertMeasureResult(measureData);
|
|
|
+ if (aBoolean){
|
|
|
+ syncToHisMapper.updateIsSync(syncToHisDO.getId(),1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return syncToHisDOS.size();
|
|
|
}
|
|
|
}
|