|  | @ -136,102 +136,102 @@ public class PrescriptionService extends BaseService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //根据医保卡号和挂号号从基卫获取待结算明细
 | 
	
		
			
				|  |  |         String result = jwPrescriptionService.getDispUnSettleFeeInfoList(cardNo,visitNo);
 | 
	
		
			
				|  |  |         //根据挂号号获取处方明细
 | 
	
		
			
				|  |  |         Prescription prescription = prescriptionDao.findByVisitNo(visitNo);
 | 
	
		
			
				|  |  |         //根据机构名称,医生编码获取基卫医生详细信息
 | 
	
		
			
				|  |  |         DoctorMapping doctorMapping = doctorMappingDao.findByJwDoctorHospitalAndDoctorCode(prescription.getHospitalName(),prescription.getDoctor());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |         //处方主信息{"yyksbm":"医生科室编号","bcsfcs":"本次收费次数","yszjhm":"医生证件号码","ysxm00":"医生姓名","mzlb00":"门诊类别","sfydgh":"是否药店挂号",
 | 
	
		
			
				|  |  |         // "bcghcs":"本次挂号次数","ghksmc":"挂号科室名称","cfxms0":"明细上传数量","mzlsh0":"医保挂号流水号 如果为空,将自动医保挂号并收费","ghfy00":"挂号费用",
 | 
	
		
			
				|  |  |         // "yszjdj":"医师诊金级别","bqbm00":"病情编码","sfygwd":"是否医改网点"}
 | 
	
		
			
				|  |  |         JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  |         jsonObject.put("yyksbm",prescription.getJwDeptCode());//医生科室编号
 | 
	
		
			
				|  |  |         jsonObject.put("bcsfcs",1);//本次收费次数
 | 
	
		
			
				|  |  |         jsonObject.put("yszjhm",doctorMapping.getJwDocotrIdcard());//医生证件号码
 | 
	
		
			
				|  |  | //        jsonObject.put("yszjhm","350681876766545567");//医生证件号码
 | 
	
		
			
				|  |  |         jsonObject.put("ysxm00",doctorMapping.getJwDoctorName());//医生姓名
 | 
	
		
			
				|  |  | //        jsonObject.put("ysxm00","林金城");//医生姓名
 | 
	
		
			
				|  |  |         jsonObject.put("mzlb00",101);//门诊类别---普通门诊默认为101
 | 
	
		
			
				|  |  |         jsonObject.put("sfydgh","N");//是否药店挂号,默认为N,不是药店挂号
 | 
	
		
			
				|  |  |         jsonObject.put("bcghcs",1);//本次挂号次数
 | 
	
		
			
				|  |  |         jsonObject.put("ghksmc",prescription.getDeptName());//挂号科室名称
 | 
	
		
			
				|  |  |         jsonObject.put("mzlsh0","");//医保挂号流水号
 | 
	
		
			
				|  |  |         jsonObject.put("ghfy00",0);//挂号费用
 | 
	
		
			
				|  |  |         jsonObject.put("yszjdj","医师诊金级别");//医师诊金级别--------------------------待处理
 | 
	
		
			
				|  |  |         jsonObject.put("bqbm00","");//病情编码---可为空,不传递
 | 
	
		
			
				|  |  |         jsonObject.put("sfygwd","N");//是否医改网点--默认为否
 | 
	
		
			
				|  |  |         json.put("recipeContent",jsonObject);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<PrescriptionDiagnosis> pds = prescriptionDiagnosisDao.findByPrescriptionCode(prescription.getCode());
 | 
	
		
			
				|  |  |         //诊断明细        {"zdms00":"诊断或症状描述","zdbh00":"诊断或症状编码"}
 | 
	
		
			
				|  |  |         if (!pds.isEmpty()){
 | 
	
		
			
				|  |  |             for (PrescriptionDiagnosis pd : pds) {
 | 
	
		
			
				|  |  |                 JSONArray zdInfo = new JSONArray();
 | 
	
		
			
				|  |  |                 JSONObject j1 = new JSONObject();
 | 
	
		
			
				|  |  |                 j1.put("zdms00",pd.getName());//诊断或症状描述
 | 
	
		
			
				|  |  |                 j1.put("zdbh00",pd.getCode());//诊断或症状编码
 | 
	
		
			
				|  |  |                 zdInfo.add(j1);
 | 
	
		
			
				|  |  |                 json.put("zdlist",zdInfo);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //        JSONArray zdInfo = new JSONArray();
 | 
	
		
			
				|  |  | //        JSONObject j1 = new JSONObject();
 | 
	
		
			
				|  |  | //        j1.put("zdms00","高血压");//诊断或症状描述
 | 
	
		
			
				|  |  | //        j1.put("zdbh00","1212121");//诊断或症状编码
 | 
	
		
			
				|  |  | //        zdInfo.add(j1);
 | 
	
		
			
				|  |  | //        json.put("zdlist",zdInfo);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(result)){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             JSONObject jwobj =  JSON.parseObject(result);
 | 
	
		
			
				|  |  |             JSONObject zyCfinfo = jwobj.getJSONObject("data");
 | 
	
		
			
				|  |  |             Integer code = zyCfinfo.getInteger("CODE");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if( 1 == code){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 JSONArray zyCfinfoListReturnData = zyCfinfo.getJSONArray("returnData");
 | 
	
		
			
				|  |  |                 JSONArray zyCfinfoList = zyCfinfoListReturnData.getJSONArray(0);
 | 
	
		
			
				|  |  |                 jsonObject.put("cfxms0",zyCfinfoList.size());//明细上传数量
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //收费明细       {"xmgg00":"项目规格","cfhao0":"处方号","sfybxm":"是否医保项目","dcyydw":"单次用药单位","xmje00":"项目金额","xmbh00":"项目编号",
 | 
	
		
			
				|  |  |                 // "ysxm00":"医生姓名","yppl00":"药品频率","gytj00":"给药途径","ypts00":"药品天数","xmdj00":"项目单价","qyzl00":"取药总量","ylts00":"药量天数",
 | 
	
		
			
				|  |  |                 // "sptxbm":"商品条形编码","xmmc00":"项目名称","fpxmbh":"发票项目编号","xmsl00":"项目数量","ypyl00":"药品用量","qyzldw":"取药单位","xmdw00":"项目单位",
 | 
	
		
			
				|  |  |                 // "jx0000":"剂型"}
 | 
	
		
			
				|  |  |                 JSONArray cfInfo = new JSONArray();
 | 
	
		
			
				|  |  |                 for (int i = 0; i < zyCfinfoList.size(); i++) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     JSONObject zyCfinfoObj = zyCfinfoList.getJSONObject(i);
 | 
	
		
			
				|  |  |                     JSONObject j2 = new JSONObject();
 | 
	
		
			
				|  |  |                     j2.put("xmbh00",zyCfinfoObj.getString("INSUR_ITEM_CODE"));//项目编号
 | 
	
		
			
				|  |  |                     j2.put("xmmc00",zyCfinfoObj.getString("INSUR_ITEM_NAME"));//项目名称
 | 
	
		
			
				|  |  |                     j2.put("fpxmbh","");//发票项目编号
 | 
	
		
			
				|  |  |                     j2.put("sfybxm",zyCfinfoObj.getString("INSUR_FLAG"));//是否医保项目
 | 
	
		
			
				|  |  |                     j2.put("xmdj00",zyCfinfoObj.getString("INSUR_ITEM_PRICE"));//项目单价
 | 
	
		
			
				|  |  |                     j2.put("xmdw00",zyCfinfoObj.getString("INSUR_ITEM_UNIT_NAME"));//项目单位
 | 
	
		
			
				|  |  |                     j2.put("xmgg00",zyCfinfoObj.getString("INSUR_ITEM_SPEC"));//项目规格(医保)
 | 
	
		
			
				|  |  |                     j2.put("xmsl00",zyCfinfoObj.getString("ITEM_QUANTITY"));//项目数量
 | 
	
		
			
				|  |  |                     j2.put("xmje00",zyCfinfoObj.getString("COST"));//项目金额
 | 
	
		
			
				|  |  |                     j2.put("ysxm00",zyCfinfoObj.getString("APPLY_OPERATOR_NAME"));//医生姓名
 | 
	
		
			
				|  |  |                     j2.put("sptxbm","");//商品条形编码
 | 
	
		
			
				|  |  |                     j2.put("yppl00",zyCfinfoObj.getString("FREQUENCY"));//药品频率
 | 
	
		
			
				|  |  |                     j2.put("ypyl00",zyCfinfoObj.getString("PHYSIC_DOSE"));//药品用量
 | 
	
		
			
				|  |  |                     j2.put("cfhao0",zyCfinfoObj.getString("VISIT_NO"));//处方号
 | 
	
		
			
				|  |  |                     j2.put("jx0000",zyCfinfoObj.getString("PHYSIC_FORM"));//剂型
 | 
	
		
			
				|  |  |                     j2.put("dcyydw",zyCfinfoObj.getString("PHYSIC_DOSE_UNIT"));//单次用药单位
 | 
	
		
			
				|  |  |                     j2.put("qyzl00",zyCfinfoObj.getString("PHYSIC_AMOUNT"));//取药总量
 | 
	
		
			
				|  |  |                     j2.put("qyzldw",zyCfinfoObj.getString("PHYSIC_AMOUNT_UNIT"));//取药单位
 | 
	
		
			
				|  |  |                     j2.put("gytj00",zyCfinfoObj.getString("PHYSIC_USAGE"));//给药途径
 | 
	
		
			
				|  |  |                     j2.put("ypts00",zyCfinfoObj.getString("DAY_COUNT"));//药品天数
 | 
	
		
			
				|  |  |                     cfInfo.add(j2);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //支付明细
 | 
	
		
			
				|  |  |                     JSONArray zySettleDetailList = zyCfinfoList.getJSONObject(i).getJSONArray("SETTLE_DETAIL");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //根据挂号号获取处方明细
 | 
	
		
			
				|  |  |                     Prescription prescription = prescriptionDao.findByVisitNo(zyCfinfoObj.getString("VISIT_NO"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //处方主信息     {"yyksbm":"医生科室编号","bcsfcs":"本次收费次数","yszjhm":"医生证件号码","ysxm00":"医生姓名","mzlb00":"门诊类别","sfydgh":"是否药店挂号",
 | 
	
		
			
				|  |  |                     // "bcghcs":"本次挂号次数","ghksmc":"挂号科室名称","cfxms0":"明细上传数量","mzlsh0":"医保挂号流水号 如果为空,将自动医保挂号并收费","ghfy00":"挂号费用",
 | 
	
		
			
				|  |  |                     // "yszjdj":"医师诊金级别","bqbm00":"病情编码","sfygwd":"是否医改网点"}
 | 
	
		
			
				|  |  |                     JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  |                     jsonObject.put("yyksbm",zyCfinfoObj.getString("VISIT_DEPT"));//医生科室编号
 | 
	
		
			
				|  |  |                     jsonObject.put("bcsfcs",1);//本次收费次数
 | 
	
		
			
				|  |  |                     jsonObject.put("yszjhm",zyCfinfoObj.getString("VISIT_IDENTITY_CARD_NO"));//医生证件号码
 | 
	
		
			
				|  |  |                     jsonObject.put("ysxm00",prescription.getDoctorName());//医生姓名
 | 
	
		
			
				|  |  |                     jsonObject.put("mzlb00",101);//门诊类别---普通门诊默认为101
 | 
	
		
			
				|  |  |                     jsonObject.put("sfydgh","N");//是否药店挂号,默认为N,不是药店挂号
 | 
	
		
			
				|  |  |                     jsonObject.put("bcghcs",1);//本次挂号次数
 | 
	
		
			
				|  |  |                     jsonObject.put("ghksmc",prescription.getDeptName());//挂号科室名称
 | 
	
		
			
				|  |  |                     jsonObject.put("mzlsh0","");//医保挂号流水号
 | 
	
		
			
				|  |  |                     jsonObject.put("ghfy00",0);//挂号费用
 | 
	
		
			
				|  |  |                     jsonObject.put("bqbm00","");//病情编码---可为空,不传递
 | 
	
		
			
				|  |  |                     jsonObject.put("sfygwd","N");//是否医改网点--默认为否
 | 
	
		
			
				|  |  |                     jsonObject.put("yszjdj",zyCfinfoObj.getString("INSUR_DOCTOR_RANK"));//医师诊金级别
 | 
	
		
			
				|  |  |                     jsonObject.put("cfxms0",zySettleDetailList.size());//明细上传数量
 | 
	
		
			
				|  |  |                     json.put("recipeContent",jsonObject);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     List<PrescriptionDiagnosis> pds = prescriptionDiagnosisDao.findByPrescriptionCode(prescription.getCode());
 | 
	
		
			
				|  |  |                     //诊断明细        {"zdms00":"诊断或症状描述","zdbh00":"诊断或症状编码"}
 | 
	
		
			
				|  |  |                     if (!pds.isEmpty()){
 | 
	
		
			
				|  |  |                         for (PrescriptionDiagnosis pd : pds) {
 | 
	
		
			
				|  |  |                             JSONArray zdInfo = new JSONArray();
 | 
	
		
			
				|  |  |                             JSONObject j1 = new JSONObject();
 | 
	
		
			
				|  |  |                             j1.put("zdms00",pd.getName());//诊断或症状描述
 | 
	
		
			
				|  |  |                             j1.put("zdbh00",pd.getCode());//诊断或症状编码
 | 
	
		
			
				|  |  |                             zdInfo.add(j1);
 | 
	
		
			
				|  |  |                             json.put("zdlist",zdInfo);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //收费明细       {"xmgg00":"项目规格","cfhao0":"处方号","sfybxm":"是否医保项目","dcyydw":"单次用药单位","xmje00":"项目金额","xmbh00":"项目编号",
 | 
	
		
			
				|  |  |                     // "ysxm00":"医生姓名","yppl00":"药品频率","gytj00":"给药途径","ypts00":"药品天数","xmdj00":"项目单价","qyzl00":"取药总量","ylts00":"药量天数",
 | 
	
		
			
				|  |  |                     // "sptxbm":"商品条形编码","xmmc00":"项目名称","fpxmbh":"发票项目编号","xmsl00":"项目数量","ypyl00":"药品用量","qyzldw":"取药单位","xmdw00":"项目单位",
 | 
	
		
			
				|  |  |                     // "jx0000":"剂型"}
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     for (int j= 0; i < zySettleDetailList.size(); j++) {
 | 
	
		
			
				|  |  |                         JSONObject zySettleDetailObj = zySettleDetailList.getJSONObject(j);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         JSONObject j2 = new JSONObject();
 | 
	
		
			
				|  |  |                         j2.put("xmbh00",zySettleDetailObj.getString("INSUR_ITEM_CODE"));//项目编号
 | 
	
		
			
				|  |  |                         j2.put("xmmc00",zySettleDetailObj.getString("INSUR_ITEM_NAME"));//项目名称
 | 
	
		
			
				|  |  |                         j2.put("fpxmbh","");//发票项目编号
 | 
	
		
			
				|  |  |                         j2.put("sfybxm",zySettleDetailObj.getString("INSUR_FLAG"));//是否医保项目
 | 
	
		
			
				|  |  |                         j2.put("xmdj00",zySettleDetailObj.getString("INSUR_ITEM_PRICE"));//项目单价
 | 
	
		
			
				|  |  |                         j2.put("xmdw00",zySettleDetailObj.getString("INSUR_ITEM_UNIT_NAME"));//项目单位
 | 
	
		
			
				|  |  |                         j2.put("xmgg00",zySettleDetailObj.getString("INSUR_ITEM_SPEC"));//项目规格(医保)
 | 
	
		
			
				|  |  |                         j2.put("xmsl00",zySettleDetailObj.getString("ITEM_QUANTITY"));//项目数量
 | 
	
		
			
				|  |  |                         j2.put("xmje00",zySettleDetailObj.getString("COST"));//项目金额
 | 
	
		
			
				|  |  |                         j2.put("ysxm00",zySettleDetailObj.getString("APPLY_OPERATOR_NAME"));//医生姓名
 | 
	
		
			
				|  |  |                         j2.put("sptxbm","");//商品条形编码
 | 
	
		
			
				|  |  |                         j2.put("yppl00",zySettleDetailObj.getString("FREQUENCY"));//药品频率
 | 
	
		
			
				|  |  |                         j2.put("ypyl00",zySettleDetailObj.getString("PHYSIC_DOSE"));//药品用量
 | 
	
		
			
				|  |  |                         j2.put("cfhao0",zySettleDetailObj.getString("VISIT_NO"));//处方号
 | 
	
		
			
				|  |  |                         j2.put("jx0000",zySettleDetailObj.getString("PHYSIC_FORM"));//剂型
 | 
	
		
			
				|  |  |                         j2.put("dcyydw",zySettleDetailObj.getString("PHYSIC_DOSE_UNIT"));//单次用药单位
 | 
	
		
			
				|  |  |                         j2.put("qyzl00",zySettleDetailObj.getString("PHYSIC_AMOUNT"));//取药总量
 | 
	
		
			
				|  |  |                         j2.put("qyzldw",zySettleDetailObj.getString("PHYSIC_AMOUNT_UNIT"));//取药单位
 | 
	
		
			
				|  |  |                         j2.put("gytj00",zySettleDetailObj.getString("PHYSIC_USAGE"));//给药途径
 | 
	
		
			
				|  |  |                         j2.put("ypts00",zySettleDetailObj.getString("DAY_COUNT"));//药品天数
 | 
	
		
			
				|  |  |                         cfInfo.add(j2);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 json.put("mxlist",cfInfo);
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 String errormessage = zyCfinfo.getString("MESSAGE");
 | 
	
		
			
				|  |  |                 throw new Exception(errormessage);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | //        String aa = json.toString();
 | 
	
		
			
				|  |  |         return json;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |