|
@@ -7,6 +7,7 @@ import ca.uhn.hl7v2.model.v24.segment.PV2;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
+import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.system.mapper.SysDeptMapper;
|
|
|
import com.ruoyi.web.work.domain.Visit;
|
|
|
import com.ruoyi.web.work.hl7.service.HL7DiagnosisService;
|
|
@@ -17,7 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
-
|
|
|
+import java.util.Date;
|
|
|
import java.text.ParseException;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -54,8 +55,10 @@ public class HL7VisitServiceImpl extends ServiceImpl<VisitMapper, Visit> impleme
|
|
|
String wardCode = pv1.getAssignedPatientLocation().getBuilding().getValue();//病区代码
|
|
|
String wardName = pv1.getAssignedPatientLocation().getFloor().getValue();//病区名称
|
|
|
String level = pv2.getVisitUserCode(0).getValue(); //危重级别:0-一般病人1-危重病人
|
|
|
- String entryTime = pv2.getExpectedAdmitDateTime().getTimeOfAnEvent().getValue(); //入区时间
|
|
|
- String exitTime = pv2.getExpectedDischargeDateTime().getTimeOfAnEvent().getValue(); //出区时间
|
|
|
+ //String admissionTime = pv1.getAdmitDateTime().getTimeOfAnEvent().getValue(); //入院时间
|
|
|
+ //String dischargeTime = pv1.getDischargeDateTime(0).getTimeOfAnEvent().getValue();//出院时间
|
|
|
+ String entryTime =DateUtils.toDateFormat(pv2.getExpectedAdmitDateTime().getTimeOfAnEvent().getValue(),"yyyyMMddHHmmss","yyyy-MM-dd HH:mm:ss"); //入区时间
|
|
|
+ String exitTime =DateUtils.toDateFormat(pv2.getExpectedDischargeDateTime().getTimeOfAnEvent().getValue(),"yyyyMMddHHmmss","yyyy-MM-dd HH:mm:ss") ; //出区时间
|
|
|
String reasonArea = pv2.getVisitDescription().getValue();//出区原因
|
|
|
visitEntity.setWardName(wardName);
|
|
|
visitEntity.setWardCode(wardCode);
|
|
@@ -91,11 +94,40 @@ public class HL7VisitServiceImpl extends ServiceImpl<VisitMapper, Visit> impleme
|
|
|
*/
|
|
|
@Override
|
|
|
public void saveVisitInfo(List<DG1> dg1All,PV1 pv1,PV2 pv2, Long patId) throws Exception {
|
|
|
+ String department = pv1.getAssignedPatientLocation().getRoom().getValue(); //科室
|
|
|
String deptCode = pv1.getAssignedPatientLocation().getPointOfCare().getValue();//科室代码
|
|
|
LambdaQueryWrapper<Visit> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(Visit::getDeptCode,deptCode).eq(Visit::getPatId,patId);
|
|
|
Visit visitEntity = baseMapper.selectOne(wrapper); //根据科室部门代码和患者id查
|
|
|
if (visitEntity != null) {
|
|
|
+ String hospitalStatus = pv1.getBedStatus().getValue(); // 在院状态
|
|
|
+ String doctorCode = pv1.getAttendingDoctor(0).getIDNumber().getValue(); //医生代码
|
|
|
+ String physician = pv1.getAttendingDoctor(0).getFamilyName().getSurname().getValue(); //主治医师
|
|
|
+ String bed = pv1.getAssignedPatientLocation().getBed().getValue(); //床位代码
|
|
|
+ String wardCode = pv1.getAssignedPatientLocation().getBuilding().getValue();//病区代码
|
|
|
+ String wardName = pv1.getAssignedPatientLocation().getFloor().getValue();//病区名称
|
|
|
+ String level = pv2.getVisitUserCode(0).getValue(); //危重级别:0-一般病人1-危重病人
|
|
|
+ //String admissionTime = pv1.getAdmitDateTime().getTimeOfAnEvent().getValue(); //入院时间
|
|
|
+ //String dischargeTime = pv1.getDischargeDateTime(0).getTimeOfAnEvent().getValue();//出院时间
|
|
|
+ String entryTime =DateUtils.toDateFormat(pv2.getExpectedAdmitDateTime().getTimeOfAnEvent().getValue(),"yyyyMMddHHmmss","yyyy-MM-dd HH:mm:ss"); //入区时间
|
|
|
+ String exitTime =DateUtils.toDateFormat(pv2.getExpectedDischargeDateTime().getTimeOfAnEvent().getValue(),"yyyyMMddHHmmss","yyyy-MM-dd HH:mm:ss"); //出区时间
|
|
|
+ String reasonArea = pv2.getVisitDescription().getValue();//出区原因
|
|
|
+ visitEntity.setWardName(wardName);
|
|
|
+ visitEntity.setWardCode(wardCode);
|
|
|
+ visitEntity.setDeptCode(deptCode);
|
|
|
+ visitEntity.setLevel(level); //危重级别:0-一般病人1-危重病人
|
|
|
+ visitEntity.setReasonArea(reasonArea); //出区原因
|
|
|
+ //visitEntity.setAdmissionTime(admissionTime); //入院时间
|
|
|
+ //visitEntity.setDischargeTime(dischargeTime); //出院时间
|
|
|
+ visitEntity.setExitTime(exitTime); //出区时间
|
|
|
+ visitEntity.setEntryTime(entryTime); //入区时间
|
|
|
+ visitEntity.setDepartment(department);
|
|
|
+ visitEntity.setBed(bed);
|
|
|
+ visitEntity.setHospitalStatus(hospitalStatus); //在院状态
|
|
|
+ visitEntity.setDoctorCode(doctorCode);
|
|
|
+ visitEntity.setPhysician(physician);
|
|
|
+ baseMapper.updateById(visitEntity);
|
|
|
+ log.info("成功更新患者ID为{}的就诊信息", patId);
|
|
|
// 如果已存在且科室代码匹配,保存诊断信息
|
|
|
Long dbVisitId = visitEntity.getId(); //就诊dbVisitId
|
|
|
dg1Service.saveDiagnosisInfo(dg1All,dbVisitId,pv1,patId);
|
|
@@ -178,8 +210,8 @@ public class HL7VisitServiceImpl extends ServiceImpl<VisitMapper, Visit> impleme
|
|
|
String admissionTime = pv1.getAdmitDateTime().getTimeOfAnEvent().getValue(); //入院时间
|
|
|
String dischargeTime = pv1.getDischargeDateTime(0).getTimeOfAnEvent().getValue();//出院时间
|
|
|
String level = pv2.getVisitUserCode(0).getValue(); //危重级别:0-一般病人1-危重病人
|
|
|
- String entryTime = pv2.getExpectedAdmitDateTime().getTimeOfAnEvent().getValue(); //入区时间
|
|
|
- String exitTime = pv2.getExpectedDischargeDateTime().getTimeOfAnEvent().getValue(); //出区时间
|
|
|
+ String entryTime = DateUtils.toDateFormat(pv2.getExpectedAdmitDateTime().getTimeOfAnEvent().getValue(),"yyyyMMddHHmmss","yyyy-MM-dd HH:mm:ss") ; //入区时间
|
|
|
+ String exitTime = DateUtils.toDateFormat(pv2.getExpectedDischargeDateTime().getTimeOfAnEvent().getValue(),"yyyyMMddHHmmss","yyyy-MM-dd HH:mm:ss"); //出区时间
|
|
|
String reasonArea = pv2.getVisitDescription().getValue();//出区原因
|
|
|
String babyCode = pv2.getNewbornBabyIndicator().getValue();//婴儿信息标识:Y-是 N-否
|
|
|
Visit entity = new Visit();
|