Browse Source

修复hl7入库

adminAndroot 9 months ago
parent
commit
9c82109994

+ 0 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Report.java

@@ -41,9 +41,6 @@ public class Report{
     @ApiModelProperty(value = "报告单类别名称")
     private String reportClassName;
 
-    @ApiModelProperty(value = "报告单类别名称")
-    private String reportClassname;
-
     @ApiModelProperty(value = "送检医生信息代码")
     private String checkDoctorCode;
 

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7DiagnosisService.java

@@ -3,11 +3,13 @@ package com.ruoyi.web.work.hl7.service;
 import ca.uhn.hl7v2.HL7Exception;
 import ca.uhn.hl7v2.model.v24.segment.DG1;
 import ca.uhn.hl7v2.model.v24.segment.PV1;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.Diagnosis;
 
 import java.text.ParseException;
 import java.util.List;
 
-public interface HL7DiagnosisService {
+public interface HL7DiagnosisService extends IService<Diagnosis> {
 
     //保存本次诊断信息
     void saveDiagnosisInfo(List<DG1> dg1All, Long visitId, PV1 pv1,Long PatId) throws HL7Exception, ParseException;

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7MicrobialReportService.java

@@ -1,8 +1,10 @@
 package com.ruoyi.web.work.hl7.service;
 
 import ca.uhn.hl7v2.model.v24.group.ORU_R01_OBSERVATION;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.MicrobialReport;
 
-public interface HL7MicrobialReportService {
+public interface HL7MicrobialReportService extends IService<MicrobialReport> {
 
     void saveNotesForOBX(ORU_R01_OBSERVATION r01Observation, Long obrId);
 }

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7NextOfKinService.java

@@ -3,8 +3,10 @@ package com.ruoyi.web.work.hl7.service;
 
 import ca.uhn.hl7v2.HL7Exception;
 import ca.uhn.hl7v2.model.v24.message.ADT_A01;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.NextOfKin;
 
-public interface HL7NextOfKinService {
+public interface HL7NextOfKinService extends IService<NextOfKin> {
 
     //保存亲属关系表数据
     void saveKinShipInfo(Long patId, ADT_A01 a01) throws HL7Exception;

+ 4 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7PatientService.java

@@ -1,11 +1,12 @@
 package com.ruoyi.web.work.hl7.service;
 
 import ca.uhn.hl7v2.model.Message;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.web.work.domain.Patient;
 
-public interface HL7PatientService {
+public interface HL7PatientService extends IService<Patient> {
     Message savePatientInfo(Message message) throws Exception;
 
-    //根据卫宁患者ID查询患者
-    Patient findPatientByWnPatId(String wnPatId);
+    //根据卫宁患者标识符查询患者是否存在
+    Patient findPatientByWnPatCode(String patCode);
 }

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7ReportService.java

@@ -3,10 +3,12 @@ package com.ruoyi.web.work.hl7.service;
 
 import ca.uhn.hl7v2.HL7Exception;
 import ca.uhn.hl7v2.model.v24.message.ORU_R01;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.Report;
 
 import java.text.ParseException;
 
-public interface HL7ReportService {
+public interface HL7ReportService extends IService<Report> {
 
     //保存患者报告的检验数据
     void savePatientReport(ORU_R01 oruR01) throws HL7Exception, ParseException;

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7RequestService.java

@@ -2,10 +2,12 @@ package com.ruoyi.web.work.hl7.service;
 
 import ca.uhn.hl7v2.HL7Exception;
 import ca.uhn.hl7v2.model.v24.message.ORU_R01;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.Request;
 
 import java.text.ParseException;
 
-public interface HL7RequestService {
+public interface HL7RequestService extends IService<Request> {
 
     //保存当前患者请求报告obr
     void saveRequestReportObr(ORU_R01 oruR01,Long obcId) throws HL7Exception, ParseException;

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7ResultService.java

@@ -2,8 +2,10 @@ package com.ruoyi.web.work.hl7.service;
 
 import ca.uhn.hl7v2.HL7Exception;
 import ca.uhn.hl7v2.model.v24.message.ORU_R01;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.Result;
 
-public interface HL7ResultService {
+public interface HL7ResultService extends IService<Result> {
     //保存当前患者请求结果obx
     void saveReportResult(Long obrId, ORU_R01 oruR01) throws HL7Exception;
 }

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7RwaMessageService.java

@@ -2,9 +2,11 @@ package com.ruoyi.web.work.hl7.service;
 
 
 import ca.uhn.hl7v2.model.Message;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.RwaMessage;
 
 import java.util.Map;
 
-public interface HL7RwaMessageService {
+public interface HL7RwaMessageService extends IService<RwaMessage> {
     void saveMessage(Map map, Message message);
 }

+ 2 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/HL7VisitService.java

@@ -4,12 +4,13 @@ import ca.uhn.hl7v2.HL7Exception;
 import ca.uhn.hl7v2.model.v24.segment.DG1;
 import ca.uhn.hl7v2.model.v24.segment.PV1;
 import ca.uhn.hl7v2.model.v24.segment.PV2;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.web.work.domain.Visit;
 
 import java.text.ParseException;
 import java.util.List;
 
-public interface HL7VisitService {
+public interface HL7VisitService extends IService<Visit> {
 
     //根据患者id修改当前患者的就诊记录信息
     void updateVisitInfoByPatId(List<DG1> dg1All,Long patId,PV1 pv1,PV2 pv2) throws ParseException, HL7Exception;

+ 13 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/impl/HL7PatientServiceImpl.java

@@ -146,8 +146,20 @@ public class HL7PatientServiceImpl extends ServiceImpl<PatientMapper, Patient> i
         return null;
     }
 
+    /**
+     * 根据卫宁患者标识符查询患者是否存在
+     * @param patCode
+     * @return
+     */
+    @Override
+    public Patient findPatientByWnPatCode(String patCode) {
+        LambdaQueryWrapper<Patient> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Patient::getPatientCode, patCode);
+        return baseMapper.selectOne(wrapper);
+    }
+
     //根据卫宁患者ID查询患者
-    public Patient findPatientByWnPatId(String wnPatId) {
+    private Patient findPatientByWnPatId(String wnPatId) {
         LambdaQueryWrapper<Patient> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(Patient::getWnPatId, wnPatId);
         return baseMapper.selectOne(wrapper);

+ 8 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/impl/HL7ReportServiceImpl.java

@@ -51,10 +51,15 @@ public class HL7ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impl
         PV1 pv1 = oruR01.getPATIENT_RESULT().getPATIENT().getVISIT().getPV1();
         PID pid = oruR01.getPATIENT_RESULT().getPATIENT().getPID();
         String cardId = pv1.getVisitNumber().getID().getValue(); //推送过来的数据就诊卡号
-        String wnPatId = pid.getPatientID().getID().getValue(); //卫宁患者ID
-        String inspectionDeptName = orc.getOrderingFacilityName(0).getOrganizationName().getValue();//送检科室
+        String patCode = pid.getPatientIdentifierList(0).getID().getValue(); //患者标识符
+        String inspectionDeptName = oruR01.getPATIENT_RESULT().getPATIENT().getVISIT().getPV1().getAssignedPatientLocation().getRoom().getValue();//就诊科室
+        //保存患者在院的报告
+        String patClass = pv1.getPatientClass().getValue(); //患者类别 O:门诊、I、住院
+        if ("O".equals(patClass)){
+            return;
+        }
         //根据卫宁患者标识符查询患者是否存在
-        Patient entity = patientService.findPatientByWnPatId(wnPatId);
+        Patient entity = patientService.findPatientByWnPatCode(patCode);
         if (entity != null){
             Long patId = entity.getId();//患者ID
             //根据患者id和送检科室查询是否本次就诊的报告

+ 3 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/hl7/service/impl/HL7RequestServiceImpl.java

@@ -52,6 +52,9 @@ public class HL7RequestServiceImpl extends ServiceImpl<RequestMapper, Request> i
             // 如果报告单类别名称是特定值之一,则使用它作为医技项目名称
             medTechProName = obr.getUniversalServiceIdentifier().getNameOfAlternateCodingSystem().getValue();
         }
+        if ("5".equals(obr.getUniversalServiceIdentifier().getNameOfAlternateCodingSystem().getValue())) {
+            medTechProName = "其他医技项目";
+        }
         obrEntity.setMedTechProName(medTechProName);
 
         // 提取并设置其他字段