DataImoport.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. /******************************************************************************
  2. * 文件名称: DataImoport.cs
  3. * 文件说明: 医保目录数据导入
  4. * 当前版本: V1.0
  5. * 创建日期: 2022-04-12
  6. *
  7. * 2020-04-12: 增加GetDrugsJsonByTxt方法
  8. * 2020-04-12: 增加GetMedicalServiceJsonByTxt方法
  9. * 2020-04-12: 增加 GetMaterialJsonByTxt 方法
  10. * 2020-04-14: 增加 GetDiagnoseJsonByTxt 方法
  11. * 2020-04-14: 增加 GetOperationJsonByTxt 方法
  12. * 2020-04-14: 增加 applyDataToIris 方法
  13. * 2020-04-14: 增加 importDataToIrisByTxt 方法
  14. * 2020-04-14: 增加 GetOperationJsonByTxt 方法
  15. * 2020-04-14: 增加 GetOperationJsonByTxt 方法
  16. * 2020-04-14: 增加 GetOperationJsonByTxt 方法
  17. * 2020-04-14: 增加 GetOperationJsonByTxt 方法
  18. ******************************************************************************/
  19. using Newtonsoft.Json.Linq;
  20. using System;
  21. using System.Collections.Generic;
  22. using System.Linq;
  23. using System.Text;
  24. using System.Threading.Tasks;
  25. using System.Windows.Forms;
  26. using PTMedicalInsurance.Variables;
  27. using PTMedicalInsurance.Helper;
  28. using PTMedicalInsurance.Business;
  29. namespace PTMedicalInsurance
  30. {
  31. class DataImoport
  32. {
  33. MIIrisServices mis = new MIIrisServices();
  34. /// <summary>
  35. /// 读取TXT后,Array中的空值会返回NULL,将其转换为"".应有其他方式处理,后面再优化
  36. /// 明天试试Convert.ToString(a)
  37. /// </summary>
  38. /// <param name="arrayValue"></param>
  39. /// <returns></returns>
  40. private string convertArrayNull(string arrayValue)
  41. {
  42. string returnValue = string.Empty;
  43. if (arrayValue == "null")
  44. {
  45. returnValue = "";
  46. }
  47. else
  48. {
  49. returnValue = arrayValue;
  50. }
  51. return returnValue;
  52. }
  53. /// <summary>
  54. /// 从TXT文件中获取药品数据,并组装成JSON
  55. /// </summary>
  56. /// <param name="arr"></param>
  57. /// <returns></returns>
  58. private JObject GetDrugsJsonByTxt(string[] arr)
  59. {
  60. dynamic jsonTemp = new JObject();
  61. jsonTemp.ID = "";
  62. jsonTemp.updateUserID = Global.user.ID;
  63. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  64. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  65. jsonTemp.Code = arr[0];
  66. jsonTemp.Name = arr[7];
  67. jsonTemp.HisType = "1";
  68. jsonTemp.HisTypeName = "药品";
  69. jsonTemp.LocateCode = "";
  70. jsonTemp.LocateName = "";
  71. jsonTemp.DosageFormCode = arr[9];
  72. jsonTemp.DosageFormName = arr[10];
  73. jsonTemp.CategoryCode = arr[11];
  74. jsonTemp.CategoryName = arr[12];
  75. jsonTemp.Specification = arr[13];
  76. jsonTemp.SpecificationCode = arr[14];
  77. jsonTemp.UnitOfPackag = arr[42];
  78. jsonTemp.UnitOfValuation = arr[40];
  79. jsonTemp.StartDate = convertArrayNull(arr[36]);
  80. jsonTemp.EndDate = convertArrayNull(arr[37]);
  81. jsonTemp.PinyinSearchCode = arr[50];
  82. jsonTemp.Instructions = arr[35];
  83. jsonTemp.ExceptContent = "";
  84. jsonTemp.Connotation = "";
  85. jsonTemp.ValidFlag = convertArrayNull(arr[78]);
  86. jsonTemp.Note = arr[77];
  87. jsonTemp.VersionNO = arr[82];
  88. jsonTemp.VersionName = arr[83];
  89. jsonTemp.UseFlag = convertArrayNull(arr[78]);
  90. jsonTemp.DrugSafetyStandardCode = arr[8];
  91. jsonTemp.ApprovalNO = arr[61];
  92. jsonTemp.SpecialFlag = convertArrayNull(arr[55]);
  93. jsonTemp.LimitFlag = convertArrayNull(arr[57]);
  94. jsonTemp.LimitRange = arr[56];
  95. jsonTemp.UniqueRecordNO = arr[79];
  96. jsonTemp.Manufacturers = arr[53];
  97. jsonTemp.Company = arr[85];
  98. jsonTemp.ChargeItemLevelName = arr[91];
  99. if (jsonTemp.ChargeItemLevelName == "甲")
  100. {
  101. jsonTemp.ChargeItemLevel = "01";
  102. jsonTemp.SelfPercent = "0";
  103. }
  104. else if (jsonTemp.ChargeItemLevelName == "乙")
  105. {
  106. jsonTemp.ChargeItemLevel = "02";
  107. jsonTemp.SelfPercent = "0";
  108. }
  109. else if (jsonTemp.ChargeItemLevelName == "丙")
  110. {
  111. jsonTemp.ChargeItemLevel = "03";
  112. jsonTemp.SelfPercent = "100";
  113. }
  114. else
  115. {
  116. jsonTemp.ChargeItemLevel = "04";
  117. jsonTemp.SelfPercent = "100";
  118. //jsonTemp.ChargeItemLevelName = "未知";
  119. }
  120. jsonTemp.MinDosageUnit = arr[41]; //最小包装数量
  121. jsonTemp.MinDosageUnit = arr[45]; //最小制剂单位
  122. jsonTemp.MinDosageUnit = arr[44]; //最小包装单位
  123. return jsonTemp;
  124. }
  125. /// <summary>
  126. /// 从TXT文件中获取诊疗数据,并组装成JSON
  127. /// </summary>
  128. /// <param name="arr"></param>
  129. /// <returns></returns>
  130. private JObject GetMedicalServiceJsonByTxt(string[] arr)
  131. {
  132. dynamic jsonTemp = new JObject();
  133. jsonTemp.ID = "";
  134. jsonTemp.updateUserID = Global.user.ID;
  135. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  136. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  137. jsonTemp.Code = arr[0];
  138. jsonTemp.Name = arr[9];
  139. jsonTemp.HisType = "2";
  140. jsonTemp.HisTypeName = "诊疗";
  141. jsonTemp.LocateCode = "";
  142. jsonTemp.LocateName = "";
  143. jsonTemp.DosageFormCode = arr[9];
  144. jsonTemp.DosageFormName = arr[10];
  145. jsonTemp.CategoryCode = arr[8];
  146. jsonTemp.CategoryName = arr[12];
  147. jsonTemp.Specification = "";
  148. jsonTemp.SpecificationCode = "";
  149. jsonTemp.UnitOfPackag = arr[1];
  150. jsonTemp.UnitOfValuation = arr[2];
  151. //jsonTemp.StartDate = convertArrayNull(arr[11]);
  152. //jsonTemp.EndDate = convertArrayNull(arr[12]);
  153. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[9]);
  154. jsonTemp.Instructions = arr[3];
  155. jsonTemp.ExceptContent = arr[4];
  156. jsonTemp.Connotation = arr[5];
  157. jsonTemp.ValidFlag = arr[6];
  158. jsonTemp.Note = ""; //arr[7];
  159. jsonTemp.VersionNO = arr[14];
  160. jsonTemp.VersionName = arr[15];
  161. jsonTemp.UseFlag = arr[6];
  162. jsonTemp.DrugSafetyStandardCode = "";
  163. jsonTemp.ApprovalNO = "";
  164. jsonTemp.SpecialFlag = "";
  165. jsonTemp.LimitFlag = "";
  166. jsonTemp.LimitRange = "";
  167. jsonTemp.UniqueRecordNO = arr[13];
  168. jsonTemp.ChargeItemLevel = arr[0];
  169. if (jsonTemp.ChargeItemLevel == "1")
  170. {
  171. jsonTemp.ChargeItemLevelName = "甲";
  172. jsonTemp.SelfPercent = "0";
  173. }
  174. else if (jsonTemp.ChargeItemLevel == "2")
  175. {
  176. jsonTemp.ChargeItemLevelName = "乙";
  177. jsonTemp.SelfPercent = "0";
  178. }
  179. else if (jsonTemp.ChargeItemLevel == "3")
  180. {
  181. jsonTemp.ChargeItemLevelName = "丙";
  182. jsonTemp.SelfPercent = "100";
  183. }
  184. else
  185. {
  186. //jsonTemp.ChargeItemLevel = "4";
  187. jsonTemp.SelfPercent = "100";
  188. jsonTemp.ChargeItemLevelName = "未知";
  189. }
  190. return jsonTemp;
  191. }
  192. /// <summary>
  193. /// 从TXT文件中获取材料数据,并组装成JSON
  194. /// </summary>
  195. /// <param name="arr"></param>
  196. /// <returns></returns>
  197. private JObject GetMaterialJsonByTxt(string[] arr)
  198. {
  199. dynamic jsonTemp = new JObject();
  200. jsonTemp.ID = "";
  201. jsonTemp.updateUserID = Global.user.ID;
  202. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  203. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  204. jsonTemp.Code = arr[0];
  205. jsonTemp.Name = arr[1];
  206. jsonTemp.HisType = "3";
  207. jsonTemp.HisTypeName = "材料";
  208. jsonTemp.LocateCode = "";
  209. jsonTemp.LocateName = "";
  210. jsonTemp.DosageFormCode = "";
  211. jsonTemp.DosageFormName = "";
  212. jsonTemp.CategoryCode = "";
  213. jsonTemp.CategoryName = "";
  214. jsonTemp.Specification = arr[7];
  215. jsonTemp.SpecificationCode = arr[6];
  216. jsonTemp.UnitOfPackag = arr[15];
  217. jsonTemp.UnitOfValuation = convertArrayNull(arr[35]);
  218. jsonTemp.StartDate = convertArrayNull(arr[46]);
  219. jsonTemp.EndDate = convertArrayNull(arr[47]);
  220. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[5]);
  221. jsonTemp.Instructions = arr[27];
  222. jsonTemp.ExceptContent = arr[63]; //生产国
  223. jsonTemp.Connotation = "";
  224. jsonTemp.ValidFlag = arr[67];
  225. jsonTemp.Note = arr[7];
  226. jsonTemp.VersionNO = arr[69];
  227. jsonTemp.VersionName = arr[70];
  228. jsonTemp.UseFlag = arr[67];
  229. jsonTemp.DrugSafetyStandardCode = "";
  230. jsonTemp.ApprovalNO = arr[50]; //注册备案号
  231. jsonTemp.SpecialFlag = "";
  232. jsonTemp.LimitFlag = convertArrayNull(arr[33]);
  233. jsonTemp.LimitRange = arr[34];
  234. jsonTemp.UniqueRecordNO = arr[68];
  235. jsonTemp.Manufacturers = arr[59];
  236. jsonTemp.ChargeItemLevelName = arr[37];
  237. if (jsonTemp.ChargeItemLevelName == "甲")
  238. {
  239. jsonTemp.ChargeItemLevel = "01";
  240. jsonTemp.SelfPercent = "0";
  241. }
  242. else if (jsonTemp.ChargeItemLevelName == "乙")
  243. {
  244. jsonTemp.ChargeItemLevel = "02";
  245. jsonTemp.SelfPercent = "0";
  246. }
  247. else if (jsonTemp.ChargeItemLevelName == "丙")
  248. {
  249. jsonTemp.ChargeItemLevel = "03";
  250. jsonTemp.SelfPercent = "100";
  251. }
  252. else
  253. {
  254. jsonTemp.ChargeItemLevel = "04";
  255. jsonTemp.SelfPercent = "100";
  256. //jsonTemp.ChargeItemLevelName = "未知";
  257. }
  258. return jsonTemp;
  259. }
  260. /// <summary>
  261. /// 从TXT文件中获取诊断数据,并组装成JSON
  262. /// </summary>
  263. /// <param name="arr"></param>
  264. /// <returns></returns>
  265. private JObject GetDiagnoseJsonByTxt(string[] arr)
  266. {
  267. dynamic jsonTemp = new JObject();
  268. jsonTemp.ID = "";
  269. jsonTemp.updateUserID = Global.user.ID;
  270. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  271. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  272. jsonTemp.Code = arr[10];
  273. jsonTemp.Name = arr[11];
  274. jsonTemp.HisType = "4";
  275. jsonTemp.HisTypeName = "诊断";
  276. jsonTemp.LocateCode = "";
  277. jsonTemp.LocateName = "";
  278. jsonTemp.DosageFormCode = "";
  279. jsonTemp.DosageFormName = "";
  280. jsonTemp.CategoryCode = "";
  281. jsonTemp.CategoryName = "";
  282. jsonTemp.Specification = "";
  283. jsonTemp.SpecificationCode = "";
  284. jsonTemp.UnitOfPackag = "";
  285. jsonTemp.UnitOfValuation = "";
  286. jsonTemp.StartDate = "";
  287. jsonTemp.EndDate = "";
  288. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
  289. jsonTemp.Instructions = "";
  290. jsonTemp.ExceptContent = "";
  291. jsonTemp.Connotation = "";
  292. jsonTemp.ValidFlag = arr[18];
  293. jsonTemp.Note = arr[17];
  294. jsonTemp.VersionNO = arr[22];
  295. jsonTemp.VersionName = arr[23];
  296. jsonTemp.UseFlag = arr[18];
  297. jsonTemp.DrugSafetyStandardCode = "";
  298. jsonTemp.ApprovalNO = "";
  299. jsonTemp.SpecialFlag = "";
  300. jsonTemp.LimitFlag = "";
  301. jsonTemp.LimitRange = "";
  302. jsonTemp.UniqueRecordNO = arr[19];
  303. jsonTemp.Manufacturers = "";
  304. return jsonTemp;
  305. }
  306. /// <summary>
  307. /// 慢性病
  308. /// </summary>
  309. /// <param name="arr"></param>
  310. /// <returns></returns>
  311. private JObject GetChronicDiseaseJsonByTxt(string[] arr)
  312. {
  313. dynamic jsonTemp = new JObject();
  314. jsonTemp.ID = "";
  315. jsonTemp.updateUserID = Global.user.ID;
  316. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  317. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  318. jsonTemp.Code = arr[0];
  319. jsonTemp.Name = arr[1];
  320. jsonTemp.HisType = "6";
  321. jsonTemp.HisTypeName = "慢性病";
  322. jsonTemp.LocateCode = "";
  323. jsonTemp.LocateName = "";
  324. jsonTemp.DosageFormCode = "";
  325. jsonTemp.DosageFormName = "";
  326. jsonTemp.CategoryCode = arr[14];
  327. jsonTemp.CategoryName = arr[15];
  328. jsonTemp.Specification = "";
  329. jsonTemp.SpecificationCode = "";
  330. jsonTemp.UnitOfPackag = "";
  331. jsonTemp.UnitOfValuation = "";
  332. jsonTemp.StartDate = "";
  333. jsonTemp.EndDate = "";
  334. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[2]);
  335. jsonTemp.Instructions = "";
  336. jsonTemp.ExceptContent = "";
  337. jsonTemp.Connotation = arr[10];
  338. jsonTemp.ValidFlag = arr[5];
  339. jsonTemp.Note = arr[4];
  340. jsonTemp.VersionNO = arr[9];
  341. jsonTemp.VersionName = arr[11];
  342. jsonTemp.UseFlag = arr[5];
  343. jsonTemp.DrugSafetyStandardCode = "";
  344. jsonTemp.ApprovalNO = "";
  345. jsonTemp.SpecialFlag = "";
  346. jsonTemp.LimitFlag = "";
  347. jsonTemp.LimitRange = "";
  348. jsonTemp.UniqueRecordNO = arr[6];
  349. jsonTemp.Manufacturers = "";
  350. return jsonTemp;
  351. }
  352. /// <summary>
  353. /// 从TXT文件中获取手术数据,并组装成JSON
  354. /// </summary>
  355. /// <param name="arr"></param>
  356. /// <returns></returns>
  357. private JObject GetOperationJsonByTxt(string[] arr)
  358. {
  359. dynamic jsonTemp = new JObject();
  360. jsonTemp.ID = "";
  361. jsonTemp.updateUserID = Global.user.ID;
  362. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  363. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  364. jsonTemp.Code = arr[10];
  365. jsonTemp.Name = arr[11];
  366. jsonTemp.HisType = "5";
  367. jsonTemp.HisTypeName = "手术";
  368. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
  369. jsonTemp.ValidFlag = arr[18];
  370. jsonTemp.Note = arr[17];
  371. jsonTemp.VersionNO = arr[22];
  372. jsonTemp.VersionName = arr[23];
  373. jsonTemp.UseFlag = arr[18];
  374. jsonTemp.UniqueRecordNO = arr[19];
  375. return jsonTemp;
  376. }
  377. /// <summary>
  378. /// DRGs
  379. /// </summary>
  380. /// <param name="arr"></param>
  381. /// <returns></returns>
  382. private JObject GetDRGsJsonByTxt(string[] arr)
  383. {
  384. dynamic jsonTemp = new JObject();
  385. jsonTemp.ID = "";
  386. jsonTemp.updateUserID = Global.user.ID;
  387. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  388. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  389. jsonTemp.Code = arr[1];
  390. jsonTemp.Name = arr[2];
  391. jsonTemp.HisType = "7";
  392. jsonTemp.HisTypeName = "DRGs";
  393. jsonTemp.Connotation = arr[10];
  394. jsonTemp.Instructions = arr[3]; //适用手术操作代码
  395. jsonTemp.ExceptContent = arr[4]; //适用手术操作名称
  396. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
  397. jsonTemp.ValidFlag = arr[5];
  398. jsonTemp.Note = arr[11];
  399. jsonTemp.VersionNO = arr[9];
  400. jsonTemp.VersionName = arr[12];
  401. jsonTemp.UseFlag = arr[5];
  402. jsonTemp.UniqueRecordNO = arr[6];
  403. return jsonTemp;
  404. }
  405. private JObject GetDaySurgeryJsonByTxt(string[] arr)
  406. {
  407. dynamic jsonTemp = new JObject();
  408. jsonTemp.ID = "";
  409. jsonTemp.updateUserID = Global.user.ID;
  410. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  411. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  412. jsonTemp.Code = arr[1];
  413. jsonTemp.Name = arr[2];
  414. jsonTemp.HisType = "8";
  415. jsonTemp.HisTypeName = "日间手术";
  416. jsonTemp.Connotation = arr[8];
  417. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
  418. jsonTemp.ValidFlag = arr[3];
  419. jsonTemp.Note = arr[9];
  420. jsonTemp.VersionNO = arr[7];
  421. jsonTemp.VersionName = arr[10];
  422. jsonTemp.UseFlag = arr[3];
  423. jsonTemp.UniqueRecordNO = arr[4];
  424. return jsonTemp;
  425. }
  426. /// <summary>
  427. /// 中药饮片
  428. /// </summary>
  429. /// <param name="arr"></param>
  430. /// <returns></returns>
  431. private JObject GetChineseDrugJsonByTxt(string[] arr)
  432. {
  433. dynamic jsonTemp = new JObject();
  434. jsonTemp.ID = "";
  435. jsonTemp.updateUserID = Global.user.ID;
  436. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  437. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  438. jsonTemp.Code = arr[0];
  439. jsonTemp.Name = arr[1];
  440. jsonTemp.HisType = "10";
  441. jsonTemp.HisTypeName = "中药饮片";
  442. jsonTemp.Connotation = arr[8];
  443. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
  444. jsonTemp.ValidFlag = arr[3];
  445. jsonTemp.Note = arr[9];
  446. jsonTemp.VersionNO = arr[7];
  447. jsonTemp.VersionName = arr[10];
  448. jsonTemp.UseFlag = arr[3];
  449. jsonTemp.UniqueRecordNO = arr[4];
  450. return jsonTemp;
  451. }
  452. /// <summary>
  453. /// 医疗机构制剂
  454. /// </summary>
  455. /// <param name="arr"></param>
  456. /// <returns></returns>
  457. private JObject GetHosPreparationJsonByTxt(string[] arr)
  458. {
  459. dynamic jsonTemp = new JObject();
  460. jsonTemp.ID = "";
  461. jsonTemp.updateUserID = Global.user.ID;
  462. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  463. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  464. jsonTemp.Code = arr[0];
  465. jsonTemp.Name = arr[1];
  466. jsonTemp.HisType = "11";
  467. jsonTemp.HisTypeName = "医疗机构制剂";
  468. jsonTemp.Connotation = arr[8];
  469. //jsonTemp.PinyinSearchCode = SpellCodeHelper.GetFirstPYLetter(arr[11]);
  470. jsonTemp.ValidFlag = arr[64];
  471. jsonTemp.Note = arr[9];
  472. jsonTemp.VersionNO = arr[70];
  473. jsonTemp.VersionName = arr[71];
  474. jsonTemp.UseFlag = arr[64];
  475. jsonTemp.UniqueRecordNO = arr[46]; //药品注册证号
  476. jsonTemp.Instructions = arr[77];
  477. jsonTemp.NationalCode = arr[57]; //国家医保药品目录编码
  478. jsonTemp.NationalName = arr[58]; //国家医保药品目录名称
  479. return jsonTemp;
  480. }
  481. /// <summary>
  482. /// 提交数据给IRIS
  483. /// </summary>
  484. /// <param name="code"></param>
  485. /// <param name="jaParam"></param>
  486. /// <returns></returns>
  487. private JObject applyDataToIris(string code, JArray jaParam)
  488. {
  489. JObject joIn = new JObject();
  490. JObject joRtn = new JObject();
  491. string outParam = "";
  492. try
  493. {
  494. joIn.Add(new JProperty("params", jaParam));
  495. joIn.Add("code", code);
  496. joIn.Add("updateUserID", Global.user.ID);
  497. InvokeHelper invoker = new InvokeHelper();
  498. string sInput = joIn.ToString();
  499. joRtn = invoker.invokeInsuService(sInput, "applyDataToIris");
  500. outParam = joRtn.ToString();
  501. return joRtn;
  502. }
  503. catch (Exception ex)
  504. {
  505. joRtn = JsonHelper.setExceptionJson(-1, "applyDataToIris", ex.Message);
  506. outParam = joRtn.ToString();
  507. return joRtn;
  508. }
  509. }
  510. /// <summary>
  511. /// 从TXT里导数据到IRIS
  512. /// </summary>
  513. /// <param name="txtPath"></param>
  514. /// <param name="singleRows"></param>
  515. /// <param name="direcType"></param>
  516. /// <param name="processBar"></param>
  517. /// <returns></returns>
  518. public JObject importDataToIrisByTxt(string txtPath, int size, int direcType, Sunny.UI.UIProcessBar processBar)
  519. {
  520. int errorCount = 0;
  521. string errorMsg = "";
  522. try
  523. {
  524. /*据说速度更快
  525. * https://www.cnblogs.com/eniac12/p/4398310.html
  526. * using (StreamReader sr = File.OpenText(fileName))
  527. {
  528. string s = String.Empty;
  529. while ((s = sr.ReadLine()) != null)
  530. {
  531. //do what you have to here
  532. }
  533. }
  534. Convert.ToString(a)
  535. */
  536. string[] lines = System.IO.File.ReadAllLines(txtPath);
  537. dynamic jaParams = new JArray();
  538. int rows = lines.Length;
  539. processBar.Maximum = rows;
  540. for (int i = 0; i < rows; i++)
  541. {
  542. processBar.Value = i + 1;
  543. Application.DoEvents();
  544. string lineTmp = lines[i];
  545. string[] arr = lineTmp.Split('\t');
  546. //判断是哪种目录类型
  547. string code = string.Empty;
  548. switch (direcType)
  549. {
  550. //药品
  551. case 1:
  552. {
  553. jaParams.Add(GetDrugsJsonByTxt(arr));
  554. break;
  555. }
  556. //诊疗
  557. case 2:
  558. {
  559. jaParams.Add(GetMedicalServiceJsonByTxt(arr));
  560. break;
  561. }
  562. //材料
  563. case 3:
  564. {
  565. jaParams.Add(GetMaterialJsonByTxt(arr));
  566. break;
  567. }
  568. //诊断
  569. case 4:
  570. {
  571. jaParams.Add(GetDiagnoseJsonByTxt(arr));
  572. break;
  573. }
  574. //手术
  575. case 5:
  576. {
  577. jaParams.Add(GetOperationJsonByTxt(arr));
  578. break;
  579. }
  580. //慢性病
  581. case 6:
  582. {
  583. jaParams.Add(GetChronicDiseaseJsonByTxt(arr));
  584. break;
  585. }
  586. //DRGs
  587. case 7:
  588. {
  589. jaParams.Add(GetDRGsJsonByTxt(arr));
  590. break;
  591. }
  592. //日间手术
  593. case 8:
  594. {
  595. jaParams.Add(GetDaySurgeryJsonByTxt(arr));
  596. break;
  597. }
  598. //中药饮片
  599. case 10:
  600. {
  601. jaParams.Add(GetChineseDrugJsonByTxt(arr));
  602. break;
  603. }
  604. //医疗机构制剂
  605. case 11:
  606. {
  607. jaParams.Add(GetHosPreparationJsonByTxt(arr));
  608. break;
  609. }
  610. }
  611. code = "09010035";
  612. //每50行提交一次给后台
  613. int currentRows = i + 1;
  614. if ((currentRows % size == 0) && (i != 0))
  615. {
  616. JObject joRtn = applyDataToIris(code, jaParams);
  617. if (joRtn["errorCode"].ToString() != "0")
  618. {
  619. errorCount = errorCount + 1;
  620. errorMsg = "\r\n" +errorMsg + joRtn["errorMessage"].ToString();
  621. }
  622. jaParams = new JArray();
  623. }
  624. if ((currentRows == rows) && (currentRows % size != 0))
  625. {
  626. JObject joRtn = applyDataToIris(code, jaParams);
  627. if (joRtn["errorCode"].ToString() != "0")
  628. {
  629. errorCount = errorCount + 1;
  630. errorMsg = "\r\n" + errorMsg + joRtn["errorMessage"].ToString();
  631. }
  632. jaParams = new JArray();
  633. }
  634. }
  635. return JsonHelper.setExceptionJson(0 - errorCount, errorMsg, null);
  636. }
  637. catch (Exception ex)
  638. {
  639. return JsonHelper.setExceptionJson(-1, "importDataToIrisByTxt", ex.Message);
  640. }
  641. }
  642. public JObject importDictionary(Sunny.UI.UIProcessBar uiProcessBar,JArray jaList,string type)
  643. {
  644. int errorCount = 0;
  645. string errorMsg = "",outParam = "", HBDictionaryDr ="";
  646. try
  647. {
  648. //插入并获取字典主表的DR
  649. JObject joData = new JObject();
  650. joData.Add("HospitalDr", Global.inf.hospitalDr);
  651. joData.Add("InterfaceDr", Global.inf.interfaceDr);
  652. joData.Add("InsuCode", type);
  653. JObject joRtn = mis.insertDictionary(joData);
  654. if (JsonHelper.parseIrisRtnValue(joRtn, out errorMsg) != 0)
  655. {
  656. return JsonHelper.setExceptionJson(-1, "insertDictionary", errorMsg);
  657. }
  658. else
  659. {
  660. HBDictionaryDr = JsonHelper.getDestValue(joRtn, "data.HBDictionaryDr");
  661. if (HBDictionaryDr == "")
  662. {
  663. return JsonHelper.setExceptionJson(-1, "insertDictionary", "HBDictionaryDr返回值为空");
  664. }
  665. }
  666. }
  667. catch (Exception ex)
  668. {
  669. return JsonHelper.setExceptionJson(-1, "insertDictionary", ex.Message);
  670. }
  671. JObject joReturn = new JObject();
  672. try
  673. {
  674. //插入字典明细表
  675. JArray jaParams = new JArray();
  676. int rows = jaList.Count ;
  677. uiProcessBar.Maximum = rows;
  678. for (int i = 0; i < jaList.Count ; i++)
  679. {
  680. uiProcessBar.Value = i + 1;
  681. dynamic joTmp = new JObject();
  682. joTmp.ID = "";
  683. joTmp.updateUserID = Global.user.ID;
  684. joTmp.HospitalDr = Global.inf.hospitalDr;
  685. joTmp.InterfaceDr = Global.inf.interfaceDr;
  686. joTmp.HBDictionaryDr = HBDictionaryDr;
  687. joTmp.Code = jaList[i]["value"].ToString();
  688. joTmp.Descripts = jaList[i]["label"].ToString();
  689. jaParams.Add(joTmp);
  690. //每50行提交一次给后台
  691. int currentRows = i + 1;
  692. if ((currentRows % 50 == 0) && (i != 0))
  693. {
  694. JObject joRtn = mis.insertDictionaryDataDetail(jaParams);
  695. if (joRtn["errorCode"].ToString() != "0")
  696. {
  697. errorCount = errorCount + 1;
  698. errorMsg = "\r\n" + errorMsg + joRtn["errorMessage"].ToString();
  699. }
  700. jaParams = new JArray();
  701. }
  702. if ((currentRows == rows) && (currentRows % 50 != 0))
  703. {
  704. JObject joRtn = mis.insertDictionaryDataDetail(jaParams);
  705. if (joRtn["errorCode"].ToString() != "0")
  706. {
  707. errorCount = errorCount + 1;
  708. errorMsg = "\r\n" + errorMsg + joRtn["errorMessage"].ToString();
  709. }
  710. jaParams = new JArray();
  711. }
  712. }
  713. joReturn = JsonHelper.setExceptionJson(0 - errorCount, errorMsg, null);
  714. outParam = joReturn.ToString();
  715. return joReturn;
  716. }
  717. catch (Exception ex)
  718. {
  719. joReturn = JsonHelper.setExceptionJson(-1, "importDictinary", ex.Message);
  720. outParam = joReturn.ToString();
  721. return joReturn;
  722. }
  723. }
  724. }
  725. }