|
@ -18,6 +18,10 @@ import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
|
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
|
|
|
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
|
|
|
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
|
|
|
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalBillDO;
|
|
|
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalIcdDO;
|
|
|
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalMxDO;
|
|
|
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationDO;
|
|
|
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
|
|
|
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
|
|
|
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
|
|
@ -25,6 +29,10 @@ import com.yihu.jw.entity.hospital.prescription.*;
|
|
|
import com.yihu.jw.file_upload.FileUploadService;
|
|
|
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
|
|
|
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailBillDao;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailIcdDao;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailMxDao;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailRelationDao;
|
|
|
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
|
|
|
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
|
|
|
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
|
|
@ -44,6 +52,7 @@ import com.yihu.jw.utils.WebserviceUtil;
|
|
|
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
|
|
|
import com.yihu.utils.security.MD5;
|
|
|
import net.sf.json.xml.XMLSerializer;
|
|
|
import netscape.javascript.JSObject;
|
|
|
import nu.xom.*;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@ -123,10 +132,18 @@ public class XzzxEntranceService{
|
|
|
private BaseDoctorHospitalDao baseDoctorHospitalDao;
|
|
|
@Autowired
|
|
|
private PrescriptionEmrDao prescriptionEmrDao;
|
|
|
@Autowired
|
|
|
private YlzMedicailRelationDao ylzMedicailRelationDao;
|
|
|
@Autowired
|
|
|
private YlzMedicailIcdDao ylzMedicailIcdDao;
|
|
|
@Autowired
|
|
|
private YlzMedicailMxDao ylzMedicailMxDao;
|
|
|
@Value("${fastDFS.fastdfs_file_url}")
|
|
|
private String fastdfs_file_url;
|
|
|
@Autowired
|
|
|
private FileUploadService fileUploadService;
|
|
|
@Autowired
|
|
|
private YlzMedicailBillDao ylzMedicailBillDao;
|
|
|
|
|
|
|
|
|
private static String key="bvvsf3JA0mUXMU+mVnMaOQ==";
|
|
@ -2230,22 +2247,414 @@ public class XzzxEntranceService{
|
|
|
params.put("msgBody",msgBody);
|
|
|
logger.info("getSettleInfo params:"+params.toString());
|
|
|
String xml = getXzzxWebServiceInfo("CallInterface",params,getSelectUrl());
|
|
|
logger.info("getSettleInfo json:"+xml);
|
|
|
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
JSONObject object = JSONObject.parseObject(json);
|
|
|
logger.info("getSettleInfo json:"+xml);
|
|
|
List<WlyyOutpatientDO> wlyyOutpatientDOS = outpatientDao.findByRegisterNoList(his_serial);
|
|
|
String outpatientId= null;
|
|
|
if (wlyyOutpatientDOS!=null&&wlyyOutpatientDOS.size()!=0){
|
|
|
outpatientId = wlyyOutpatientDOS.get(0).getId();
|
|
|
}else {
|
|
|
throw new Exception("门诊信息为空!");
|
|
|
}
|
|
|
JSONArray array = JSONArray.parseArray(json).getJSONArray(0);
|
|
|
for (int i=0;i<array.size();i++){
|
|
|
JSONObject object = array.getJSONObject(i);
|
|
|
YlzMedicalRelationDO ylzMedicalRelationDO = ylzMedicailRelationDao.findByLog_no(object.getString("log_no"));
|
|
|
if (ylzMedicalRelationDO==null){
|
|
|
ylzMedicalRelationDO = new YlzMedicalRelationDO();
|
|
|
ylzMedicalRelationDO.setLogNo(object.getString("log_no"));
|
|
|
ylzMedicalRelationDO.setOrgCode(object.getString("ret_code"));
|
|
|
ylzMedicalRelationDO.setRegionCode(object.getString("region_code"));
|
|
|
ylzMedicalRelationDO.setIdcard(object.getString("idcard"));
|
|
|
ylzMedicalRelationDO.setName(object.getString("name"));
|
|
|
ylzMedicalRelationDO.setCertType(object.getString("cert_type"));
|
|
|
ylzMedicalRelationDO.setMedicalMode(object.getString("medical_mode"));
|
|
|
ylzMedicalRelationDO.setMedicalType(object.getString("medical_type"));
|
|
|
ylzMedicalRelationDO.setHisSerial(object.getString("his_serial"));
|
|
|
ylzMedicalRelationDO.setHisSettleNo(object.getString("his_settle_no"));
|
|
|
ylzMedicalRelationDO.setDeptCode(object.getString("dept_code"));
|
|
|
ylzMedicalRelationDO.setDeptName(object.getString("dept_name"));
|
|
|
ylzMedicalRelationDO.setHisDeptCode(object.getString("his_dept_code"));
|
|
|
ylzMedicalRelationDO.setHisDeptName(object.getString("his_dept_name"));
|
|
|
ylzMedicalRelationDO.setEmergencySign(object.getString("emergency_sign"));
|
|
|
ylzMedicalRelationDO.setTraumaSign(object.getString("trauma_sign"));
|
|
|
ylzMedicalRelationDO.setDate(DateUtil.strToDateLong(object.getString("date")));
|
|
|
ylzMedicalRelationDO.setItemCount(object.getString("item_count"));
|
|
|
ylzMedicalRelationDO.setTotalAmount(object.getString("total_amount"));
|
|
|
ylzMedicalRelationDO.setPreCharges(object.getString("pre_charges"));
|
|
|
ylzMedicalRelationDO.setDataSource(object.getString("data_source"));
|
|
|
ylzMedicalRelationDO.setPreCount(object.getString("pre_count"));
|
|
|
ylzMedicalRelationDO.setDoctorLevel(object.getString("doctor_level"));
|
|
|
ylzMedicalRelationDO.setDel(1);
|
|
|
ylzMedicalRelationDO.setRelationCode(his_serial);
|
|
|
ylzMedicalRelationDO.setCreateTime(new Date());
|
|
|
ylzMedicalRelationDO = ylzMedicailRelationDao.save(ylzMedicalRelationDO);
|
|
|
JSONArray zdArray = object.getJSONArray("zdlist");
|
|
|
for (int j=0;j<zdArray.size();j++){
|
|
|
JSONObject zdObject = zdArray.getJSONObject(j);
|
|
|
YlzMedicalIcdDO ylzMedicalIcdDO = new YlzMedicalIcdDO();
|
|
|
ylzMedicalIcdDO.setMedicalId(ylzMedicalRelationDO.getId());
|
|
|
ylzMedicalIcdDO.setDel(1);
|
|
|
ylzMedicalIcdDO.setCreateTime(new Date());
|
|
|
ylzMedicalIcdDO.setDiseaseType(zdObject.getString("disease_type"));
|
|
|
ylzMedicalIcdDO.setDiseaseCodeIcd10(zdObject.getString("disease_code_icd10"));
|
|
|
ylzMedicalIcdDO.setDiseaseNameIcd10(zdObject.getString("disease_name_icd10"));
|
|
|
ylzMedicalIcdDO.setDiseaseOrder(zdObject.getString("disease_order"));
|
|
|
ylzMedicailIcdDao.save(ylzMedicalIcdDO);
|
|
|
}
|
|
|
JSONArray mxArray = object.getJSONArray("mxlist");
|
|
|
for (int k=0;k<mxArray.size();k++){
|
|
|
JSONObject mxObject = zdArray.getJSONObject(k);
|
|
|
YlzMedicalMxDO ylzMedicalMxDO = new YlzMedicalMxDO();
|
|
|
ylzMedicalMxDO.setMedicalId(ylzMedicalRelationDO.getId());
|
|
|
ylzMedicalMxDO.setDel(1);
|
|
|
ylzMedicalMxDO.setPrescriptionCode(mxObject.getString("prescription_code"));
|
|
|
ylzMedicalMxDO.setHisDetailSn(mxObject.getString("his_detail_sn"));
|
|
|
ylzMedicalMxDO.setItemCode(mxObject.getString("item_code"));
|
|
|
ylzMedicalMxDO.setItemName(mxObject.getString("item_name"));
|
|
|
ylzMedicalMxDO.setInvoiceType(object.getString("invoice_type"));
|
|
|
ylzMedicalMxDO.setSpecificationType(object.getString("specification_type"));
|
|
|
ylzMedicalMxDO.setDosageForm(object.getString("dosage_form"));
|
|
|
ylzMedicalMxDO.setChargeUnit(object.getString("charge_unit"));
|
|
|
ylzMedicalMxDO.setPrice(object.getString("price"));
|
|
|
ylzMedicalMxDO.setAmount(object.getString("amount"));
|
|
|
ylzMedicalMxDO.setTotalMoney(object.getString("total_money"));
|
|
|
ylzMedicalMxDO.setSingleDose(object.getString("single_dose"));
|
|
|
ylzMedicalMxDO.setUseFrequency(object.getString("use_frequency"));
|
|
|
ylzMedicalMxDO.setMedicalWay(object.getString("medical_way"));
|
|
|
ylzMedicalMxDO.setPrescriptionDate(DateUtil.strToDateLong(object.getString("prescription_date")));
|
|
|
ylzMedicalMxDO.setMedicationDays(object.getString("medication_days"));
|
|
|
ylzMedicalMxDO.setDeptCode(object.getString("dept_code"));
|
|
|
ylzMedicalMxDO.setDeptName(object.getString("dept_name"));
|
|
|
ylzMedicalMxDO.setHisDeptCode(object.getString("his_dept_code"));
|
|
|
ylzMedicalMxDO.setHisDeptName(object.getString("his_dept_name"));
|
|
|
ylzMedicalMxDO.setMedicalPerName(object.getString("medical_per_name"));
|
|
|
ylzMedicalMxDO.setMedicalPerId(object.getString("medical_per_id"));
|
|
|
ylzMedicalMxDO.setLimitType(object.getString("medical_per_id"));
|
|
|
ylzMedicalMxDO.setActgDate(DateUtil.strToDateLong(object.getString("actg_date")));
|
|
|
ylzMedicalMxDO.setHisItemName(object.getString("his_item_name"));
|
|
|
ylzMedicalMxDO.setHisItemCode(object.getString("his_item_code"));
|
|
|
ylzMedicalMxDO.setClerkDays(DateUtil.strToDateLong(object.getString("clerk_days")));
|
|
|
ylzMedicalMxDO.setPeopleType(object.getString("people_type"));
|
|
|
ylzMedicailMxDao.save(ylzMedicalMxDO);
|
|
|
}
|
|
|
}else {
|
|
|
ylzMedicalRelationDO.setOrgCode(object.getString("ret_code"));
|
|
|
ylzMedicalRelationDO.setRegionCode(object.getString("region_code"));
|
|
|
ylzMedicalRelationDO.setIdcard(object.getString("idcard"));
|
|
|
ylzMedicalRelationDO.setName(object.getString("name"));
|
|
|
ylzMedicalRelationDO.setCertType(object.getString("cert_type"));
|
|
|
ylzMedicalRelationDO.setMedicalMode(object.getString("medical_mode"));
|
|
|
ylzMedicalRelationDO.setMedicalType(object.getString("medical_type"));
|
|
|
ylzMedicalRelationDO.setHisSerial(object.getString("his_serial"));
|
|
|
ylzMedicalRelationDO.setHisSettleNo(object.getString("his_settle_no"));
|
|
|
ylzMedicalRelationDO.setDeptCode(object.getString("dept_code"));
|
|
|
ylzMedicalRelationDO.setDeptName(object.getString("dept_name"));
|
|
|
ylzMedicalRelationDO.setHisDeptCode(object.getString("his_dept_code"));
|
|
|
ylzMedicalRelationDO.setHisDeptName(object.getString("his_dept_name"));
|
|
|
ylzMedicalRelationDO.setEmergencySign(object.getString("emergency_sign"));
|
|
|
ylzMedicalRelationDO.setTraumaSign(object.getString("trauma_sign"));
|
|
|
ylzMedicalRelationDO.setDate(DateUtil.strToDateLong(object.getString("date")));
|
|
|
ylzMedicalRelationDO.setItemCount(object.getString("item_count"));
|
|
|
ylzMedicalRelationDO.setTotalAmount(object.getString("total_amount"));
|
|
|
ylzMedicalRelationDO.setPreCharges(object.getString("pre_charges"));
|
|
|
ylzMedicalRelationDO.setDataSource(object.getString("data_source"));
|
|
|
ylzMedicalRelationDO.setPreCount(object.getString("pre_count"));
|
|
|
ylzMedicalRelationDO.setDoctorLevel(object.getString("doctor_level"));
|
|
|
ylzMedicalRelationDO.setDel(1);
|
|
|
ylzMedicalRelationDO.setRelationCode(outpatientId);
|
|
|
ylzMedicalRelationDO.setCreateTime(new Date());
|
|
|
ylzMedicalRelationDO = ylzMedicailRelationDao.save(ylzMedicalRelationDO);
|
|
|
logger.info("删除YlzMedicalIcdDO");
|
|
|
ylzMedicailIcdDao.deleteByMedicalId(ylzMedicalRelationDO.getId());
|
|
|
JSONArray zdArray = object.getJSONArray("zdlist");
|
|
|
for (int j=0;j<zdArray.size();j++){
|
|
|
JSONObject zdObject = zdArray.getJSONObject(j);
|
|
|
YlzMedicalIcdDO ylzMedicalIcdDO = new YlzMedicalIcdDO();
|
|
|
ylzMedicalIcdDO.setMedicalId(ylzMedicalRelationDO.getId());
|
|
|
ylzMedicalIcdDO.setDel(1);
|
|
|
ylzMedicalIcdDO.setCreateTime(new Date());
|
|
|
ylzMedicalIcdDO.setDiseaseType(zdObject.getString("disease_type"));
|
|
|
ylzMedicalIcdDO.setDiseaseCodeIcd10(zdObject.getString("disease_code_icd10"));
|
|
|
ylzMedicalIcdDO.setDiseaseNameIcd10(zdObject.getString("disease_name_icd10"));
|
|
|
ylzMedicalIcdDO.setDiseaseOrder(zdObject.getString("disease_order"));
|
|
|
ylzMedicailIcdDao.save(ylzMedicalIcdDO);
|
|
|
}
|
|
|
logger.info("删除YlzMedicalMxDO");
|
|
|
ylzMedicailMxDao.deleteByMedicalId(ylzMedicalRelationDO.getId());
|
|
|
JSONArray mxArray = object.getJSONArray("mxlist");
|
|
|
for (int k=0;k<mxArray.size();k++){
|
|
|
JSONObject mxObject = zdArray.getJSONObject(k);
|
|
|
YlzMedicalMxDO ylzMedicalMxDO = new YlzMedicalMxDO();
|
|
|
ylzMedicalMxDO.setMedicalId(ylzMedicalRelationDO.getId());
|
|
|
ylzMedicalMxDO.setDel(1);
|
|
|
ylzMedicalMxDO.setPrescriptionCode(mxObject.getString("prescription_code"));
|
|
|
ylzMedicalMxDO.setHisDetailSn(mxObject.getString("his_detail_sn"));
|
|
|
ylzMedicalMxDO.setItemCode(mxObject.getString("item_code"));
|
|
|
ylzMedicalMxDO.setItemName(mxObject.getString("item_name"));
|
|
|
ylzMedicalMxDO.setInvoiceType(object.getString("invoice_type"));
|
|
|
ylzMedicalMxDO.setSpecificationType(object.getString("specification_type"));
|
|
|
ylzMedicalMxDO.setDosageForm(object.getString("dosage_form"));
|
|
|
ylzMedicalMxDO.setChargeUnit(object.getString("charge_unit"));
|
|
|
ylzMedicalMxDO.setPrice(object.getString("price"));
|
|
|
ylzMedicalMxDO.setAmount(object.getString("amount"));
|
|
|
ylzMedicalMxDO.setTotalMoney(object.getString("total_money"));
|
|
|
ylzMedicalMxDO.setSingleDose(object.getString("single_dose"));
|
|
|
ylzMedicalMxDO.setUseFrequency(object.getString("use_frequency"));
|
|
|
ylzMedicalMxDO.setMedicalWay(object.getString("medical_way"));
|
|
|
ylzMedicalMxDO.setPrescriptionDate(DateUtil.strToDateLong(object.getString("prescription_date")));
|
|
|
ylzMedicalMxDO.setMedicationDays(object.getString("medication_days"));
|
|
|
ylzMedicalMxDO.setDeptCode(object.getString("dept_code"));
|
|
|
ylzMedicalMxDO.setDeptName(object.getString("dept_name"));
|
|
|
ylzMedicalMxDO.setHisDeptCode(object.getString("his_dept_code"));
|
|
|
ylzMedicalMxDO.setHisDeptName(object.getString("his_dept_name"));
|
|
|
ylzMedicalMxDO.setMedicalPerName(object.getString("medical_per_name"));
|
|
|
ylzMedicalMxDO.setMedicalPerId(object.getString("medical_per_id"));
|
|
|
ylzMedicalMxDO.setLimitType(object.getString("medical_per_id"));
|
|
|
ylzMedicalMxDO.setActgDate(DateUtil.strToDateLong(object.getString("actg_date")));
|
|
|
ylzMedicalMxDO.setHisItemName(object.getString("his_item_name"));
|
|
|
ylzMedicalMxDO.setHisItemCode(object.getString("his_item_code"));
|
|
|
ylzMedicalMxDO.setClerkDays(DateUtil.strToDateLong(object.getString("clerk_days")));
|
|
|
ylzMedicalMxDO.setPeopleType(object.getString("people_type"));
|
|
|
ylzMedicailMxDao.save(ylzMedicalMxDO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return xml;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
*2.1.2结算确认
|
|
|
*
|
|
|
* @param his_serial his挂号号
|
|
|
* @param icCardNo 卡号
|
|
|
* @param org_code 医院编码
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String confirmSettle(String his_serial,String icCardNo,String org_code)throws Exception{
|
|
|
String api = "confirmSettle";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
YlzMedicalRelationDO ylzMedicalRelationDO = ylzMedicailRelationDao.findByOutpatient(his_serial);
|
|
|
|
|
|
String condition ="";
|
|
|
if (ylzMedicalRelationDO!=null){
|
|
|
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getLogNo())){
|
|
|
condition += "<log_no>"+ylzMedicalRelationDO.getLogNo()+"</log_noc>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(icCardNo)){
|
|
|
condition += "<icCardNo>"+icCardNo+"</icCardNo>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(org_code)){
|
|
|
condition += "<org_code>"+org_code+"</org_code>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty("")){
|
|
|
condition += "<acc_class>"+"</acc_class>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getInsuranceSerial())){
|
|
|
condition += "<insurance_serial>"+ylzMedicalRelationDO.getInsuranceSerial()+"</insurance_serial>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getBillSerial())){
|
|
|
condition += "<bill_serial>"+ylzMedicalRelationDO.getBillSerial()+"</bill_serial>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getTotalAmount())){
|
|
|
condition += "<total_amount>"+ylzMedicalRelationDO.getTotalAmount()+"</total_amount>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getPersonCash())){
|
|
|
condition += "<person_cash>"+ylzMedicalRelationDO.getPersonCash()+"</person_cash>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getPersonAccount())){
|
|
|
condition += "<person_account>"+ylzMedicalRelationDO.getPersonAccount()+"</person_account>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getFundPrice())){
|
|
|
condition += "<fund_amount>"+ylzMedicalRelationDO.getFundPrice()+"</fund_amount>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getJkzhPay())){
|
|
|
condition += "<jkzh_pay>"+ylzMedicalRelationDO.getJkzhPay()+"</jkzh_pay>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getOwnPay())){
|
|
|
condition += "<own_pay>"+ylzMedicalRelationDO.getOwnPay()+"</own_pay>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getAccountBalance())){
|
|
|
condition += "<account_balance>"+ylzMedicalRelationDO.getAccountBalance()+"</account_balance>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalRelationDO.getHospitalizationQty())){
|
|
|
condition += "<hospitalization_qty>"+ylzMedicalRelationDO.getHospitalizationQty()+"</hospitalization_qty>";
|
|
|
}
|
|
|
List<YlzMedicalBillDO> ylzMedicalBillDOS = ylzMedicailBillDao.findByMedicalId(ylzMedicalRelationDO.getId());
|
|
|
condition += "<fplist>";
|
|
|
for (YlzMedicalBillDO ylzMedicalBillDO :ylzMedicalBillDOS){
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getInvoiceType())){
|
|
|
condition += "<invoice_type>"+ylzMedicalBillDO.getInvoiceType()+"</invoice_type>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getInvoiceTypeName())){
|
|
|
condition += "<invoice_type_name>"+ylzMedicalBillDO.getInvoiceType()+"</invoice_type_name>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getProjectPay())){
|
|
|
condition += "<project_pay>"+ylzMedicalBillDO.getProjectPay()+"</project_pay>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getInvoicePay())){
|
|
|
condition += "<invoice_pay>"+ylzMedicalBillDO.getInvoicePay()+"</invoice_pay>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getOwnPay())){
|
|
|
condition += "<own_pay>"+ylzMedicalBillDO.getOwnPay()+"</own_pay>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getSpecialPay())){
|
|
|
condition += "<special_pay>"+ylzMedicalBillDO.getSpecialPay()+"</special_pay>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(ylzMedicalBillDO.getUninsurancePay())){
|
|
|
condition += "<uninsurance_pay>"+ylzMedicalBillDO.getUninsurancePay()+"</uninsurance_pay>";
|
|
|
}
|
|
|
}
|
|
|
condition += "</fplist>";
|
|
|
|
|
|
}
|
|
|
|
|
|
String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
|
|
"<root>"+condition+"</root>";
|
|
|
|
|
|
Map<String,String> params = new HashedMap();
|
|
|
params.put("msgHeader",msgHeader);
|
|
|
params.put("msgBody",msgBody);
|
|
|
logger.info("confirmSettle params:"+params.toString());
|
|
|
String xml = getXzzxWebServiceInfo("CallInterface",params,getSelectUrl());
|
|
|
logger.info("confirmSettle json:"+xml);
|
|
|
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
return json;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.1.4电子票开票结果确认
|
|
|
*
|
|
|
* @param sick_id 病人ID
|
|
|
* @param settle_no HIS结算号
|
|
|
* @param einvoice_code 电子票据代码
|
|
|
* @param einvoice_number 电子票据号码
|
|
|
* @param einvoice_check_coder 电子票据校验码
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String eleInvoiceConfirm(String sick_id,String settle_no,String einvoice_code,String einvoice_number,String einvoice_check_coder)throws Exception{
|
|
|
String api = "eleInvoiceConfirm";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
|
|
|
String condition ="";
|
|
|
|
|
|
if (!StringUtils.isEmpty(sick_id)){
|
|
|
condition += "<sick_id>"+sick_id+"</sick_id>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(settle_no)){
|
|
|
condition += "<settle_no>"+settle_no+"</settle_no>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(einvoice_code)){
|
|
|
condition += "<einvoice_code>"+einvoice_code+"</einvoice_code>";
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(einvoice_number)){
|
|
|
condition += "<einvoice_number>"+einvoice_number+"</einvoice_number>";
|
|
|
}
|
|
|
|
|
|
String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
|
|
"<root>"+condition+"</root>";
|
|
|
|
|
|
Map<String,String> params = new HashedMap();
|
|
|
params.put("msgHeader",msgHeader);
|
|
|
params.put("msgBody",msgBody);
|
|
|
logger.info("confirmSettle params:"+params.toString());
|
|
|
String xml = getXzzxWebServiceInfo("CallInterface",params,getSelectUrl());
|
|
|
logger.info("confirmSettle json:"+xml);
|
|
|
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
return json;
|
|
|
}
|
|
|
|
|
|
//=====================微信模板消息推送接口================================
|
|
|
|
|
|
|
|
|
//=====================hospital应用调用entrance应用============start=================
|
|
|
|
|
|
/**
|
|
|
* 2.1.1获取患者结算信息
|
|
|
* @param icCardNo 社会保障卡号
|
|
|
* @param his_serial HIS挂号号
|
|
|
* @param org_code 医院编码
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getSettleInfHospital(String icCardNo,String his_serial,String org_code){
|
|
|
JSONObject jsonObject= new JSONObject();
|
|
|
String response="";
|
|
|
String url = entranceUrl+"getSettleInfo?icCardNo="+icCardNo+"&his_serial="+his_serial+"&org_code="+org_code;
|
|
|
response = httpClientUtil.get(url,"GBK");
|
|
|
logger.info("response:"+response);
|
|
|
JSONObject object = JSONObject.parseObject(response);
|
|
|
if (object.getInteger("status")==200){
|
|
|
jsonObject = JSONObject.parseObject(object.getString("obj"));
|
|
|
}
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2结算确认
|
|
|
* @param icCardNo 社会保障卡号
|
|
|
* @param his_serial HIS挂号号
|
|
|
* @param org_code 医院编码
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject confirmSettleHospital(String icCardNo,String his_serial,String org_code){
|
|
|
JSONObject jsonObject= new JSONObject();
|
|
|
String response="";
|
|
|
String url = entranceUrl+"confirmSettle?icCardNo="+icCardNo+"&his_serial="+his_serial+"&org_code="+org_code;
|
|
|
response = httpClientUtil.get(url,"GBK");
|
|
|
logger.info("response:"+response);
|
|
|
JSONObject object = JSONObject.parseObject(response);
|
|
|
if (object.getInteger("status")==200){
|
|
|
jsonObject = JSONObject.parseObject(object.getString("obj"));
|
|
|
}
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 2.1.4电子票开票结果确认
|
|
|
*
|
|
|
* @param sick_id 病人ID
|
|
|
* @param settle_no HIS结算号
|
|
|
* @param einvoice_code 电子票据代码
|
|
|
* @param einvoice_number 电子票据号码
|
|
|
* @param einvoice_check_coder 电子票据校验码
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject eleInvoiceConfirmHospital(String sick_id,String settle_no,String einvoice_code,String einvoice_number,String einvoice_check_coder){
|
|
|
JSONObject jsonObject= new JSONObject();
|
|
|
String response="";
|
|
|
String url = entranceUrl+"eleInvoiceConfirm?sick_id="+sick_id+"&settle_no="+settle_no+"&einvoice_code="+einvoice_code+"&einvoice_number="+einvoice_number+"&einvoice_check_coder="+einvoice_check_coder;
|
|
|
response = httpClientUtil.get(url,"GBK");
|
|
|
logger.info("response:"+response);
|
|
|
JSONObject object = JSONObject.parseObject(response);
|
|
|
if (object.getInteger("status")==200){
|
|
|
jsonObject = JSONObject.parseObject(object.getString("obj"));
|
|
|
}
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询患者就诊卡
|
|
|
* @param patient 居民code
|