Browse Source

版本升级调整,病案首页单独结构化维护接口

liuqq 3 years ago
parent
commit
310453cdca

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -167,6 +167,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/getColumnZhAndCh").permitAll()
                 .antMatchers("/qc/data/analyseRec").permitAll()
                 .antMatchers("/qc/data/hisDataDeal").permitAll()
+                .antMatchers("/qc/data/analyseHomePage").permitAll()
                 .antMatchers("/qc/data_str/sendAdmissionNote").permitAll()
                 .antMatchers("/qc/data_str/sendBloodResult").permitAll()
                 .antMatchers("/qc/data_str/sendBloodTransfusion").permitAll()

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -211,6 +211,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/getColumnZhAndCh", request)
                 || matchers("/qc/data/analyseRec", request)
                 || matchers("/qc/data/hisDataDeal", request)
+                || matchers("/qc/data/analyseHomePage", request)
                 || matchers("/qc/data_str/sendAdmissionNote", request)
                 || matchers("/qc/data_str/sendBloodResult", request)
                 || matchers("/qc/data_str/sendBloodTransfusion", request)

+ 337 - 0
src/main/java/com/diagbot/facade/data/ADataFacade.java

@@ -1,4 +1,341 @@
 package com.diagbot.facade.data;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.MedicalRecordContent;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.data.*;
+import com.diagbot.facade.MedicalRecordContentFacade;
+import com.diagbot.facade.MedicalRecordFacade;
+import com.diagbot.util.*;
+import com.diagbot.vo.data.AHomePageIngVO;
+import com.diagbot.vo.data.AHomePageVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Component
 public class ADataFacade {
+
+    @Autowired
+    private MedicalRecordFacade medicalRecordFacade;
+
+    @Autowired
+    private MedicalRecordContentFacade medicalRecordContentFacade;
+
+    @Autowired
+    private AHomePageFacade aHomePageFacade;
+
+    @Value("${encrypt.enable}")
+    Boolean encryptFlag;
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    public static final Map<String, String> CITY_MAP = MapUtil.getMap("cityCode.json");
+
+    /**
+     * @Description:根据病历号及医院ID结构化病案首页信息
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public RespDTO analyseHomePage(String behospitalCode, Long hospitalId){
+        try{
+            QueryWrapper<MedicalRecord> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("rec_type_id", "BASY")
+                    .eq("hospital_id", hospitalId)
+                    .eq("behospital_code", behospitalCode)
+                    .eq("is_deleted", IsDeleteEnum.N);
+            MedicalRecord medicalRecord=medicalRecordFacade.getOne(queryWrapper);
+            if(medicalRecord!=null){
+                QueryWrapper<MedicalRecordContent> queryWrapperContent = new QueryWrapper<>();
+                queryWrapperContent.eq("rec_id", medicalRecord.getRecId())
+                        .eq("hospital_id", medicalRecord.getHospitalId())
+                        .eq("is_deleted", IsDeleteEnum.N);
+
+                MedicalRecordContent medicalRecordContent=medicalRecordContentFacade.getOne(queryWrapperContent);
+                if(medicalRecordContent!=null && StringUtil.isNotEmpty(medicalRecordContent.getXmlText())){
+                    //判断是否有加密,加密后进行解密
+                    if (encryptFlag) {
+                        try {
+                            EncrypDES encrypDES = new EncrypDES();
+                            medicalRecordContent.setXmlText(encrypDES.decryptor(medicalRecordContent.getXmlText()));
+                        } catch (Exception e) {
+                            return RespDTO.onError("病案首页解密异常:"+e.getMessage());
+                        }
+                    }
+                    //将病案首页进行结构化处理
+                    List<AHomePageVO> list=getHomePageVo(medicalRecord.getBehospitalCode(),medicalRecord.getHospitalId(),medicalRecordContent.getXmlText());
+
+                    //特殊字段在进行转换格式化,入库保存
+                    AHomePageIngVO aHomePageIngVO=new AHomePageIngVO();
+                    aHomePageIngVO.setHomePages(list);
+                    aHomePageFacade.updateHomePageIng(aHomePageIngVO);
+                }
+            }
+            return RespDTO.onSuc("病案首页结构化成功");
+        }catch (Exception e){
+            return RespDTO.onError("结构化病案首页异常:"+e.getMessage());
+        }
+
+    }
+
+    /**
+     * @Description:详细结构化
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public List<AHomePageVO> getHomePageVo(String behospitalCode ,Long hospitalId,String homePageXml) {
+        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.setRescueNum(paramsObj.getString("抢救次数"));
+        aHomePageVO.setRescueSuccessNum(paramsObj.getString("抢救成功次数"));
+        aHomePageVO.setHospitalName(paramsObj.getString("医院代码"));
+        aHomePageVO.setPayType(paramsObj.getString("医疗付费方式"));
+        aHomePageVO.setHealthCard(paramsObj.getString("居民健康卡号"));
+        aHomePageVO.setBehospitalNum(paramsObj.getString("住院次数"));
+        aHomePageVO.setFileCode(paramsObj.getString("病案号"));
+        aHomePageVO.setName(paramsObj.getString("姓名"));
+        aHomePageVO.setSex(paramsObj.getString("性别"));
+        if (StringUtil.isNotEmpty(paramsObj.getString("出生日期").replaceAll("[\u4e00-\u9fa5]", "").trim())) {
+            aHomePageVO.setBirthday(paramsObj.getString("出生日期").replaceAll("[\u4e00-\u9fa5]", "-"));
+        }
+        String ageMap = "";
+        if(StringUtil.isNotEmpty(paramsObj.getString("年龄新")) && Pattern.compile(".*\\d+.*").matcher(paramsObj.getString("年龄新")).matches()){
+            ageMap = paramsObj.getString("年龄新");
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("新生儿年龄")) && Pattern.compile(".*\\d+.*").matcher(paramsObj.getString("新生儿年龄")).matches()){
+            ageMap = paramsObj.getString("新生儿年龄");
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("婴儿年龄")) && Pattern.compile(".*\\d+.*").matcher(paramsObj.getString("婴儿年龄")).matches()){
+            ageMap = paramsObj.getString("婴儿年龄");
+        }
+        if(!"".equals(ageMap) && Pattern.compile("^[-\\+]?[\\d]*$").matcher(ageMap.trim().replaceAll("[\u4e00-\u9fa5+-~:、,,./`]", "")).matches()){
+            String tempAgeMap = ageMap.replaceAll("[\u4e00-\u9fa5]", "");
+            aHomePageVO.setAge(tempAgeMap);
+            if(ageMap.contains("天")){
+                aHomePageVO.setAgeUnit("天");
+                aHomePageVO.setNewbornDay(tempAgeMap);
+            }else if(ageMap.contains("月")){
+                aHomePageVO.setAgeUnit("月");
+                aHomePageVO.setNewbornMonth(tempAgeMap);
+            }else if(ageMap.contains("岁")){
+                aHomePageVO.setAgeUnit("岁");
+            }else if(ageMap.contains("分")){
+                aHomePageVO.setAgeUnit("分钟");
+            }else if(ageMap.contains("时")){
+                aHomePageVO.setAgeUnit("小时");
+            }else if(ageMap.contains("周")){
+                aHomePageVO.setAgeUnit("周");
+            }else {
+                aHomePageVO.setAgeUnit("月");
+            }
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("新生儿出生月数"))){
+            aHomePageVO.setNewbornMonth(paramsObj.getString("新生儿出生月数"));
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("新生儿出生天数"))){
+            aHomePageVO.setNewbornDay(paramsObj.getString("新生儿出生天数"));
+        }
+        aHomePageVO.setNationality(coverValue(paramsObj.getString("国籍"),"GJ"));
+        aHomePageVO.setNewbornWeight(paramsObj.getString("新生儿出生体重"));
+        aHomePageVO.setNewbornBehospitalWeight(paramsObj.getString("新生儿入院体重"));
+        String[] provinceList = paramsObj.getString("省").split(" ");
+        String[] cityList = paramsObj.getString("市").split(" ");
+        String[] areaList = paramsObj.getString("县").split(" ");
+        if (provinceList.length > 0) {
+            if (provinceList[0].length() > 1) {
+                aHomePageVO.setBornAddress(CITY_MAP.get(provinceList[0]) == null ? "" : CITY_MAP.get(provinceList[0]));
+            }
+            if (provinceList[1].length() > 1) {
+                aHomePageVO.setResidenceAddress(CITY_MAP.get(provinceList[1]) == null ? "" : CITY_MAP.get(provinceList[1]));
+            }
+        }
+        if (cityList.length > 0) {
+            if (cityList[0].length() > 1) {
+                aHomePageVO.setBornAddress(aHomePageVO.getBornAddress() + (CITY_MAP.get(cityList[0]) == null ? "" : CITY_MAP.get(cityList[0])));
+            }
+            if (cityList[1].length() > 1) {
+                aHomePageVO.setResidenceAddress(aHomePageVO.getResidenceAddress() + (CITY_MAP.get(cityList[1]) == null ? "" : CITY_MAP.get(cityList[1])));
+            }
+        }
+        if (areaList.length > 0) {
+            if (areaList[0].length() > 1) {
+                aHomePageVO.setBornAddress(aHomePageVO.getBornAddress() + (CITY_MAP.get(areaList[0]) == null ? "" : CITY_MAP.get(areaList[0])));
+            }
+            if (areaList[1].length() > 1) {
+                aHomePageVO.setResidenceAddress(aHomePageVO.getResidenceAddress() + (CITY_MAP.get(areaList[1]) == null ? "" : CITY_MAP.get(areaList[1])));
+            }
+        }
+        aHomePageVO.setResidenceAddress(aHomePageVO.getResidenceAddress() + paramsObj.getString("户口地址其它"));
+        aHomePageVO.setBornPlace(CITY_MAP.get(paramsObj.getString("籍贯_省")) + CITY_MAP.get(paramsObj.getString("籍贯_市")));
+        aHomePageVO.setNation(coverValue(paramsObj.getString("民族"),"MZ"));
+        aHomePageVO.setIdentityCardNo(paramsObj.getString("身份证号"));
+        aHomePageVO.setJobType(coverValue(paramsObj.getString("职业"),"ZY"));
+        aHomePageVO.setMarriage(paramsObj.getString("婚姻"));
+        aHomePageVO.setCurAddress(CITY_MAP.get(paramsObj.getString("现住址_省")) + CITY_MAP.get(paramsObj.getString("现住址_市")) + CITY_MAP.get(paramsObj.getString("现住址_县")) + paramsObj.getString("现住址其它"));
+        aHomePageVO.setCurPhone(paramsObj.getString("现住址电话"));
+        aHomePageVO.setCurPostCode(paramsObj.getString("现住址邮编"));
+        aHomePageVO.setResidencePostCode(paramsObj.getString("户口地址邮编"));
+        aHomePageVO.setWorkAddress(paramsObj.getString("工作单位"));
+        aHomePageVO.setWorkPhone(paramsObj.getString("工作单位电话"));
+        aHomePageVO.setWorkPostCode(paramsObj.getString("工作单位邮编"));
+        aHomePageVO.setContactName(paramsObj.getString("联系人姓名"));
+        aHomePageVO.setContactRelation(coverValue(paramsObj.getString("联系人关系"),"GX"));
+        aHomePageVO.setContactAddress(paramsObj.getString("联系人地址"));
+        aHomePageVO.setContactPhone(paramsObj.getString("联系人电话"));
+        if (StringUtil.isNotBlank(paramsObj.getString("入院途径"))) {
+            aHomePageVO.setBehospitalWay(BehospitalWayXmlEnum.getName(paramsObj.getString("入院途径").split(" ")[0]));
+        }
+        if (YWDateUtils.isDate(paramsObj.getString("入院时间"), "yyyy年MM月dd日 HH时mm分") || YWDateUtils.isDate(paramsObj.getString("入院时间"), "yyyy-MM-dd HH:mm:ss")) {
+            aHomePageVO.setBehospitalDate(DateUtil.format(YWDateUtils.parseDateTime(paramsObj.getString("入院时间")), DateUtil.DATE_TIME_FORMAT));
+        }
+        aHomePageVO.setBehospitalDept(coverValue(paramsObj.getString("入院科别"),"KS"));
+        aHomePageVO.setBehospitalWard(paramsObj.getString("入院病房"));
+        aHomePageVO.setChangeDept(paramsObj.getString("转科科别"));
+        if (YWDateUtils.isDate(paramsObj.getString("出院时间"), "yyyy-MM-dd HH:mm:ss") || YWDateUtils.isDate(paramsObj.getString("出院时间"), "yyyy年MM月dd日 HH时mm分")) {
+            aHomePageVO.setLeaveHospitalDate(DateUtil.format(YWDateUtils.parseDateTime(paramsObj.getString("出院时间")), DateUtil.DATE_TIME_FORMAT));
+        }
+        aHomePageVO.setLeaveHospitalDept(paramsObj.getString("出院科别"));
+        aHomePageVO.setLeaveHospitalWard(paramsObj.getString("出院病房"));
+        aHomePageVO.setBehospitalDayNum(paramsObj.getString("实际住院天数"));
+        aHomePageVO.setOutpatientEmrDiagnose(paramsObj.getString("门急诊诊断"));
+        aHomePageVO.setOutpatientEmrDiagnoseCode(paramsObj.getString("门诊诊断编码"));
+        aHomePageVO.setPoisonFactor(paramsObj.getString("损伤中毒因素"));
+        aHomePageVO.setPoisonFactorCode(paramsObj.getString("损伤中毒因素编码"));
+        aHomePageVO.setPathologyDiagnose(paramsObj.getString("病理诊断"));
+        aHomePageVO.setPathologyDiagnoseCode(paramsObj.getString("病理诊断编码"));
+        aHomePageVO.setIsMedAllergy(paramsObj.getString("药物过敏"));
+        aHomePageVO.setMedAllergyName(paramsObj.getString("过敏药物"));
+        aHomePageVO.setAutopsy(paramsObj.getString("死亡患者尸检"));
+        aHomePageVO.setBloodType(paramsObj.getString("血型"));
+        aHomePageVO.setRh(paramsObj.getString("Rh"));
+        aHomePageVO.setDeptDirector(coverValue(paramsObj.getString("科主任"),"ZG"));
+        aHomePageVO.setDirectorDoctor(coverValue(paramsObj.getString("主任医师"),"ZG"));
+        aHomePageVO.setAttendingDoctor(coverValue(paramsObj.getString("主治医师"),"ZG"));
+        aHomePageVO.setBehospitalDoctor(coverValue(paramsObj.getString("住院医师"),"ZG"));
+        aHomePageVO.setResponseNurse(coverValue(paramsObj.getString("责任护士"),"ZG"));
+        aHomePageVO.setStudyDoctor(coverValue(paramsObj.getString("进修医师"),"ZG"));
+        aHomePageVO.setPracticeDoctor(coverValue(paramsObj.getString("实习医师"),"ZG"));
+        aHomePageVO.setEncodeMan(coverValue(paramsObj.getString("编码员"),"ZG"));
+        aHomePageVO.setHomePageQuality(paramsObj.getString("病案质量"));
+        aHomePageVO.setQcDoctor(coverValue(paramsObj.getString("质控医师"),"ZG"));
+        aHomePageVO.setQcNurse(coverValue(paramsObj.getString("质控护士"),"ZG"));
+        if (YWDateUtils.isDate(paramsObj.getString("质控日期"), "yyyy-MM-dd HH:mm:ss")) {
+            aHomePageVO.setQcDate(DateUtil.format(YWDateUtils.parseDateTime(paramsObj.getString("质控日期")), DateUtil.DATE_TIME_FORMAT));
+        } else if(YWDateUtils.isDate(paramsObj.getString("质控日期"), "yyyy年MM月dd日")){
+            aHomePageVO.setQcDate(paramsObj.getString("质控日期").replaceAll("[\u4e00-\u9fa5]", "-"));
+        }
+        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.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("其他类其他费"));
+        if(StringUtil.isNotEmpty(paramsObj.getString("单病种管理"))){
+            aHomePageVO.setSingleDiagManage(paramsObj.getString("单病种管理").trim());
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("单病种管理_"))){
+            aHomePageVO.setSingleDiagManage(paramsObj.getString("单病种管理_").trim());
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("临床路径管理"))){
+            aHomePageVO.setClinicPathwayManage(paramsObj.getString("临床路径管理").trim());
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("临床路径管理_"))){
+            aHomePageVO.setClinicPathwayManage(paramsObj.getString("临床路径管理_").trim());
+        }
+        aHomePageVO.setIsOutpatientBehospital(paramsObj.getString("门诊与住院"));
+        aHomePageVO.setIsLeaveBehospital(paramsObj.getString("入院与出院"));
+        aHomePageVO.setIsOperationBeforeAfter(paramsObj.getString("术前与术后"));
+        aHomePageVO.setIsClinicPathology(paramsObj.getString("临床与病理"));
+        aHomePageVO.setIsRadiatePathology(paramsObj.getString("放射与病理"));
+        if(StringUtil.isNotEmpty(paramsObj.getString("转归情况"))){
+            aHomePageVO.setReturnToType(paramsObj.getString("转归情况").trim());
+        }
+        if(StringUtil.isNotEmpty(paramsObj.getString("转归情况_"))){
+            aHomePageVO.setReturnToType(paramsObj.getString("转归情况_").trim());
+        }
+        //定位id暂时存字段中
+        String idsJson = JSONObject.toJSONString(ret.get("IDs"));
+        //aHomePageVO.setHospitalCode(idsJson);
+        List<Object> operationList = paramsObj.getJSONArray("手术信息");
+        String ssqkSql = "SELECT * FROM AI_V_SENDHOMEPAGEING_SSQK t where t.homepageid = '" + behospitalCode + "'";
+        String cyzdSql = "SELECT * FROM AI_V_SENDHOMEPAGEING_CYZD t where t.homepageid = '" + behospitalCode + "'";
+        aHomePageVO.setOperations(tzDBConn.getHomePageOperation(ssqkSql));
+        aHomePageVO.setLeaveDiags(tzDBConn.getHomePageDiagnose(cyzdSql));
+        aHomePageVOList.add(aHomePageVO);
+        return aHomePageVOList;
+    }
+
+    public String coverValue(String field, String type) {
+        if(StringUtil.isNotEmpty(field) && !field.equals("-")){
+            Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
+            Matcher m = p.matcher(field);
+            if (type.equals("ZG")) {
+                /**职工*/
+                //return m.find() ? field : tzDBConn.getDoctorName(field);
+            } else if (type.equals("KS")) {
+                /**科室*/
+                //return m.find() ? field : tzDBConn.getDeptName(field);
+            } else if (type.equals("MZ")) {
+                /**民族*/
+                return m.find() ? field : FamousFamilyEnum.getName(field);
+            } else if(type.equals("ZY")){
+                /**职业*/
+                return m.find() ? field : OccupationEnum.getName(field);
+            } else if(type.equals("GJ")){
+                /**国籍*/
+                return m.find() ? field : NationalityEnum.getName(field);
+            } else if (type.equals("GX")){
+                /**联系人关系*/
+                return m.find() ? field : RelationshipEnum.getName(field);
+            }
+        }
+        return field;
+    }
 }

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

@@ -135,7 +135,7 @@ public class AHomePageFacade extends HomePageServiceImpl{
      * 更新数据到数据库
      * @param aHomePageIngVO
      */
-    private void updateHomePageIng(AHomePageIngVO aHomePageIngVO){
+    public void updateHomePageIng(AHomePageIngVO aHomePageIngVO){
         try {
             List<HomePage> homePageList=Lists.newArrayList();
             aHomePageIngVO.getHomePages().stream().forEach(s->{

+ 0 - 2
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -88,8 +88,6 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
      * 终末质控-同步前一天的病历记录
      */
     public void executeMrRecord() {
-        //String sql="select * from mr_medicalrecords  where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
-        //String sql="select * from mr_medicalrecords  where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) ORDER BY cjcxrq DESC";
         String sql = "select * from ai_v_sendmrrecording where behospitalcode in()";
         List<MedicalRecord> medicalRecordList = tzDBConn.getMedicalRecord(sql);
         execute(medicalRecordList);

+ 18 - 0
src/main/java/com/diagbot/util/MapUtil.java

@@ -1,6 +1,7 @@
 package com.diagbot.util;
 
 import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
 import org.apache.commons.io.IOUtils;
 import org.springframework.core.io.ClassPathResource;
 
@@ -138,4 +139,21 @@ public class MapUtil {
         return map;
     }
 
+    /**
+     * 复制一个map
+     *
+     * @param map
+     * @return
+     */
+    public static Map<String, Object> copyMap(Map<String, Object> map) {
+        if (map == null) {
+            return null;
+        }
+        Map<String, Object> retMap = Maps.newHashMap();
+        map.keySet().forEach(key -> {
+            retMap.put(key, map.get(key));
+        });
+        return retMap;
+    }
+
 }

+ 2 - 1
src/main/java/com/diagbot/util/YiWuFirstPageRecordXmlUtil.java

@@ -90,7 +90,8 @@ public class YiWuFirstPageRecordXmlUtil {
                     }
                 }
             }
-            if(containsAgeText && containsWeightText){
+            boolean containsInWeightText = text.contains("新生儿入院体重");
+            if(containsInWeightText){
                 String weightText= text.substring(text.indexOf("新生儿入院体重"), text.indexOf("出生地"));
                 structureMap.put("新生儿入院体重",weightText.substring(weightText.indexOf("重")+1, weightText.indexOf("克")));
             }

+ 10 - 0
src/main/java/com/diagbot/web/DataController.java

@@ -60,6 +60,9 @@ public class DataController {
     @Autowired
     private AMedPacsResultFacade aMedPacsResultFacade;
 
+    @Autowired
+    private ADataFacade aDataFacade;
+
     @ApiOperation(value = "数据引擎-获取医院所有在职医生的基本信息")
     @PostMapping("/sendDoctorInfos")
     @SysLogger("sendDoctorInfos")
@@ -213,4 +216,11 @@ public class DataController {
     public RespDTO saveMrRecord(@RequestBody List<String> behospitalCodeList){
         return aMedicalRecordFacade.getRecordToView(behospitalCodeList);
     }
+
+    @ApiOperation(value = "结构化病案首页")
+    @PostMapping("/analyseHomePage")
+    @SysLogger("analyseHomePage")
+    public RespDTO analyseHomePage(@RequestBody String behospitalCode){
+        return aDataFacade.analyseHomePage(behospitalCode,Long.valueOf("5"));
+    }
 }