瀏覽代碼

病案首页字段解析

zhangzw 4 年之前
父節點
當前提交
0ef243d59e

+ 14 - 14
pom.xml

@@ -228,12 +228,12 @@
             <artifactId>dom4j</artifactId>
             <version>1.6.1</version>
         </dependency>
+
         <dependency>
             <groupId>jaxen</groupId>
             <artifactId>jaxen</artifactId>
-            <version>1.1.1</version>
+            <version>1.1.6</version>
         </dependency>
-
         <!--hl7解析工具-->
 
         <dependency>
@@ -259,18 +259,18 @@
     </dependencies>
 
     <!-- 私有仓库 -->
-    <repositories>
-        <repository>
-            <id>nexus-releases</id>
-            <name>Nexus Release Repository</name>
-            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
-        </repository>
-        <repository>
-            <id>nexus-snapshots</id>
-            <name>Nexus Snapshot Repository</name>
-            <url>http://192.168.2.236:8081/repository/maven-snapshots/</url>
-        </repository>
-    </repositories>
+<!--    <repositories>-->
+<!--        <repository>-->
+<!--            <id>nexus-releases</id>-->
+<!--            <name>Nexus Release Repository</name>-->
+<!--            <url>http://192.168.2.236:8081/repository/maven-releases/</url>-->
+<!--        </repository>-->
+<!--        <repository>-->
+<!--            <id>nexus-snapshots</id>-->
+<!--            <name>Nexus Snapshot Repository</name>-->
+<!--            <url>http://192.168.2.236:8081/repository/maven-snapshots/</url>-->
+<!--        </repository>-->
+<!--    </repositories>-->
     <!-- 私有仓库 -->
     <pluginRepositories>
         <pluginRepository>

+ 6 - 6
src/main/java/com/diagbot/facade/data/AHomePageFacade.java

@@ -137,14 +137,14 @@ public class AHomePageFacade extends HomePageServiceImpl{
                 //初始化入参
                 HomePage homePage=new HomePage();
                 BeanUtil.copyProperties(s,homePage);
-                //if(StringUtil.isNotEmpty(s.getSex())){
+                if(StringUtil.isNotEmpty(s.getSex())){
                     //性别,1:男,2:女
-                    //homePage.setSex(SexEnum.getName(s.getSex()));
-                //}
-                //if(StringUtil.isNotEmpty(s.getMarriage())){
+                    homePage.setSex(SexEnum.getName(s.getSex()));
+                }
+                if(StringUtil.isNotEmpty(s.getMarriage())){
                     //婚姻,1:未婚,2:已婚,3:丧偶,4:离婚,9:其他
-                    //homePage.setMarriage(MarriageEnum.getName(s.getMarriage()));
-                //}
+                    homePage.setMarriage(MarriageEnum.getName(s.getMarriage()));
+                }
                 if(StringUtil.isNotEmpty(s.getIsMedAllergy())){
                     //过敏史,1:无,2:有
                     homePage.setIsMedAllergy(IsMedAllergyEnum.getName(s.getIsMedAllergy()));

+ 197 - 8
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -1,6 +1,8 @@
 package com.diagbot.facade.data;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.AnalyzeRunDTO;
@@ -17,19 +19,14 @@ import com.diagbot.service.impl.MedicalRecordServiceImpl;
 import com.diagbot.service.impl.QcAbnormalServiceImpl;
 import com.diagbot.util.*;
 import com.diagbot.vo.AnalyzeRunVO;
-import com.diagbot.vo.data.ADeleteFlagVO;
-import com.diagbot.vo.data.AMedicalRecordVO;
-import com.diagbot.vo.data.AMrContentVO;
+import com.diagbot.vo.data.*;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Component
 public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
@@ -70,6 +67,9 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
 
     @Autowired
     private BasDeptInfoFacade basDeptInfoFacade;
+
+    @Autowired
+    private AHomePageFacade aHomePageFacade;
     /**
      * 终末质控-同步前一天的病历记录
      */
@@ -163,8 +163,17 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
                         aMedicalRecordContentFacade.executeMrRecordContent(s.getContents());
                     }
                 });
+
                 //评分后返回结构体
-                return mrIng(aMrContentVO);
+                if(aMrContentVO.getRecords().get(0).getRecTypeId().equals("BASY")){
+                    AHomePageIngVO aHomePageIngVO = new AHomePageIngVO();
+                    aHomePageIngVO.setHomePages(getHomePageVo(aMrContentVO));
+                    aHomePageIngVO.setDockModeType(aMrContentVO.getDockModeType());
+                    return aHomePageFacade.executeHomePageIng(aHomePageIngVO);
+                }else {
+                    return mrIng(aMrContentVO);
+                }
+
             }else{
                 aMedAbnormalInfoFacade.saveAbnormalInfo("文书信息","",JSON.toJSONString(aMrContentVO),"","未接收到数据!");
                 return RespDTO.onError("未接收到数据!");
@@ -250,6 +259,186 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
         }
 
     }
+    public List<AHomePageVO> getHomePageVo(AMrContentVO aMrContentVO) {
+        String behospitalCode = aMrContentVO.getRecords().get(0).getBehospitalCode();
+        Long hospitalId = aMrContentVO.getRecords().get(0).getHospitalId();
+        String homePageXml = aMrContentVO.getRecords().get(0).getContents().get(0).getXmlText();
+        Map<String, Object> ret = YiWuFirstPageRecordXmlUtil.process(homePageXml);
+        JSONObject paramsObj = new JSONObject(ret);
+        List<AHomePageVO> aHomePageVOList = Lists.newLinkedList();
+        AHomePageVO aHomePageVO = new AHomePageVO();
+        aHomePageVO.setHomePageId(behospitalCode);
+        aHomePageVO.setHospitalId(hospitalId);
+        aHomePageVO.setBehospitalCode(behospitalCode);
+        //aHomePageVO.setHospitalCode();
+        aHomePageVO.setHospitalName(paramsObj.getString("医院代码"));
+        //aHomePageVO.setOrgCode();
+        aHomePageVO.setPayType(paramsObj.getString("医疗付费方式"));
+        aHomePageVO.setHealthCard(paramsObj.getString("居民健康卡号"));
+        aHomePageVO.setBehospitalNum(paramsObj.getString("住院次数"));
+        aHomePageVO.setFileCode(paramsObj.getString("病案号"));
+        aHomePageVO.setName(paramsObj.getString("姓名"));
+        aHomePageVO.setSex(paramsObj.getString("性别"));
+        aHomePageVO.setBirthday(paramsObj.getString("出生日期").replace("年","-").replace("月","-").replace("日","-"));
+        aHomePageVO.setAge(paramsObj.getString("年龄新"));//待定
+        aHomePageVO.setAgeUnit("");//待定
+        aHomePageVO.setNationality(paramsObj.getString("国籍"));
+        aHomePageVO.setNewbornMonth("");//待定
+        aHomePageVO.setNewbornDay("");//待定
+        aHomePageVO.setNewbornWeight(paramsObj.getString("新生儿出生体重"));
+        aHomePageVO.setNewbornBehospitalWeight("");//待定
+        aHomePageVO.setBornAddress("");//待定
+        aHomePageVO.setBornPlace(paramsObj.getString("籍贯_市"));//待定
+        aHomePageVO.setNation(paramsObj.getString("民族"));
+        aHomePageVO.setIdentityCardNo(paramsObj.getString("身份证号"));
+        aHomePageVO.setJobType(paramsObj.getString("职业"));
+        aHomePageVO.setMarriage(paramsObj.getString("婚姻"));//待定
+        aHomePageVO.setCurAddress(paramsObj.getString("现住址_县"));
+        aHomePageVO.setCurPhone(paramsObj.getString("现住址电话"));
+        aHomePageVO.setCurPostCode(paramsObj.getString("现住址邮编"));
+        aHomePageVO.setResidenceAddress("");//待定
+        aHomePageVO.setResidencePostCode(paramsObj.getString("户口地址邮编"));
+        aHomePageVO.setWorkAddress(paramsObj.getString("工作单位"));
+        aHomePageVO.setWorkPhone(paramsObj.getString("工作单位电话"));
+        aHomePageVO.setWorkPostCode(paramsObj.getString("工作单位邮编"));
+        aHomePageVO.setContactName(paramsObj.getString("联系人姓名"));
+        aHomePageVO.setContactRelation(paramsObj.getString("联系人关系"));
+        aHomePageVO.setContactAddress(paramsObj.getString("联系人地址"));
+        aHomePageVO.setContactPhone(paramsObj.getString("联系人电话"));
+        aHomePageVO.setBehospitalWay(paramsObj.getString("入院途径"));
+        aHomePageVO.setBehospitalDate(paramsObj.getString("入院时间"));//待定  2020年12月15日 09时56分
+        aHomePageVO.setBehospitalDept(paramsObj.getString("入院科别"));
+        aHomePageVO.setBehospitalWard(paramsObj.getString("入院病房"));
+        //aHomePageVO.setBehospitalBedId();
+        //aHomePageVO.setBehospitalBedCode();
+        aHomePageVO.setChangeDept(paramsObj.getString("转科科别"));
+        aHomePageVO.setLeaveHospitalDate(paramsObj.getString("出院时间"));//待定
+        aHomePageVO.setLeaveHospitalDept(paramsObj.getString("出院科别"));
+        aHomePageVO.setLeaveHospitalWard(paramsObj.getString("出院病房"));
+        //aHomePageVO.setLeaveHospitalBedId();
+        //aHomePageVO.setLeaveHospitalBedCode();
+        aHomePageVO.setBehospitalDayNum(paramsObj.getString("实际住院天数"));
+        aHomePageVO.setOutpatientEmrDiagnose(paramsObj.getString("门急诊诊断"));
+        //aHomePageVO.setOutpatientEmrDiagnoseCode();
+        aHomePageVO.setPoisonFactor(paramsObj.getString("损伤中毒因素"));
+        aHomePageVO.setPoisonFactorCode(paramsObj.getString("损伤中毒因素编码"));
+        aHomePageVO.setPathologyDiagnose(paramsObj.getString("病理诊断"));
+        aHomePageVO.setPathologyDiagnoseCode(paramsObj.getString("病理诊断编码"));
+        //aHomePageVO.setPathologyDiagnoseId();
+        aHomePageVO.setIsMedAllergy(paramsObj.getString("药物过敏"));
+        aHomePageVO.setMedAllergyName(paramsObj.getString("过敏药物"));
+        aHomePageVO.setAutopsy(paramsObj.getString("死亡患者尸检"));
+        aHomePageVO.setBloodType(paramsObj.getString("血型"));
+        aHomePageVO.setRh(paramsObj.getString("Rh"));
+        aHomePageVO.setDeptDirector(paramsObj.getString("科主任"));
+        //aHomePageVO.setDirectorDoctor();
+        aHomePageVO.setAttendingDoctor(paramsObj.getString("主治医师"));
+        aHomePageVO.setBehospitalDoctor(paramsObj.getString("住院医师"));
+        aHomePageVO.setResponseNurse(paramsObj.getString("责任护士"));
+        aHomePageVO.setStudyDoctor(paramsObj.getString("进修医师"));
+        aHomePageVO.setPracticeDoctor(paramsObj.getString("实习医师"));
+        aHomePageVO.setEncodeMan(paramsObj.getString("编码员"));
+        aHomePageVO.setHomePageQuality(paramsObj.getString("病案质量"));
+        aHomePageVO.setQcDoctor(paramsObj.getString("质控医师"));
+        aHomePageVO.setQcNurse(paramsObj.getString("质控护士"));
+        aHomePageVO.setQcDate(paramsObj.getString("质控日期"));//待定
+        aHomePageVO.setLeaveHospitalType(paramsObj.getString("离院方式"));
+        aHomePageVO.setAcceptOrgCode(paramsObj.getString("接收机构名称"));
+        aHomePageVO.setAgainBehospitalPlan(paramsObj.getString("三十一天内再住院计划"));
+        aHomePageVO.setAgainBehospitalGoal(paramsObj.getString("再住院目的"));
+        aHomePageVO.setTbiBeforeDay(paramsObj.getString("颅脑损伤患者昏迷前天数"));
+        aHomePageVO.setTbiBeforeHour(paramsObj.getString("颅脑损伤患者昏迷前小时"));
+        aHomePageVO.setTbiBeforeMinute(paramsObj.getString("颅脑损伤患者昏迷前分钟"));
+        aHomePageVO.setTbiAfterDay(paramsObj.getString("颅脑损伤患者昏迷后天数"));
+        aHomePageVO.setTbiAfterHour(paramsObj.getString("颅脑损伤患者昏迷后小时"));
+        aHomePageVO.setTbiAfterMinute(paramsObj.getString("颅脑损伤患者昏迷后分钟"));
+        aHomePageVO.setTotalFee(paramsObj.getString("总费用"));
+        aHomePageVO.setOwnFee(paramsObj.getString("自付金额"));
+        aHomePageVO.setGeneralFee(paramsObj.getString("一般医疗服务费"));
+        aHomePageVO.setServiceFee(paramsObj.getString("一般治疗服务费"));
+        aHomePageVO.setNurseFee(paramsObj.getString("护理费"));
+        aHomePageVO.setOtherFee(paramsObj.getString("其他费用"));
+        aHomePageVO.setPathologyFee(paramsObj.getString("病理诊断费"));
+        aHomePageVO.setLabFee(paramsObj.getString("实验室诊断费"));
+        aHomePageVO.setPacsFee(paramsObj.getString("影像学诊断费"));
+        aHomePageVO.setClinicDiagnoseFee(paramsObj.getString("临床诊断项目费"));
+        aHomePageVO.setNotOperationFee(paramsObj.getString("非手术治疗项目费"));
+        aHomePageVO.setClinicPhysicFee(paramsObj.getString("临床物理治疗费"));
+        aHomePageVO.setOperationTreatFee(paramsObj.getString("手术治疗费"));
+        aHomePageVO.setAnaesthesiaFee(paramsObj.getString("麻醉费"));
+        //aHomePageVO.setOperationFee();
+        aHomePageVO.setHealthTypeFee(paramsObj.getString("康复类"));
+        aHomePageVO.setChnTreatFee(paramsObj.getString("中医治疗费"));
+        aHomePageVO.setWesternMedFee(paramsObj.getString("西药费"));
+        aHomePageVO.setAntibiosisFee(paramsObj.getString("抗菌药物费用"));
+        aHomePageVO.setChnMedFee(paramsObj.getString("中成药费"));
+        aHomePageVO.setChnHerbFee(paramsObj.getString("中草药费"));
+        aHomePageVO.setBloodFee(paramsObj.getString("血费"));
+        aHomePageVO.setAlbumenFee(paramsObj.getString("白蛋白类制品费"));
+        aHomePageVO.setGlobulinFee(paramsObj.getString("球蛋白类制品费"));
+        aHomePageVO.setBloodFactorFee(paramsObj.getString("凝血因子类制品费"));
+        aHomePageVO.setCellFactorFee(paramsObj.getString("细胞因子类制品费"));
+        aHomePageVO.setCheckMaterialFee(paramsObj.getString("检查用一次性医用材料费"));
+        aHomePageVO.setTreatMaterialFee(paramsObj.getString("治疗用一次性医用材料费"));
+        aHomePageVO.setOperationMaterialFee(paramsObj.getString("手术用一次性医用材料费"));
+        aHomePageVO.setOtherTypeFee(paramsObj.getString("其他类其他费"));
+        //aHomePageVO.setSingleDiagManage();
+        //aHomePageVO.setClinicPathwayManage();
+        aHomePageVO.setIsOutpatientBehospital(paramsObj.getString("门诊与住院"));
+        aHomePageVO.setIsLeaveBehospital(paramsObj.getString("入院与出院"));
+        aHomePageVO.setIsOperationBeforeAfter(paramsObj.getString("术前与术后"));
+        aHomePageVO.setIsClinicPathology(paramsObj.getString("临床与病理"));
+        aHomePageVO.setIsRadiatePathology(paramsObj.getString("放射与病理"));
+        //aHomePageVO.setRescueNum();
+        //aHomePageVO.setRescueSuccessNum();
+        //aHomePageVO.setIsAutoLeavehospital();
+        //aHomePageVO.setReturnToType();
+
+        List<Object> operationList = paramsObj.getJSONArray("手术信息");
+        if(operationList.size() > 0){
+            List<AHomeOperationVO> operationInfo = Lists.newLinkedList();
+            for (int i = 0; i < operationList.size(); i++) {
+                AHomeOperationVO aHomeOperationVO = new AHomeOperationVO();
+                aHomeOperationVO.setHomePageId(behospitalCode);
+                aHomeOperationVO.setHospitalId(hospitalId);
+                //aHomeOperationVO.setOperationOrderNo();//非空字段
+                aHomeOperationVO.setOperationDate(((JSONArray) operationList).getJSONObject(i).getString("手术日期"));//待定2020-08-11
+                aHomeOperationVO.setOperationCode(((JSONArray) operationList).getJSONObject(i).getString("手术编码"));
+                aHomeOperationVO.setOperationDoctorId(((JSONArray) operationList).getJSONObject(i).getString("手术医生ID"));
+                aHomeOperationVO.setFirstAssistantId(((JSONArray) operationList).getJSONObject(i).getString("一助医生ID"));
+                aHomeOperationVO.setSecondAssistantId(((JSONArray) operationList).getJSONObject(i).getString("二助医生ID"));
+                aHomeOperationVO.setCutLevel(((JSONArray) operationList).getJSONObject(i).getString("切口等级"));
+                aHomeOperationVO.setHealingLevel(((JSONArray) operationList).getJSONObject(i).getString("愈合等级"));
+                aHomeOperationVO.setOperationName(((JSONArray) operationList).getJSONObject(i).getString("手术名称"));
+                aHomeOperationVO.setOperationLevel(((JSONArray) operationList).getJSONObject(i).getString("手术级别"));
+                aHomeOperationVO.setAnaesthesiaName(((JSONArray) operationList).getJSONObject(i).getString("麻醉方式"));
+                //aHomeOperationVO.setShamOperationName();
+
+                operationInfo.add(aHomeOperationVO);
+            }
+        }
+        List<Object> diagnoseList = paramsObj.getJSONArray("出院诊断");
+        if(diagnoseList.size() > 0){
+            List<AHomeDiagnoseVO> leaveDiags = Lists.newLinkedList();
+            for (int i = 0; i < operationList.size(); i++) {
+                AHomeDiagnoseVO aHomeDiagnoseVO = new AHomeDiagnoseVO();
+                aHomeDiagnoseVO.setHomePageId(behospitalCode);
+                aHomeDiagnoseVO.setHospitalId(hospitalId);
+                //aHomeDiagnoseVO.setDiagnoseOrderNo();//非空字段
+                aHomeDiagnoseVO.setDiagnoseType(i == 0 ? "主要诊断" : "其他诊断");
+                //aHomeDiagnoseVO.setDiagnoseTypeShort();
+                aHomeDiagnoseVO.setDiagnoseName(((JSONArray) operationList).getJSONObject(i).getString("诊断名称"));
+                aHomeDiagnoseVO.setBehospitalType(((JSONArray) operationList).getJSONObject(i).getString("入院情况"));
+                aHomeDiagnoseVO.setLeaveHospitalType(((JSONArray) operationList).getJSONObject(i).getString("出院情况"));
+                //aHomeDiagnoseVO.setPathologyDiagnose();
+                aHomeDiagnoseVO.setIcdCode(((JSONArray) operationList).getJSONObject(i).getString("诊断编码"));
+                leaveDiags.add(aHomeDiagnoseVO);
+            }
+        }
+        aHomePageVOList.add(aHomePageVO);
+        return aHomePageVOList;
+    }
+
 
     public void execute(List<MedicalRecord> medicalRecordList){
         try {

+ 0 - 4
src/main/java/com/diagbot/vo/data/AMedicalRecordContentVO.java

@@ -6,10 +6,6 @@ import java.sql.Blob;
 
 @Data
 public class AMedicalRecordContentVO {
-    /**
-     * oldRecId
-     */
-    private String oldRecId;
     /**
      * 病历ID
      */