/******************************************************************************
* 文件名称: IrisInterfaceService.cs
* 文件说明: IRIS接口服务的封装
* 当前版本: V1.0
* 创建日期: 2022-04-14
*
* 2020-04-12: 增加 getDirectoryMaxVersionNO 方法
******************************************************************************/
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ChengDuMedInsu2;
using MedicalInsurance.Helper;
using MedicalInsurance.Common;
namespace MedicalInsurance.Business
{
class IrisInterfaceService
{
///
/// 根据HisType获取当前目录最大版本号
///
///
///
public JObject getDirectoryMaxVersionNO(int directoryType)
{
try
{
dynamic joParam = new JObject();
joParam.HospitalID = GlobalVariables.hospitalNO;
joParam.InterfaceID = GlobalVariables.InterfaceID;
joParam.HisType = directoryType + 1;
JObject joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010037", joParam);
InvokeHelper invoke = new InvokeHelper();
JObject joRtn = invoke.invokeInsuService(joInparam.ToString(),"获取当前目录最大版本号");
return joRtn;
}
catch (Exception ex)
{
return JsonHelper.getIrisExceptionJson(-1,"获取版本号异常:" , ex.Message);
}
}
///
/// 通过分页的方式查询医保目录
///
///
///
///
///
public JObject getDirectoryByPagination(int currentPage, int pageSize, string serviceCode, int directoryType, string directoryCode, string directoryName)
{
try
{
InvokeHelper invoker = new InvokeHelper();
dynamic joInput = new JObject();
joInput.code = serviceCode; // "09010019";
dynamic joTmp = new JObject();
JArray jaParmas = new JArray();
joTmp.HospitalID = GlobalVariables.hospitalNO;
joTmp.InterfaceID = GlobalVariables.InterfaceID;
joTmp.Code = directoryCode;
joTmp.Name = directoryName;
jaParmas.Add(joTmp);
joInput.Add("params", JArray.FromObject(jaParmas));
JArray jaPagination = new JArray();
joTmp = new JObject();
joTmp.pageSize = pageSize;
joTmp.currentPage = currentPage;
joTmp.sortColumn = "";
joTmp.sortOrder = "";
joTmp.hisType = directoryType;
jaPagination.Add(joTmp);
joInput.Add("pagination", JArray.FromObject(jaPagination));
return invoker.invokeInsuService(joInput.ToString(), "getDirectoryByPagination");
}
catch (Exception ex)
{
return JsonHelper.getIrisExceptionJson(-1, "getDirectoryByPagination", ex.Message);
}
}
///
/// 获取当前接口
///
///
public JObject getCurrentInterface()
{
JObject joRtn = new JObject();
JObject joInparam = new JObject();
try
{
InvokeHelper invoke = new InvokeHelper();
dynamic joParam = new JObject();
joParam.HospitalDr = GlobalVariables.hospitalDr;
joParam.InterfaceID = GlobalVariables.InterfaceID;
joParam.InterfaceDr = GlobalVariables.interfaceDr;
joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010003", joParam);
JObject joOutparam = invoke.invokeInsuService(joInparam.ToString(), "获取接口信息");
JArray jaParams = new JArray();
jaParams = JArray.FromObject(joOutparam["result"]["data"]);
JToken _token = jaParams[0];
if (_token is null)
{
joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息失败!", "返回值为空");
}
if (_token.Type == JTokenType.String)
{
joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息失败!返回值为字符串", _token.ToString());
}
else //if (_token.Type == JTokenType.Object)
{
joRtn = JObject.FromObject(_token);
}
return joRtn;
}
catch (Exception ex)
{
joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息异常!", ex.Message);
return joRtn;
}
}
///
/// 保存登记信息到云医保平台
///
///
///
public JObject saveRegisterInfo(JObject joRegisterInfo,JObject joHisAdmInfo)
{
JObject joTmp = new JObject();
joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
joTmp.Add("admID", JsonHelper.getJsonValue(joHisAdmInfo, "admdr"));
joTmp.Add("PatientName", JsonHelper.getJsonValue(joHisAdmInfo, "patname"));
joTmp.Add("PersonalNO", JsonHelper.getJsonValue(joRegisterInfo, "psn_no"));
joTmp.Add("InsuRegID", JsonHelper.getJsonValue(joHisAdmInfo, "insu_reg_id"));
//joTmp.Add("InsuRegID", "510100CD000096568181");
joTmp.Add("RegDate", JsonHelper.getJsonValue(joRegisterInfo, "begntime"));
joTmp.Add("InsuType", JsonHelper.getJsonValue(joRegisterInfo, "insutype"));
joTmp.Add("CertificateType", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_cert_type"));
joTmp.Add("CertificateNO", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_cert_no"));
joTmp.Add("MedicalType", JsonHelper.getJsonValue(joRegisterInfo, "med_type"));
joTmp.Add("AttendDoctorNO", JsonHelper.getJsonValue(joRegisterInfo, "atddr_no"));
joTmp.Add("ChiefPhyDocName", JsonHelper.getJsonValue(joRegisterInfo, "chfpdr_name"));
joTmp.Add("AdmitDiagDesc", JsonHelper.getJsonValue(joRegisterInfo, "adm_diag_dscr"));
joTmp.Add("AdmitDepartmentCode", JsonHelper.getJsonValue(joRegisterInfo, "adm_dept_codg"));
joTmp.Add("AdmitDepartmentName", JsonHelper.getJsonValue(joRegisterInfo, "adm_dept_name"));
joTmp.Add("AdmBed", JsonHelper.getJsonValue(joRegisterInfo, "adm_bed"));
joTmp.Add("MainDiagCode", JsonHelper.getJsonValue(joRegisterInfo, "dscg_maindiag_code"));
joTmp.Add("MainDiagName", JsonHelper.getJsonValue(joRegisterInfo, "dscg_maindiag_name"));
joTmp.Add("MainConditionDdesc", JsonHelper.getJsonValue(joRegisterInfo, "main_cond_dscr"));
joTmp.Add("DiseasecCode", JsonHelper.getJsonValue(joRegisterInfo, "dise_codg"));
joTmp.Add("DiseasecName", JsonHelper.getJsonValue(joRegisterInfo, "dise_name"));
joTmp.Add("OperationCode", JsonHelper.getJsonValue(joRegisterInfo, "oprn_oprt_code"));
joTmp.Add("OperationName", JsonHelper.getJsonValue(joRegisterInfo, "oprn_oprt_name"));
joTmp.Add("DiseasecTypeCode", JsonHelper.getJsonValue(joRegisterInfo, "dise_type_code"));
joTmp.Add("InsuranceAreaCode", GlobalVariables.hospitalAreaCode);
joTmp.Add("TreatmentAreaCode",GlobalVariables.patientAreaCode);
joTmp.Add("RegState", JsonHelper.getJsonValue(joHisAdmInfo, "regstate"));
joTmp.Add("ValidFlag", JsonHelper.getJsonValue(joHisAdmInfo, "validflag"));
joTmp.Add("Type", JsonHelper.getJsonValue(joHisAdmInfo, "type"));
joTmp.Add("updateUserID", JsonHelper.getJsonValue(joHisAdmInfo, "updateUserID"));
InvokeHelper invoker = new InvokeHelper();
string serviceCode = "09010044", serviceName = "新增登记信息";
string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
return invoker.invokeInsuService(inpar,serviceName);
}
///
/// 撤销登记(云医保平台)
///
///
///
public JObject cancleRegisterInfo(JObject joRegisterInfo)
{
JObject joTmp = new JObject();
joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
joTmp.Add("admID", JsonHelper.getJsonValue(joRegisterInfo, "admID"));
joTmp.Add("PersonalNO", JsonHelper.getJsonValue(joRegisterInfo, "PersonalNO"));
joTmp.Add("InsuRegID", JsonHelper.getJsonValue(joRegisterInfo, "InsuRegID"));
joTmp.Add("CancleRegDate", JsonHelper.getJsonValue(joRegisterInfo, "CancleRegDate"));
joTmp.Add("Type", JsonHelper.getJsonValue(joRegisterInfo, "Type"));
joTmp.Add("ValidFlag", -1);
joTmp.Add("updateUserID",GlobalVariables.operatorNO);
InvokeHelper invoker = new InvokeHelper();
string serviceCode = "09010044", serviceName = "取消登记信息";
string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
return invoker.invokeIrisService(inpar, serviceName);
}
///
/// 调用云HIS 服务
///
///
///
///
public JObject sendRegisterInfoToHis(JObject joRegisterInfo, JArray jaSession)
{
InvokeHelper invoker = new InvokeHelper();
string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joRegisterInfo,jaSession).ToString();
return invoker.invokeInsuService(inpar, serviceName);
}
}
}