using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DirectoryDownload { //该类主要将下载业务封装起来 class Business { private JObject importDrugByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.Name = arr[1]; jsonTemp.ChinaApprovedDrugCode = arr[2]; jsonTemp.ChinaApprovedDrugName = arr[3]; jsonTemp.ChemicalName = arr[4]; jsonTemp.Alias = arr[5]; jsonTemp.EnglishName = arr[6]; jsonTemp.RegisteredName = arr[7]; jsonTemp.DrugSafetyStandardCode = arr[8]; jsonTemp.DosageForm = arr[9]; jsonTemp.DosageFormName = arr[10]; jsonTemp.DrugCategory = arr[11]; jsonTemp.DrugCategoryName = arr[12]; jsonTemp.Specification = arr[13]; jsonTemp.SpecificationCode = arr[14]; jsonTemp.RegistrationDosageForm = arr[15]; jsonTemp.RegisteredSpecification = arr[16]; jsonTemp.RegisteredSpecificationCode = arr[17]; jsonTemp.OnceDosage = arr[18]; jsonTemp.Frequency = arr[19]; jsonTemp.Acidradicalbase = arr[20]; jsonTemp.NationalDrugCode = arr[21]; jsonTemp.Usage = arr[22]; jsonTemp.ChinesePatentDrugSign = arr[23]; jsonTemp.ProducerCategory = arr[24]; jsonTemp.ProducerCategoryName = arr[25]; jsonTemp.UnitType = arr[26]; jsonTemp.OverTheCounterFlag = arr[27]; jsonTemp.OverTheCounterName = arr[28]; jsonTemp.PackingMaterial = arr[29]; jsonTemp.PackingMaterialName = arr[30]; jsonTemp.PackingSpecification = arr[31]; jsonTemp.NumberofPackages = arr[32]; jsonTemp.MainIdications = arr[33]; jsonTemp.Route = arr[34]; jsonTemp.Instruction = arr[35]; jsonTemp.StartDate = arr[36]; jsonTemp.EndDate = arr[37]; jsonTemp.SmallestUnitUsing = arr[38]; jsonTemp.SmallestUnitOfSales = arr[39]; jsonTemp.SmallestUnitOfMeasurement = arr[40]; jsonTemp.MinimumNumberOfPackages = arr[41]; jsonTemp.SmalleStunitOfPackaging = arr[42]; jsonTemp.SmallestUnitOfPreparation = arr[43]; jsonTemp.SmallestPackingUnitName = arr[44]; jsonTemp.MinimumPreparationUnitName = arr[45]; jsonTemp.ConversionRatio = arr[46]; jsonTemp.ExpirationDate = arr[47]; jsonTemp.SmallestUnitOfValuation = arr[48]; jsonTemp.WubiSearchCode = arr[49]; jsonTemp.PinyinSearchCode = arr[50]; jsonTemp.PointsPackingFactory = arr[51]; jsonTemp.ProductionEnterpriseNO = arr[52]; jsonTemp.ProductionentErpriseName = arr[53]; jsonTemp.SpecialLimitedPriceDrugSign = arr[54]; jsonTemp.SpecialDrugSign = arr[55]; jsonTemp.LimitRange = arr[56]; jsonTemp.LimitSign = arr[57]; jsonTemp.DrugRegistrationNO = arr[58]; jsonTemp.DrugRegistrationNOStartDate = arr[59]; jsonTemp.DrugRegistrationNOEndDate = arr[60]; jsonTemp.ApprovalNO = arr[61]; jsonTemp.ApprovalNOStartDate = arr[62]; jsonTemp.ApprovalNOStartDateEndDate = arr[63]; jsonTemp.MarketState = arr[64]; jsonTemp.MarketStateName = arr[65]; jsonTemp.RegCertArchive = arr[66]; jsonTemp.ApprovalCertArchive = arr[67]; jsonTemp.Nationalhealthcaremedicinedirectoryremark = arr[68]; jsonTemp.BasicDrugLabel = arr[69]; jsonTemp.EssentialDrugsLogo = arr[70]; jsonTemp.VATDrugSign = arr[71]; jsonTemp.VATDRugName = arr[72]; jsonTemp.Thelisteddrugsdirectorysetdrugs = arr[73]; jsonTemp.NegotiationsDrugFlag = arr[74]; jsonTemp.NegotiationsDrugName = arr[75]; jsonTemp.HealthCommitteeDrugCode = arr[76]; jsonTemp.Note = arr[77]; jsonTemp.ValiadFlag = arr[78]; jsonTemp.OnlyRecordNO = arr[79]; jsonTemp.DataCreatTime = arr[80]; jsonTemp.DataUpdateTime = arr[81]; jsonTemp.VersionNO = arr[82]; jsonTemp.VersionName = arr[83]; jsonTemp.ChildrenDrugs = arr[84]; jsonTemp.Company = arr[85]; jsonTemp.ConsistencyEvaluation = arr[86]; jsonTemp.SaleEnterprise = arr[87]; jsonTemp.EnterpriseContacts = arr[88]; jsonTemp.EnterpriseAuthElecArch = arr[89]; jsonTemp.NationalMedDosageForm = arr[90]; jsonTemp.ClassABSign = arr[91]; jsonTemp.Type = "DrugDirectory"; jsonTemp.UseFlag = "1"; //jsonTemp.XH = i.ToString(); return jsonTemp; } private JObject imoportMedicalServicesByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.ChargeUnit = arr[1]; jsonTemp.ChargeUnitName = arr[2]; jsonTemp.Instructions = arr[3]; jsonTemp.ExceptContent = arr[4]; jsonTemp.Connotation = arr[5]; jsonTemp.ValidFlag = arr[6]; jsonTemp.Note = arr[7]; jsonTemp.ServiceCategory = arr[8]; jsonTemp.Name = arr[9]; jsonTemp.Description = arr[10]; jsonTemp.StartDate = arr[11]; jsonTemp.EndDate = arr[12]; jsonTemp.OnlyRecordNO = arr[13]; jsonTemp.VersionNO = arr[14]; jsonTemp.VersionName = arr[15]; jsonTemp.UseFlag = arr[16]; jsonTemp.Type = "MedicalServicesDirectory"; jsonTemp.UseFlag = "1"; return jsonTemp; } private JObject importMaterialByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = "66"; jsonTemp.InterfaceID = "CD02"; jsonTemp.Code = arr[0]; jsonTemp.Name = arr[1]; jsonTemp.OnlyIdentificationCode = arr[2]; jsonTemp.ChinaApprovedDrugCode = arr[3]; jsonTemp.ChinaApprovedDrugName = arr[4]; jsonTemp.ProductModel = arr[5]; jsonTemp.SpecificationCode = arr[6]; jsonTemp.Specification = arr[7]; jsonTemp.Classification = arr[8]; jsonTemp.SpecificationsModel = arr[9]; jsonTemp.MaterialQualityCode = arr[10]; jsonTemp.MaterialQuality = arr[11]; jsonTemp.PackingSpecification = arr[12]; jsonTemp.NumberOfPackage = arr[13]; jsonTemp.PackMaterialQuality = arr[14]; jsonTemp.PackingUnit = arr[15]; jsonTemp.ConversionRatio = arr[16]; jsonTemp.SmallestUnitUsing = arr[17]; jsonTemp.ProducerCategory = arr[18]; jsonTemp.ProducerCategoryname = arr[19]; jsonTemp.ProductStandards = arr[20]; jsonTemp.ExpirationDate = arr[21]; jsonTemp.PerformanceStructureAndComposition = arr[22]; jsonTemp.UseRange = arr[23]; jsonTemp.ProductUseMethod = arr[24]; jsonTemp.ProductPicturesNO = arr[25]; jsonTemp.ProductQualityStandard = arr[26]; jsonTemp.Instructions = arr[27]; jsonTemp.OtherDocuments = arr[28]; jsonTemp.SpecialMachineUseSign = arr[29]; jsonTemp.SpecialMachineName = arr[30]; jsonTemp.GroupName = arr[31]; jsonTemp.MachineMark = arr[32]; jsonTemp.LimitSign = arr[33]; jsonTemp.LimitedInscope = arr[34]; jsonTemp.SmallestUnitOfSales = arr[35]; jsonTemp.HighValueSign = arr[36]; jsonTemp.MedClassificationCode = arr[37]; jsonTemp.ImplantMaterialsAndInhumaNorgansSign = arr[38]; jsonTemp.SterilizationSign = arr[39]; jsonTemp.SterilizationLabel = arr[40]; jsonTemp.ImplantedOrInvolvementSign = arr[41]; jsonTemp.ImplantedOrInvolvementName = arr[42]; jsonTemp.DisposableUseSign = arr[43]; jsonTemp.DisposableUseSignName = arr[44]; jsonTemp.RegisteredName = arr[45]; jsonTemp.StartDate = arr[46]; jsonTemp.EndDate = arr[47]; jsonTemp.ManagementCategory = arr[48]; jsonTemp.ManagementCategoryName = arr[49]; jsonTemp.RegistrationNO = arr[50]; jsonTemp.RegistrationName = arr[51]; jsonTemp.StructureAndComposition = arr[52]; jsonTemp.OtherContent = arr[53]; jsonTemp.ApprovalDate = arr[54]; jsonTemp.RegisterAddress = arr[55]; jsonTemp.RegistStartTime = arr[56]; jsonTemp.RegistEndTime = arr[57]; jsonTemp.ProductionEnterpriseNO = arr[58]; jsonTemp.ProductionEnterpriseName = arr[59]; jsonTemp.ProductionAddress = arr[60]; jsonTemp.AgententErprise = arr[61]; jsonTemp.AgententErpriseAddress = arr[62]; jsonTemp.ProducerorRegion = arr[63]; jsonTemp.AfterSalesServiceAgencies = arr[64]; jsonTemp.RegistrationCertArchives = arr[65]; jsonTemp.ProductImage = arr[66]; jsonTemp.ValidFlga = arr[67]; jsonTemp.OnlyRecordNO = arr[68]; jsonTemp.VersionNO = arr[69]; jsonTemp.VersionName = arr[70]; jsonTemp.UseFlag = arr[71]; jsonTemp.Type = "MaterialDirectory"; jsonTemp.UseFlag = "1"; return jsonTemp; } private JObject importDiagnoseByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.Chapter = arr[1]; jsonTemp.ChapterRange = arr[2]; jsonTemp.ChapterName = arr[3]; jsonTemp.SectionRange = arr[4]; jsonTemp.SectionName = arr[5]; jsonTemp.CategoryCode = arr[6]; jsonTemp.CategoryName = arr[7]; jsonTemp.SuborderCode = arr[8]; jsonTemp.SuborderName = arr[9]; jsonTemp.Diagnosticcode = arr[10]; jsonTemp.Name = arr[12]; jsonTemp.UseTag = arr[13]; jsonTemp.NationalStandardCode = arr[14]; jsonTemp.NationalStandardName = arr[15]; jsonTemp.ClinicalCode = arr[16]; jsonTemp.ClinicalName = arr[17]; jsonTemp.Note = arr[18]; jsonTemp.ValiadFlag = arr[19]; jsonTemp.OnlyRecordNO = arr[20]; jsonTemp.DataCreatTime = arr[21]; jsonTemp.DataUpdateTime = arr[22]; jsonTemp.VersionNO = arr[23]; jsonTemp.VersionName = arr[24]; jsonTemp.Type = "Diagnose"; jsonTemp.UseFlag = "1"; return jsonTemp; } private JObject importOperationByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.Chapter = arr[1]; jsonTemp.ChapterRange = arr[2]; jsonTemp.ChapterName = arr[3]; jsonTemp.CategoryCode = arr[4]; jsonTemp.CategoryName = arr[5]; jsonTemp.SuborderCode = arr[6]; jsonTemp.SuborderName = arr[7]; jsonTemp.Diagnosticcode = arr[8]; jsonTemp.SuborderName = arr[9]; jsonTemp.Diagnosticcode = arr[10]; jsonTemp.Name = arr[11]; jsonTemp.UseTag = arr[12]; jsonTemp.NationalStandardCode = arr[13]; jsonTemp.NationalStandardName = arr[14]; jsonTemp.ClinicalCode = arr[15]; jsonTemp.ClinicalName = arr[16]; jsonTemp.Note = arr[17]; jsonTemp.ValiadFlag = arr[18]; jsonTemp.OnlyRecordNO = arr[19]; jsonTemp.DataCreatTime = arr[20]; jsonTemp.DataUpdateTime = arr[21]; jsonTemp.VersionNO = arr[22]; jsonTemp.VersionName = arr[23]; jsonTemp.Type = "Operation"; jsonTemp.UseFlag = "1"; return jsonTemp; } private JObject importDaySurgeryByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.CategoryCode = arr[1]; jsonTemp.CategoryName = arr[2]; jsonTemp.Note = arr[9]; jsonTemp.UseTag = arr[3]; jsonTemp.OnlyRecordNO = arr[4]; jsonTemp.DataCreatTime = arr[5]; jsonTemp.DataUpdateTime = arr[6]; jsonTemp.VersionNO = arr[7]; jsonTemp.Content = arr[8]; jsonTemp.VersionName = arr[10]; jsonTemp.NationalStandardCode = arr[13]; jsonTemp.NationalStandardName = arr[14]; jsonTemp.Type = "DaySurgery"; jsonTemp.UseFlag = "1"; return jsonTemp; } private JObject importChronicDiseaseByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.Chapter = arr[3]; jsonTemp.CategoryName = arr[1]; jsonTemp.SuborderName = arr[2]; jsonTemp.Note = arr[4]; jsonTemp.UseTag = arr[5]; jsonTemp.OnlyRecordNO = arr[6]; jsonTemp.DataCreatTime = arr[7]; jsonTemp.DataUpdateTime = arr[8]; jsonTemp.VersionNO = arr[9]; jsonTemp.Content = arr[10]; jsonTemp.VersionName = arr[11]; jsonTemp.NationalStandardCode = arr[14]; jsonTemp.NationalStandardName = arr[15]; jsonTemp.Type = "ChronicDisease"; jsonTemp.UseFlag = "1"; return jsonTemp; } private JObject importDRGsByTxt(string[] arr) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = GlobalVariables.hospitalNO; jsonTemp.InterfaceID = GlobalVariables.InterfaceID; jsonTemp.Code = arr[0]; jsonTemp.CategoryCode = arr[1]; jsonTemp.CategoryName = arr[2]; jsonTemp.SuborderCode = arr[3]; jsonTemp.SuborderName = arr[4]; jsonTemp.UseTag = arr[5]; jsonTemp.OnlyRecordNO = arr[6]; jsonTemp.DataCreatTime = arr[7]; jsonTemp.DataUpdateTime = arr[8]; jsonTemp.VersionNO = arr[9]; jsonTemp.Content = arr[10]; jsonTemp.Note = arr[11]; jsonTemp.VersionName = arr[12]; jsonTemp.Type = "DRGs"; jsonTemp.UseFlag = "1"; return jsonTemp; } private string applyData(string code, JArray jaParam) { JObject joIn = new JObject(); joIn.Add(new JProperty("params", jaParam)); joIn.Add("code", code); IrisServices HisREST = new IrisServices(); string sInput = joIn.ToString(); string sRtn = HisREST.Invoke(sInput); return sRtn; } public string importByTxt(string txtPath, int singleRows, int direcType, Sunny.UI.UIProcessBar processBar) { 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'); DataImoport di = new DataImoport(); //判断是哪种目录类型 string code = string.Empty; switch (direcType) { //药品 case 1: { jaParams.Add(di.GetDrugsJsonByTxt(arr)); code = "09010008"; break; } //诊疗 case 2: { jaParams.Add(imoportMedicalServicesByTxt(arr)); code = "09010009"; break; } //材料 case 3: { jaParams.Add(importMaterialByTxt(arr)); code = "09010010"; break; } //诊断 case 4: { jaParams.Add(importDiagnoseByTxt(arr)); code = "09010007"; break; } //手术 case 5: { jaParams.Add(importOperationByTxt(arr)); code = "09010007"; break; } //慢性病 case 6: { jaParams.Add(importChronicDiseaseByTxt(arr)); code = "09010007"; break; } //DRGs case 7: { jaParams.Add(importDRGsByTxt(arr)); code = "09010007"; break; } //日间手术 case 8: { jaParams.Add(importDaySurgeryByTxt(arr)); code = "09010007"; break; } } code = "09010035"; //每50行提交一次给后台 int currentRows = i + 1; if ((currentRows % singleRows == 0) && (i != 0)) { string sRtn =applyData(code, jaParams); JObject joRtn = new JObject(); joRtn = JObject.Parse(sRtn); if (joRtn["errorCode"].ToString() != "0") { MessageBox.Show(joRtn["errorMessage"].ToString()); } jaParams = new JArray(); } if ((currentRows == rows) && (currentRows % singleRows != 0)) { string sRtn = applyData(code, jaParams); JObject joRtn = new JObject(); joRtn = JObject.Parse(sRtn); if (joRtn["errorCode"].ToString() != "0") { MessageBox.Show(joRtn["errorMessage"].ToString()); } jaParams = new JArray(); } } return ""; } public void importDictionaryByRtnString(string rtnStr) { JObject joRtn = JObject.Parse(rtnStr); JArray jsonList = new JArray(); jsonList = (JArray)joRtn["output"]["list"]; dynamic jaParams = new JArray(); for (int i = 0; i < jsonList.Count; i++) { dynamic jsonTemp = new JObject(); jsonTemp.ID = ""; jsonTemp.HospitalID = "66"; jsonTemp.InterfaceID = "CD02"; jsonTemp.Type = jsonList[i]["type"].ToString(); jsonTemp.NO = jsonList[i]["value"].ToString(); jsonTemp.Name = jsonList[i]["label"].ToString(); jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(jsonList[i]["label"].ToString()); jsonTemp.ValiFlag = jsonList[i]["vali_flag"].ToString(); jsonTemp.UseFlag = "1"; jsonTemp.XH = i.ToString(); jaParams.Add(jsonTemp); string code = "09010011"; //每10行提交一次给后台 int currentRows = i + 1; if ((currentRows % 10 == 0) && (i != 0)) { applyData(code, jaParams); jaParams = new JArray(); } if ((currentRows == jsonList.Count) && (currentRows % 10 != 0)) { applyData(code, jaParams); jaParams = new JArray(); } } } } }