Prechádzať zdrojové kódy

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

huangwenjie 5 rokov pred
rodič
commit
4bffa747f1
13 zmenil súbory, kde vykonal 706 pridanie a 306 odobranie
  1. 17 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/WlyyInspectionDao.java
  2. 0 1
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/InspectionService.java
  3. 223 84
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  4. 77 2
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java
  5. 4 116
      business/base-service/src/mqConfig/mqdata/MS53001.json
  6. 77 50
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyInspectionDO.java
  7. 28 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionInfoDO.java
  8. 5 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  9. 130 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyHisPrescriptionVO.java
  10. 77 50
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyInspectionVO.java
  11. 22 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionInfoVO.java
  12. 22 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionVO.java
  13. 24 3
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

+ 17 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/WlyyInspectionDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.hospital.prescription.dao;
import com.yihu.jw.entity.hospital.prescription.WlyyInspectionDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Trick on 2019/9/30.
 */
public interface WlyyInspectionDao extends PagingAndSortingRepository<WlyyInspectionDO, String>, JpaSpecificationExecutor<WlyyInspectionDO> {
    List<WlyyInspectionDO> findByOutpatientId(String outpatientId);
    List<WlyyInspectionDO> findByPrescriptionId(String prescriptionId);
}

+ 0 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/InspectionService.java

@ -1,7 +1,6 @@
package com.yihu.jw.hospital.prescription.service;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.prescription.WlyyInspectionDO;
import com.yihu.jw.entity.hospital.prescription.WlyyInspectionPartsDictDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;

+ 223 - 84
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -49,6 +49,7 @@ import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.common.QrcodeUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.security.MD5;
import com.ylzinfo.ehc.EhcHandler;
@ -143,6 +144,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private PatientRegisterDao patientRegisterDao;
    @Autowired
    private PrescriptionLogService prescriptionLogService;
    @Autowired
    private WlyyInspectionDao wlyyInspectionDao;
    
    @Value("${demo.flag}")
@ -348,6 +351,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
                vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId()),infoVOs,WlyyPrescriptionInfoVO.class));
                //检查检验信息
                List<WlyyInspectionVO> inspectionVOs = new ArrayList<>();
                vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId()),inspectionVOs,WlyyInspectionVO.class));
            }
        }
        rs.put("prescriptions",prescriptionVOs);
@ -1154,7 +1160,31 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @return
     */
    public JSONArray getInspectionDictionary(String pyKey,String winNo)throws Exception{
        return entranceService.MS25002(pyKey,winNo,demoFlag);
        JSONArray rs = entranceService.MS25002(pyKey,winNo,demoFlag);
        if(rs!=null&&rs.size()>0){
            //设置科室翻译名称字典,减少循环层级降低循环次数
            List<DictHospitalDeptDO> depts =dictHospitalDeptDao.findByOrgCode("350211A1002");
            Map<String,String> deptDictMap = new HashedMap();
            for(DictHospitalDeptDO dp:depts){
                deptDictMap.put(dp.getCode(),dp.getName());
            }
            //翻译执行科室
            for(int i=0;i<rs.size();i++){
                JSONObject dict = (JSONObject)rs.get(i);
                String dept = dict.getString("exec_unit");
                if(StringUtils.isNotBlank(dept)){
                    String deptName = deptDictMap.get(dept);
                    if(StringUtils.isNotBlank(deptName)){
                        dict.put("exec_unit_name",deptName);
                    }else{
                        dict.put("exec_unit_name","");
                    }
                }
            }
        }
        return rs;
    }
    /**
@ -1166,7 +1196,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @param diagnosisJson
     * @return
     */
    public Map<String,Object> makeDiagnosis(String outPatientId,String advice,String type,String infoJsons,String diagnosisJson)throws Exception{
    public Map<String,Object> makeDiagnosis(String outPatientId,String advice,String type,String infoJsons,String diagnosisJson,String inspectionJson)throws Exception{
        Map<String,Object> result = new HashedMap();
@ -1222,7 +1252,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        outpatientDO.setIcd10Name(Icd10Name);
        outpatientDao.save(outpatientDO);
        //判断是否需药品,有药品到his开处方,没有药品直接下诊断开方
        //判断是否有检查检验或药品开方
        if("1".equals(type)){
            //doctor转换为his医生
@ -1237,102 +1267,45 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                prescriptionInfoDao.delete(oldInfos);
            }
            //his处方拼接开方条件
            com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
            //存储药品,构建his开方入参
            if(StringUtils.isNotBlank(infoJsons)){
                //药品
                List<WlyyPrescriptionInfoDO> infoDOs = (List<WlyyPrescriptionInfoDO>) com.alibaba.fastjson.JSONArray.parseArray(infoJsons, WlyyPrescriptionInfoDO.class);
                //his处方拼接开方条件
                com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
                for(WlyyPrescriptionInfoDO info:infoDOs){
                    info.setDel(1);
                    info.setPrescriptionId(prescription.getId());
                    com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
                    json.put("cardNo",outpatientDO.getCardNo());
                    json.put("doctor",doctorMappingDO.getMappingCode());
                    json.put("dept",outpatientDO.getDept());
                    json.put("chargeCode",info.getDrugNo());
                    json.put("winNo",outpatientDO.getWinNo());
                    json.put("chargeFlag",1); //项目类别-必输  1-药品 2检验检查
                    json.put("quantity",info.getQuantity()); //数量-必输
                    json.put("serialNo",outpatientDO.getRegisterNo()); //挂号流水号-必输
                    json.put("groupNo",info.getGroupNo());//库房号-必输
                    json.put("serial",info.getSerial()); //药品序列号-必输
                    String Icd10s[] = Icd10.split(",");
                    for(int i=0;i<Icd10s.length;i++){
                        if(i==0){
                            json.put("icdCode",Icd10s[i]);
                        }else if(i==1){
                            json.put("diagTwo",Icd10s[i]);
                        }else if(i==2){
                            json.put("diagThree",Icd10s[i]);
                        }else if(i==3){
                            json.put("diagFour",Icd10s[i]);
                        }else if(i==4){
                            json.put("diagFive",Icd10s[i]);
                        }
                    }
                    json.put("dosage",info.getDosage());
                    json.put("unit",info.getUnit());
                    json.put("usage",info.getUsageCode());
                    json.put("supplyCode",info.getSupplyCode());
                    json.put("days",info.getDays());
                    json.put("frequency",info.getFrequency());
                    jsonData.add(json);
                    logger.info("json:" +json.toString());
                    //设置his药品查询条件
                    setInfoJsonParam(jsonData,doctorMappingDO,outpatientDO,info,Icd10);
                }
                //保存处方
                prescriptionInfoDao.save(infoDOs);
                
                //调用his开方接口
                net.sf.json.JSONObject jsonObject = entranceService.BS10112(jsonData.toJSONString(),demoFlag);
                logger.info("调用his开方接口: "+jsonObject.toString());
                //判断返回结果
                String rs = jsonObject.getString("@RESULT");
                //保存日志
                WlyyHttpLogDO log = new WlyyHttpLogDO();
                log.setCode("makeDiagnosis");
                log.setName("下诊断");
                log.setPatient(outpatientDO.getPatient());
                log.setDoctor(outpatientDO.getDoctor());
                log.setResponse(jsonObject.toString());
                log.setRequest(jsonData.toJSONString());
                log.setStatus(rs);
                log.setCreateTime(new Date());
                wlyyHttpLogDao.save(log);
                if("0".equals(rs)){
                    String admNo = jsonObject.getString("@ADM_NO");
                    String realOrder = jsonObject.getString("@real_order");
                    prescription.setAdmNo(admNo);
                    prescription.setRealOrder(realOrder);
                    prescriptionDao.save(prescription);
                    outpatientDO.setAdmNo(admNo);
                    outpatientDao.save(outpatientDO);
                    result.put("code",1);
                    result.put("mes","开方提交成功");
                    return result;
                }else{
                    //开方失败
                    prescription.setStatus(13);
                    prescriptionDao.save(prescription);
                    result.put("code",-1);
                    result.put("mes","开方提交失败");
            }
                    prescriptionLogService.addPrescriptionLog(prescription.getId(),13,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
            //删除之前检查检验
            List<WlyyInspectionDO> inspectionDels = wlyyInspectionDao.findByOutpatientId(outPatientId);
            if(inspectionDels!=null&&inspectionDels.size()>0){
                wlyyInspectionDao.delete(inspectionDels);
            }
            //存储检查检验,构建his开方入参
            if(StringUtils.isNotBlank(inspectionJson)){
                List<WlyyInspectionDO> inspections = (List<WlyyInspectionDO>) com.alibaba.fastjson.JSONArray.parseArray(inspectionJson, WlyyInspectionDO.class);
                for(WlyyInspectionDO ins:inspections){
                    return result;
                }
                    ins.setCreateTime(new Date());
                    ins.setPrescriptionId(prescription.getId());
                    ins.setOutpatientId(outPatientId);
            }else{
                result.put("code",-2);
                result.put("mes","参数错误,药品参数错误");
                return result;
                    //设置his药品查询条件
                    setInspectionParam(jsonData,doctorMappingDO,outpatientDO,ins,Icd10);
                }
            }
            //上传his开方
            return sendHisDiagnosis(jsonData,outpatientDO,prescription);
        }else{
            //
@ -1345,6 +1318,172 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    }
    /**
     * 上传his开方
     * @param jsonData
     * @param outpatientDO
     * @param prescription
     * @return
     * @throws Exception
     */
    public Map<String,Object> sendHisDiagnosis(com.alibaba.fastjson.JSONArray jsonData,WlyyOutpatientDO outpatientDO,WlyyPrescriptionDO prescription)throws Exception{
        Map<String,Object> result = new HashedMap();
        //调用his开方接口
        net.sf.json.JSONObject jsonObject = entranceService.BS10112(jsonData.toJSONString(),demoFlag);
        logger.info("调用his开方接口: "+jsonObject.toString());
        //判断返回结果
        String rs = jsonObject.getString("@RESULT");
        //保存日志
        WlyyHttpLogDO log = new WlyyHttpLogDO();
        log.setCode("makeDiagnosis");
        log.setName("下诊断");
        log.setPatient(outpatientDO.getPatient());
        log.setDoctor(outpatientDO.getDoctor());
        log.setResponse(jsonObject.toString());
        log.setRequest(jsonData.toJSONString());
        log.setStatus(rs);
        log.setCreateTime(new Date());
        wlyyHttpLogDao.save(log);
        if("0".equals(rs)){
            String admNo = jsonObject.getString("@ADM_NO");
            String realOrder = jsonObject.getString("@real_order");
            prescription.setAdmNo(admNo);
            prescription.setRealOrder(realOrder);
            prescriptionDao.save(prescription);
            outpatientDO.setAdmNo(admNo);
            outpatientDao.save(outpatientDO);
            result.put("code",1);
            result.put("mes","开方提交成功");
            return result;
        }else{
            //开方失败
            prescription.setStatus(13);
            prescriptionDao.save(prescription);
            result.put("code",-1);
            result.put("mes","开方提交失败");
            //记录开发失败日志
            prescriptionLogService.addPrescriptionLog(prescription.getId(),13,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
            return result;
        }
    }
    /**
     * 设置检查检验his入参
     * @param jsonData
     * @param doctorMappingDO
     * @param outpatientDO
     * @param inspectionDO
     * @param Icd10
     */
    public void setInspectionParam(com.alibaba.fastjson.JSONArray jsonData,DoctorMappingDO doctorMappingDO,WlyyOutpatientDO outpatientDO,WlyyInspectionDO inspectionDO,String Icd10){
        com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
        json.put("cardNo",outpatientDO.getCardNo());
        json.put("doctor",doctorMappingDO.getMappingCode());
        json.put("dept",inspectionDO.getDept());
        json.put("frequency",inspectionDO.getFrequency()); //组号
        json.put("quantity",inspectionDO.getQuantity()); //数量
        json.put("winNo",outpatientDO.getWinNo());
        json.put("chargeFlag",2); //项目类别-必输  1-药品 2检验检查
        /**
          *  code;//项目编码',
          *  name;//(检查方法)',
          *  information;//病史与体征',
          *  checkEquip;//类别',
          *  checkPart;//部位',
          *  adresult;//辅助检查治疗',
          *  goal;//检查目的',
          *  opview;//手术所见-病理申请单必填',
          *  specimenName;//标本名称-病理申请单必填',
          *  specimenNum;//标本数量-病理申请单必填',
          *  ywjcResult;//以往检查结果-病理申请单选填',
          *  ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
          *  blzd;//病理诊断-病理申请单选填',
          *  fixationfluid;//固定液
         */
        json.put("code",inspectionDO.getCode()); //项目编码
        json.put("name",inspectionDO.getName()); //挂号流水号-必输
        json.put("information",inspectionDO.getInformation());//库房号-必输
        json.put("checkEquip",inspectionDO.getCheckEquip()); //药品序列号-必输
        json.put("checkPart",inspectionDO.getCheckPart());
        json.put("adresult",inspectionDO.getAdresult());
        json.put("goal",inspectionDO.getGoal());
        json.put("opview",inspectionDO.getOpview());
        json.put("specimenName",inspectionDO.getSpecimenName());
        json.put("specimenNum",inspectionDO.getSpecimenNum());
        json.put("ywjcResult",inspectionDO.getYwjcResult());
        json.put("ywjcDate",inspectionDO.getYwjcDate());
        json.put("blzd",inspectionDO.getBlzd());
        json.put("fixationfluid",inspectionDO.getFixationfluid());
        //设置诊断
        setIcd10(json,Icd10);
        jsonData.add(json);
        logger.info("json:" +json.toString());
    }
    /**
     * 设置药品his入参
     * @param jsonData
     * @param doctorMappingDO
     * @param outpatientDO
     * @param info
     * @param Icd10
     */
    public void setInfoJsonParam(com.alibaba.fastjson.JSONArray jsonData,DoctorMappingDO doctorMappingDO,WlyyOutpatientDO outpatientDO,WlyyPrescriptionInfoDO info,String Icd10){
        com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
        json.put("cardNo",outpatientDO.getCardNo());
        json.put("doctor",doctorMappingDO.getMappingCode());
        json.put("dept",outpatientDO.getDept());
        json.put("chargeCode",info.getDrugNo());
        json.put("winNo",outpatientDO.getWinNo());
        json.put("chargeFlag",1); //项目类别-必输  1-药品 2检验检查
        json.put("quantity",info.getQuantity()); //数量-必输
        json.put("serialNo",outpatientDO.getRegisterNo()); //挂号流水号-必输
        json.put("groupNo",info.getGroupNo());//库房号-必输
        json.put("serial",info.getSerial()); //药品序列号-必输
        json.put("dosage",info.getDosage());
        json.put("unit",info.getUnit());
        json.put("usage",info.getUsageCode());
        json.put("supplyCode",info.getSupplyCode());
        json.put("days",info.getDays());
        json.put("frequency",info.getFrequency());
        //设置诊断
        setIcd10(json,Icd10);
        jsonData.add(json);
        logger.info("json:" +json.toString());
    }
    public void setIcd10(com.alibaba.fastjson.JSONObject json,String Icd10){
        String Icd10s[] = Icd10.split(",");
        for(int i=0;i<Icd10s.length;i++){
            if(i==0){
                json.put("icdCode",Icd10s[i]);
            }else if(i==1){
                json.put("diagTwo",Icd10s[i]);
            }else if(i==2){
                json.put("diagThree",Icd10s[i]);
            }else if(i==3){
                json.put("diagFour",Icd10s[i]);
            }else if(i==4){
                json.put("diagFive",Icd10s[i]);
            }
        }
    }
    /**
     * 订单查询

+ 77 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java

@ -27,6 +27,7 @@ import com.yihu.jw.util.common.PwdUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.idcard.IdCardUtil;
import com.yihu.jw.utils.StringUtil;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.xml.XMLSerializer;
@ -811,8 +812,26 @@ public class EntranceService {
            sbs.append("<MsgInfo><endNum>20000</endNum><Msg><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root>");
            for(WlyyHisPrescriptionVO vo:patientSubscribeJkedus){
                //必输字段
                sbs.append("<resquest card_no=\"" + vo.getCardNo() + "\" doctor=\"" + vo.getDoctor() + "\" dept=\"" + vo.getDept() + "\" charge_code=\"" + vo.getChargeCode() + "\" win_no=\"" + vo.getWinNo() + "\" charge_flag=\"" + vo.getChargeFlag() + "\" ");
                sbs.append("quantity=\"" + vo.getQuantity() + "\"  serial_no=\"" + vo.getSerialNo() + "\"  group_no=\"" + vo.getGroupNo() + "\"   serial=\"" + vo.getSerial() + "\"   icd_code=\"" + vo.getIcdCode()+"\"");
                sbs.append("<resquest card_no=\"" + vo.getCardNo() + "\" doctor=\"" + vo.getDoctor() + "\" dept=\"" + vo.getDept() + "\" win_no=\"" + vo.getWinNo() + "\" charge_flag=\"" + vo.getChargeFlag() + "\" ");
                if(StringUtils.isNotBlank(vo.getChargeCode())){
                    sbs.append(" charge_code=\"" + vo.getChargeCode()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getIcdCode())){
                    sbs.append(" icd_code=\"" + vo.getIcdCode()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getSerial())){
                    sbs.append(" serial=\"" + vo.getSerial()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getSerialNo())){
                    sbs.append(" serial_no=\"" + vo.getSerialNo()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getQuantity())){
                    sbs.append(" quantity=\"" + vo.getQuantity()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getGroupNo())){
                    sbs.append(" group_no=\"" + vo.getGroupNo()+ "\"");
                }
                //选填字段
                if(StringUtils.isNotBlank(vo.getDiagTwo())){
                    sbs.append(" diag_two=\""+vo.getDiagTwo()+"\"");
@ -844,6 +863,62 @@ public class EntranceService {
                if(StringUtils.isNotBlank(vo.getFrequency())){
                    sbs.append(" frequency=\""+vo.getFrequency()+ "\"");
                }
                //检查检验
                /**
                 *  code;//项目编码',
                 *  name;//(检查方法)',
                 *  information;//病史与体征',
                 *  checkEquip;//类别',
                 *  checkPart;//部位',
                 *  adresult;//辅助检查治疗',
                 *  goal;//检查目的',
                 *  opview;//手术所见-病理申请单必填',
                 *  specimenName;//标本名称-病理申请单必填',
                 *  specimenNum;//标本数量-病理申请单必填',
                 *  ywjcResult;//以往检查结果-病理申请单选填',
                 *  ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
                 *  blzd;//病理诊断-病理申请单选填',
                 *  fixationfluid;//固定液
                 */
                if(StringUtils.isNotBlank(vo.getName())){
                    sbs.append(" group_name=\""+vo.getName()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getInformation())){
                    sbs.append(" information=\""+vo.getInformation()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getCheckEquip())){
                    sbs.append(" check_equip=\""+vo.getCheckEquip()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getCheckPart())){
                    sbs.append(" check_part=\""+vo.getCheckPart()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getAdresult())){
                    sbs.append(" adresult=\""+vo.getAdresult()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getGoal())){
                    sbs.append(" goal=\""+vo.getGoal()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getOpview())){
                    sbs.append(" opview=\""+vo.getOpview()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getSpecimenName())){
                    sbs.append(" specimenName=\""+vo.getSpecimenName()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getSpecimenNum())){
                    sbs.append(" specimenNum=\""+vo.getSpecimenNum()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getYwjcResult())){
                    sbs.append(" ywjc_result=\""+vo.getYwjcResult()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getYwjcDate())){
                    sbs.append(" ywjc_date=\""+vo.getYwjcDate()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getBlzd())){
                    sbs.append(" blzd=\""+vo.getBlzd()+ "\"");
                }
                if(StringUtils.isNotBlank(vo.getFixationfluid())){
                    sbs.append(" fixationfluid=\""+vo.getFixationfluid()+ "\"");
                }
                sbs.append("/>");
            }
            sbs.append("</root>]]></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");

+ 4 - 116
business/base-service/src/mqConfig/mqdata/MS53001.json

@ -34,122 +34,10 @@
				"pack_unit_name": "盒",
				"weigh_unit_name": "mg",
				"vol_unit_name": [],
				"win_no": "6"
				"win_no": "6",
				"jbyw": "国基",
				"gwyp": []
			}
		}
	},
		{
			"head": {
				"fId": "BS35014",
				"version": "2",
				"msgName": "药品字典",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190529094210"
			},
			"body": {
				"row": {
					"action": "select",
					"charge_code": "07610 ",
					"serial": "01",
					"group_no": "72",
					"drugname": "吡柔比星粉针",
					"dosage": "15  ",
					"mini_unit": "05",
					"pack_size": "1",
					"specification": "10mg/盒",
					"retprice": "120.89",
					"pack_retprice": "120.89",
					"stock_amount": "0",
					"visible_flag": "0",
					"drug_flag": "0",
					"py_code": "BRBXFZ  ",
					"pack_unit": "05",
					"manu_name": "深圳万乐",
					"weigh_unit": "16",
					"vol_unit": [],
					"mini_unit_name": "盒",
					"pack_unit_name": "盒",
					"weigh_unit_name": "mg",
					"vol_unit_name": [],
					"win_no": "6"
				}
			}
		},
		{
			"head": {
				"fId": "BS35014",
				"version": "2",
				"msgName": "药品字典",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190529094210"
			},
			"body": {
				"row": {
					"action": "select",
					"charge_code": "07759 ",
					"serial": "01",
					"group_no": "72",
					"drugname": "表柔比星粉针(力创",
					"dosage": "15  ",
					"mini_unit": "09",
					"pack_size": "1",
					"specification": "10mg/瓶",
					"retprice": "83.7",
					"pack_retprice": "83.7",
					"stock_amount": "0",
					"visible_flag": "0",
					"drug_flag": "0",
					"py_code": "BRBXFZZL",
					"pack_unit": "09",
					"manu_name": "山东新时代",
					"weigh_unit": "16",
					"vol_unit": [],
					"mini_unit_name": "瓶",
					"pack_unit_name": "瓶",
					"weigh_unit_name": "mg",
					"vol_unit_name": [],
					"win_no": "6"
				}
			}
		},
		{
			"head": {
				"fId": "BS35014",
				"version": "2",
				"msgName": "药品字典",
				"sourceSysCode": "S01",
				"targetSysCode": "S60",
				"createTime": "20190529094210"
			},
			"body": {
				"row": {
					"action": "select",
					"charge_code": "07656 ",
					"serial": "01",
					"group_no": "72",
					"drugname": "丁螺环酮片(奇比特)",
					"dosage": "01  ",
					"mini_unit": "01",
					"pack_size": "40",
					"specification": "5mgx40片/盒",
					"retprice": "0.6945",
					"pack_retprice": "27.78",
					"stock_amount": "0",
					"visible_flag": "0",
					"drug_flag": "0",
					"py_code": "DLHTPPQB",
					"pack_unit": "05",
					"manu_name": "北大医药股份有限公司",
					"weigh_unit": "16",
					"vol_unit": [],
					"mini_unit_name": "片",
					"pack_unit_name": "盒",
					"weigh_unit_name": "mg",
					"vol_unit_name": [],
					"win_no": "6"
				}
			}
		}]
	}]
}

+ 77 - 50
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyInspectionDO.java

@ -16,6 +16,12 @@ public class WlyyInspectionDO extends UuidIdentityEntity {
    private String outpatientId;//门诊id',
    private String prescriptionId;//处方id',
    private String dept;//执行科室
    private String deptName;//执行科室名称
    private Integer quantity;//数量
    private String frequency;//组号
    private String code;//项目编码',
    private String name;//(检查方法)',
    private String information;//病史与体征',
@ -29,12 +35,17 @@ public class WlyyInspectionDO extends UuidIdentityEntity {
    private String ywjcResult;//以往检查结果-病理申请单选填',
    private String ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
    private String blzd;//病理诊断-病理申请单选填',
    private String chargeUnit;//项目单位',
    private String chargeAmount;//项目单价',
    private String pyCode;//拼音码',
    private String dCode;//自定义码',
    private String execUnit;//执行科室',
    private String winNo;//院区',
    private String fixationfluid;//固定液
//    private String chargeUnit;//项目单位',
//    private String chargeAmount;//项目单价',
//    private String pyCode;//拼音码',
//    private String dCode;//自定义码',
//    private String execUnit;//执行科室',
//    private String winNo;//院区',
    private String checkbox;//是否拆分 1是,0否
    private String mzpg;//麻醉评估 0否,1有
    private String sfzg;//是否做过 0 否 和 1是
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date createTime;//,
@ -62,38 +73,6 @@ public class WlyyInspectionDO extends UuidIdentityEntity {
        this.name = name;
    }
    public String getChargeUnit() {
        return chargeUnit;
    }
    public void setChargeUnit(String chargeUnit) {
        this.chargeUnit = chargeUnit;
    }
    public String getChargeAmount() {
        return chargeAmount;
    }
    public void setChargeAmount(String chargeAmount) {
        this.chargeAmount = chargeAmount;
    }
    public String getPyCode() {
        return pyCode;
    }
    public void setPyCode(String pyCode) {
        this.pyCode = pyCode;
    }
    public String getdCode() {
        return dCode;
    }
    public void setdCode(String dCode) {
        this.dCode = dCode;
    }
    public String getCode() {
        return code;
    }
@ -102,20 +81,12 @@ public class WlyyInspectionDO extends UuidIdentityEntity {
        this.code = code;
    }
    public String getExecUnit() {
        return execUnit;
    public String getFixationfluid() {
        return fixationfluid;
    }
    public void setExecUnit(String execUnit) {
        this.execUnit = execUnit;
    }
    public String getWinNo() {
        return winNo;
    }
    public void setWinNo(String winNo) {
        this.winNo = winNo;
    public void setFixationfluid(String fixationfluid) {
        this.fixationfluid = fixationfluid;
    }
    public Date getCreateTime() {
@ -213,4 +184,60 @@ public class WlyyInspectionDO extends UuidIdentityEntity {
    public void setBlzd(String blzd) {
        this.blzd = blzd;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public Integer getQuantity() {
        return quantity;
    }
    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }
    public String getFrequency() {
        return frequency;
    }
    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }
    public String getCheckbox() {
        return checkbox;
    }
    public void setCheckbox(String checkbox) {
        this.checkbox = checkbox;
    }
    public String getMzpg() {
        return mzpg;
    }
    public void setMzpg(String mzpg) {
        this.mzpg = mzpg;
    }
    public String getSfzg() {
        return sfzg;
    }
    public void setSfzg(String sfzg) {
        this.sfzg = sfzg;
    }
}

+ 28 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionInfoDO.java

@ -122,6 +122,16 @@ public class WlyyPrescriptionInfoDO extends UuidIdentityEntity {
     */
    private Double packRetprice;
    /**
     * 中草药数量
     */
    private String herbalCount;
    /**
     * 中草药贴数
     */
    private String postCount;
    @Column(name = "prescription_id")
    public String getPrescriptionId() {
@ -300,4 +310,22 @@ public class WlyyPrescriptionInfoDO extends UuidIdentityEntity {
    public void setPackRetprice(Double packRetprice) {
        this.packRetprice = packRetprice;
    }
    @Column(name = "herbal_count")
    public String getHerbalCount() {
        return herbalCount;
    }
    public void setHerbalCount(String herbalCount) {
        this.herbalCount = herbalCount;
    }
    @Column(name = "post_count")
    public String getPostCount() {
        return postCount;
    }
    public void setPostCount(String postCount) {
        this.postCount = postCount;
    }
}

+ 5 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -292,6 +292,11 @@ public class BaseHospitalRequestMapping {
        public static final String getInspectionDictionary ="/getInspectionDictionary";
        public static final String findPrescriptionLogByPreId = "/findPrescriptionLogByPreId";
        public static final String findByPartsCode = "/findByPartsCode";
        public static final String findDictByName = "/findDictByName";
    }

+ 130 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyHisPrescriptionVO.java

@ -107,6 +107,26 @@ public class WlyyHisPrescriptionVO extends UuidIdentityVOWithOperator {
    private String diagFive;
    private String code;//检查检验项目编码',
    private String name;//检查检验(检查方法)',
    private String information;//病史与体征',
    private String checkEquip;//类别',
    private String checkPart;//部位',
    private String adresult;//辅助检查治疗',
    private String goal;//检查目的',
    //病理相关
    private String opview;//手术所见-病理申请单必填',
    private String specimenName;//标本名称-病理申请单必填',
    private String specimenNum;//标本数量-病理申请单必填',
    private String ywjcResult;//以往检查结果-病理申请单选填',
    private String ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
    private String blzd;//病理诊断-病理申请单选填',
    private String fixationfluid;//固定液
    public String getCardNo() {
        return cardNo;
@ -276,5 +296,115 @@ public class WlyyHisPrescriptionVO extends UuidIdentityVOWithOperator {
        this.frequency = frequency;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getInformation() {
        return information;
    }
    public void setInformation(String information) {
        this.information = information;
    }
    public String getCheckEquip() {
        return checkEquip;
    }
    public void setCheckEquip(String checkEquip) {
        this.checkEquip = checkEquip;
    }
    public String getCheckPart() {
        return checkPart;
    }
    public void setCheckPart(String checkPart) {
        this.checkPart = checkPart;
    }
    public String getAdresult() {
        return adresult;
    }
    public void setAdresult(String adresult) {
        this.adresult = adresult;
    }
    public String getGoal() {
        return goal;
    }
    public void setGoal(String goal) {
        this.goal = goal;
    }
    public String getOpview() {
        return opview;
    }
    public void setOpview(String opview) {
        this.opview = opview;
    }
    public String getSpecimenName() {
        return specimenName;
    }
    public void setSpecimenName(String specimenName) {
        this.specimenName = specimenName;
    }
    public String getSpecimenNum() {
        return specimenNum;
    }
    public void setSpecimenNum(String specimenNum) {
        this.specimenNum = specimenNum;
    }
    public String getYwjcResult() {
        return ywjcResult;
    }
    public void setYwjcResult(String ywjcResult) {
        this.ywjcResult = ywjcResult;
    }
    public String getYwjcDate() {
        return ywjcDate;
    }
    public void setYwjcDate(String ywjcDate) {
        this.ywjcDate = ywjcDate;
    }
    public String getBlzd() {
        return blzd;
    }
    public void setBlzd(String blzd) {
        this.blzd = blzd;
    }
    public String getFixationfluid() {
        return fixationfluid;
    }
    public void setFixationfluid(String fixationfluid) {
        this.fixationfluid = fixationfluid;
    }
}

+ 77 - 50
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyInspectionVO.java

@ -15,6 +15,12 @@ public class WlyyInspectionVO extends UuidIdentityVO {
    private String outpatientId;//门诊id',
    private String prescriptionId;//处方id',
    private String dept;//执行科室
    private String deptName;//执行科室名称
    private Integer quantity;//数量
    private String frequency;//组号
    private String code;//项目编码',
    private String name;//(检查方法)',
    private String information;//病史与体征',
@ -30,17 +36,22 @@ public class WlyyInspectionVO extends UuidIdentityVO {
    private String ywjcResult;//以往检查结果-病理申请单选填',
    private String ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
    private String blzd;//病理诊断-病理申请单选填',
    private String fixationfluid;//固定液
    private String chargeUnit;//项目单位',
    private String chargeAmount;//项目单价',
    private String pyCode;//拼音码',
    private String dCode;//自定义码',
    private String execUnit;//执行科室',
    private String winNo;//院区',
//    private String chargeUnit;//项目单位',
//    private String chargeAmount;//项目单价',
//    private String pyCode;//拼音码',
//    private String dCode;//自定义码',
//    private String execUnit;//执行科室',
//    private String winNo;//院区',
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date createTime;//,
    private String checkbox;//是否拆分 1是,0否
    private String mzpg;//麻醉评估 0否,1有
    private String sfzg;//是否做过 0 否 和 1是
    public String getOutpatientId() {
        return outpatientId;
    }
@ -65,38 +76,6 @@ public class WlyyInspectionVO extends UuidIdentityVO {
        this.name = name;
    }
    public String getChargeUnit() {
        return chargeUnit;
    }
    public void setChargeUnit(String chargeUnit) {
        this.chargeUnit = chargeUnit;
    }
    public String getChargeAmount() {
        return chargeAmount;
    }
    public void setChargeAmount(String chargeAmount) {
        this.chargeAmount = chargeAmount;
    }
    public String getPyCode() {
        return pyCode;
    }
    public void setPyCode(String pyCode) {
        this.pyCode = pyCode;
    }
    public String getdCode() {
        return dCode;
    }
    public void setdCode(String dCode) {
        this.dCode = dCode;
    }
    public String getCode() {
        return code;
    }
@ -105,20 +84,12 @@ public class WlyyInspectionVO extends UuidIdentityVO {
        this.code = code;
    }
    public String getExecUnit() {
        return execUnit;
    public String getFixationfluid() {
        return fixationfluid;
    }
    public void setExecUnit(String execUnit) {
        this.execUnit = execUnit;
    }
    public String getWinNo() {
        return winNo;
    }
    public void setWinNo(String winNo) {
        this.winNo = winNo;
    public void setFixationfluid(String fixationfluid) {
        this.fixationfluid = fixationfluid;
    }
    public Date getCreateTime() {
@ -216,4 +187,60 @@ public class WlyyInspectionVO extends UuidIdentityVO {
    public void setBlzd(String blzd) {
        this.blzd = blzd;
    }
    public Integer getQuantity() {
        return quantity;
    }
    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getFrequency() {
        return frequency;
    }
    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }
    public String getCheckbox() {
        return checkbox;
    }
    public void setCheckbox(String checkbox) {
        this.checkbox = checkbox;
    }
    public String getMzpg() {
        return mzpg;
    }
    public void setMzpg(String mzpg) {
        this.mzpg = mzpg;
    }
    public String getSfzg() {
        return sfzg;
    }
    public void setSfzg(String sfzg) {
        this.sfzg = sfzg;
    }
}

+ 22 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionInfoVO.java

@ -131,6 +131,12 @@ public class WlyyPrescriptionInfoVO extends UuidIdentityVOWithOperator {
     */
    @ApiModelProperty(value = "包装价格", example = "模块1")
    private Double packRetprice;
    @ApiModelProperty(value = "草药数量", example = "模块1")
    private String herbalCount;
    @ApiModelProperty(value = "贴数", example = "模块1")
    private String postCount;
    /**
     * 1可用 0删除
     */
@ -294,4 +300,20 @@ public class WlyyPrescriptionInfoVO extends UuidIdentityVOWithOperator {
    public void setPackRetprice(Double packRetprice) {
        this.packRetprice = packRetprice;
    }
    public String getHerbalCount() {
        return herbalCount;
    }
    public void setHerbalCount(String herbalCount) {
        this.herbalCount = herbalCount;
    }
    public String getPostCount() {
        return postCount;
    }
    public void setPostCount(String postCount) {
        this.postCount = postCount;
    }
}

+ 22 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionVO.java

@ -1,9 +1,12 @@
package com.yihu.jw.restmodel.hospital.prescription;
import com.yihu.jw.entity.hospital.prescription.WlyyInspectionDO;
import com.yihu.jw.restmodel.UuidIdentityVOWithOperator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.List;
@ -314,6 +317,9 @@ public class WlyyPrescriptionVO extends UuidIdentityVOWithOperator {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date dispDate;
    @ApiModelProperty(value = "检查检验", example = "模块1")
    private List<WlyyInspectionVO> inspectionVOs;
    public String getOutpatientId() {
        return outpatientId;
    }
@ -679,4 +685,20 @@ public class WlyyPrescriptionVO extends UuidIdentityVOWithOperator {
    public void setDispDate(Date dispDate) {
        this.dispDate = dispDate;
    }
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    public List<WlyyInspectionVO> getInspectionVOs() {
        return inspectionVOs;
    }
    public void setInspectionVOs(List<WlyyInspectionVO> inspectionVOs) {
        this.inspectionVOs = inspectionVOs;
    }
}

+ 24 - 3
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.hospital.endpoint.prescription;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.hospital.prescription.service.InspectionService;
import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.restmodel.base.dict.DictHospitalDeptVO;
@ -47,6 +48,9 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PrescriptionLogService prescriptionLogService;
    @Autowired
    private InspectionService inspectionService;
    @Value("${demo.flag}")
    private boolean demoFlag;
@ -276,13 +280,15 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                                            @RequestParam(value = "outPatientId", required = true)String outPatientId,
                                            @ApiParam(name = "advice", value = "医嘱")
                                            @RequestParam(value = "advice", required = false)String advice,
                                            @ApiParam(name = "type", value = "1带药品,2不带药品")
                                            @ApiParam(name = "type", value = "1需要提交his,2不提交只下诊断")
                                            @RequestParam(value = "type", required = true)String type,
                                            @ApiParam(name = "infoJsons", value = "药品json")
                                            @RequestParam(value = "infoJsons", required = false)String infoJsons,
                                            @ApiParam(name = "diagnosisJson", value = "诊断json")
                                            @RequestParam(value = "diagnosisJson", required = true)String diagnosisJson)throws Exception {
        return success(prescriptionService.makeDiagnosis(outPatientId,advice,type,infoJsons,diagnosisJson));
                                            @RequestParam(value = "diagnosisJson", required = true)String diagnosisJson,
                                            @ApiParam(name = "inspectionJson", value = "检查检验")
                                            @RequestParam(value = "inspectionJson", required = false)String inspectionJson)throws Exception {
        return success(prescriptionService.makeDiagnosis(outPatientId,advice,type,infoJsons,diagnosisJson,inspectionJson));
    }
@ -646,4 +652,19 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
        return success(prescriptionLogService.findPrescriptionLogByPreId(prescriptionCode));
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findByPartsCode)
    @ApiOperation(value = "查询部位字典", notes = "查询部位字典")
    public ListEnvelop findByPartsCode(@ApiParam(name = "parentCode", value = "父节点ID,第一层为0")
                                                  @RequestParam(value = "parentCode", required = true)String parentCode)throws Exception{
        return success(inspectionService.findByPartsCode(parentCode));
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findDictByName)
    @ApiOperation(value = "查询检查检验字典", notes = "查询检查检验字典")
    public ListEnvelop findDictByName(@ApiParam(name = "hospital", value = "医院")
                                      @RequestParam(value = "hospital", required = true)String hospital,
                                      @ApiParam(name = "name", value = "字典名称,类型:InspectionType;固定液体 :InspectionFixativeType")
                                      @RequestParam(value = "name", required = true)String name)throws Exception{
        return success(inspectionService.findDictByName(hospital,name));
    }
}