/****************************************************************************** * 文件名称: HisBusiness.cs * 文件说明: HIS业务的封装 * 当前版本: V1.0 * 创建日期: 2022-04-14 * * 2020-04-14: 增加 SingleDownload 方法 * 2020-04-14: 增加 AutoDownload 方法 ******************************************************************************/ using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using PTMedicalInsurance.Helper; using System.Windows.Forms; namespace PTMedicalInsurance.Business { class HisBusiness { /// /// 目录查询信息下载 /// /// /// /// public int InsuMedQuery(JObject joData, string funNo, out string Outpar) { string errorMessage = ""; Outpar = ""; int iResult = -1; try { CenterBusiness centerBusiness = new CenterBusiness(); JObject joRtn = centerBusiness.InvokeMedicalInsuranceInquiry(funNo, joData); if (JsonHelper.parseIrisRtnValue(joRtn, out errorMessage) == 0) { iResult = 0; Outpar = joRtn.ToString(); return 0; } else { GlobalVariables.writeLog(joRtn.ToString()); errorMessage = "调用交易"+ funNo + "出现错误,请查看日志!"; //joImportRtn["errorMessage"].ToString(); return iResult; } } catch (Exception ex) { errorMessage = "InvokeMedicalInsuranceInquiry提示:" + ex.Message; return iResult; } } public int MedicalInstitutionSave(string sInput,string Code,out string errMsg) { string OutMsg = ""; int iResult = -1; errMsg = ""; try { DataImoport bus = new DataImoport(); JObject joImportRtn = bus.importDataToIrisByJson(sInput, Code); if (JsonHelper.parseBusinessJson(joImportRtn, out OutMsg) == 0) { iResult = 0; } else { GlobalVariables.writeLog(joImportRtn.ToString()); OutMsg = "导入医疗机构数据出现错误,请查看日志!";//joImportRtn["errorMessage"].ToString(); errMsg = OutMsg; return iResult; } return iResult; } catch (Exception ex) { errMsg = ex.Message; return -1; } } /// /// 医保目录单个版本号的下载 /// /// /// /// /// /// public int SingleDownload(string ver, int directoryType,Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage) { string txtPath = string.Empty; errorMessage = ""; int iResult = -1; string funNo = ""; switch (directoryType) { case 0://西药中成药目录下载 { funNo = "1301"; break; } case 1://医疗服务项目目录下载 { funNo = "1305"; break; } case 2://医用耗材目录下载 { funNo = "1306"; break; } case 3://疾病与诊断目录下载 { funNo = "1307"; break; } case 4://手术操作目录下载 { funNo = "1308"; break; } case 5://门诊慢特病种目录下载 { funNo = "1309"; break; } case 6://按病种付费病种目录下载 { funNo = "1310"; break; ; } case 7://日间手术治疗病种目录下载 { funNo = "1311"; break; } case 8://字典表 1901 { break; } case 9://中药饮片目录下载 { funNo = "1302"; break; } case 10://医疗机构制剂 { funNo = "1303"; break; } case 11://肿瘤形态学 { funNo = "1313"; break; } case 12://中医疾病 { funNo = "1314"; break; } case 13://中医证候 { funNo = "1315"; break; } } try { CenterBusiness centerBusiness = new CenterBusiness(); JObject joRtn = centerBusiness.DownDirecotry(funNo, ver); if (JsonHelper.parseBusinessJson(joRtn, out errorMessage) == 0) { txtPath = joRtn["filePath"].ToString(); DataImoport bus = new DataImoport(); JObject joImportRtn = bus.importDataToIrisByTxt(txtPath, 50, directoryType + 1, uiProcessBar); if (JsonHelper.parseBusinessJson(joImportRtn, out errorMessage) == 0) { iResult = 0; } else { GlobalVariables.writeLog(joImportRtn.ToString()); errorMessage = "导入数据出现错误,请查看日志!";//joImportRtn["errorMessage"].ToString(); } } return iResult; } catch (Exception ex) { errorMessage = "SingleDownload提示:" + ex.Message; return -1; } } /// /// 医保目录单个版本号的下载 /// /// /// /// /// /// public int downloadDicionary(JObject joData, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage) { errorMessage = ""; int iResult = -1; try { CenterBusiness centerBusiness = new CenterBusiness(); JObject joRtn = centerBusiness.DownDictionay(joData); if (JsonHelper.parseCenterJson(joRtn, out errorMessage) == 0) { DataImoport bus = new DataImoport(); JArray jaList = JArray.Parse(JsonHelper.getJsonValue(joRtn,"output.list")); //MessageBox.Show(jaList.ToString()); JObject joImportRtn = bus.importDictinary(uiProcessBar,jaList); if (JsonHelper.parseBusinessJson(joImportRtn, out errorMessage) == 0) { iResult = 0; } else { GlobalVariables.writeLog(joImportRtn.ToString()); errorMessage = "导入数据出现错误,请查看日志!"; } } return iResult; } catch (Exception ex) { errorMessage = "downloadDicionary提示:" + ex.Message; return -1; } } /// /// 自动下载医保目录,直到最新版本(返回报错) /// /// /// /// /// public int AutoDownload(int directoryType, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage) { int iResult = 0; errorMessage = ""; try { while (iResult == 0) { IrisInterfaceService irisBus = new IrisInterfaceService(); JObject joMaxVerNO = irisBus.getDirectoryMaxVersionNO(directoryType); string ver = joMaxVerNO["result"]["MaxVersionNO"].ToString(); iResult = JsonHelper.parseBusinessJson(joMaxVerNO, out errorMessage); iResult = SingleDownload(ver, directoryType,uiProcessBar, out errorMessage); } return iResult; } catch (Exception ex) { errorMessage = ex.Message; return -1; } } } }