|
@ -63,10 +63,9 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.BufferedReader;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.InputStreamReader;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.io.*;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.net.URL;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@ -1681,13 +1680,19 @@ public class DsyyEntranceService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取患者待结算信息
|
|
|
* 查询待扣费处方信息
|
|
|
*
|
|
|
* @param
|
|
|
* @param cardNo 患者卡号
|
|
|
* @param cardType 卡类型
|
|
|
* @param xtgzh0 HIS系统跟踪号(唯一)
|
|
|
* @param operatorId 操作员ID
|
|
|
* @param operatorName 操作员姓名
|
|
|
* @param termNo 终端编号
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String getSettlement(String cardNo,String registerNo) throws Exception{
|
|
|
String api = "getSettlement";
|
|
|
public String getSettlement(String cardNo,String cardType,String xtgzh0,String operatorId,String operatorName,String termNo) throws Exception{
|
|
|
String api = "query_recipe_gjyb";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
@ -1696,12 +1701,26 @@ public class DsyyEntranceService {
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(cardNo)){
|
|
|
condition += "<cardNo>"+cardNo+"</cardNo>";
|
|
|
object.put("cardNo",cardNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(cardType)){
|
|
|
object.put("cardType",cardType);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(xtgzh0)){
|
|
|
object.put("xtgzh0",xtgzh0);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(operatorId)){
|
|
|
object.put("operatorId",operatorId);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(operatorName)){
|
|
|
object.put("operatorName",operatorName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(registerNo)){
|
|
|
condition += "<registerNo>"+registerNo+"</registerNo>";
|
|
|
if (StringUtils.isNoneBlank(termNo)){
|
|
|
object.put("termNo",termNo);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
|
|
"<root>"+condition+"</root>";
|
|
|
Map<String,String> params = new HashedMap();
|
|
@ -1716,6 +1735,380 @@ public class DsyyEntranceService {
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 结算结果确认
|
|
|
*
|
|
|
* @param cardNo 患者卡号
|
|
|
* @param depositAmount 充值金额 如果是医保卡病人,对应个人支付额
|
|
|
* @param xtgzh0 HIS系统跟踪号(唯一)
|
|
|
* @param operatorId 操作员ID
|
|
|
* @param operatorName 操作员姓名
|
|
|
* @param termNo 终端编号
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String confirmPayGjyb(String cardNo,String xtgzh0,String depositAmount,String outChargeNo,
|
|
|
String operatorId,String operatorName,String termNo) throws Exception{
|
|
|
String api = "confirm_pay_gjyb";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(cardNo)){
|
|
|
object.put("cardNo",cardNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(depositAmount)){
|
|
|
object.put("depositAmount",depositAmount);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(xtgzh0)){
|
|
|
object.put("xtgzh0",xtgzh0);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(operatorId)){
|
|
|
object.put("operatorId",operatorId);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(operatorName)){
|
|
|
object.put("operatorName",operatorName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(termNo)){
|
|
|
object.put("termNo",termNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(outChargeNo)){
|
|
|
object.put("outChargeNo",outChargeNo);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
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("confirm_pay_gjyb params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
logger.info(" confirm_pay_gjyb json:"+json);
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询院内卡列表
|
|
|
*
|
|
|
* @param userName 姓名
|
|
|
* @param idNo 身份证
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String queryCardList(String userName,String idNo) throws Exception{
|
|
|
String api = "op_query_card_list";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(userName)){
|
|
|
object.put("userName",userName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(idNo)){
|
|
|
object.put("idNo",idNo);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
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("op_query_card_list params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
logger.info(" op_query_card_list json:"+json);
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 账户建档接口
|
|
|
* @param operatorId 操作者id
|
|
|
* @param operatorName 操作者姓名
|
|
|
* @param termNo 终端
|
|
|
* @param userName 姓名
|
|
|
* @param idNo 身份证
|
|
|
* @param idType 证件类型 默认01
|
|
|
* @param gend 性别 1男 2女
|
|
|
* @param phone 手机号
|
|
|
* @param brdy 出生日期 yyyy-mm-dd
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String buildAccount(String operatorId,String operatorName,String termNo,String userName,String idNo,String idType,
|
|
|
String gend,String phone,String brdy) throws Exception{
|
|
|
String api = "build_account";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(operatorId)){
|
|
|
object.put("operatorId",operatorId);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(operatorName)){
|
|
|
object.put("operatorName",operatorName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(termNo)){
|
|
|
object.put("termNo",termNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(userName)){
|
|
|
object.put("userName",userName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(idType)){
|
|
|
object.put("idType",idType);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(gend)){
|
|
|
object.put("gend",gend);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(phone)){
|
|
|
object.put("phone",phone);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(brdy)){
|
|
|
object.put("brdy",brdy);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
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("build_account params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
logger.info(" build_account json:"+json);
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 3.12住院申请单保存(门诊收入住院)
|
|
|
*
|
|
|
*
|
|
|
* @param cardNo 就诊卡号
|
|
|
* @param visitDeptCode 就诊科室代码
|
|
|
* @param visitDoctor 挂号医生,格式如:刘明/03212
|
|
|
* @param visitNo 就诊号
|
|
|
* @param inDeptCode 入院科室代码
|
|
|
* @param diagnosisCode 入院诊断代码
|
|
|
* @param diagnosisName 入院诊断名称
|
|
|
* @param admissionType 入院方式,0-门诊 1-急诊 2-转入 5-留观
|
|
|
* @param admissionCondition 入院病情,1-病危 2-专科紧急 3-一般 4-急诊 5-专科限期 6-专科普通
|
|
|
* @param admissionCause 住院目的,0-治疗 1-分娩 2-身体检查 3-计划生育
|
|
|
* @param trumFlag 是否外伤 0-否 1-是
|
|
|
* @param relTtpFlag 外伤是否涉及第三方 0-否 1-是
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String SendHospitalizedCard(String cardNo ,String visitDeptCode,String visitDoctor,String visitNo,String inDeptCode,String diagnosisCode,
|
|
|
String diagnosisName,String admissionType,String admissionCondition,String admissionCause,
|
|
|
String trumFlag,String relTtpFlag) throws Exception{
|
|
|
String api = "SendHospitalizedCard";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(cardNo)){
|
|
|
object.put("cardNo",cardNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(visitDeptCode)){
|
|
|
object.put("visitDeptCode",visitDeptCode);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(visitDoctor)){
|
|
|
object.put("visitDoctor",visitDoctor);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(visitNo)){
|
|
|
object.put("visitNo",visitNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(inDeptCode)){
|
|
|
object.put("inDeptCode",inDeptCode);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(diagnosisCode)){
|
|
|
object.put("diagnosisCode",diagnosisCode);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(diagnosisName)){
|
|
|
object.put("diagnosisName",diagnosisName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(admissionType)){
|
|
|
object.put("admissionType",admissionType);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(admissionCondition)){
|
|
|
object.put("admissionCondition",admissionCondition);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(admissionCause)){
|
|
|
object.put("admissionCause",admissionCause);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(trumFlag)){
|
|
|
object.put("trumFlag",trumFlag);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(relTtpFlag)){
|
|
|
object.put("relTtpFlag",relTtpFlag);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
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("SendHospitalizedCard params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
logger.info(" SendHospitalizedCard json:"+json);
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询住院病人日清单
|
|
|
*
|
|
|
* @param operatorId 操作人代码
|
|
|
* @param operatorName 操作人姓名
|
|
|
* @param termNo 终端编号
|
|
|
* @param orgCode 机构编码
|
|
|
* @param iptNo 住院号
|
|
|
* @param patientId 病人ID 可为空
|
|
|
* @param beginDate 开始日期 20230801不能为空
|
|
|
* @param endData 截止日期 可为空
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String queryDayDetailList(String operatorId ,String operatorName,String termNo,String orgCode,String iptNo,String patientId,
|
|
|
String beginDate,String endData) throws Exception{
|
|
|
String api = "query_day_detail_list";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator></callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(operatorId)){
|
|
|
object.put("operatorId",operatorId);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(operatorName)){
|
|
|
object.put("operatorName",operatorName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(termNo)){
|
|
|
object.put("termNo",termNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(orgCode)){
|
|
|
object.put("orgCode",orgCode);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(iptNo)){
|
|
|
object.put("iptNo",iptNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(patientId)){
|
|
|
object.put("patientId",patientId);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(beginDate)){
|
|
|
object.put("beginDate",beginDate);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(endData)){
|
|
|
object.put("endData",endData);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
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("query_day_detail_list params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
logger.info(" query_day_detail_list json:"+json);
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 互联网医院通知院内摆药
|
|
|
*
|
|
|
* @param hISTradeNo 必填,挂号流水号
|
|
|
* @param payCardNo 必填,就诊卡号
|
|
|
* @param isExpress 必填,是否快递
|
|
|
* @param expressBillNo 必填,快递单号
|
|
|
* @param expressAddress 快递地址
|
|
|
* @param expressPhone 快递电话
|
|
|
* @param remark 注意事项
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String sendDispensingToHis(String hISTradeNo,String payCardNo,String isExpress,String expressBillNo,String expressAddress,String expressPhone,String remark) throws Exception{
|
|
|
String api = "sendDispensingToHis";
|
|
|
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.isNoneBlank(hISTradeNo)){
|
|
|
condition += "<HISTradeNo>"+hISTradeNo+"</HISTradeNo>";
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(payCardNo)){
|
|
|
condition += "<payCardNo>"+payCardNo+"</payCardNo>";
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(isExpress)){
|
|
|
condition += "<isExpress>"+isExpress+"</isExpress>";
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(expressBillNo)){
|
|
|
condition += "<expressBillNo>"+expressBillNo+"</expressBillNo>";
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(expressAddress)){
|
|
|
condition += "<expressAddress>"+expressAddress+"</expressAddress>";
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(expressPhone)){
|
|
|
condition += "<expressPhone>"+expressPhone+"</expressPhone>";
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(remark)){
|
|
|
condition += "<remark>"+remark+"</remark>";
|
|
|
}
|
|
|
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("sendDispensingToHis params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(xml).toString();
|
|
|
logger.info(" sendDispensingToHis json:"+json);
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
//=============his webservice 调用结束=========================
|
|
|
|
|
|
//========================集成平台调用开始===========================
|