BasicData.cs 92 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using PTMedicalInsurance.Business;
  4. using PTMedicalInsurance.Helper;
  5. using PTMedicalInsurance.Variables;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.IO;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using System.Windows.Forms;
  16. using PTMedicalInsurance.FormSetter;
  17. using PTMedicalInsurance.Common;
  18. namespace PTMedicalInsurance.Forms
  19. {
  20. public partial class BasicData : Form
  21. {
  22. //设置实例
  23. CenterBusiness cBus = new CenterBusiness();
  24. HisMainBusiness hBus = new HisMainBusiness();
  25. HisIrisServices hIS = new HisIrisServices();
  26. MIIrisServices mIS = new MIIrisServices();
  27. InvokeHelper invoker = new InvokeHelper();
  28. InsuServices Iis = new InsuServices();
  29. //1.声明自适应类实例
  30. AutoResizeForm asc = new AutoResizeForm();
  31. public JObject joSelectedInsuInfo;
  32. public int insuInfoIndex = 0;
  33. public int idInfoIndex = 0;
  34. int currentPageIndex = 0;
  35. DataTable dtExport;
  36. private frmProcessBar bar;
  37. private int totalDataCount = 100; // 假设有100条数据
  38. private int successfulCount = 0; // 成功处理的数据计数器
  39. private int currentCount = 0; // 当前正在处理的数据计数器
  40. public enum ProcessingType
  41. {
  42. AuxAndCellPrice, // 默认值为0
  43. Aux, // 默认值为1
  44. CellPrice // 默认值为2
  45. }
  46. public BasicData()
  47. {
  48. InitializeComponent();
  49. rbgDirecType.SelectedIndex = 0;
  50. rbgDirecType_C.SelectedIndex = 0;
  51. rbSingleDown.Checked = true;
  52. this.rbgDirecType.ValueChanged += new Sunny.UI.UIRadioButtonGroup.OnValueChanged(this.rbgDirecType_ValueChanged);
  53. this.pgDownload.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgDownload_PageChanged);
  54. this.pgCenterDirect.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgCenterDirect_PageChanged);
  55. Font rowFont = new Font("UTF-8", 8);
  56. Font columnFont = new Font("UTF-8", 9);
  57. rbgDirecType.SelectedIndex = 8;
  58. rbAll.Checked = true;
  59. //tabControl1.SelectedIndex = 1;
  60. //this.StartPosition = FormStartPosition.CenterParent;
  61. asc.controllInitializeSize(this);
  62. asc.controlAutoSize(this);
  63. TexDate.Text = DateTime.Today.ToString("yyyy-MM-01");
  64. }
  65. #region 函数封装
  66. private void InitBackGroundWorker()
  67. {
  68. backgroundWorker = new BackgroundWorker();
  69. backgroundWorker.WorkerReportsProgress = true;
  70. backgroundWorker.WorkerSupportsCancellation = true;
  71. backgroundWorker.DoWork += BackgroundWorker_DoWork;
  72. backgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged;
  73. backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted;
  74. }
  75. private void ProcessData(int index)
  76. {
  77. }
  78. private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
  79. {
  80. var data = (dynamic)e.Argument;
  81. int total = data.Total;
  82. ProcessingType type = data.Type;
  83. string sqlStr = $"select * from HB_MedInsuMapRelation where Interface_Dr='{Global.inf.interfaceDr}' and Hospital_Dr ='{Global.inf.hospitalDr}'";
  84. JObject joSqlstr = new JObject();
  85. joSqlstr.Add("sqlStr", sqlStr);
  86. JObject joRtn = mIS.QueryMappedData(joSqlstr, "查询所有已对照数据");
  87. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  88. for (int i = 0; i < total; i++)
  89. {
  90. switch (type)
  91. {
  92. case ProcessingType.Aux:
  93. ProcessData(i);
  94. break;
  95. case ProcessingType.CellPrice:
  96. ProcessData(i);
  97. break;
  98. case ProcessingType.AuxAndCellPrice:
  99. ProcessData(i);
  100. break;
  101. default:
  102. throw new ArgumentException("Unsupported processing type.");
  103. }
  104. // 更新进度
  105. int percent = (i + 1) * 100 / total;
  106. backgroundWorker.ReportProgress(percent, new { Total = total, Current = i + 1, Success = successfulCount });
  107. // 检查是否取消
  108. if (backgroundWorker.CancellationPending)
  109. {
  110. e.Cancel = true;
  111. break;
  112. }
  113. }
  114. }
  115. private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
  116. {
  117. var data = (dynamic)e.UserState;
  118. bar.UpdateProgress(e.ProgressPercentage, data.Total, data.Current, data.Success);
  119. }
  120. private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  121. {
  122. if (e.Cancelled)
  123. {
  124. MessageBox.Show("Processing was cancelled.");
  125. }
  126. else if (e.Error != null)
  127. {
  128. MessageBox.Show("An error occurred: " + e.Error.Message);
  129. }
  130. else
  131. {
  132. MessageBox.Show("Processing completed successfully.");
  133. }
  134. // 关闭进度条窗口
  135. bar.Close();
  136. }
  137. private void queryInsuDirectory(int currentPage, int pageSize, int directoryType, int interfaceDr, string code)
  138. {
  139. try
  140. {
  141. string dirCode = "";
  142. string dirName = "";
  143. string approvalNO = "";
  144. string DosageForm = "";
  145. string Specifications = "";
  146. string manufacturers = "";
  147. Sunny.UI.UIDataGridView dgv;
  148. Sunny.UI.UIPagination pg;
  149. if (tabControl1.SelectedIndex == 0)
  150. {
  151. dirCode = tbDirectoryCode.Text;
  152. dirName = tbDircetoryName.Text;
  153. approvalNO = "";
  154. dgv = dgvDirectoy;
  155. pg = pgDownload;
  156. }
  157. else
  158. {
  159. dirName = tbCenterDirectoryFilter.Text;
  160. dirCode = tbInsuCode.Text;
  161. dgv = dgvCenterDirectory;
  162. approvalNO = tbApprovalNO.Text;
  163. pg = pgCenterDirect;
  164. manufacturers = tbManufacturer.Text;
  165. DosageForm = tbDosageForm.Text;
  166. Specifications = tbSpecifications.Text;
  167. }
  168. JObject joInput = new JObject {
  169. { "currentPage" , currentPage },
  170. { "pageSize" , pageSize },
  171. { "serviceCode" , code },
  172. { "directoryType" , directoryType },
  173. { "directoryCode" , dirCode },
  174. { "directoryName" , dirName },
  175. { "approvalNO" , approvalNO },
  176. { "dosageForm" , DosageForm },
  177. { "specifications" , Specifications },
  178. { "manufacturers" , manufacturers },
  179. { "directoryDr" , interfaceDr }
  180. };
  181. JObject joRtn = mIS.getMIDirectoryByPagination(joInput);
  182. if (joRtn["errorCode"].ToString() != "0")
  183. {
  184. MessageBox.Show("IRIS数据返回错误:" + joRtn["errorMessage"].ToString());
  185. return;
  186. }
  187. if (joRtn["result"]["rows"] == null)
  188. {
  189. MessageBox.Show("该节点不存在");
  190. return;
  191. }
  192. if (joRtn["result"]["total"].ToString() == "0")
  193. {
  194. MessageBox.Show("未查询到数据");
  195. dgv.DataSource = null;
  196. return;
  197. }
  198. DataTable dt = (DataTable)joRtn["result"]["rows"].ToObject(typeof(DataTable));
  199. int totalCount = int.Parse(joRtn["result"]["total"].ToString());
  200. pg.TotalCount = totalCount;
  201. pg.PageSize = pageSize;
  202. dgv.DataSource = dt;
  203. dgv.Columns[0].ReadOnly = true;
  204. }
  205. catch (Exception ex)
  206. {
  207. MessageBox.Show("查询异常:" + ex.Message);
  208. }
  209. }
  210. private void setHeaderTxt(int directoryType, Sunny.UI.UIDataGridView dgv)
  211. {
  212. GridViewSetter gvdSetter = new GridViewSetter();
  213. switch (directoryType)
  214. {
  215. case 0://药品
  216. {
  217. gvdSetter.SetHeaderTextOfDrug(dgv);
  218. break;
  219. }
  220. case 1://诊疗
  221. {
  222. gvdSetter.SetHeaderTextOfMedicalService(dgv);
  223. break;
  224. }
  225. case 2://材料
  226. {
  227. gvdSetter.SetHeaderTextOfMaterials(dgv);
  228. break;
  229. }
  230. case 3://疾病诊断
  231. {
  232. gvdSetter.SetHeaderTextOfDiagnose(dgv);
  233. break;
  234. }
  235. case 4://手术
  236. {
  237. gvdSetter.SetHeaderTextOfDiagnose(dgv);
  238. break;
  239. }
  240. case 5://慢性病
  241. {
  242. gvdSetter.SetHeaderTextOfDiagnose(dgv);
  243. break;
  244. }
  245. case 6://DRGs
  246. {
  247. gvdSetter.SetHeaderTextOfDiagnose(dgv);
  248. break; ;
  249. }
  250. case 7://日间手术
  251. {
  252. gvdSetter.SetHeaderTextOfDiagnose(dgv);
  253. break; ;
  254. }
  255. case 8://字典表
  256. {
  257. gvdSetter.SetHeaderTextOfDictionary(dgv);
  258. break;
  259. }
  260. case 9://中药饮片下载
  261. {
  262. gvdSetter.SetHeaderTextOfChineseMedicine(dgv);
  263. break;
  264. }
  265. case 10://医药机构制剂目录下载
  266. {
  267. gvdSetter.SetHeaderTextOfPreparation(dgv);
  268. break;
  269. }
  270. case 11://肿瘤形态学下载
  271. {
  272. gvdSetter.SetHeaderTextOfTumorMorphology(dgv);
  273. break;
  274. }
  275. case 12:
  276. {
  277. //中医疾病下载
  278. gvdSetter.GetChineseDiagnoseJsonByTxt(dgv);
  279. // ICPC3
  280. //gvdSetter.SetICPCAdmReasonHeader(dgv);
  281. break;
  282. }
  283. case 13:
  284. {
  285. //中医证候下载
  286. gvdSetter.GetTCMSyndromeJsonByTxt(dgv);
  287. // ICPC3
  288. //gvdSetter.SetICPCTreatmentHeader(dgv);
  289. break;
  290. }
  291. case 14://民族药品
  292. {
  293. gvdSetter.GetEthnicMedicineJsonByTxt(dgv);
  294. break;
  295. }
  296. case 15://目录信息查询
  297. {
  298. gvdSetter.GetMedInsuCatalogJsonByTxt(dgv);
  299. break;
  300. }
  301. case 16://医疗与医保目录匹配关系查询
  302. {
  303. gvdSetter.GetMedInsuCorrespondencJsonByTxt(dgv);
  304. break;
  305. }
  306. case 17://医药机构目录匹配查询
  307. {
  308. gvdSetter.GetMedInstCorrespondencJsonByTxt(dgv);
  309. break;
  310. }
  311. case 18://医保目录限价查询
  312. {
  313. gvdSetter.GetMedInsuFixedPriceJsonByTxt(dgv);
  314. break;
  315. }
  316. case 19://医保目录先自付比例下载
  317. {
  318. gvdSetter.GetMedInsuFirstPayProportionJsonByTxt(dgv);
  319. break;
  320. }
  321. case 20://医药机构信息
  322. {
  323. gvdSetter.GetMedicalInstitutionJsonByTxt(dgv);
  324. break;
  325. }
  326. }
  327. gvdSetter.DatagridviewColumnWidthAdaptation(dgv);
  328. }
  329. private void queryHISInsuDirectory(int directoryType, int pageIndex, int count, Sunny.UI.UIDataGridView dgv, int interfaceDr)
  330. {
  331. string code = "09010042";
  332. if (tabControl1.SelectedIndex == 0)
  333. {
  334. if (rbgDirecType.SelectedIndex == 20)
  335. {
  336. code = "090100XX";
  337. }
  338. else if (rbgDirecType.SelectedIndex == 8)
  339. {
  340. code = "09010043";
  341. }
  342. else
  343. {
  344. code = "09010042";
  345. }
  346. if (rbgDirecType.SelectedIndex <= 13)
  347. {
  348. queryInsuDirectory(pageIndex, count, directoryType + 1, interfaceDr, code);
  349. setHeaderTxt(directoryType, dgv);
  350. }
  351. else //几个医保查询该部分数据不存数据库只是临时查询(除医疗机构信息查询外)
  352. {
  353. //生成DataView列
  354. //setHeaderTxt(directoryType, dgv);
  355. string pages, recordCounts, errorMessage, sOutpar;
  356. dynamic joData = GetInput(rbgDirecType.SelectedIndex, out TradeEnum trade);
  357. JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(trade, joData);
  358. if (joRtn["infcode"].ToString() == "0")
  359. {
  360. try
  361. {
  362. Sunny.UI.UIPagination pg;
  363. dgv = dgvDirectoy;
  364. pg = pgDownload;
  365. DataTable dt;
  366. if (rbgDirecType.SelectedIndex == 20)
  367. {
  368. dt = (DataTable)joRtn["output"]["medinsinfo"].ToObject(typeof(DataTable));
  369. if (joRtn["output"]["medinsinfo"].ToString() == "")
  370. {
  371. MessageBox.Show("查询成功,但返回结果集为空!");
  372. //return;
  373. }
  374. pg.TotalCount = 50;
  375. pg.PageSize = 50;
  376. }
  377. else
  378. {
  379. pages = joRtn["output"]["pages"].ToString(); //页数
  380. recordCounts = joRtn["output"]["recordCounts"].ToString(); //总记录条数
  381. dt = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
  382. if (recordCounts == "0")
  383. {
  384. MessageBox.Show("查询成功,但返回结果集为空!");
  385. //return;
  386. }
  387. pg.TotalCount = int.Parse(recordCounts);
  388. pg.PageSize = int.Parse(TexBYSJL.Text); //int.Parse(pages);
  389. }
  390. dgv.DataSource = dt;
  391. dgv.Columns[0].ReadOnly = true;
  392. }
  393. catch (Exception ex)
  394. {
  395. MessageBox.Show("查询异常:" + ex.Message);
  396. }
  397. }
  398. else
  399. {
  400. errorMessage = "调用交易" + trade.GetCode() + "出现错误,请查看日志!"; //joImportRtn["errorMessage"].ToString();
  401. MessageBox.Show(errorMessage);
  402. return;
  403. }
  404. }
  405. }
  406. else
  407. {
  408. queryInsuDirectory(pageIndex, count, directoryType + 1, interfaceDr, code);
  409. setHeaderTxt(directoryType, dgv);
  410. }
  411. GridViewSetter gridSetter = new GridViewSetter();
  412. gridSetter.DatagridviewColumnWidthAdaptation(dgvCenterDirectory);
  413. }
  414. private int queryHISDirectory(int currentPage, int pageSize, out string errMsg)
  415. {
  416. errMsg = "";
  417. string directoryType = string.Empty;
  418. switch (rbgDirecType_C.SelectedIndex)
  419. {
  420. case 0:
  421. {
  422. directoryType = "drugs";
  423. break;
  424. }
  425. case 1:
  426. {
  427. directoryType = "diagnosi";
  428. break;
  429. }
  430. case 2:
  431. {
  432. directoryType = "consumables";
  433. break;
  434. }
  435. }
  436. JObject joHISRtn = new JObject();
  437. JObject joRtn = new JObject();
  438. InvokeHelper invoker = new InvokeHelper();
  439. string flag = "";
  440. //全部是先调HIS,然后再匹配医保平台的对照关系
  441. if (rbAll.Checked)
  442. {
  443. JArray jaPagination = new JArray();
  444. JArray jaParams = new JArray();
  445. flag = "All";
  446. dynamic joParam = new JObject();
  447. joParam.code = "";
  448. joParam.descripts = "";
  449. joParam.FindType = new JArray();
  450. joParam.TypeID = "";
  451. joParam.alias = tbHISDirectoryFilter.Text;
  452. joParam.include = "Hosp";
  453. joParam.groupID = "324";
  454. joParam.hospID = Global.inf.hisHospitalDr;
  455. joParam.interfaceDr = Global.inf.interfaceDr;
  456. joParam.type = directoryType;
  457. joParam.flag = flag;
  458. joParam.specInput = txtSpecFilter.Text.Trim();
  459. jaParams.Add(joParam);
  460. dynamic joPagination = new JObject();
  461. joPagination.pageSize = pageSize;
  462. //joPagination.pageSize = 2;
  463. joPagination.currentPage = currentPage;
  464. joPagination.sortColumn = "Code";
  465. joPagination.sortOrder = "asc";
  466. jaPagination.Add(joPagination);
  467. //该服务需要改写,需要跟(CloudMedicalInsurancePlatform.Tables.MapRelation)进行关联
  468. //joInParams.code = "09010038";
  469. if (hIS.getHISDir(jaPagination, jaParams, out joHISRtn, out errMsg) != 0)
  470. {
  471. return -1;
  472. }
  473. joRtn = mIS.ConvertHISDir(joHISRtn);
  474. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  475. {
  476. return -1;
  477. }
  478. }
  479. //已对照是先调云医保,然后再匹配HIS
  480. if (rbMaped.Checked)
  481. {
  482. JArray jaPagination = new JArray();
  483. JArray jaParams = new JArray();
  484. flag = "Maped";
  485. dynamic joParam = new JObject();
  486. joParam.alias = tbHISDirectoryFilter.Text;
  487. joParam.HospitalDr = Global.inf.hospitalDr;
  488. joParam.InterfaceDr = Global.inf.interfaceDr;
  489. joParam.hisType = directoryType;
  490. jaParams.Add(joParam);
  491. dynamic joPagination = new JObject();
  492. joPagination.pageSize = pageSize;
  493. joPagination.currentPage = currentPage;
  494. joPagination.sortColumn = "HisCode";
  495. joPagination.sortOrder = "asc";
  496. jaPagination.Add(joPagination);
  497. JObject joMIRtn = mIS.GetMappedHISDir(jaPagination, jaParams);
  498. if (JsonHelper.parseIrisRtnValue(joMIRtn, out errMsg) != 0)
  499. {
  500. return -1;
  501. }
  502. //传给HIS,进行匹配
  503. joParam = new JObject();
  504. joParam.TotalCount = joMIRtn["result"]["TotalCount"];
  505. joParam.type = directoryType;
  506. joParam.flag = flag;
  507. joParam.hospID = Global.inf.hisHospitalDr;
  508. joParam.interfaceDr = Global.inf.interfaceDr;
  509. joParam.alias = tbHISDirectoryFilter.Text;
  510. joParam.include = "Hosp";
  511. joParam.groupID = "324";
  512. joParam.compareArr = joMIRtn["result"]["Data"];
  513. jaParams = new JArray();
  514. jaParams.Add(joParam);
  515. if (hIS.getHISDir(jaPagination, jaParams, out joRtn, out errMsg) != 0)
  516. {
  517. return -1;
  518. }
  519. }
  520. //if (rbNoMaped.Checked) { flag = "NoMaped"; }
  521. if (rbNoMaped.Checked)
  522. {
  523. JArray jaPagination = new JArray();
  524. JArray jaParams = new JArray();
  525. flag = "All";
  526. dynamic joParam = new JObject();
  527. joParam.code = "";
  528. joParam.descripts = "";
  529. joParam.FindType = new JArray();
  530. joParam.TypeID = "";
  531. joParam.alias = tbHISDirectoryFilter.Text;
  532. joParam.include = "Hosp";
  533. joParam.groupID = "324";
  534. joParam.hospID = Global.inf.hisHospitalDr;
  535. joParam.interfaceDr = Global.inf.interfaceDr;
  536. joParam.type = directoryType;
  537. joParam.flag = flag;
  538. joParam.specInput = "";
  539. jaParams.Add(joParam);
  540. dynamic joPagination = new JObject();
  541. joPagination.pageSize = pageSize;
  542. //joPagination.pageSize = 2;
  543. joPagination.currentPage = currentPage;
  544. joPagination.sortColumn = "Code";
  545. joPagination.sortOrder = "asc";
  546. jaPagination.Add(joPagination);
  547. //1.获取全部HIS目录
  548. if (hIS.getHISDir(jaPagination, jaParams, out joHISRtn, out errMsg) != 0)
  549. {
  550. return -1;
  551. }
  552. joRtn = mIS.GetNoMappHISDir(joHISRtn);
  553. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  554. {
  555. return -1;
  556. }
  557. }
  558. DataTable dt = (DataTable)joRtn["result"]["Data"].ToObject(typeof(DataTable));
  559. dtExport = dt;
  560. int totalCount = int.Parse(joRtn["result"]["TotalCount"].ToString());
  561. pgHISDirect.TotalCount = totalCount;
  562. //if (rbNoMaped.Checked)
  563. // pgHISDirect.PageSize = pageSize;
  564. //else
  565. // pgHISDirect.PageSize = 50;
  566. pgHISDirect.PageSize = pageSize;
  567. dgvHISDirectory.DataSource = null;
  568. dgvHISDirectory.DataSource = dt;
  569. dgvHISDirectory.Columns[0].ReadOnly = true;
  570. GridViewSetter gridSetter = new GridViewSetter();
  571. gridSetter.SetHeaderTextOfMapping_HisDirectory(dgvHISDirectory);
  572. gridSetter.DatagridviewColumnWidthAdaptation(dgvHISDirectory);
  573. return 0;
  574. }
  575. private void queryCenterDirectory_09010012(int currentPage, int pageSize)
  576. {
  577. string directoryType = string.Empty;
  578. switch (rbgDirecType_C.SelectedIndex)
  579. {
  580. case 0:
  581. {
  582. directoryType = "drugs";
  583. break;
  584. }
  585. case 1:
  586. {
  587. directoryType = "diagnosi";
  588. break;
  589. }
  590. case 2:
  591. {
  592. directoryType = "consumables";
  593. break;
  594. }
  595. }
  596. dynamic joInParams = new JObject();
  597. joInParams.pagination = new JArray() as dynamic;
  598. joInParams.session = new JArray() as dynamic;
  599. JArray jaParams = new JArray();
  600. dynamic joParams = new JObject();
  601. joParams.code = "";
  602. joParams.descripts = "";
  603. joParams.FindType = new JArray();
  604. joParams.TypeID = "";
  605. joParams.alias = "";
  606. joParams.include = "Hosp";
  607. joParams.groupID = "324";
  608. joParams.hospID = "25";
  609. joParams.type = directoryType;
  610. joParams.specInput = "";
  611. jaParams.Add(joParams);
  612. joInParams.Add("params", JArray.FromObject(jaParams));
  613. dynamic joSession = new JObject();
  614. joSession.userID = "";
  615. joSession.locID = "";
  616. joSession.groupID = "";
  617. joSession.hospID = "";
  618. joSession.sessionID = "";
  619. joSession.hospCode = "";
  620. joSession.language = "";
  621. joSession.hostName = "";
  622. joSession.ipv4 = "";
  623. joSession.ipv6 = "";
  624. joSession.mac = "";
  625. joInParams.session.Add(joSession);
  626. dynamic joPagination = new JObject();
  627. joPagination.pageSize = pageSize;
  628. joPagination.currentPage = currentPage;
  629. joPagination.sortColumn = "Code";
  630. joPagination.sortOrder = "asc";
  631. joInParams.pagination.Add(joPagination);
  632. joInParams.code = "09010012";
  633. string sInput = joInParams.ToString();
  634. string sRtn = invoker.invokeInsuService(joInParams, "");
  635. JObject jsonRtn = JObject.Parse(sRtn);
  636. if (jsonRtn["result"]["Data"] == null)
  637. {
  638. MessageBox.Show("该节点不存在");
  639. return;
  640. }
  641. JObject joRtn = JObject.Parse(sRtn);
  642. DataTable dt = (DataTable)joRtn["result"]["Data"].ToObject(typeof(DataTable));
  643. int totalCount = int.Parse(joRtn["result"]["TotalCount"].ToString());
  644. pgCenterDirect.TotalCount = totalCount;
  645. pgCenterDirect.PageSize = 50;
  646. dgvCenterDirectory.DataSource = dt;
  647. }
  648. private void Mapping()
  649. {
  650. int iHis = dgvHISDirectory.CurrentRow.Index;
  651. if (dgvCenterDirectory.CurrentRow == null)
  652. {
  653. MessageBox.Show("请查询中心目录");
  654. return;
  655. }
  656. int iCenter = dgvCenterDirectory.CurrentRow.Index;
  657. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  658. DataTable dtCenter = (DataTable)dgvCenterDirectory.DataSource;
  659. dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Code"].Value.ToString();
  660. dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Name"].Value.ToString();
  661. int hisType = rbgDirecType_C.SelectedIndex + 1;
  662. string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString(); ;
  663. JArray jaParams = new JArray();
  664. dynamic jsonTemp = new JObject();
  665. jsonTemp.ID = dtHis.Rows[iHis]["MapID"];
  666. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  667. jsonTemp.updateUserID = Global.user.ID;
  668. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  669. jsonTemp.HISCode = dgvHISDirectory.Rows[iHis].Cells["itemCode"].Value;
  670. jsonTemp.HISName = dgvHISDirectory.Rows[iHis].Cells["itemDesc"].Value;
  671. jsonTemp.ChargeItemDr = dtHis.Rows[iHis]["ID"];
  672. jsonTemp.DiretoryDr = dtCenter.Rows[iCenter]["medInsuDirectoryID"];
  673. //1.已对照 2.已对照但未上传 3 已对照且已上传
  674. jsonTemp.State = 1;
  675. jsonTemp.HisType = hisType;
  676. jsonTemp.HisTypeName = hisTypeName;
  677. jsonTemp.InsuCode = dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Code"].Value;
  678. jsonTemp.InsuName = dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Name"].Value;
  679. jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  680. jaParams.Add(jsonTemp);
  681. JObject joIn = new JObject();
  682. joIn.Add(new JProperty("params", jaParams));
  683. joIn.Add("code", "09010040");
  684. InvokeHelper invoker = new InvokeHelper();
  685. JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "插入对照信息");
  686. //JObject joRtn = JObject.Parse(irisRtn);
  687. if ((int)joRtn["errorCode"] == 0)
  688. {
  689. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "已对照";
  690. }
  691. else
  692. {
  693. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "对照失败";
  694. }
  695. }
  696. private void CancleMapping()
  697. {
  698. int iHis = dgvHISDirectory.CurrentRow.Index;
  699. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  700. JArray jaParams = new JArray();
  701. dynamic jsonTemp = new JObject();
  702. jsonTemp.ID = dtHis.Rows[iHis]["MapID"];
  703. jsonTemp.HospitalDr = Global.inf.hospitalDr;
  704. jsonTemp.updateUserID = Global.user.ID;
  705. jsonTemp.InterfaceDr = Global.inf.interfaceDr;
  706. jsonTemp.HISCode = dgvHISDirectory.Rows[iHis].Cells["itemCode"].Value;
  707. jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  708. jaParams.Add(jsonTemp);
  709. JObject joIn = new JObject();
  710. joIn.Add(new JProperty("params", jaParams));
  711. joIn.Add("code", "09010041");
  712. InvokeHelper invoker = new InvokeHelper();
  713. JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "取消对照");
  714. if ((int)joRtn["errorCode"] == 0)
  715. {
  716. dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = "";
  717. dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = "";
  718. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "";
  719. }
  720. else
  721. {
  722. dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "取消失败";
  723. }
  724. }
  725. public void loadTextDebug()
  726. {
  727. DataImoport bus = new DataImoport();
  728. string txtPath = @"E:\insu\Demo\bin\Debug\20230101535395327567680436.txt";
  729. JObject joImportRtn = bus.importDataToIrisByTxt(txtPath, 50, 2, uiProcessBar1);
  730. }
  731. /// <summary>
  732. /// 医保目录单个版本号的下载
  733. /// </summary>
  734. /// <param name="ver"></param>
  735. /// <param name="directoryType"></param>
  736. /// <param name="uiProcessBar"></param>
  737. /// <param name="errorMessage"></param>
  738. /// <returns></returns>
  739. public int downloadDicionary(JObject joData, Sunny.UI.UIProcessBar uiProcessBar, string dictCode,out string errorMessage)
  740. {
  741. errorMessage = "";
  742. int iResult = -1;
  743. try
  744. {
  745. JObject joRtn = cBus.DownDictionay(joData);
  746. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMessage) == 0)
  747. {
  748. DataImoport DI = new DataImoport();
  749. JArray jaList = JArray.Parse(JsonHelper.getDestValue(joRtn, "output.list"));
  750. if (jaList.Count > 0)
  751. {
  752. JObject joImportRtn = DI.importDictionary(uiProcessBar, jaList, dictCode);
  753. if (JsonHelper.parseIrisRtnValue(joImportRtn, out errorMessage) == 0)
  754. {
  755. iResult = 0;
  756. }
  757. else
  758. {
  759. errorMessage = "导入数据出现错误,请查看日志!" + errorMessage;
  760. }
  761. }
  762. else {
  763. errorMessage = "中心返回数据为空!";
  764. }
  765. }
  766. return iResult;
  767. }
  768. catch (Exception ex)
  769. {
  770. errorMessage = "downloadDicionary提示:" + ex.Message;
  771. return -1;
  772. }
  773. }
  774. #endregion
  775. private void Form1_Load(object sender, EventArgs e)
  776. {
  777. this.WindowState = FormWindowState.Maximized;
  778. rbgDirecType.ValueChanged += new Sunny.UI.UIRadioButtonGroup.OnValueChanged(rbgDirecType_ValueChanged);
  779. LabExplain.Visible = false;
  780. //查询区域通用目录
  781. MIIrisServices mIS = new MIIrisServices();
  782. JObject joRtnTY = mIS.getInterface_TY(Global.inf.interfaceDr.ToString(), "");
  783. Global.inf.InsuCurrencyCataLogue = JsonHelper.getDestValue(joRtnTY, "InsuCurrencyCataLogue"); //通用目录编码 6
  784. string InterfaceName_TY = JsonHelper.getDestValue(joRtnTY, "InterfaceName_TY"); //通用目录接口名称
  785. string HospName_TY = JsonHelper.getDestValue(joRtnTY, "HospitalName"); //通用目录所属医院名称
  786. Global.inf.HospitalDr_TY = JsonHelper.getDestValue(joRtnTY, "HospitalDr_TY"); //通用目录所属医院ID
  787. }
  788. private void btnDownload_Click(object sender, EventArgs e)
  789. {
  790. string errorMessage = string.Empty;
  791. string ver = tbVer.Text;
  792. JObject input = new JObject();
  793. input["ver"] = ver;
  794. // 目录查询
  795. switch(rbgDirecType.SelectedIndex)
  796. {
  797. case 15:
  798. break;
  799. case 8: //字典
  800. {
  801. if (tbDicDate.Text == "")
  802. {
  803. MessageBox.Show("请输入查询日期!");
  804. return;
  805. }
  806. // 支持批量
  807. string[] dictText = tbDicType.Text.Trim().Split(",".ToCharArray());
  808. dictText.ToList().ForEach((dict) =>
  809. {
  810. this.downloadDict(dict);
  811. });
  812. break;
  813. }
  814. //case 12:
  815. // {
  816. // downloadMedData(TradeEnum.ICPC3AdmReason, ver, uiProcessBar1);
  817. // break;
  818. // }
  819. //case 13:
  820. // {
  821. // downloadMedData(TradeEnum.ICPC3Treatment, ver, uiProcessBar1);
  822. // break;
  823. // }
  824. default:
  825. {
  826. MedDirDownloadProcess mp = new MedDirDownloadProcess();
  827. if (rbSingleDown.Checked)
  828. {
  829. if (mp.SingleDownload(ver, rbgDirecType.SelectedIndex, uiProcessBar1, out errorMessage) != 0)
  830. {
  831. MessageBox.Show("医保目录下载失败:" + errorMessage);
  832. return;
  833. }
  834. }
  835. if (rbAutoDown.Checked)
  836. {
  837. mp.VerChangeEvent += Mp_VerChangeEvent;
  838. if (mp.AutoDownload(rbgDirecType.SelectedIndex, uiProcessBar1, out errorMessage) != 0)
  839. {
  840. MessageBox.Show("医保目录下载失败:" + errorMessage);
  841. return;
  842. }
  843. }
  844. break;
  845. }
  846. }
  847. btnQuery_Click(sender, e);
  848. }
  849. private void Mp_VerChangeEvent(object sender, string ver)
  850. {
  851. tbVer.Text = ver;
  852. }
  853. private void downloadDict(string dictCode)
  854. {
  855. try
  856. {
  857. string errorMessage = "";
  858. dynamic joData = new JObject();
  859. joData.type = dictCode; //字典类型
  860. joData.parentValue = ""; //父字典键值
  861. joData.admdvs = ""; //行政区划 就医地
  862. joData.date = tbDicDate.Text; //查询日期
  863. joData.vali_flag = ""; //有效标志
  864. if (downloadDicionary(joData, uiProcessBar1,dictCode, out errorMessage) != 0)
  865. {
  866. MessageBox.Show("医保字典下载失败:" + errorMessage);
  867. }
  868. }
  869. catch (Exception e)
  870. {
  871. }
  872. }
  873. private int downloadMedData(TradeEnum trade,string version,Sunny.UI.UIProcessBar uiProcessBar)
  874. {
  875. string errorMessage = "";
  876. if (rbAutoDown.Checked)
  877. {
  878. JObject joMaxVerNO = mIS.getDirectoryMaxVersionNO(rbgDirecType.SelectedIndex);
  879. string ver = joMaxVerNO["result"]["MaxVersionNO"].ToString();
  880. if (!string.IsNullOrEmpty(ver))
  881. {
  882. version = ver;
  883. tbVer.Text = ver;
  884. }
  885. }
  886. JObject joRtn = cBus.DownDirecotry(trade, version);
  887. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMessage) == 0)
  888. {
  889. //解析
  890. DataImoport DI = new DataImoport();
  891. JObject joImportRtn = DI.importMedDataToIris(trade,joRtn,uiProcessBar);
  892. if (JsonHelper.parseIrisRtnValue(joImportRtn, out errorMessage) == 0)
  893. {
  894. //递归调用
  895. if (rbAutoDown.Checked)
  896. {
  897. downloadMedData(trade, version, uiProcessBar);
  898. }
  899. }
  900. return 0;
  901. }
  902. MessageBox.Show(errorMessage);
  903. return -1;
  904. }
  905. private void btnQuery_Click(object sender, EventArgs e)
  906. {
  907. #region 校验查询条件
  908. if ((rbgDirecType.SelectedIndex < 0) || (rbgDirecType.SelectedIndex > 20))
  909. {
  910. MessageBox.Show("请先选择查询类型!");
  911. return;
  912. }
  913. if (rbgDirecType.SelectedIndex > 13)
  914. {
  915. if (rbgDirecType.SelectedIndex != 20)
  916. {
  917. if ((TexDate.Text == "") || (TexDate.Text == "输入日期 2021-01-01"))
  918. {
  919. MessageBox.Show("查询条件-请输入查询日期!");
  920. return;
  921. }
  922. if ((TexDQYS.Text == "") || (TexDQYS.Text == "当前页数"))
  923. {
  924. MessageBox.Show("查询条件-请输入当前页数!");
  925. return;
  926. }
  927. if ((TexBYSJL.Text == "") || (TexBYSJL.Text == "本页数据量"))
  928. {
  929. MessageBox.Show("查询条件-请输入本页数据量!");
  930. return;
  931. }
  932. }
  933. else
  934. {
  935. if ((TexYYMC.Text == "") || (TexYYMC.Text == "输入医院名称模糊查找"))
  936. {
  937. MessageBox.Show("查询条件-请输入医院名称模糊查找!");
  938. return;
  939. }
  940. }
  941. }
  942. #endregion
  943. queryHISInsuDirectory(rbgDirecType.SelectedIndex, 1, 20, dgvDirectoy, Global.inf.interfaceDr);
  944. }
  945. private void btnQueryHISDirectory_Click(object sender, EventArgs e)
  946. {
  947. int iCount = 50;
  948. if (rbNoMaped.Checked)
  949. {
  950. iCount = 300;
  951. }
  952. string errMsg;
  953. if (queryHISDirectory(1, iCount, out errMsg) != 0)
  954. {
  955. MessageBox.Show(errMsg);
  956. return;
  957. }
  958. }
  959. private void btnQueryCenterDirectory_Click(object sender, EventArgs e)
  960. {
  961. if ((tbCenterDirectoryFilter.Text == "") && (tbInsuCode.Text == "") && (tbApprovalNO.Text == "") &&
  962. (tbManufacturer.Text == "") && (tbSpecifications.Text == "") && (tbDosageForm.Text == ""))
  963. {
  964. return;
  965. }
  966. //查询区域通用目录
  967. JObject joRtn = mIS.getInterface_TY(Global.inf.interfaceDr.ToString(),"");
  968. string InsuCurrencyCataLogue = JsonHelper.getDestValue(joRtn, "InsuCurrencyCataLogue"); //通用目录编码 6
  969. string InterfaceName_TY = JsonHelper.getDestValue(joRtn, "InterfaceName_TY"); //通用目录名称
  970. string HospName_TY = JsonHelper.getDestValue(joRtn, "HospitalName"); //目录名称
  971. string HospitalDr_TY = JsonHelper.getDestValue(joRtn, "HospitalDr_TY"); //区域通用目录医院ID
  972. if (InsuCurrencyCataLogue != "")
  973. {
  974. queryHISInsuDirectory(rbgDirecType_C.SelectedIndex, 1, 50, dgvCenterDirectory, int.Parse(InsuCurrencyCataLogue));
  975. LabExplain.Visible = true;
  976. LabExplain.Text = "当前接口已设置区域通用目录,数据源:" + HospName_TY + " ,如果确认没有所查目录请联系数据源医院新增维护!";
  977. }
  978. else
  979. {
  980. queryHISInsuDirectory(rbgDirecType_C.SelectedIndex, 1, 50, dgvCenterDirectory, Global.inf.interfaceDr);
  981. LabExplain.Visible = true;
  982. LabExplain.Text = "当前接口未设置区域通用目录,数据源:" + HospName_TY;
  983. }
  984. }
  985. private void pgDownload_PageChanged(object sender, object pagingSource, int pageIndex, int count)
  986. {
  987. queryHISInsuDirectory(rbgDirecType.SelectedIndex, pageIndex, count, dgvDirectoy, Global.inf.interfaceDr);
  988. }
  989. private void pgHISDirect_PageChanged(object sender, object pagingSource, int pageIndex, int count)
  990. {
  991. string errMsg;
  992. int iCount = 50;
  993. if (rbNoMaped.Checked) iCount = 300;
  994. if (queryHISDirectory(pageIndex, iCount, out errMsg) != 0)
  995. {
  996. MessageBox.Show(errMsg);
  997. return;
  998. }
  999. }
  1000. private void pgCenterDirect_PageChanged(object sender, object pagingSource, int pageIndex, int count)
  1001. {
  1002. queryHISInsuDirectory(rbgDirecType_C.SelectedIndex, pageIndex, count, dgvCenterDirectory, Global.inf.interfaceDr);
  1003. }
  1004. private void rbgDirecType_ValueChanged(object sender, int index, string text)
  1005. {
  1006. //选定项不同调用的接口也不相同,Index值大于
  1007. if (rbgDirecType.SelectedIndex > 13)
  1008. {
  1009. uiGroupBox1.Visible = false;
  1010. uiGroupBox5.Visible = false;
  1011. uiGroupBox2.Visible = true;
  1012. //uiGroupBox3.Visible = true;
  1013. uiProcessBar1.Visible = false;
  1014. uiGroupBox2.Left = rbgDirecType.Width + rbgDirecType.Left + 5;
  1015. uiGroupBox3.Left = uiGroupBox2.Width+rbgDirecType.Width + rbgDirecType.Left + 10;
  1016. dgvDirectoy.DataSource = null;
  1017. }
  1018. else
  1019. {
  1020. uiGroupBox1.Visible = true;
  1021. uiGroupBox5.Visible = true;
  1022. uiGroupBox2.Visible = true;
  1023. //uiGroupBox3.Visible = false;
  1024. uiProcessBar1.Visible = true;
  1025. uiGroupBox1.Left = rbgDirecType.Width + rbgDirecType.Left + 5;
  1026. uiGroupBox5.Left = uiGroupBox1.Width + rbgDirecType.Width + rbgDirecType.Left + 10;
  1027. uiGroupBox2.Left = uiGroupBox5.Width + uiGroupBox1.Width + rbgDirecType.Width + rbgDirecType.Left + 15;
  1028. uiGroupBox3.Left = uiGroupBox2.Width + uiGroupBox5.Width + uiGroupBox1.Width + rbgDirecType.Width + rbgDirecType.Left + 20;
  1029. uiProcessBar1.Left = rbgDirecType.Width + rbgDirecType.Left + 5;
  1030. uiProcessBar1.Width = uiGroupBox1.Width + uiGroupBox5.Width + uiGroupBox2.Width + 10;
  1031. }
  1032. setHeaderTxt(rbgDirecType.SelectedIndex, dgvDirectoy);
  1033. }
  1034. private void toolStripMenuItem2_Click(object sender, EventArgs e)
  1035. {
  1036. CancleMapping();
  1037. }
  1038. private void tsmiMapping_Click(object sender, EventArgs e)
  1039. {
  1040. Mapping();
  1041. }
  1042. private void dgvHISDirectory_DoubleClick(object sender, EventArgs e)
  1043. {
  1044. int currentPage = pgHISDirect.ActivePage;
  1045. string flag = dgvHISDirectory.Rows[dgvHISDirectory.CurrentRow.Index].Cells["flag"].Value.ToString();
  1046. if (flag == "未对照")
  1047. {
  1048. Mapping();
  1049. }
  1050. else
  1051. if (flag == "已对照")
  1052. {
  1053. CancleMapping();
  1054. }
  1055. if (rbAll.Checked)
  1056. {
  1057. string errMsg;
  1058. if (queryHISDirectory(1, 50, out errMsg) != 0)
  1059. {
  1060. MessageBox.Show(errMsg);
  1061. return;
  1062. }
  1063. }
  1064. }
  1065. private void dgvDirectoy_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  1066. {
  1067. }
  1068. private void dgvDirectoy_CellContentClick(object sender, DataGridViewCellEventArgs e)
  1069. {
  1070. }
  1071. private void uiRadioButton1_CheckedChanged(object sender, EventArgs e)
  1072. {
  1073. }
  1074. private void dgvDirectoy_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
  1075. {
  1076. //自动编号,与数据无关
  1077. Rectangle rectangle = new Rectangle(e.RowBounds.Location.X,
  1078. e.RowBounds.Location.Y,
  1079. dgvDirectoy.RowHeadersWidth - 4,
  1080. e.RowBounds.Height);
  1081. TextRenderer.DrawText(e.Graphics,
  1082. (e.RowIndex + 1).ToString(),
  1083. dgvDirectoy.RowHeadersDefaultCellStyle.Font,
  1084. rectangle,
  1085. dgvDirectoy.RowHeadersDefaultCellStyle.ForeColor,
  1086. TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
  1087. }
  1088. private void rbAll_ValueChanged(object sender, bool value)
  1089. {
  1090. //if (rbAll.Checked)
  1091. //{
  1092. // btnQueryHISDirectory_Click(null, new EventArgs());
  1093. //}
  1094. }
  1095. private void rbMaped_CheckedChanged(object sender, EventArgs e)
  1096. {
  1097. //if (rbMaped.Checked)
  1098. //{
  1099. // string errMsg;
  1100. // if (queryHISDirectory(1, 50, out errMsg) != 0)
  1101. // {
  1102. // MessageBox.Show(errMsg);
  1103. // return;
  1104. // }
  1105. //}
  1106. }
  1107. private void btAddDir_Click(object sender, EventArgs e)
  1108. {
  1109. AddSingleDirectory addDirectory = new AddSingleDirectory(rbgDirecType.SelectedIndex);
  1110. if (addDirectory.ShowDialog() == DialogResult.OK)
  1111. {
  1112. JObject joRtn = mIS.UpdateDirectoryBySelf(addDirectory.joPamam);
  1113. string error = "";
  1114. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  1115. {
  1116. MessageBox.Show("新增失败:" + error);
  1117. }
  1118. else
  1119. {
  1120. MessageBox.Show("新增成功");
  1121. }
  1122. }
  1123. }
  1124. private void btEditDir_Click(object sender, EventArgs e)
  1125. {
  1126. DataTable dt = (DataTable)dgvDirectoy.DataSource;
  1127. if ((dt == null) || (dt.Rows.Count < 1))
  1128. {
  1129. MessageBox.Show("表中无数据,请检查!");
  1130. return;
  1131. }
  1132. DataRow dr = dt.Rows[dgvDirectoy.CurrentRow.Index];
  1133. AddSingleDirectory addDirectory = new AddSingleDirectory(rbgDirecType.SelectedIndex, dr);
  1134. if (addDirectory.ShowDialog() == DialogResult.OK)
  1135. {
  1136. JObject joRtn = mIS.UpdateDirectoryBySelf(addDirectory.joPamam);
  1137. string error = "";
  1138. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  1139. {
  1140. MessageBox.Show("修改失败:" + error);
  1141. }
  1142. else
  1143. {
  1144. MessageBox.Show("修改成功");
  1145. }
  1146. }
  1147. }
  1148. private void btnExit_Click(object sender, EventArgs e)
  1149. {
  1150. Close();
  1151. }
  1152. /// <summary>
  1153. /// 几个医保查询的交易组织入参
  1154. /// </summary>
  1155. /// <param name="Index"></param>
  1156. /// <param name="funNo"></param>
  1157. /// <returns></returns>
  1158. private JObject GetInput(int Index, out TradeEnum trade)
  1159. {
  1160. trade = TradeEnum.MedicalServiceDirectory;
  1161. dynamic joData = new JObject();
  1162. switch (Index)
  1163. {
  1164. case 14://民族药品目
  1165. {
  1166. trade = TradeEnum.NationalityDrug;
  1167. joData.med_list_codg = tbDirectoryCode.Text; //医疗目录编码
  1168. joData.genname_codg = ""; //通用名编号
  1169. joData.drug_genname = ""; //药品通用名
  1170. joData.drug_prodname = tbDircetoryName.Text; //药品商品名
  1171. joData.reg_name = ""; //注册名称
  1172. joData.tcmherb_name = ""; //中草药名称
  1173. joData.mlms_name = ""; //药材名称
  1174. joData.vali_flag = ""; //有效标志
  1175. joData.rid = ""; //唯一记录号
  1176. joData.ver = ""; //版本号
  1177. joData.ver_name = ""; //版本名称
  1178. joData.opt_begn_time = ""; //经办开始时间
  1179. joData.opt_end_time = ""; //经办结束时间
  1180. joData.updt_time = TexDate.Text; //更新时间
  1181. joData.page_num = TexDQYS.Text; //当前页数
  1182. joData.page_size = TexBYSJL.Text; //本页数据量
  1183. break;
  1184. }
  1185. case 15://目录信息查询
  1186. {
  1187. trade = TradeEnum.InsuDirectory;
  1188. joData.query_date = ""; //查询时间点
  1189. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1190. joData.insu_admdvs = ""; //参保机构医保区划
  1191. joData.begndate = ""; //开始日期
  1192. joData.hilist_name = tbDircetoryName.Text; //医保目录名称
  1193. joData.wubi = ""; //五笔助记码
  1194. joData.pinyin = ""; //拼音助记码
  1195. joData.med_chrgitm_type = ""; //医疗收费项目类别
  1196. joData.chrgitm_lv = ""; //收费项目等级
  1197. joData.lmt_used_flag = ""; //限制使用标志
  1198. joData.list_type = ""; //目录类别
  1199. joData.med_use_flag = ""; //医疗使用标志
  1200. joData.matn_used_flag = ""; //生育使用标志
  1201. joData.hilist_use_type = ""; //医保目录使用类别
  1202. joData.lmt_cpnd_type = ""; //限复方使用类型
  1203. joData.vali_flag = ""; //有效标志
  1204. joData.updt_time = TexDate.Text; //更新时间
  1205. joData.page_num = TexDQYS.Text; //当前页数
  1206. joData.page_size = TexBYSJL.Text; //本页数据量
  1207. break;
  1208. }
  1209. case 16://医疗与医保目录匹配
  1210. {
  1211. trade = TradeEnum.MedicalAndInsuDirectory;
  1212. joData.query_date = ""; //查询时间点
  1213. joData.medins_list_codg = ""; //定点医药机构目录编号
  1214. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1215. joData.list_type = ""; //目录类别
  1216. joData.insu_admdvs = ""; //参保机构医保区划
  1217. joData.begndate = ""; //开始日期
  1218. joData.vali_flag = ""; //有效标志
  1219. joData.updt_time = TexDate.Text; //更新时间
  1220. joData.page_num = TexDQYS.Text; //当前页数
  1221. joData.page_size = TexBYSJL.Text; //本页数据量
  1222. break;
  1223. }
  1224. case 17://医药机构目录匹配
  1225. {
  1226. trade = TradeEnum.MedcineOrgDirectory;
  1227. joData.query_date = ""; //查询时间点
  1228. joData.fixmedins_code = ""; //定点医药机构编号
  1229. joData.medins_list_codg = ""; //定点医药机构目录编号
  1230. joData.medins_list_name = ""; //定点医药机构目录名称
  1231. joData.insu_admdvs = ""; //参保机构医保区划
  1232. joData.list_type = ""; //目录类别
  1233. joData.med_list_codg = tbDirectoryCode.Text; //医疗目录编码
  1234. joData.begndate = ""; //开始日期
  1235. joData.vali_flag = ""; //有效标志
  1236. joData.updt_time = TexDate.Text; //更新时间
  1237. joData.page_num = TexDQYS.Text; //当前页数
  1238. joData.page_size = TexBYSJL.Text; //本页数据量
  1239. break;
  1240. }
  1241. case 18://医保目录限价
  1242. {
  1243. trade = TradeEnum.InsuPriceLimitDirectory;
  1244. joData.query_date = ""; //查询时间点
  1245. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1246. joData.hilist_lmtpric_type = ""; //医保目录限价类型
  1247. joData.overlmt_dspo_way = ""; //医保目录超限处理方式
  1248. joData.insu_admdvs = ""; //参保机构医保区划
  1249. joData.begndate = ""; //开始日期
  1250. joData.enddate = ""; //结束日期
  1251. joData.vali_flag = ""; //有效标志
  1252. joData.rid = ""; //唯一记录号
  1253. joData.tabname = ""; //表名
  1254. joData.poolarea_no = ""; //统筹区
  1255. joData.updt_time = TexDate.Text; //更新时间
  1256. joData.page_num = TexDQYS.Text; //当前页数
  1257. joData.page_size = TexBYSJL.Text; //本页数据量
  1258. break;
  1259. }
  1260. case 19://医保目录先自付比例
  1261. {
  1262. trade = TradeEnum.PrepayPercentDirectory;
  1263. joData.query_date = ""; //查询时间点
  1264. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1265. joData.selfpay_prop_psn_type = "";//医保目录自付比例人员类别
  1266. joData.selfpay_prop_type = ""; //目录自付比例类别
  1267. joData.insu_admdvs = ""; //参保机构医保区划
  1268. joData.begndate = ""; //开始日期
  1269. joData.enddate = ""; //结束日期
  1270. joData.vali_flag = ""; //有效标志
  1271. joData.rid = ""; //唯一记录号
  1272. joData.tabname = ""; //表名
  1273. joData.poolarea_no = ""; //统筹区
  1274. joData.updt_time = TexDate.Text; //更新时间
  1275. joData.page_num = TexDQYS.Text; //当前页数
  1276. joData.page_size = TexBYSJL.Text; //本页数据量
  1277. break;
  1278. }
  1279. case 20://医药机构信息
  1280. {
  1281. trade = TradeEnum.MedicalOrgination;
  1282. joData.fixmedins_type = "1"; //定点医疗服务机构类型 1定点医疗机构,2定点零售药店,3工伤定点康复机构,4辅助器具配置机构,5计划生育服务机构
  1283. joData.fixmedins_name = TexYYMC.Text; //定点医药机构名称
  1284. joData.fixmedins_code = ""; //定点医药机构编号
  1285. break;
  1286. }
  1287. }
  1288. return joData;
  1289. }
  1290. private void uiButton1_Click(object sender, EventArgs e)
  1291. {
  1292. Close();
  1293. }
  1294. /// <summary>
  1295. /// 单条上传目录对照关系
  1296. /// </summary>
  1297. private void SingleUpload()
  1298. {
  1299. if ((dgvHISDirectory.CurrentRow == null))
  1300. {
  1301. MessageBox.Show("请查询HIS目录对照关系");
  1302. return;
  1303. }
  1304. string errorMsg = "", sMLLX = "";
  1305. //单条目录对照关系上传
  1306. int iHis = dgvHISDirectory.CurrentRow.Index;
  1307. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1308. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1309. //string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString();
  1310. if (hisType == 1)
  1311. {
  1312. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1313. }
  1314. else if (hisType == 2)
  1315. {
  1316. sMLLX = "201";
  1317. }
  1318. else if (hisType == 3)
  1319. {
  1320. sMLLX = "301";
  1321. }
  1322. string InsuCode = dtHis.Rows[iHis]["InsuCode"].ToString();
  1323. string InsuName = dtHis.Rows[iHis]["InsuName"].ToString();
  1324. string HisCode = dtHis.Rows[iHis]["itemCode"].ToString();
  1325. string HisName = dtHis.Rows[iHis]["itemDesc"].ToString();
  1326. string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd");
  1327. string MapId = dtHis.Rows[iHis]["MapID"].ToString();
  1328. JArray dataArray = new JArray();
  1329. //调用3301目录对照上传
  1330. JObject joData = new JObject();
  1331. joData.Add("fixmedins_hilist_id", HisCode);
  1332. joData.Add("fixmedins_hilist_name", HisName);
  1333. joData.Add("list_type", sMLLX); //目录类别
  1334. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1335. joData.Add("begndate", "2023-10-01"); //开始日期
  1336. joData.Add("enddate", UpdateDate); //结束日期
  1337. joData.Add("aprvno", "");
  1338. joData.Add("dosform", "");
  1339. joData.Add("exct_cont", "");
  1340. joData.Add("item_cont", "");
  1341. joData.Add("prcunt", "");
  1342. joData.Add("spec", "");
  1343. joData.Add("pacspec", "");
  1344. joData.Add("memo", "");
  1345. dataArray.Add(joData);
  1346. // 单条与多条保持一致
  1347. JObject joInput = new JObject();
  1348. joInput.Add("data", dataArray);
  1349. InvokeHelper invoker = new InvokeHelper();
  1350. Global.pat.insuplc_admdvs = Global.inf.areaCode;
  1351. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastUpload, joInput);
  1352. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1353. {
  1354. MessageBox.Show("目录对照关系上传失败:" + errorMsg);
  1355. }
  1356. else
  1357. {
  1358. UpdateUploadStatus(MapId, 3);
  1359. MessageBox.Show("目录对照关系上传成功!");
  1360. }
  1361. }
  1362. /// <summary>
  1363. /// 单条撤销目录对照关系上传
  1364. /// </summary>
  1365. private void SingleCancelUpload()
  1366. {
  1367. if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true))
  1368. {
  1369. MessageBox.Show("请查询HIS目录对照关系");
  1370. return;
  1371. }
  1372. string errorMsg = "", sMLLX = "";
  1373. //撤销目录对照关系
  1374. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1375. int iHis = dgvHISDirectory.CurrentRow.Index;
  1376. string InsuCode = dtHis.Rows[iHis]["InsuCode"].ToString();
  1377. string HisCode = dtHis.Rows[iHis]["HisCode"].ToString();
  1378. string MapId = dtHis.Rows[iHis]["MapID"].ToString();
  1379. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1380. //string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString();
  1381. if (hisType == 1)
  1382. {
  1383. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1384. }
  1385. else if (hisType == 2)
  1386. {
  1387. sMLLX = "201";
  1388. }
  1389. else if (hisType == 3)
  1390. {
  1391. sMLLX = "301";
  1392. }
  1393. //调用3302目录对照撤销
  1394. JObject joData = new JObject();
  1395. joData.Add("fixmedins_code", Global.inf.hospitalNO);
  1396. joData.Add("fixmedins_hilist_id", HisCode);
  1397. joData.Add("list_type", sMLLX); //目录类别
  1398. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1399. JObject joInput = new JObject();
  1400. joInput.Add("data", joData);
  1401. InvokeHelper invoker = new InvokeHelper();
  1402. Global.pat.insuplc_admdvs = Global.inf.areaCode;
  1403. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastCancel, joInput);
  1404. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1405. {
  1406. MessageBox.Show("目录对照撤销失败:" + errorMsg);
  1407. }
  1408. else
  1409. {
  1410. UpdateUploadStatus(MapId, 2);
  1411. MessageBox.Show("目录对照撤销成功!");
  1412. }
  1413. }
  1414. /// <summary>
  1415. /// 全部上传目录对照关系
  1416. /// </summary>
  1417. private void AllUpLoad()
  1418. {
  1419. if ((dgvHISDirectory.CurrentRow == null))
  1420. {
  1421. MessageBox.Show("请查询HIS目录对照关系");
  1422. return;
  1423. }
  1424. string sInputStr = "", sMLLX = "", errorMsg = "", Msg = "";
  1425. Boolean bOk = true;
  1426. JObject InputjoRtn = new JObject();
  1427. string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd");
  1428. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1429. if (hisType == 1)
  1430. {
  1431. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1432. }
  1433. else if (hisType == 2)
  1434. {
  1435. sMLLX = "201";
  1436. }
  1437. else if (hisType == 3)
  1438. {
  1439. sMLLX = "301";
  1440. }
  1441. List<String> mapIdList = new List<string>();
  1442. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1443. JArray dataArray = new JArray();
  1444. for (int i = 0; i < dtHis.Rows.Count; i++)
  1445. {
  1446. string InsuCode = dtHis.Rows[i]["InsuCode"].ToString(); //医保目录编码
  1447. string InsuName = dtHis.Rows[i]["InsuName"].ToString(); //医保目录名称
  1448. string HisCode = dtHis.Rows[i]["itemCode"].ToString(); //HIS目录编码
  1449. string HisName = dtHis.Rows[i]["itemDesc"].ToString(); //HIS目录名称
  1450. mapIdList.Add(dtHis.Rows[i]["MapID"].ToString()); //ID
  1451. //调用3301目录对照上传
  1452. JObject joData = new JObject();
  1453. joData.Add("fixmedins_hilist_id", HisCode);
  1454. joData.Add("fixmedins_hilist_name", HisName);
  1455. joData.Add("list_type", sMLLX); //目录类别
  1456. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1457. joData.Add("begndate", "2023-10-01"); //开始日期
  1458. joData.Add("enddate", UpdateDate); //结束日期
  1459. joData.Add("aprvno", "");
  1460. joData.Add("dosform", "");
  1461. joData.Add("exct_cont", "");
  1462. joData.Add("item_cont", "");
  1463. joData.Add("prcunt", "");
  1464. joData.Add("spec", "");
  1465. joData.Add("pacspec", "");
  1466. joData.Add("memo", "");
  1467. dataArray.Add(joData);
  1468. }
  1469. JObject joInput = new JObject();
  1470. joInput.Add("data", dataArray);
  1471. Global.pat.insuplc_admdvs = Global.inf.areaCode;
  1472. InvokeHelper invoker = new InvokeHelper();
  1473. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastUpload, joInput);
  1474. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1475. {
  1476. bOk = false;
  1477. Msg = Msg + "<" + joInput.ToString() + ":" + errorMsg + ">";
  1478. }
  1479. if (bOk == false)
  1480. {
  1481. MessageBox.Show("全部目录对照关系上传成功,部分上传异常:" + Msg);
  1482. }
  1483. else
  1484. {
  1485. UpdateUploadStatus(string.Join(",",mapIdList.ToArray()),3);
  1486. MessageBox.Show("全部目录对照关系上传成功!");
  1487. }
  1488. }
  1489. private void UpdateUploadStatus(string ids, int state)
  1490. {
  1491. if (string.IsNullOrEmpty(ids)) return;
  1492. dynamic joInput = new JObject();
  1493. joInput.HospitalDr = Global.inf.hospitalDr;
  1494. joInput.InterfaceDr = Global.inf.interfaceDr;
  1495. joInput.ID = ids;
  1496. joInput.state = state;
  1497. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010103", joInput).ToString(), "更新上传状态");
  1498. if (joRtn["errorCode"].Text() != "0")
  1499. {
  1500. Global.writeLog("更新状态失败!" + joRtn["errorMessage"].ToString());
  1501. }
  1502. }
  1503. /// <summary>
  1504. /// 全部撤销目录对照关系上传
  1505. /// </summary>
  1506. private void AllCancelUpload()
  1507. {
  1508. if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true))
  1509. {
  1510. MessageBox.Show("请查询HIS目录对照关系");
  1511. return;
  1512. }
  1513. string sMLLX = "", errorMsg = "", Msg = "";
  1514. Boolean bOk = true;
  1515. string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd");
  1516. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1517. if (hisType == 1)
  1518. {
  1519. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1520. }
  1521. else if (hisType == 2)
  1522. {
  1523. sMLLX = "201";
  1524. }
  1525. else if (hisType == 3)
  1526. {
  1527. sMLLX = "301";
  1528. }
  1529. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1530. List<String> mapIdList = new List<string>();
  1531. for (int i = 0; i < dtHis.Rows.Count; i++)
  1532. {
  1533. string InsuCode = dtHis.Rows[i]["InsuCode"].ToString();
  1534. string HisCode = dtHis.Rows[i]["HisCode"].ToString();
  1535. mapIdList.Add(dtHis.Rows[i]["MapID"].ToString()); //ID
  1536. //调用3302目录对照撤销
  1537. JObject joData = new JObject();
  1538. joData.Add("fixmedins_code", Global.inf.hospitalNO);
  1539. joData.Add("fixmedins_hilist_id", HisCode);
  1540. joData.Add("list_type", sMLLX); //目录类别
  1541. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1542. JObject joInput = new JObject();
  1543. joInput.Add("data", joData);
  1544. InvokeHelper invoker = new InvokeHelper();
  1545. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastCancel, joInput);
  1546. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1547. {
  1548. bOk = false;
  1549. Msg = Msg + "<" + joInput.ToString()+":" + errorMsg + ">";
  1550. }
  1551. }
  1552. if (bOk == false)
  1553. {
  1554. MessageBox.Show("全部撤销目录对照关系上传成功,部分撤销异常:" + Msg);
  1555. }
  1556. else
  1557. {
  1558. UpdateUploadStatus(string.Join(",", mapIdList.ToArray()), 2);
  1559. MessageBox.Show("全部撤销目录对照关系上传成功!");
  1560. }
  1561. }
  1562. private void ToolStripMenuItem_Upload_Click(object sender, EventArgs e)
  1563. {
  1564. SingleUpload();
  1565. }
  1566. private void ToolStripMenuItem_CancelUpload_Click(object sender, EventArgs e)
  1567. {
  1568. SingleCancelUpload();
  1569. }
  1570. private void rbgDirecType_C_ValueChanged(object sender, int index, string text)
  1571. {
  1572. tbHISDirectoryFilter.Text = "";
  1573. uiTextBox1.Text = "";
  1574. rbAll.Checked = true;
  1575. rbMaped.Checked = false;
  1576. rbNoMaped.Checked = false;
  1577. tbCenterDirectoryFilter.Text = "";
  1578. tbInsuCode.Text = "";
  1579. tbApprovalNO.Text = "";
  1580. dgvCenterDirectory.DataSource = null;
  1581. btnQueryHISDirectory_Click(null, new EventArgs());
  1582. }
  1583. private void rbNoMaped_CheckedChanged(object sender, EventArgs e)
  1584. {
  1585. //if (rbNoMaped.Checked)
  1586. //{
  1587. // string errMsg;
  1588. // if (queryHISDirectory(1, 300, out errMsg) != 0)
  1589. // {
  1590. // MessageBox.Show(errMsg);
  1591. // return;
  1592. // }
  1593. //}
  1594. }
  1595. private void dgvHISDirectory_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1596. {
  1597. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1598. }
  1599. private void dgvCenterDirectory_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1600. {
  1601. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1602. }
  1603. //private void btnExport_Click(object sender, EventArgs e)
  1604. //{
  1605. // this.pgHISDirect.PageChanged -= new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgHISDirect_PageChanged);
  1606. // if (queryHISDirectory(1, 5000, out string errMsg) != 0)
  1607. // {
  1608. // MessageBox.Show(errMsg);
  1609. // return;
  1610. // }
  1611. // this.pgHISDirect.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgHISDirect_PageChanged);
  1612. // if (dtExport.Rows.Count > 0)
  1613. // {
  1614. // string directoryType = string.Empty;
  1615. // string sBZ = "";
  1616. // switch (rbgDirecType_C.SelectedIndex)
  1617. // {
  1618. // case 0:
  1619. // {
  1620. // directoryType = "药品";
  1621. // break;
  1622. // }
  1623. // case 1:
  1624. // {
  1625. // directoryType = "诊疗";
  1626. // break;
  1627. // }
  1628. // case 2:
  1629. // {
  1630. // directoryType = "材料";
  1631. // break;
  1632. // }
  1633. // }
  1634. // if (rbAll.Checked) sBZ = "全部";
  1635. // else
  1636. // if (rbMaped.Checked) sBZ = "已对照";
  1637. // else
  1638. // if (rbNoMaped.Checked) sBZ = "未对照";
  1639. // string LSH = DateTime.Now.ToString("yyyy-MM-dd"); //DateTime.Now.ToString("MMddHHmmssffff");
  1640. // string filename = LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
  1641. // string sFliePathName = Global.curEvt.path + "\\MapRelation\\" + filename;
  1642. // //string sFliePathName = @"D:\" + LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
  1643. // //如果不存在目录,则创建目录
  1644. // if (!Directory.Exists(Global.curEvt.path + "\\MapRelation"))
  1645. // {
  1646. // //创建文件夹
  1647. // DirectoryInfo dirInfo = Directory.CreateDirectory(Global.curEvt.path + "\\MapRelation");
  1648. // }
  1649. // //判断文件是否存在,如果存在询问是覆盖还是重新下载
  1650. // if (File.Exists(sFliePathName))
  1651. // {
  1652. // DialogResult dr = MessageBox.Show("该路径已存在该目录文件,确定要覆盖并重新导入吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  1653. // if (dr == DialogResult.Yes)
  1654. // {
  1655. // File.Delete(sFliePathName);
  1656. // }
  1657. // else
  1658. // {
  1659. // return;
  1660. // }
  1661. // }
  1662. // string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
  1663. // if (ReturnFileName != "")
  1664. // {
  1665. // MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
  1666. // System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
  1667. // }
  1668. // else
  1669. // {
  1670. // MessageBox.Show("导出失败!");
  1671. // }
  1672. // }
  1673. //}
  1674. private void limitPriceUpdate_Click(object sender, EventArgs e)
  1675. {
  1676. SelfpayPercentForm selfpay = new SelfpayPercentForm();
  1677. selfpay.CenterCode = dgvDirectoy.Rows[dgvDirectoy.SelectedIndex].Cells["Code"].Value + "";
  1678. selfpay.ShowDialog();
  1679. }
  1680. private void batchUpdateCategory_Click(object sender, EventArgs e)
  1681. {
  1682. if (!rbMaped.Checked)
  1683. {
  1684. MessageBox.Show("请选择已对照进行更新");
  1685. return;
  1686. }
  1687. DataTable dt = (DataTable)dgvHISDirectory.DataSource; //获取当前页的数据,注意在已对照页面更新
  1688. if ((dt == null) || (dt.Rows.Count < 1))
  1689. {
  1690. MessageBox.Show("表中无数据,请检查!");
  1691. return;
  1692. }
  1693. string htype = "";
  1694. if (rbgDirecType_C.SelectedIndex == 0)
  1695. {
  1696. htype = "1";
  1697. }
  1698. else if (rbgDirecType_C.SelectedIndex == 1)
  1699. {
  1700. htype = "2";
  1701. }
  1702. else if (rbgDirecType_C.SelectedIndex == 2)
  1703. {
  1704. htype = "3";
  1705. }
  1706. // MessageBox.Show("第1列" + dt.Rows[0][0]);
  1707. // MessageBox.Show("第1行" + dt.Rows[0].ToString());
  1708. dynamic one1312 = new JObject();
  1709. one1312.Add("query_date", "");//查询时间点 日期型
  1710. one1312.Add("hilist_code", "");//医保目录编码 字符型 30
  1711. one1312.Add("insu_admdvs", "");//参保机构医保区划 字符型 6 Y
  1712. one1312.Add("begndate", ""); //开始日期 日期型
  1713. one1312.Add("hilist_name", "");//医保目录名称 字符型 200
  1714. one1312.Add("wubi", "");//五笔助记码 字符型 30
  1715. one1312.Add("pinyin", "");//拼音助记码 字符型 30
  1716. one1312.Add("med_chrgitm_type", "");//医疗收费项目类别 字符型 6 Y
  1717. one1312.Add("chrgitm_lv", "");//收费项目等级 字符型 3 Y
  1718. one1312.Add("lmt_used_flag", "");//限制使用标志 字符型 3 Y
  1719. one1312.Add("list_type", "");//目录类别 字符型 30
  1720. one1312.Add("med_use_flag", "");//医疗使用标志 字符型 3 Y
  1721. one1312.Add("matn_used_flag", "");//生育使用标志 字符型 3 Y
  1722. one1312.Add("hilist_use_type", "");//医保目录使用类别 字符型 3 Y
  1723. one1312.Add("lmt_cpnd_type", ""); //限复方使用类型 字符型 3 Y
  1724. one1312.Add("vali_flag", "");//有效标志 字符型 3 Y
  1725. one1312.Add("updt_time", "2019-01-01");//更新时间 日期型
  1726. one1312.Add("page_num", 1);//当前页数 数值型 4
  1727. one1312.Add("page_size", 50);//本页数据量 数值型 4
  1728. dynamic data1312 = new JObject();
  1729. dynamic joPamam = new JObject();//更新HIS医保目录入参
  1730. joPamam.Add("Code", "");
  1731. joPamam.Add("Name", "");
  1732. joPamam.Add("HisType", htype);
  1733. joPamam.Add("ChargeItemLevel", "");
  1734. for (int i = 0; i < dt.Rows.Count; i++)
  1735. {
  1736. one1312.hilist_code = dt.Rows[i]["insuCode"].ToString();//每行的第13列是医保编码
  1737. data1312.data = one1312;
  1738. JObject jo1312Rtn = invoker.invokeCenterService(TradeEnum.InsuDirectory,data1312);
  1739. if (JsonHelper.parseCenterReturnJson(jo1312Rtn, out string errorMsg) == 0)
  1740. {
  1741. JArray dt_result = JArray.Parse(jo1312Rtn["output"]["data"].ToString());
  1742. for (int n = 0; n < dt_result.Count; n++)
  1743. {
  1744. //医保返参取值
  1745. joPamam.Code = dt_result[n]["hilist_code"].ToString();
  1746. joPamam.Name = dt_result[n]["hilist_name"].ToString();
  1747. joPamam.ChargeItemLevel = dt_result[n]["chrgitm_lv"].ToString();
  1748. if (joPamam.ChargeItemLevel.ToString() == "01")
  1749. {
  1750. joPamam.ChargeItemLevelName = "甲类";
  1751. }
  1752. else if (joPamam.ChargeItemLevel.ToString() == "02")
  1753. {
  1754. joPamam.ChargeItemLevelName = "乙类";
  1755. }
  1756. else if (joPamam.ChargeItemLevel.ToString() == "03")
  1757. {
  1758. joPamam.ChargeItemLevelName = "丙类";
  1759. }
  1760. JObject joRtn = mIS.UpdateDirectoryBySelf(joPamam);
  1761. }
  1762. }
  1763. }
  1764. MessageBox.Show("更新完成!");
  1765. }
  1766. private void tsmiSingleUpdateAuxInfo_Click_1(object sender, EventArgs e)
  1767. {
  1768. string error;
  1769. int iDir = dgvDirectoy.CurrentRow.Index;
  1770. if (dgvDirectoy.CurrentRow == null)
  1771. {
  1772. MessageBox.Show("请查询中心目录");
  1773. return;
  1774. }
  1775. JObject jo = new JObject();
  1776. jo.Add("code", dgvDirectoy.Rows[iDir].Cells["code"].Value.ToString());
  1777. jo.Add("HisType", rbgDirecType.SelectedIndex + 1);
  1778. if (updateAuxInfo(jo, out error) != 0)
  1779. {
  1780. MessageBox.Show(error);
  1781. }
  1782. else
  1783. {
  1784. MessageBox.Show(error);
  1785. }
  1786. }
  1787. //更新目录信息(附属信息)
  1788. private int updateAuxInfo(JObject jo, out string err)
  1789. {
  1790. err = "";
  1791. tbDirectoryCode.Text = JsonHelper.getDestValue(jo, "code");
  1792. dynamic joData = GetInput(15, out TradeEnum trade);
  1793. JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(trade, joData);
  1794. if (joRtn["infcode"].ToString() == "0")
  1795. {
  1796. DataTable dtAuxInfo = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
  1797. DateTime dtToday = DateTime.Today;
  1798. string chrgitm_lv = "";
  1799. string begndate = "";
  1800. string enddate = "";
  1801. string list_type = "";
  1802. string med_chrgitm_type = "";
  1803. int iAdpater = 0;
  1804. foreach (DataRow dr in dtAuxInfo.Rows)
  1805. {
  1806. DateTime dtBegin = getDataRowValue(dr, "begndate") == "" ? Convert.ToDateTime("2000-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "begndate"));
  1807. DateTime dtEnd = getDataRowValue(dr, "enddate") == "" ? Convert.ToDateTime("2099-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "enddate"));
  1808. if ((dtBegin < dtToday) && (dtToday < dtEnd))
  1809. {
  1810. iAdpater++;
  1811. chrgitm_lv = dr["chrgitm_lv"].ToString();
  1812. begndate = dr["begndate"].ToString();
  1813. enddate = dr["enddate"].ToString();
  1814. list_type = dr["list_type"].ToString();
  1815. med_chrgitm_type = dr["med_chrgitm_type"].ToString();
  1816. }
  1817. }
  1818. //有且只能有一条数据符合
  1819. if (iAdpater == 1)
  1820. {
  1821. JObject joPamam = new JObject();
  1822. joPamam.Add("Code", JsonHelper.getDestValue(jo, "code"));
  1823. joPamam.Add("HisType", JsonHelper.getDestValue(jo, "HisType"));
  1824. joPamam.Add("StartDate", begndate);
  1825. joPamam.Add("EndDate", enddate);
  1826. joPamam.Add("ChargeItemLevel", chrgitm_lv);
  1827. joPamam.Add("ListType", list_type);
  1828. joPamam.Add("ChargeItemType", med_chrgitm_type);
  1829. JObject joUpdateRtn = mIS.UpdateDirectoryBySelf(joPamam);
  1830. string error = "";
  1831. if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out error) != 0)
  1832. {
  1833. err = "修改失败:" + error;
  1834. return -1;
  1835. }
  1836. else
  1837. {
  1838. err = "修改成功";
  1839. return 0;
  1840. }
  1841. }
  1842. else
  1843. {
  1844. err = "中心返回符合条数的记录不唯一或者为空,请检查!";
  1845. return -1;
  1846. }
  1847. }
  1848. else
  1849. {
  1850. err = "查询中心数据出错,请检查!";
  1851. return -1;
  1852. }
  1853. }
  1854. public string getDataRowValue(DataRow dr, string columnName)
  1855. {
  1856. if (!dr.Table.Columns.Contains(columnName))
  1857. {
  1858. return "";
  1859. }
  1860. else
  1861. {
  1862. return dr[columnName].ToString();
  1863. }
  1864. }
  1865. //更新目录信息(附属信息)
  1866. private int updateCellingPrice(JObject jo, out string err)
  1867. {
  1868. err = "";
  1869. tbDirectoryCode.Text = JsonHelper.getDestValue(jo, "code");
  1870. dynamic joData = GetInput(18, out TradeEnum trade);
  1871. JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(trade, joData);
  1872. if (joRtn["infcode"].ToString() == "0")
  1873. {
  1874. DataTable dtAuxInfo = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
  1875. DateTime dtToday = DateTime.Today;
  1876. string cellingPrice = "";
  1877. string begndate = "";
  1878. string enddate = "";
  1879. int iAdpater = 0;
  1880. foreach (DataRow dr in dtAuxInfo.Rows)
  1881. {
  1882. DateTime dtBegin = getDataRowValue(dr, "begndate") == "" ? Convert.ToDateTime("2000-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "begndate"));
  1883. DateTime dtEnd = getDataRowValue(dr, "enddate") == "" ? Convert.ToDateTime("2099-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "enddate"));
  1884. if ((dtBegin < dtToday) && (dtToday < dtEnd))
  1885. {
  1886. iAdpater++;
  1887. cellingPrice = dr["hilist_pric_uplmt_amt"].ToString();
  1888. begndate = dr["begndate"].ToString();
  1889. enddate = dr["enddate"].ToString();
  1890. }
  1891. }
  1892. //有且只能有一条数据符合
  1893. if (iAdpater == 1)
  1894. {
  1895. JObject joPamam = new JObject();
  1896. joPamam.Add("Code", JsonHelper.getDestValue(jo, "code"));
  1897. joPamam.Add("HisType", JsonHelper.getDestValue(jo, "HisType"));
  1898. joPamam.Add("StartDate", begndate);
  1899. joPamam.Add("EndDate", enddate);
  1900. joPamam.Add("CeilingPrice", cellingPrice);
  1901. JObject joUpdateRtn = mIS.UpdateDirectoryBySelf(joPamam);
  1902. string error = "";
  1903. if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out error) != 0)
  1904. {
  1905. err = "修改失败:" + error;
  1906. return -1;
  1907. }
  1908. else
  1909. {
  1910. err = "修改成功";
  1911. return 0;
  1912. }
  1913. }
  1914. else
  1915. {
  1916. err = "中心返回符合条数的记录不唯一或者为空,请检查!";
  1917. return -1;
  1918. }
  1919. }
  1920. else
  1921. {
  1922. err = "查询中心数据出错,请检查!";
  1923. return -1;
  1924. }
  1925. }
  1926. private void btTripMenu_Click(object sender, EventArgs e)
  1927. {
  1928. uiContextMenuStrip1.Show(((Sunny.UI.UIButton)sender), new Point(0, btTripMenu.Height));
  1929. }
  1930. private void tsmExportAllMappedData_Click(object sender, EventArgs e)
  1931. {
  1932. if (queryHISDirectory(1, 1000, out string errMsg) != 0)
  1933. {
  1934. MessageBox.Show(errMsg);
  1935. return;
  1936. }
  1937. if (dtExport.Rows.Count > 0)
  1938. {
  1939. string directoryType = string.Empty;
  1940. string sBZ = "";
  1941. switch (rbgDirecType_C.SelectedIndex)
  1942. {
  1943. case 0:
  1944. {
  1945. directoryType = "药品";
  1946. break;
  1947. }
  1948. case 1:
  1949. {
  1950. directoryType = "诊疗";
  1951. break;
  1952. }
  1953. case 2:
  1954. {
  1955. directoryType = "材料";
  1956. break;
  1957. }
  1958. }
  1959. if (rbAll.Checked) sBZ = "全部";
  1960. else
  1961. if (rbMaped.Checked) sBZ = "已对照";
  1962. else
  1963. if (rbNoMaped.Checked) sBZ = "未对照";
  1964. string LSH = DateTime.Now.ToString("yyyy-MM-dd"); //DateTime.Now.ToString("MMddHHmmssffff");
  1965. string sFliePathName = @"D:\" + LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
  1966. string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
  1967. if (ReturnFileName != "")
  1968. {
  1969. MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
  1970. System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
  1971. }
  1972. else
  1973. {
  1974. MessageBox.Show("导出失败!");
  1975. }
  1976. }
  1977. }
  1978. private void tsmExportMappedDataByLeft_Click(object sender, EventArgs e)
  1979. {
  1980. }
  1981. private void tsmUploadAllMappedData_Click(object sender, EventArgs e)
  1982. {
  1983. AllUpLoad();
  1984. }
  1985. private void tsmCancelAllUploadedData_Click(object sender, EventArgs e)
  1986. {
  1987. AllCancelUpload();
  1988. }
  1989. private void tsmUpdateAllMapped_Click(object sender, EventArgs e)
  1990. {
  1991. updateMappedInsuInfo(updateAuxAndCellPriceWrapper);
  1992. }
  1993. private void updateMappedInsuInfo(Func<JObject, OutParamWrapper, int> action)
  1994. {
  1995. string sqlStr = $"select * from HB_MedInsuMapRelation where Interface_Dr='{Global.inf.interfaceDr}' and Hospital_Dr ='{Global.inf.hospitalDr}'";
  1996. JObject joSqlstr = new JObject();
  1997. joSqlstr.Add("sqlStr", sqlStr);
  1998. JObject joRtn = mIS.QueryMappedData(joSqlstr, "查询所有已对照数据");
  1999. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  2000. int iFalse = 0;
  2001. int iCount = 0;
  2002. frmProcessBar bar = new frmProcessBar(dt.Rows.Count);
  2003. tools.ShowAppDiaglog(bar);
  2004. foreach (DataRow dr in dt.Rows)
  2005. {
  2006. JObject jo = new JObject();
  2007. jo.Add("code", dr["InsuCode"].ToString());
  2008. jo.Add("HisType", dr["HisType"].ToString());
  2009. OutParamWrapper outParWarp = new OutParamWrapper();
  2010. if (action(jo, outParWarp) != 0)
  2011. {
  2012. iFalse++;
  2013. Global.writeLog(outParWarp.Value);
  2014. }
  2015. }
  2016. if (iFalse != 0)
  2017. {
  2018. MessageBox.Show($"总共{iCount}条数据更新完成,但有{iFalse}条更新发生错误!");
  2019. }
  2020. else
  2021. {
  2022. MessageBox.Show("全部数据更新完成");
  2023. }
  2024. }
  2025. private int updateAuxAndCellPriceWrapper(JObject jo, OutParamWrapper outParamWrapper)
  2026. {
  2027. string err;
  2028. int iresult = updateAuxAndCellPrice(jo, out err);
  2029. outParamWrapper.Value = err;
  2030. return iresult;
  2031. }
  2032. private int updateCellPriceWrapper(JObject jo, OutParamWrapper outParamWrapper)
  2033. {
  2034. string err;
  2035. int iresult = updateCellingPrice(jo, out err);
  2036. outParamWrapper.Value = err;
  2037. return iresult;
  2038. }
  2039. private int updateAuxInfoWrapper(JObject jo, OutParamWrapper outParamWrapper)
  2040. {
  2041. string err;
  2042. int iresult = updateAuxInfo(jo, out err);
  2043. outParamWrapper.Value = err;
  2044. return iresult;
  2045. }
  2046. private int updateAuxAndCellPrice(JObject jo, out string error)
  2047. {
  2048. string err = "";
  2049. int iResult = 0;
  2050. error = "";
  2051. if (updateAuxInfo(jo, out err) != 0)
  2052. {
  2053. error = $"更新目录信息失败{err}";
  2054. iResult--;
  2055. }
  2056. err = "";
  2057. if (updateCellingPrice(jo, out err) != 0)
  2058. {
  2059. error = $"{error};更新限价信息失败{err}";
  2060. iResult--;
  2061. }
  2062. return iResult;
  2063. }
  2064. private void tsmUpdateCellPriceOfAllMapped_Click(object sender, EventArgs e)
  2065. {
  2066. updateMappedInsuInfo(updateCellPriceWrapper);
  2067. }
  2068. private void tsmUpdateLevelTypeOfAllMappedData_Click(object sender, EventArgs e)
  2069. {
  2070. updateMappedInsuInfo(updateAuxInfoWrapper);
  2071. }
  2072. private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
  2073. {
  2074. }
  2075. }
  2076. public class OutParamWrapper
  2077. {
  2078. public string Value { get; set; }
  2079. }
  2080. }