|
@@ -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 {
|