123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837 |
- /******************************************************************************
- * 文件名称: DataImoport.cs
- * 文件说明: 医保目录数据导入
- * 当前版本: V1.0
- * 创建日期: 2022-04-12
- *
- * 2020-04-12: 增加GetDrugsJsonByTxt方法
- * 2020-04-12: 增加GetMedicalServiceJsonByTxt方法
- * 2020-04-12: 增加 GetMaterialJsonByTxt 方法
- * 2020-04-14: 增加 GetDiagnoseJsonByTxt 方法
- * 2020-04-14: 增加 GetOperationJsonByTxt 方法
- * 2020-04-14: 增加 applyDataToIris 方法
- * 2020-04-14: 增加 importDataToIrisByTxt 方法
- * 2020-04-14: 增加 GetOperationJsonByTxt 方法
- * 2020-04-14: 增加 GetOperationJsonByTxt 方法
- * 2020-04-14: 增加 GetOperationJsonByTxt 方法
- * 2020-04-14: 增加 GetOperationJsonByTxt 方法
- ******************************************************************************/
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using PTMedicalInsurance.Variables;
- using PTMedicalInsurance.Helper;
- using PTMedicalInsurance.Business;
- using PTMedicalInsurance.Common;
- namespace PTMedicalInsurance
- {
- class DataImoport
- {
- MIIrisServices mis = new MIIrisServices();
-
- /// <summary>
- /// 读取TXT后,Array中的空值会返回NULL,将其转换为"".应有其他方式处理,后面再优化
- /// 明天试试Convert.ToString(a)
- /// </summary>
- /// <param name="arrayValue"></param>
- /// <returns></returns>
- private string convertArrayNull(string arrayValue)
- {
- string returnValue = string.Empty;
- if (arrayValue == "null")
- {
- returnValue = "";
- }
- else
- {
- returnValue = arrayValue;
- }
- return returnValue;
- }
- /// <summary>
- /// 从TXT文件中获取药品数据,并组装成JSON
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetDrugsJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[0];
- jsonTemp.Name = arr[7];
- jsonTemp.HisType = "1";
- jsonTemp.HisTypeName = "药品";
- jsonTemp.LocateCode = "";
- jsonTemp.LocateName = "";
- jsonTemp.DosageFormCode = arr[9];
- jsonTemp.DosageFormName = arr[10];
- jsonTemp.CategoryCode = arr[11];
- jsonTemp.CategoryName = arr[12];
- jsonTemp.Specification = arr[13];
- jsonTemp.SpecificationCode = arr[14];
- jsonTemp.UnitOfPackag = arr[42];
- jsonTemp.UnitOfValuation = arr[40];
- jsonTemp.StartDate = convertArrayNull(arr[36]);
- jsonTemp.EndDate = convertArrayNull(arr[37]);
- jsonTemp.PinyinSearchCode = arr[50];
- jsonTemp.Instructions = arr[35];
- jsonTemp.ExceptContent = "";
- jsonTemp.Connotation = "";
- jsonTemp.ValidFlag = convertArrayNull(arr[78]);
- jsonTemp.Note = arr[77];
- jsonTemp.VersionNO = arr[82];
- jsonTemp.VersionName = arr[83];
- jsonTemp.UseFlag = convertArrayNull(arr[78]);
- jsonTemp.DrugSafetyStandardCode = arr[8];
- jsonTemp.ApprovalNO = arr[61];
- jsonTemp.SpecialFlag = convertArrayNull(arr[55]);
- jsonTemp.LimitFlag = convertArrayNull(arr[57]);
- jsonTemp.LimitRange = arr[56];
- jsonTemp.UniqueRecordNO = arr[79];
- jsonTemp.Manufacturers = arr[53];
- jsonTemp.Company = arr[85];
- jsonTemp.ChargeItemLevelName = arr[91];
- if (jsonTemp.ChargeItemLevelName == "甲")
- {
- jsonTemp.ChargeItemLevel = "01";
- jsonTemp.SelfPercent = "0";
- }
- else if (jsonTemp.ChargeItemLevelName == "乙")
- {
- jsonTemp.ChargeItemLevel = "02";
- jsonTemp.SelfPercent = "0";
- }
- else if (jsonTemp.ChargeItemLevelName == "丙")
- {
- jsonTemp.ChargeItemLevel = "03";
- jsonTemp.SelfPercent = "100";
- }
- else
- {
- jsonTemp.ChargeItemLevel = "04";
- jsonTemp.SelfPercent = "100";
- jsonTemp.ChargeItemLevelName = "未知";
- }
- return jsonTemp;
- }
- /// <summary>
- /// 从TXT文件中获取诊疗数据,并组装成JSON
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetMedicalServiceJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[0];
- jsonTemp.Name = arr[9];
- jsonTemp.HisType = "2";
- jsonTemp.HisTypeName = "诊疗";
- jsonTemp.LocateCode = "";
- jsonTemp.LocateName = "";
- //jsonTemp.DosageFormCode = arr[9];
- //jsonTemp.DosageFormName = arr[10];
- jsonTemp.CategoryCode = arr[8];
- //jsonTemp.CategoryName = arr[12];
- jsonTemp.Specification = "";
- jsonTemp.SpecificationCode = "";
- //jsonTemp.UnitOfPackag = arr[1];
- jsonTemp.UnitOfValuation = arr[1];
- jsonTemp.StartDate = convertArrayNull(arr[11]);
- jsonTemp.EndDate = convertArrayNull(arr[12]);
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[9]);
- jsonTemp.Instructions = arr[3];
- jsonTemp.ExceptContent = arr[4];
- jsonTemp.Connotation = arr[5];
- jsonTemp.ValidFlag = arr[6];
- jsonTemp.Note = arr[7];
- jsonTemp.VersionNO = arr[14];
- jsonTemp.VersionName = arr[15];
- jsonTemp.UseFlag = arr[6];
- jsonTemp.DrugSafetyStandardCode = "";
- jsonTemp.ApprovalNO = "";
- jsonTemp.SpecialFlag = "";
- jsonTemp.LimitFlag = "";
- jsonTemp.LimitRange = "";
- jsonTemp.UniqueRecordNO = arr[13];
- jsonTemp.ChargeItemLevel = arr[8];
- if (jsonTemp.ChargeItemLevel == "1")
- {
- jsonTemp.ChargeItemLevelName = "甲";
- jsonTemp.SelfPercent = "0";
- }
- else if (jsonTemp.ChargeItemLevel == "2")
- {
- jsonTemp.ChargeItemLevelName = "乙";
- jsonTemp.SelfPercent = "0";
- }
- else if (jsonTemp.ChargeItemLevel == "3")
- {
- jsonTemp.ChargeItemLevelName = "丙";
- jsonTemp.SelfPercent = "100";
- }
- else
- {
- jsonTemp.ChargeItemLevel = "4";
- jsonTemp.SelfPercent = "100";
- jsonTemp.ChargeItemLevelName = "未知";
- }
- return jsonTemp;
- }
- /// <summary>
- /// 从TXT文件中获取材料数据,并组装成JSON
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetMaterialJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[0];
- jsonTemp.Name = arr[1];
- jsonTemp.HisType = "3";
- jsonTemp.HisTypeName = "材料";
- jsonTemp.LocateCode = "";
- jsonTemp.LocateName = "";
- jsonTemp.DosageFormCode = "";
- jsonTemp.DosageFormName = "";
- jsonTemp.CategoryCode = "";
- jsonTemp.CategoryName = "";
- jsonTemp.Specification = arr[7];
- jsonTemp.SpecificationCode = arr[6];
- jsonTemp.UnitOfPackag = arr[15];
- jsonTemp.UnitOfValuation = convertArrayNull(arr[35]);
- //jsonTemp.StartDate = convertArrayNull(arr[46]);
- //jsonTemp.EndDate = convertArrayNull(arr[47]);
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[5]);
- jsonTemp.Instructions = arr[27];
- jsonTemp.ExceptContent = arr[63]; //生产国
- jsonTemp.Connotation = "";
- jsonTemp.ValidFlag = arr[67];
- jsonTemp.Note = arr[7];
- jsonTemp.VersionNO = arr[69];
- jsonTemp.VersionName = arr[70];
- jsonTemp.UseFlag = arr[67];
- jsonTemp.DrugSafetyStandardCode = "";
- jsonTemp.ApprovalNO = arr[50]; //注册备案号
- jsonTemp.SpecialFlag = "";
- jsonTemp.LimitFlag = convertArrayNull(arr[33]);
- jsonTemp.LimitRange = arr[34];
- jsonTemp.UniqueRecordNO = arr[68];
- jsonTemp.Manufacturers = arr[59];
- jsonTemp.ChargeItemLevelName = arr[37];
- if (jsonTemp.ChargeItemLevelName == "甲")
- {
- jsonTemp.ChargeItemLevel = "01";
- jsonTemp.SelfPercent = "0";
- }
- else if (jsonTemp.ChargeItemLevelName == "乙")
- {
- jsonTemp.ChargeItemLevel = "02";
- jsonTemp.SelfPercent = "0";
- }
- else if (jsonTemp.ChargeItemLevelName == "丙")
- {
- jsonTemp.ChargeItemLevel = "03";
- jsonTemp.SelfPercent = "100";
- }
- else
- {
- jsonTemp.ChargeItemLevel = "04";
- jsonTemp.SelfPercent = "100";
- jsonTemp.ChargeItemLevelName = "未知";
- }
- return jsonTemp;
- }
- /// <summary>
- /// 从TXT文件中获取诊断数据,并组装成JSON
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetDiagnoseJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[10];
- jsonTemp.Name = arr[11];
- jsonTemp.HisType = "4";
- jsonTemp.HisTypeName = "诊断";
- jsonTemp.LocateCode = "";
- jsonTemp.LocateName = "";
- jsonTemp.DosageFormCode = "";
- jsonTemp.DosageFormName = "";
- jsonTemp.CategoryCode = "";
- jsonTemp.CategoryName = "";
- jsonTemp.Specification = "";
- jsonTemp.SpecificationCode = "";
- jsonTemp.UnitOfPackag = "";
- jsonTemp.UnitOfValuation = "";
- jsonTemp.StartDate = "";
- jsonTemp.EndDate = "";
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
- jsonTemp.Instructions = "";
- jsonTemp.ExceptContent = "";
- jsonTemp.Connotation = "";
- jsonTemp.ValidFlag = arr[18];
- jsonTemp.Note = arr[17];
- jsonTemp.VersionNO = arr[22];
- jsonTemp.VersionName = arr[23];
- jsonTemp.UseFlag = arr[18];
- jsonTemp.DrugSafetyStandardCode = "";
- jsonTemp.ApprovalNO = "";
- jsonTemp.SpecialFlag = "";
- jsonTemp.LimitFlag = "";
- jsonTemp.LimitRange = "";
- jsonTemp.UniqueRecordNO = arr[19];
- jsonTemp.Manufacturers = "";
- return jsonTemp;
- }
- /// <summary>
- /// 慢性病
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetChronicDiseaseJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[0];
- jsonTemp.Name = arr[1];
- jsonTemp.HisType = "6";
- jsonTemp.HisTypeName = "慢性病";
- jsonTemp.LocateCode = "";
- jsonTemp.LocateName = "";
- jsonTemp.DosageFormCode = "";
- jsonTemp.DosageFormName = "";
- jsonTemp.CategoryCode = arr[14];
- jsonTemp.CategoryName = arr[15];
- jsonTemp.Specification = "";
- jsonTemp.SpecificationCode = "";
- jsonTemp.UnitOfPackag = "";
- jsonTemp.UnitOfValuation = "";
- jsonTemp.StartDate = "";
- jsonTemp.EndDate = "";
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[2]);
- jsonTemp.Instructions = "";
- jsonTemp.ExceptContent = "";
- jsonTemp.Connotation = arr[10];
- jsonTemp.ValidFlag = arr[5];
- jsonTemp.Note = arr[4];
- jsonTemp.VersionNO = arr[9];
- jsonTemp.VersionName = arr[11];
- jsonTemp.UseFlag = arr[5];
- jsonTemp.DrugSafetyStandardCode = "";
- jsonTemp.ApprovalNO = "";
- jsonTemp.SpecialFlag = "";
- jsonTemp.LimitFlag = "";
- jsonTemp.LimitRange = "";
- jsonTemp.UniqueRecordNO = arr[6];
- jsonTemp.Manufacturers = "";
- return jsonTemp;
- }
- /// <summary>
- /// 从TXT文件中获取手术数据,并组装成JSON
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetOperationJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[10];
- jsonTemp.Name = arr[11];
- jsonTemp.HisType = "5";
- jsonTemp.HisTypeName = "手术";
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
- jsonTemp.ValidFlag = arr[18];
- jsonTemp.Note = arr[17];
- jsonTemp.VersionNO = arr[22];
- jsonTemp.VersionName = arr[23];
- jsonTemp.UseFlag = arr[18];
- jsonTemp.UniqueRecordNO = arr[19];
- return jsonTemp;
- }
- /// <summary>
- /// DRGs
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetDRGsJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[1];
- jsonTemp.Name = arr[2];
- jsonTemp.HisType = "7";
- jsonTemp.HisTypeName = "DRGs";
- jsonTemp.Connotation = arr[10];
- jsonTemp.Instructions = arr[3]; //适用手术操作代码
- jsonTemp.ExceptContent = arr[4]; //适用手术操作名称
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
- jsonTemp.ValidFlag = arr[5];
- jsonTemp.Note = arr[11];
- jsonTemp.VersionNO = arr[9];
- jsonTemp.VersionName = arr[12];
- jsonTemp.UseFlag = arr[5];
- jsonTemp.UniqueRecordNO = arr[6];
- return jsonTemp;
- }
- private JObject GetDaySurgeryJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[1];
- jsonTemp.Name = arr[2];
- jsonTemp.HisType = "8";
- jsonTemp.HisTypeName = "日间手术";
- jsonTemp.Connotation = arr[8];
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
- jsonTemp.ValidFlag = arr[3];
- jsonTemp.Note = arr[9];
- jsonTemp.VersionNO = arr[7];
- jsonTemp.VersionName = arr[10];
- jsonTemp.UseFlag = arr[3];
- jsonTemp.UniqueRecordNO = arr[4];
- return jsonTemp;
- }
- /// <summary>
- /// 中药饮片
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetChineseDrugJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[0];
- jsonTemp.Name = arr[1];
- jsonTemp.HisType = "10";
- jsonTemp.HisTypeName = "中药饮片";
- jsonTemp.Connotation = arr[8];
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
- jsonTemp.ValidFlag = arr[3];
- jsonTemp.Note = arr[9];
- jsonTemp.VersionNO = arr[7];
- jsonTemp.VersionName = arr[10];
- jsonTemp.UseFlag = arr[3];
- jsonTemp.UniqueRecordNO = arr[4];
- return jsonTemp;
- }
- /// <summary>
- /// 医疗机构制剂
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- private JObject GetHosPreparationJsonByTxt(string[] arr)
- {
- dynamic jsonTemp = new JObject();
- jsonTemp.ID = "";
- jsonTemp.updateUserID = Global.user.ID;
- jsonTemp.HospitalDr = Global.inf.hospitalDr;
- jsonTemp.InterfaceDr = Global.inf.interfaceDr;
- jsonTemp.Code = arr[0];
- jsonTemp.Name = arr[1];
- jsonTemp.HisType = "11";
- jsonTemp.HisTypeName = "医疗机构制剂";
- jsonTemp.Connotation = arr[8];
- //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
- jsonTemp.ValidFlag = arr[64];
- jsonTemp.Note = arr[9];
- jsonTemp.VersionNO = arr[70];
- jsonTemp.VersionName = arr[71];
- jsonTemp.UseFlag = arr[64];
- jsonTemp.UniqueRecordNO = arr[46]; //药品注册证号
- jsonTemp.Instructions = arr[77];
- jsonTemp.NationalCode = arr[57]; //国家医保药品目录编码
- jsonTemp.NationalName = arr[58]; //国家医保药品目录名称
- return jsonTemp;
- }
- public JObject importMedDataToIris(TradeEnum trade, JObject joRtn, Sunny.UI.UIProcessBar processBar)
- {
- string errorMsg = "";
- JObject dataRtn = Utils.ConvertResponse<JObject>(trade, joRtn, true);
- if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
- {
- return JsonHelper.setExceptionJson(-1, "下载目录信息失败", errorMsg);
- }
- JArray array = JArray.Parse(JsonHelper.getDestValue(dataRtn, "result"));
- if (array.Count < 2) {
- return JsonHelper.setIrisReturnValue(-1, "没有更多的数据了!", null);
- }
- foreach (var obj in array)
- {
- obj["updateUserID"]= Global.user.ID;
- obj["HospitalDr"] = Global.inf.hospitalDr;
- obj["InterfaceDr"] = Global.inf.interfaceDr;
- if (string.IsNullOrEmpty(obj["Name"].Text()) && !string.IsNullOrEmpty(obj["LocateName"].Text()))
- {
- obj["Name"] = obj["LocateName"];
- }
- if (trade == TradeEnum.ICPC3Treatment)
- {
- if (string.IsNullOrEmpty(obj["Code"].Text()))
- {
- obj["Code"] = obj["NationalCode"];
- }
- else
- {
- obj["Code"] = obj["NationalCode"] + "-" + obj["Code"];
- }
- }
- }
- int rows = array.Count;
- int size = 50;
- int pages = rows / size;
- processBar.Maximum = rows;
- for (int i = 0; i < pages; i++)
- {
- processBar.Value = (i + 1) * size;
- Application.DoEvents();
- //每50行提交一次给后台
- dynamic jaParams = array.ToList().GetRange(i * size, size).ToArray();
- applyDataToIris("09010035", JArray.Parse(JsonHelper.toJsonString(jaParams)));
- }
- processBar.Value = rows;
- Application.DoEvents();
- if (rows % size != 0)
- {
- dynamic jaParams = array.ToList().GetRange(pages * size, rows % size).ToArray();
- applyDataToIris("09010035", JArray.Parse(JsonHelper.toJsonString(jaParams)));
- }
- return JsonHelper.setIrisReturnValue(0, "成功", null);
- }
- /// <summary>
- /// 提交数据给IRIS
- /// </summary>
- /// <param name="code"></param>
- /// <param name="jaParam"></param>
- /// <returns></returns>
- private JObject applyDataToIris(string code, JArray jaParam)
- {
- JObject joIn = new JObject();
- JObject joRtn = new JObject();
- string outParam = "";
- try
- {
-
- joIn.Add(new JProperty("params", jaParam));
- joIn.Add("code", code);
- joIn.Add("updateUserID", Global.user.ID);
- InvokeHelper invoker = new InvokeHelper();
- string sInput = joIn.ToString();
- joRtn = invoker.invokeInsuService(sInput, "applyDataToIris");
- outParam = joRtn.ToString();
- return joRtn;
- }
- catch (Exception ex)
- {
- joRtn = JsonHelper.setExceptionJson(-1, "applyDataToIris", ex.Message);
- outParam = joRtn.ToString();
- return joRtn;
- }
- }
- /// <summary>
- /// 从TXT里导数据到IRIS
- /// </summary>
- /// <param name="txtPath"></param>
- /// <param name="singleRows"></param>
- /// <param name="direcType"></param>
- /// <param name="processBar"></param>
- /// <returns></returns>
- public JObject importDataToIrisByTxt(string txtPath, int size, int direcType, Sunny.UI.UIProcessBar processBar)
- {
- int errorCount = 0;
- string errorMsg = "";
- try
- {
- /*据说速度更快
- * https://www.cnblogs.com/eniac12/p/4398310.html
- * using (StreamReader sr = File.OpenText(fileName))
- {
- string s = String.Empty;
- while ((s = sr.ReadLine()) != null)
- {
- //do what you have to here
- }
- }
- Convert.ToString(a)
- */
- string[] lines = System.IO.File.ReadAllLines(txtPath);
- dynamic jaParams = new JArray();
- int rows = lines.Length;
- processBar.Maximum = rows;
- for (int i = 0; i < rows; i++)
- {
- processBar.Value = i + 1;
- Application.DoEvents();
- string lineTmp = lines[i];
- string[] arr = lineTmp.Split('\t');
- //判断是哪种目录类型
- string code = string.Empty;
- switch (direcType)
- {
- //药品
- case 1:
- {
- jaParams.Add(GetDrugsJsonByTxt(arr));
- break;
- }
- //诊疗
- case 2:
- {
- jaParams.Add(GetMedicalServiceJsonByTxt(arr));
- break;
- }
- //材料
- case 3:
- {
- jaParams.Add(GetMaterialJsonByTxt(arr));
- break;
- }
- //诊断
- case 4:
- {
- jaParams.Add(GetDiagnoseJsonByTxt(arr));
- break;
- }
- //手术
- case 5:
- {
- jaParams.Add(GetOperationJsonByTxt(arr));
- break;
- }
- //慢性病
- case 6:
- {
- jaParams.Add(GetChronicDiseaseJsonByTxt(arr));
- break;
- }
- //DRGs
- case 7:
- {
- jaParams.Add(GetDRGsJsonByTxt(arr));
- break;
- }
- //日间手术
- case 8:
- {
- jaParams.Add(GetDaySurgeryJsonByTxt(arr));
- break;
- }
- //中药饮片
- case 10:
- {
- jaParams.Add(GetChineseDrugJsonByTxt(arr));
- break;
- }
- //医疗机构制剂
- case 11:
- {
- jaParams.Add(GetHosPreparationJsonByTxt(arr));
- break;
- }
- }
- code = "09010035";
- //每10行提交一次给后台
- int currentRows = i + 1;
- if ((currentRows % size == 0) && (i != 0))
- {
- JObject joRtn = applyDataToIris(code, jaParams);
- if (joRtn["errorCode"].ToString() != "0")
- {
- errorCount = errorCount + 1;
- errorMsg = "\r\n" +errorMsg + joRtn["errorMessage"].ToString();
- }
- jaParams = new JArray();
- }
- if ((currentRows == rows) && (currentRows % size != 0))
- {
- JObject joRtn = applyDataToIris(code, jaParams);
- if (joRtn["errorCode"].ToString() != "0")
- {
- errorCount = errorCount + 1;
- errorMsg = "\r\n" + errorMsg + joRtn["errorMessage"].ToString();
- }
- jaParams = new JArray();
- }
-
- }
- return JsonHelper.setExceptionJson(0 - errorCount, errorMsg, null);
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "importDataToIrisByTxt", ex.Message);
- }
-
- }
- public JObject importDictionary(Sunny.UI.UIProcessBar uiProcessBar,JArray jaList,string type)
- {
- int errorCount = 0;
- string errorMsg = "",outParam = "", HBDictionaryDr ="";
-
- try
- {
- //插入并获取字典主表的DR
- JObject joData = new JObject();
- joData.Add("HospitalDr", Global.inf.hospitalDr);
- joData.Add("InterfaceDr", Global.inf.interfaceDr);
- joData.Add("InsuCode", type);
- JObject joRtn = mis.insertDictionary(joData);
- if (JsonHelper.parseIrisRtnValue(joRtn, out errorMsg) != 0)
- {
- return JsonHelper.setExceptionJson(-1, "insertDictionary", errorMsg);
- }
- else
- {
- HBDictionaryDr = JsonHelper.getDestValue(joRtn, "data.HBDictionaryDr");
- if (HBDictionaryDr == "")
- {
- return JsonHelper.setExceptionJson(-1, "insertDictionary", "HBDictionaryDr返回值为空");
- }
- }
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "insertDictionary", ex.Message);
- }
-
- JObject joReturn = new JObject();
- try
- {
- //插入字典明细表
- JArray jaParams = new JArray();
- int rows = jaList.Count ;
- uiProcessBar.Maximum = rows;
- for (int i = 0; i < jaList.Count ; i++)
- {
- uiProcessBar.Value = i + 1;
- dynamic joTmp = new JObject();
- joTmp.ID = "";
- joTmp.updateUserID = Global.user.ID;
- joTmp.HospitalDr = Global.inf.hospitalDr;
- joTmp.InterfaceDr = Global.inf.interfaceDr;
- joTmp.HBDictionaryDr = HBDictionaryDr;
- joTmp.Code = jaList[i]["value"].ToString();
- joTmp.Descripts = jaList[i]["label"].ToString();
- jaParams.Add(joTmp);
-
- //每50行提交一次给后台
- int currentRows = i + 1;
- if ((currentRows % 50 == 0) && (i != 0))
- {
- JObject joRtn = mis.insertDictionaryDataDetail(jaParams);
- if (joRtn["errorCode"].ToString() != "0")
- {
- errorCount = errorCount + 1;
- errorMsg = "\r\n" + errorMsg + joRtn["errorMessage"].ToString();
- }
- jaParams = new JArray();
- }
- if ((currentRows == rows) && (currentRows % 50 != 0))
- {
- JObject joRtn = mis.insertDictionaryDataDetail(jaParams);
- if (joRtn["errorCode"].ToString() != "0")
- {
- errorCount = errorCount + 1;
- errorMsg = "\r\n" + errorMsg + joRtn["errorMessage"].ToString();
- }
- jaParams = new JArray();
- }
- }
- joReturn = JsonHelper.setExceptionJson(0 - errorCount, errorMsg, null);
- outParam = joReturn.ToString();
- return joReturn;
- }
- catch (Exception ex)
- {
- joReturn = JsonHelper.setExceptionJson(-1, "importDictinary", ex.Message);
- outParam = joReturn.ToString();
- return joReturn;
- }
- }
- }
- }
|