using Newtonsoft.Json.Linq;
using PTMedicalInsurance.Helper;
using PTMedicalInsurance.Variables;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PTMedicalInsurance.Business
{
class MedDirDownloadProcess : AbstractProcess
{
public override CallResult Process(JObject input)
{
throw new NotImplementedException();
}
///
/// 自动下载医保目录,直到最新版本(返回报错)
///
///
///
///
///
public int AutoDownload(int directoryType, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage)
{
int iResult = 0;
errorMessage = "";
try
{
while (iResult == 0)
{
JObject joMaxVerNO = mIS.getDirectoryMaxVersionNO(directoryType);
string ver = joMaxVerNO["result"]["MaxVersionNO"].ToString();
iResult = JsonHelper.parseIrisRtnValue(joMaxVerNO, out errorMessage);
iResult = SingleDownload(ver, directoryType, uiProcessBar, out errorMessage);
}
return iResult;
}
catch (Exception ex)
{
errorMessage = 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;
TradeEnum trade = TradeEnum.DictionaryDownload;
switch (directoryType)
{
case 0://药品
{
trade = TradeEnum.CMDirectory; //"1301";
break;
}
case 1://诊疗
{
trade = TradeEnum.MedicalServiceDirectory;
break;
}
case 2://材料
{
trade = TradeEnum.MaterialDirectory;
break;
}
case 3://疾病诊断
{
trade = TradeEnum.DiseaseDiagDirectory;
break;
}
case 4://手术
{
trade = TradeEnum.OperationDirectory;
break;
}
case 5://慢性病
{
trade = TradeEnum.OPSDiseaseDirectory;
break;
}
case 6://DRGs
{
trade = TradeEnum.DRGDiseaseDirectory;
break; ;
}
case 7://日间手术
{
trade = TradeEnum.DayOperationDiseaseDirectory;
break;
}
case 8://字典表
{
break;
}
case 9://中药饮片
{
trade = TradeEnum.CMPiecesDirectory;
break;
}
case 10://医药机构制剂
{
trade = TradeEnum.MedOrgSelfDrug;
break;
}
}
try
{
JObject joRtn = hBus.DownloadDirectory(trade, ver);
//MessageBox.Show("往IRIS插入数据准备:" + joRtn.ToString());
//if (JsonHelper.parseCenterRtnValue(joRtn, out errorMessage) == 0)
if (JsonHelper.parseIrisRtnValue(joRtn, out errorMessage) == 0)
{
txtPath = joRtn["filePath"].ToString();
//MessageBox.Show("获取txt数据往IRIS插入文件路径:"+ txtPath);
DataImoport bus = new DataImoport();
JObject joImportRtn = bus.importDataToIrisByTxt(txtPath, 10, directoryType + 1, uiProcessBar);
//MessageBox.Show("往IRIS插入数据:" + joImportRtn.ToString());
//if (JsonHelper.parseCenterRtnValue(joImportRtn, out errorMessage) == 0)
if (JsonHelper.parseIrisRtnValue(joImportRtn, out errorMessage) == 0)
{
iResult = 0;
}
else
{
Global.writeLog(joImportRtn.ToString());
errorMessage = "导入数据出现错误,请查看日志!";//joImportRtn["errorMessage"].ToString();
}
}
return iResult;
}
catch (Exception ex)
{
errorMessage = "SingleDownload提示:" + ex.Message;
return -1;
}
}
}
}