BasicData.cs 95 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418
  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. if (rbgDirecType.SelectedIndex == 8)
  1110. {
  1111. string errMsg = "";
  1112. AddSingleDictionary addDictionary = new AddSingleDictionary();
  1113. if (addDictionary.ShowDialog() == DialogResult.OK)
  1114. {
  1115. if (UpdateDictionaryBySelf(addDictionary, out errMsg) != 0)
  1116. {
  1117. MessageBox.Show(errMsg);
  1118. }
  1119. else
  1120. {
  1121. MessageBox.Show("新增成功!");
  1122. }
  1123. }
  1124. }
  1125. else
  1126. {
  1127. AddSingleDirectory addDirectory = new AddSingleDirectory(rbgDirecType.SelectedIndex);
  1128. if (addDirectory.ShowDialog() == DialogResult.OK)
  1129. {
  1130. JObject joRtn = mIS.UpdateDirectoryBySelf(addDirectory.joPamam);
  1131. string error = "";
  1132. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  1133. {
  1134. MessageBox.Show("新增失败:" + error);
  1135. }
  1136. else
  1137. {
  1138. MessageBox.Show("新增成功");
  1139. }
  1140. }
  1141. }
  1142. }
  1143. private void btEditDir_Click(object sender, EventArgs e)
  1144. {
  1145. DataTable dt = (DataTable)dgvDirectoy.DataSource;
  1146. if ((dt == null) || (dt.Rows.Count < 1))
  1147. {
  1148. MessageBox.Show("表中无数据,请检查!");
  1149. return;
  1150. }
  1151. DataRow dr = dt.Rows[dgvDirectoy.CurrentRow.Index];
  1152. if (rbgDirecType.SelectedIndex == 8)
  1153. {
  1154. string errMsg;
  1155. AddSingleDictionary addDictionary = new AddSingleDictionary(dr);
  1156. if (addDictionary.ShowDialog() == DialogResult.OK)
  1157. {
  1158. if (UpdateDictionaryBySelf(addDictionary, out errMsg) != 0)
  1159. {
  1160. MessageBox.Show(errMsg);
  1161. }
  1162. else
  1163. {
  1164. MessageBox.Show("修改成功!");
  1165. }
  1166. }
  1167. }
  1168. else
  1169. {
  1170. AddSingleDirectory addDirectory = new AddSingleDirectory(rbgDirecType.SelectedIndex, dr);
  1171. if (addDirectory.ShowDialog() == DialogResult.OK)
  1172. {
  1173. JObject joRtn = mIS.UpdateDirectoryBySelf(addDirectory.joPamam);
  1174. string error = "";
  1175. if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)
  1176. {
  1177. MessageBox.Show("修改失败:" + error);
  1178. }
  1179. else
  1180. {
  1181. MessageBox.Show("修改成功");
  1182. }
  1183. }
  1184. }
  1185. }
  1186. private void btnExit_Click(object sender, EventArgs e)
  1187. {
  1188. Close();
  1189. }
  1190. /// <summary>
  1191. /// 几个医保查询的交易组织入参
  1192. /// </summary>
  1193. /// <param name="Index"></param>
  1194. /// <param name="funNo"></param>
  1195. /// <returns></returns>
  1196. private JObject GetInput(int Index, out TradeEnum trade)
  1197. {
  1198. trade = TradeEnum.MedicalServiceDirectory;
  1199. dynamic joData = new JObject();
  1200. switch (Index)
  1201. {
  1202. case 14://民族药品目
  1203. {
  1204. trade = TradeEnum.NationalityDrug;
  1205. joData.med_list_codg = tbDirectoryCode.Text; //医疗目录编码
  1206. joData.genname_codg = ""; //通用名编号
  1207. joData.drug_genname = ""; //药品通用名
  1208. joData.drug_prodname = tbDircetoryName.Text; //药品商品名
  1209. joData.reg_name = ""; //注册名称
  1210. joData.tcmherb_name = ""; //中草药名称
  1211. joData.mlms_name = ""; //药材名称
  1212. joData.vali_flag = ""; //有效标志
  1213. joData.rid = ""; //唯一记录号
  1214. joData.ver = ""; //版本号
  1215. joData.ver_name = ""; //版本名称
  1216. joData.opt_begn_time = ""; //经办开始时间
  1217. joData.opt_end_time = ""; //经办结束时间
  1218. joData.updt_time = TexDate.Text; //更新时间
  1219. joData.page_num = TexDQYS.Text; //当前页数
  1220. joData.page_size = TexBYSJL.Text; //本页数据量
  1221. break;
  1222. }
  1223. case 15://目录信息查询
  1224. {
  1225. trade = TradeEnum.InsuDirectory;
  1226. joData.query_date = ""; //查询时间点
  1227. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1228. joData.insu_admdvs = ""; //参保机构医保区划
  1229. joData.begndate = ""; //开始日期
  1230. joData.hilist_name = tbDircetoryName.Text; //医保目录名称
  1231. joData.wubi = ""; //五笔助记码
  1232. joData.pinyin = ""; //拼音助记码
  1233. joData.med_chrgitm_type = ""; //医疗收费项目类别
  1234. joData.chrgitm_lv = ""; //收费项目等级
  1235. joData.lmt_used_flag = ""; //限制使用标志
  1236. joData.list_type = ""; //目录类别
  1237. joData.med_use_flag = ""; //医疗使用标志
  1238. joData.matn_used_flag = ""; //生育使用标志
  1239. joData.hilist_use_type = ""; //医保目录使用类别
  1240. joData.lmt_cpnd_type = ""; //限复方使用类型
  1241. joData.vali_flag = ""; //有效标志
  1242. joData.updt_time = TexDate.Text; //更新时间
  1243. joData.page_num = TexDQYS.Text; //当前页数
  1244. joData.page_size = TexBYSJL.Text; //本页数据量
  1245. break;
  1246. }
  1247. case 16://医疗与医保目录匹配
  1248. {
  1249. trade = TradeEnum.MedicalAndInsuDirectory;
  1250. joData.query_date = ""; //查询时间点
  1251. joData.medins_list_codg = ""; //定点医药机构目录编号
  1252. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1253. joData.list_type = ""; //目录类别
  1254. joData.insu_admdvs = ""; //参保机构医保区划
  1255. joData.begndate = ""; //开始日期
  1256. joData.vali_flag = ""; //有效标志
  1257. joData.updt_time = TexDate.Text; //更新时间
  1258. joData.page_num = TexDQYS.Text; //当前页数
  1259. joData.page_size = TexBYSJL.Text; //本页数据量
  1260. break;
  1261. }
  1262. case 17://医药机构目录匹配
  1263. {
  1264. trade = TradeEnum.MedcineOrgDirectory;
  1265. joData.query_date = ""; //查询时间点
  1266. joData.fixmedins_code = ""; //定点医药机构编号
  1267. joData.medins_list_codg = ""; //定点医药机构目录编号
  1268. joData.medins_list_name = ""; //定点医药机构目录名称
  1269. joData.insu_admdvs = ""; //参保机构医保区划
  1270. joData.list_type = ""; //目录类别
  1271. joData.med_list_codg = tbDirectoryCode.Text; //医疗目录编码
  1272. joData.begndate = ""; //开始日期
  1273. joData.vali_flag = ""; //有效标志
  1274. joData.updt_time = TexDate.Text; //更新时间
  1275. joData.page_num = TexDQYS.Text; //当前页数
  1276. joData.page_size = TexBYSJL.Text; //本页数据量
  1277. break;
  1278. }
  1279. case 18://医保目录限价
  1280. {
  1281. trade = TradeEnum.InsuPriceLimitDirectory;
  1282. joData.query_date = ""; //查询时间点
  1283. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1284. joData.hilist_lmtpric_type = ""; //医保目录限价类型
  1285. joData.overlmt_dspo_way = ""; //医保目录超限处理方式
  1286. joData.insu_admdvs = ""; //参保机构医保区划
  1287. joData.begndate = ""; //开始日期
  1288. joData.enddate = ""; //结束日期
  1289. joData.vali_flag = ""; //有效标志
  1290. joData.rid = ""; //唯一记录号
  1291. joData.tabname = ""; //表名
  1292. joData.poolarea_no = ""; //统筹区
  1293. joData.updt_time = TexDate.Text; //更新时间
  1294. joData.page_num = TexDQYS.Text; //当前页数
  1295. joData.page_size = TexBYSJL.Text; //本页数据量
  1296. break;
  1297. }
  1298. case 19://医保目录先自付比例
  1299. {
  1300. trade = TradeEnum.PrepayPercentDirectory;
  1301. joData.query_date = ""; //查询时间点
  1302. joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
  1303. joData.selfpay_prop_psn_type = "";//医保目录自付比例人员类别
  1304. joData.selfpay_prop_type = ""; //目录自付比例类别
  1305. joData.insu_admdvs = ""; //参保机构医保区划
  1306. joData.begndate = ""; //开始日期
  1307. joData.enddate = ""; //结束日期
  1308. joData.vali_flag = ""; //有效标志
  1309. joData.rid = ""; //唯一记录号
  1310. joData.tabname = ""; //表名
  1311. joData.poolarea_no = ""; //统筹区
  1312. joData.updt_time = TexDate.Text; //更新时间
  1313. joData.page_num = TexDQYS.Text; //当前页数
  1314. joData.page_size = TexBYSJL.Text; //本页数据量
  1315. break;
  1316. }
  1317. case 20://医药机构信息
  1318. {
  1319. trade = TradeEnum.MedicalOrgination;
  1320. joData.fixmedins_type = "1"; //定点医疗服务机构类型 1定点医疗机构,2定点零售药店,3工伤定点康复机构,4辅助器具配置机构,5计划生育服务机构
  1321. joData.fixmedins_name = TexYYMC.Text; //定点医药机构名称
  1322. joData.fixmedins_code = ""; //定点医药机构编号
  1323. break;
  1324. }
  1325. }
  1326. return joData;
  1327. }
  1328. private void uiButton1_Click(object sender, EventArgs e)
  1329. {
  1330. Close();
  1331. }
  1332. /// <summary>
  1333. /// 单条上传目录对照关系
  1334. /// </summary>
  1335. private void SingleUpload()
  1336. {
  1337. if ((dgvHISDirectory.CurrentRow == null))
  1338. {
  1339. MessageBox.Show("请查询HIS目录对照关系");
  1340. return;
  1341. }
  1342. string errorMsg = "", sMLLX = "";
  1343. //单条目录对照关系上传
  1344. int iHis = dgvHISDirectory.CurrentRow.Index;
  1345. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1346. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1347. //string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString();
  1348. if (hisType == 1)
  1349. {
  1350. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1351. }
  1352. else if (hisType == 2)
  1353. {
  1354. sMLLX = "201";
  1355. }
  1356. else if (hisType == 3)
  1357. {
  1358. sMLLX = "301";
  1359. }
  1360. string InsuCode = dtHis.Rows[iHis]["InsuCode"].ToString();
  1361. string InsuName = dtHis.Rows[iHis]["InsuName"].ToString();
  1362. string HisCode = dtHis.Rows[iHis]["itemCode"].ToString();
  1363. string HisName = dtHis.Rows[iHis]["itemDesc"].ToString();
  1364. string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd");
  1365. string MapId = dtHis.Rows[iHis]["MapID"].ToString();
  1366. JArray dataArray = new JArray();
  1367. //调用3301目录对照上传
  1368. JObject joData = new JObject();
  1369. joData.Add("fixmedins_hilist_id", HisCode);
  1370. joData.Add("fixmedins_hilist_name", HisName);
  1371. joData.Add("list_type", sMLLX); //目录类别
  1372. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1373. joData.Add("begndate", "2023-10-01"); //开始日期
  1374. joData.Add("enddate", UpdateDate); //结束日期
  1375. joData.Add("aprvno", "");
  1376. joData.Add("dosform", "");
  1377. joData.Add("exct_cont", "");
  1378. joData.Add("item_cont", "");
  1379. joData.Add("prcunt", "");
  1380. joData.Add("spec", "");
  1381. joData.Add("pacspec", "");
  1382. joData.Add("memo", "");
  1383. dataArray.Add(joData);
  1384. // 单条与多条保持一致
  1385. JObject joInput = new JObject();
  1386. joInput.Add("data", dataArray);
  1387. InvokeHelper invoker = new InvokeHelper();
  1388. Global.pat.insuplc_admdvs = Global.inf.areaCode;
  1389. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastUpload, joInput);
  1390. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1391. {
  1392. MessageBox.Show("目录对照关系上传失败:" + errorMsg);
  1393. }
  1394. else
  1395. {
  1396. UpdateUploadStatus(MapId, 3);
  1397. MessageBox.Show("目录对照关系上传成功!");
  1398. }
  1399. }
  1400. /// <summary>
  1401. /// 单条撤销目录对照关系上传
  1402. /// </summary>
  1403. private void SingleCancelUpload()
  1404. {
  1405. if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true))
  1406. {
  1407. MessageBox.Show("请查询HIS目录对照关系");
  1408. return;
  1409. }
  1410. string errorMsg = "", sMLLX = "";
  1411. //撤销目录对照关系
  1412. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1413. int iHis = dgvHISDirectory.CurrentRow.Index;
  1414. string InsuCode = dtHis.Rows[iHis]["InsuCode"].ToString();
  1415. string HisCode = dtHis.Rows[iHis]["HisCode"].ToString();
  1416. string MapId = dtHis.Rows[iHis]["MapID"].ToString();
  1417. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1418. //string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString();
  1419. if (hisType == 1)
  1420. {
  1421. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1422. }
  1423. else if (hisType == 2)
  1424. {
  1425. sMLLX = "201";
  1426. }
  1427. else if (hisType == 3)
  1428. {
  1429. sMLLX = "301";
  1430. }
  1431. //调用3302目录对照撤销
  1432. JObject joData = new JObject();
  1433. joData.Add("fixmedins_code", Global.inf.hospitalNO);
  1434. joData.Add("fixmedins_hilist_id", HisCode);
  1435. joData.Add("list_type", sMLLX); //目录类别
  1436. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1437. JObject joInput = new JObject();
  1438. joInput.Add("data", joData);
  1439. InvokeHelper invoker = new InvokeHelper();
  1440. Global.pat.insuplc_admdvs = Global.inf.areaCode;
  1441. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastCancel, joInput);
  1442. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1443. {
  1444. MessageBox.Show("目录对照撤销失败:" + errorMsg);
  1445. }
  1446. else
  1447. {
  1448. UpdateUploadStatus(MapId, 2);
  1449. MessageBox.Show("目录对照撤销成功!");
  1450. }
  1451. }
  1452. /// <summary>
  1453. /// 全部上传目录对照关系
  1454. /// </summary>
  1455. private void AllUpLoad()
  1456. {
  1457. if ((dgvHISDirectory.CurrentRow == null))
  1458. {
  1459. MessageBox.Show("请查询HIS目录对照关系");
  1460. return;
  1461. }
  1462. string sInputStr = "", sMLLX = "", errorMsg = "", Msg = "";
  1463. Boolean bOk = true;
  1464. JObject InputjoRtn = new JObject();
  1465. string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd");
  1466. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1467. if (hisType == 1)
  1468. {
  1469. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1470. }
  1471. else if (hisType == 2)
  1472. {
  1473. sMLLX = "201";
  1474. }
  1475. else if (hisType == 3)
  1476. {
  1477. sMLLX = "301";
  1478. }
  1479. List<String> mapIdList = new List<string>();
  1480. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1481. JArray dataArray = new JArray();
  1482. for (int i = 0; i < dtHis.Rows.Count; i++)
  1483. {
  1484. string InsuCode = dtHis.Rows[i]["InsuCode"].ToString(); //医保目录编码
  1485. string InsuName = dtHis.Rows[i]["InsuName"].ToString(); //医保目录名称
  1486. string HisCode = dtHis.Rows[i]["itemCode"].ToString(); //HIS目录编码
  1487. string HisName = dtHis.Rows[i]["itemDesc"].ToString(); //HIS目录名称
  1488. mapIdList.Add(dtHis.Rows[i]["MapID"].ToString()); //ID
  1489. //调用3301目录对照上传
  1490. JObject joData = new JObject();
  1491. joData.Add("fixmedins_hilist_id", HisCode);
  1492. joData.Add("fixmedins_hilist_name", HisName);
  1493. joData.Add("list_type", sMLLX); //目录类别
  1494. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1495. joData.Add("begndate", "2023-10-01"); //开始日期
  1496. joData.Add("enddate", UpdateDate); //结束日期
  1497. joData.Add("aprvno", "");
  1498. joData.Add("dosform", "");
  1499. joData.Add("exct_cont", "");
  1500. joData.Add("item_cont", "");
  1501. joData.Add("prcunt", "");
  1502. joData.Add("spec", "");
  1503. joData.Add("pacspec", "");
  1504. joData.Add("memo", "");
  1505. dataArray.Add(joData);
  1506. }
  1507. JObject joInput = new JObject();
  1508. joInput.Add("data", dataArray);
  1509. Global.pat.insuplc_admdvs = Global.inf.areaCode;
  1510. InvokeHelper invoker = new InvokeHelper();
  1511. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastUpload, joInput);
  1512. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1513. {
  1514. bOk = false;
  1515. Msg = Msg + "<" + joInput.ToString() + ":" + errorMsg + ">";
  1516. }
  1517. if (bOk == false)
  1518. {
  1519. MessageBox.Show("全部目录对照关系上传成功,部分上传异常:" + Msg);
  1520. }
  1521. else
  1522. {
  1523. UpdateUploadStatus(string.Join(",",mapIdList.ToArray()),3);
  1524. MessageBox.Show("全部目录对照关系上传成功!");
  1525. }
  1526. }
  1527. private void UpdateUploadStatus(string ids, int state)
  1528. {
  1529. if (string.IsNullOrEmpty(ids)) return;
  1530. dynamic joInput = new JObject();
  1531. joInput.HospitalDr = Global.inf.hospitalDr;
  1532. joInput.InterfaceDr = Global.inf.interfaceDr;
  1533. joInput.ID = ids;
  1534. joInput.state = state;
  1535. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010103", joInput).ToString(), "更新上传状态");
  1536. if (joRtn["errorCode"].Text() != "0")
  1537. {
  1538. Global.writeLog("更新状态失败!" + joRtn["errorMessage"].ToString());
  1539. }
  1540. }
  1541. /// <summary>
  1542. /// 全部撤销目录对照关系上传
  1543. /// </summary>
  1544. private void AllCancelUpload()
  1545. {
  1546. if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true))
  1547. {
  1548. MessageBox.Show("请查询HIS目录对照关系");
  1549. return;
  1550. }
  1551. string sMLLX = "", errorMsg = "", Msg = "";
  1552. Boolean bOk = true;
  1553. string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd");
  1554. int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料
  1555. if (hisType == 1)
  1556. {
  1557. sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他
  1558. }
  1559. else if (hisType == 2)
  1560. {
  1561. sMLLX = "201";
  1562. }
  1563. else if (hisType == 3)
  1564. {
  1565. sMLLX = "301";
  1566. }
  1567. DataTable dtHis = (DataTable)dgvHISDirectory.DataSource;
  1568. List<String> mapIdList = new List<string>();
  1569. for (int i = 0; i < dtHis.Rows.Count; i++)
  1570. {
  1571. string InsuCode = dtHis.Rows[i]["InsuCode"].ToString();
  1572. string HisCode = dtHis.Rows[i]["HisCode"].ToString();
  1573. mapIdList.Add(dtHis.Rows[i]["MapID"].ToString()); //ID
  1574. //调用3302目录对照撤销
  1575. JObject joData = new JObject();
  1576. joData.Add("fixmedins_code", Global.inf.hospitalNO);
  1577. joData.Add("fixmedins_hilist_id", HisCode);
  1578. joData.Add("list_type", sMLLX); //目录类别
  1579. joData.Add("med_list_codg", InsuCode); //医疗目录编码
  1580. JObject joInput = new JObject();
  1581. joInput.Add("data", joData);
  1582. InvokeHelper invoker = new InvokeHelper();
  1583. JObject joRtn = invoker.invokeCenterService(TradeEnum.DirectoryContrastCancel, joInput);
  1584. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  1585. {
  1586. bOk = false;
  1587. Msg = Msg + "<" + joInput.ToString()+":" + errorMsg + ">";
  1588. }
  1589. }
  1590. if (bOk == false)
  1591. {
  1592. MessageBox.Show("全部撤销目录对照关系上传成功,部分撤销异常:" + Msg);
  1593. }
  1594. else
  1595. {
  1596. UpdateUploadStatus(string.Join(",", mapIdList.ToArray()), 2);
  1597. MessageBox.Show("全部撤销目录对照关系上传成功!");
  1598. }
  1599. }
  1600. private void ToolStripMenuItem_Upload_Click(object sender, EventArgs e)
  1601. {
  1602. SingleUpload();
  1603. }
  1604. private void ToolStripMenuItem_CancelUpload_Click(object sender, EventArgs e)
  1605. {
  1606. SingleCancelUpload();
  1607. }
  1608. private void rbgDirecType_C_ValueChanged(object sender, int index, string text)
  1609. {
  1610. tbHISDirectoryFilter.Text = "";
  1611. uiTextBox1.Text = "";
  1612. rbAll.Checked = true;
  1613. rbMaped.Checked = false;
  1614. rbNoMaped.Checked = false;
  1615. tbCenterDirectoryFilter.Text = "";
  1616. tbInsuCode.Text = "";
  1617. tbApprovalNO.Text = "";
  1618. dgvCenterDirectory.DataSource = null;
  1619. btnQueryHISDirectory_Click(null, new EventArgs());
  1620. }
  1621. private void rbNoMaped_CheckedChanged(object sender, EventArgs e)
  1622. {
  1623. //if (rbNoMaped.Checked)
  1624. //{
  1625. // string errMsg;
  1626. // if (queryHISDirectory(1, 300, out errMsg) != 0)
  1627. // {
  1628. // MessageBox.Show(errMsg);
  1629. // return;
  1630. // }
  1631. //}
  1632. }
  1633. private void dgvHISDirectory_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1634. {
  1635. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1636. }
  1637. private void dgvCenterDirectory_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
  1638. {
  1639. e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
  1640. }
  1641. //private void btnExport_Click(object sender, EventArgs e)
  1642. //{
  1643. // this.pgHISDirect.PageChanged -= new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgHISDirect_PageChanged);
  1644. // if (queryHISDirectory(1, 5000, out string errMsg) != 0)
  1645. // {
  1646. // MessageBox.Show(errMsg);
  1647. // return;
  1648. // }
  1649. // this.pgHISDirect.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgHISDirect_PageChanged);
  1650. // if (dtExport.Rows.Count > 0)
  1651. // {
  1652. // string directoryType = string.Empty;
  1653. // string sBZ = "";
  1654. // switch (rbgDirecType_C.SelectedIndex)
  1655. // {
  1656. // case 0:
  1657. // {
  1658. // directoryType = "药品";
  1659. // break;
  1660. // }
  1661. // case 1:
  1662. // {
  1663. // directoryType = "诊疗";
  1664. // break;
  1665. // }
  1666. // case 2:
  1667. // {
  1668. // directoryType = "材料";
  1669. // break;
  1670. // }
  1671. // }
  1672. // if (rbAll.Checked) sBZ = "全部";
  1673. // else
  1674. // if (rbMaped.Checked) sBZ = "已对照";
  1675. // else
  1676. // if (rbNoMaped.Checked) sBZ = "未对照";
  1677. // string LSH = DateTime.Now.ToString("yyyy-MM-dd"); //DateTime.Now.ToString("MMddHHmmssffff");
  1678. // string filename = LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
  1679. // string sFliePathName = Global.curEvt.path + "\\MapRelation\\" + filename;
  1680. // //string sFliePathName = @"D:\" + LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
  1681. // //如果不存在目录,则创建目录
  1682. // if (!Directory.Exists(Global.curEvt.path + "\\MapRelation"))
  1683. // {
  1684. // //创建文件夹
  1685. // DirectoryInfo dirInfo = Directory.CreateDirectory(Global.curEvt.path + "\\MapRelation");
  1686. // }
  1687. // //判断文件是否存在,如果存在询问是覆盖还是重新下载
  1688. // if (File.Exists(sFliePathName))
  1689. // {
  1690. // DialogResult dr = MessageBox.Show("该路径已存在该目录文件,确定要覆盖并重新导入吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  1691. // if (dr == DialogResult.Yes)
  1692. // {
  1693. // File.Delete(sFliePathName);
  1694. // }
  1695. // else
  1696. // {
  1697. // return;
  1698. // }
  1699. // }
  1700. // string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
  1701. // if (ReturnFileName != "")
  1702. // {
  1703. // MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
  1704. // System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
  1705. // }
  1706. // else
  1707. // {
  1708. // MessageBox.Show("导出失败!");
  1709. // }
  1710. // }
  1711. //}
  1712. private void limitPriceUpdate_Click(object sender, EventArgs e)
  1713. {
  1714. SelfpayPercentForm selfpay = new SelfpayPercentForm();
  1715. selfpay.CenterCode = dgvDirectoy.Rows[dgvDirectoy.SelectedIndex].Cells["Code"].Value + "";
  1716. selfpay.ShowDialog();
  1717. }
  1718. private void batchUpdateCategory_Click(object sender, EventArgs e)
  1719. {
  1720. if (!rbMaped.Checked)
  1721. {
  1722. MessageBox.Show("请选择已对照进行更新");
  1723. return;
  1724. }
  1725. DataTable dt = (DataTable)dgvHISDirectory.DataSource; //获取当前页的数据,注意在已对照页面更新
  1726. if ((dt == null) || (dt.Rows.Count < 1))
  1727. {
  1728. MessageBox.Show("表中无数据,请检查!");
  1729. return;
  1730. }
  1731. string htype = "";
  1732. if (rbgDirecType_C.SelectedIndex == 0)
  1733. {
  1734. htype = "1";
  1735. }
  1736. else if (rbgDirecType_C.SelectedIndex == 1)
  1737. {
  1738. htype = "2";
  1739. }
  1740. else if (rbgDirecType_C.SelectedIndex == 2)
  1741. {
  1742. htype = "3";
  1743. }
  1744. // MessageBox.Show("第1列" + dt.Rows[0][0]);
  1745. // MessageBox.Show("第1行" + dt.Rows[0].ToString());
  1746. dynamic one1312 = new JObject();
  1747. one1312.Add("query_date", "");//查询时间点 日期型
  1748. one1312.Add("hilist_code", "");//医保目录编码 字符型 30
  1749. one1312.Add("insu_admdvs", "");//参保机构医保区划 字符型 6 Y
  1750. one1312.Add("begndate", ""); //开始日期 日期型
  1751. one1312.Add("hilist_name", "");//医保目录名称 字符型 200
  1752. one1312.Add("wubi", "");//五笔助记码 字符型 30
  1753. one1312.Add("pinyin", "");//拼音助记码 字符型 30
  1754. one1312.Add("med_chrgitm_type", "");//医疗收费项目类别 字符型 6 Y
  1755. one1312.Add("chrgitm_lv", "");//收费项目等级 字符型 3 Y
  1756. one1312.Add("lmt_used_flag", "");//限制使用标志 字符型 3 Y
  1757. one1312.Add("list_type", "");//目录类别 字符型 30
  1758. one1312.Add("med_use_flag", "");//医疗使用标志 字符型 3 Y
  1759. one1312.Add("matn_used_flag", "");//生育使用标志 字符型 3 Y
  1760. one1312.Add("hilist_use_type", "");//医保目录使用类别 字符型 3 Y
  1761. one1312.Add("lmt_cpnd_type", ""); //限复方使用类型 字符型 3 Y
  1762. one1312.Add("vali_flag", "");//有效标志 字符型 3 Y
  1763. one1312.Add("updt_time", "2019-01-01");//更新时间 日期型
  1764. one1312.Add("page_num", 1);//当前页数 数值型 4
  1765. one1312.Add("page_size", 50);//本页数据量 数值型 4
  1766. dynamic data1312 = new JObject();
  1767. dynamic joPamam = new JObject();//更新HIS医保目录入参
  1768. joPamam.Add("Code", "");
  1769. joPamam.Add("Name", "");
  1770. joPamam.Add("HisType", htype);
  1771. joPamam.Add("ChargeItemLevel", "");
  1772. for (int i = 0; i < dt.Rows.Count; i++)
  1773. {
  1774. one1312.hilist_code = dt.Rows[i]["insuCode"].ToString();//每行的第13列是医保编码
  1775. data1312.data = one1312;
  1776. JObject jo1312Rtn = invoker.invokeCenterService(TradeEnum.InsuDirectory,data1312);
  1777. if (JsonHelper.parseCenterReturnJson(jo1312Rtn, out string errorMsg) == 0)
  1778. {
  1779. JArray dt_result = JArray.Parse(jo1312Rtn["output"]["data"].ToString());
  1780. for (int n = 0; n < dt_result.Count; n++)
  1781. {
  1782. //医保返参取值
  1783. joPamam.Code = dt_result[n]["hilist_code"].ToString();
  1784. joPamam.Name = dt_result[n]["hilist_name"].ToString();
  1785. joPamam.ChargeItemLevel = dt_result[n]["chrgitm_lv"].ToString();
  1786. if (joPamam.ChargeItemLevel.ToString() == "01")
  1787. {
  1788. joPamam.ChargeItemLevelName = "甲类";
  1789. }
  1790. else if (joPamam.ChargeItemLevel.ToString() == "02")
  1791. {
  1792. joPamam.ChargeItemLevelName = "乙类";
  1793. }
  1794. else if (joPamam.ChargeItemLevel.ToString() == "03")
  1795. {
  1796. joPamam.ChargeItemLevelName = "丙类";
  1797. }
  1798. JObject joRtn = mIS.UpdateDirectoryBySelf(joPamam);
  1799. }
  1800. }
  1801. }
  1802. MessageBox.Show("更新完成!");
  1803. }
  1804. private void tsmiSingleUpdateAuxInfo_Click_1(object sender, EventArgs e)
  1805. {
  1806. string error;
  1807. int iDir = dgvDirectoy.CurrentRow.Index;
  1808. if (dgvDirectoy.CurrentRow == null)
  1809. {
  1810. MessageBox.Show("请查询中心目录");
  1811. return;
  1812. }
  1813. JObject jo = new JObject();
  1814. jo.Add("code", dgvDirectoy.Rows[iDir].Cells["code"].Value.ToString());
  1815. jo.Add("HisType", rbgDirecType.SelectedIndex + 1);
  1816. if (updateAuxInfo(jo, out error) != 0)
  1817. {
  1818. MessageBox.Show(error);
  1819. }
  1820. else
  1821. {
  1822. MessageBox.Show(error);
  1823. }
  1824. }
  1825. //更新目录信息(附属信息)
  1826. private int updateAuxInfo(JObject jo, out string err)
  1827. {
  1828. err = "";
  1829. tbDirectoryCode.Text = JsonHelper.getDestValue(jo, "code");
  1830. dynamic joData = GetInput(15, out TradeEnum trade);
  1831. JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(trade, joData);
  1832. if (joRtn["infcode"].ToString() == "0")
  1833. {
  1834. DataTable dtAuxInfo = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
  1835. DateTime dtToday = DateTime.Today;
  1836. string chrgitm_lv = "";
  1837. string begndate = "";
  1838. string enddate = "";
  1839. string list_type = "";
  1840. string med_chrgitm_type = "";
  1841. int iAdpater = 0;
  1842. foreach (DataRow dr in dtAuxInfo.Rows)
  1843. {
  1844. DateTime dtBegin = getDataRowValue(dr, "begndate") == "" ? Convert.ToDateTime("2000-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "begndate"));
  1845. DateTime dtEnd = getDataRowValue(dr, "enddate") == "" ? Convert.ToDateTime("2099-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "enddate"));
  1846. if ((dtBegin < dtToday) && (dtToday < dtEnd))
  1847. {
  1848. iAdpater++;
  1849. chrgitm_lv = dr["chrgitm_lv"].ToString();
  1850. begndate = dr["begndate"].ToString();
  1851. enddate = dr["enddate"].ToString();
  1852. list_type = dr["list_type"].ToString();
  1853. med_chrgitm_type = dr["med_chrgitm_type"].ToString();
  1854. }
  1855. }
  1856. //有且只能有一条数据符合
  1857. if (iAdpater == 1)
  1858. {
  1859. JObject joPamam = new JObject();
  1860. joPamam.Add("Code", JsonHelper.getDestValue(jo, "code"));
  1861. joPamam.Add("HisType", JsonHelper.getDestValue(jo, "HisType"));
  1862. joPamam.Add("StartDate", begndate);
  1863. joPamam.Add("EndDate", enddate);
  1864. joPamam.Add("ChargeItemLevel", chrgitm_lv);
  1865. joPamam.Add("ListType", list_type);
  1866. joPamam.Add("ChargeItemType", med_chrgitm_type);
  1867. JObject joUpdateRtn = mIS.UpdateDirectoryBySelf(joPamam);
  1868. string error = "";
  1869. if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out error) != 0)
  1870. {
  1871. err = "修改失败:" + error;
  1872. return -1;
  1873. }
  1874. else
  1875. {
  1876. err = "修改成功";
  1877. return 0;
  1878. }
  1879. }
  1880. else
  1881. {
  1882. err = "中心返回符合条数的记录不唯一或者为空,请检查!";
  1883. return -1;
  1884. }
  1885. }
  1886. else
  1887. {
  1888. err = "查询中心数据出错,请检查!";
  1889. return -1;
  1890. }
  1891. }
  1892. public string getDataRowValue(DataRow dr, string columnName)
  1893. {
  1894. if (!dr.Table.Columns.Contains(columnName))
  1895. {
  1896. return "";
  1897. }
  1898. else
  1899. {
  1900. return dr[columnName].ToString();
  1901. }
  1902. }
  1903. //更新目录信息(附属信息)
  1904. private int updateCellingPrice(JObject jo, out string err)
  1905. {
  1906. err = "";
  1907. tbDirectoryCode.Text = JsonHelper.getDestValue(jo, "code");
  1908. dynamic joData = GetInput(18, out TradeEnum trade);
  1909. JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(trade, joData);
  1910. if (joRtn["infcode"].ToString() == "0")
  1911. {
  1912. DataTable dtAuxInfo = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
  1913. DateTime dtToday = DateTime.Today;
  1914. string cellingPrice = "";
  1915. string begndate = "";
  1916. string enddate = "";
  1917. int iAdpater = 0;
  1918. foreach (DataRow dr in dtAuxInfo.Rows)
  1919. {
  1920. DateTime dtBegin = getDataRowValue(dr, "begndate") == "" ? Convert.ToDateTime("2000-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "begndate"));
  1921. DateTime dtEnd = getDataRowValue(dr, "enddate") == "" ? Convert.ToDateTime("2099-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "enddate"));
  1922. if ((dtBegin < dtToday) && (dtToday < dtEnd))
  1923. {
  1924. iAdpater++;
  1925. cellingPrice = dr["hilist_pric_uplmt_amt"].ToString();
  1926. begndate = dr["begndate"].ToString();
  1927. enddate = dr["enddate"].ToString();
  1928. }
  1929. }
  1930. //有且只能有一条数据符合
  1931. if (iAdpater == 1)
  1932. {
  1933. JObject joPamam = new JObject();
  1934. joPamam.Add("Code", JsonHelper.getDestValue(jo, "code"));
  1935. joPamam.Add("HisType", JsonHelper.getDestValue(jo, "HisType"));
  1936. joPamam.Add("StartDate", begndate);
  1937. joPamam.Add("EndDate", enddate);
  1938. joPamam.Add("CeilingPrice", cellingPrice);
  1939. JObject joUpdateRtn = mIS.UpdateDirectoryBySelf(joPamam);
  1940. string error = "";
  1941. if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out error) != 0)
  1942. {
  1943. err = "修改失败:" + error;
  1944. return -1;
  1945. }
  1946. else
  1947. {
  1948. err = "修改成功";
  1949. return 0;
  1950. }
  1951. }
  1952. else
  1953. {
  1954. err = "中心返回符合条数的记录不唯一或者为空,请检查!";
  1955. return -1;
  1956. }
  1957. }
  1958. else
  1959. {
  1960. err = "查询中心数据出错,请检查!";
  1961. return -1;
  1962. }
  1963. }
  1964. private void btTripMenu_Click(object sender, EventArgs e)
  1965. {
  1966. uiContextMenuStrip1.Show(((Sunny.UI.UIButton)sender), new Point(0, btTripMenu.Height));
  1967. }
  1968. private void tsmExportAllMappedData_Click(object sender, EventArgs e)
  1969. {
  1970. if (queryHISDirectory(1, 1000, out string errMsg) != 0)
  1971. {
  1972. MessageBox.Show(errMsg);
  1973. return;
  1974. }
  1975. if (dtExport.Rows.Count > 0)
  1976. {
  1977. string directoryType = string.Empty;
  1978. string sBZ = "";
  1979. switch (rbgDirecType_C.SelectedIndex)
  1980. {
  1981. case 0:
  1982. {
  1983. directoryType = "药品";
  1984. break;
  1985. }
  1986. case 1:
  1987. {
  1988. directoryType = "诊疗";
  1989. break;
  1990. }
  1991. case 2:
  1992. {
  1993. directoryType = "材料";
  1994. break;
  1995. }
  1996. }
  1997. if (rbAll.Checked) sBZ = "全部";
  1998. else
  1999. if (rbMaped.Checked) sBZ = "已对照";
  2000. else
  2001. if (rbNoMaped.Checked) sBZ = "未对照";
  2002. string LSH = DateTime.Now.ToString("yyyy-MM-dd"); //DateTime.Now.ToString("MMddHHmmssffff");
  2003. string sFliePathName = @"D:\" + LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
  2004. string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
  2005. if (ReturnFileName != "")
  2006. {
  2007. MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
  2008. System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
  2009. }
  2010. else
  2011. {
  2012. MessageBox.Show("导出失败!");
  2013. }
  2014. }
  2015. }
  2016. private void tsmExportMappedDataByLeft_Click(object sender, EventArgs e)
  2017. {
  2018. }
  2019. private void tsmUploadAllMappedData_Click(object sender, EventArgs e)
  2020. {
  2021. AllUpLoad();
  2022. }
  2023. private void tsmCancelAllUploadedData_Click(object sender, EventArgs e)
  2024. {
  2025. AllCancelUpload();
  2026. }
  2027. private void tsmUpdateAllMapped_Click(object sender, EventArgs e)
  2028. {
  2029. updateMappedInsuInfo(updateAuxAndCellPriceWrapper);
  2030. }
  2031. private void updateMappedInsuInfo(Func<JObject, OutParamWrapper, int> action)
  2032. {
  2033. string sqlStr = $"select * from HB_MedInsuMapRelation where Interface_Dr='{Global.inf.interfaceDr}' and Hospital_Dr ='{Global.inf.hospitalDr}'";
  2034. JObject joSqlstr = new JObject();
  2035. joSqlstr.Add("sqlStr", sqlStr);
  2036. JObject joRtn = mIS.QueryMappedData(joSqlstr, "查询所有已对照数据");
  2037. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  2038. int iFalse = 0;
  2039. int iCount = 0;
  2040. frmProcessBar bar = new frmProcessBar(dt.Rows.Count);
  2041. tools.ShowAppDiaglog(bar);
  2042. foreach (DataRow dr in dt.Rows)
  2043. {
  2044. JObject jo = new JObject();
  2045. jo.Add("code", dr["InsuCode"].ToString());
  2046. jo.Add("HisType", dr["HisType"].ToString());
  2047. OutParamWrapper outParWarp = new OutParamWrapper();
  2048. if (action(jo, outParWarp) != 0)
  2049. {
  2050. iFalse++;
  2051. Global.writeLog(outParWarp.Value);
  2052. }
  2053. }
  2054. if (iFalse != 0)
  2055. {
  2056. MessageBox.Show($"总共{iCount}条数据更新完成,但有{iFalse}条更新发生错误!");
  2057. }
  2058. else
  2059. {
  2060. MessageBox.Show("全部数据更新完成");
  2061. }
  2062. }
  2063. private int updateAuxAndCellPriceWrapper(JObject jo, OutParamWrapper outParamWrapper)
  2064. {
  2065. string err;
  2066. int iresult = updateAuxAndCellPrice(jo, out err);
  2067. outParamWrapper.Value = err;
  2068. return iresult;
  2069. }
  2070. private int updateCellPriceWrapper(JObject jo, OutParamWrapper outParamWrapper)
  2071. {
  2072. string err;
  2073. int iresult = updateCellingPrice(jo, out err);
  2074. outParamWrapper.Value = err;
  2075. return iresult;
  2076. }
  2077. private int updateAuxInfoWrapper(JObject jo, OutParamWrapper outParamWrapper)
  2078. {
  2079. string err;
  2080. int iresult = updateAuxInfo(jo, out err);
  2081. outParamWrapper.Value = err;
  2082. return iresult;
  2083. }
  2084. private int updateAuxAndCellPrice(JObject jo, out string error)
  2085. {
  2086. string err = "";
  2087. int iResult = 0;
  2088. error = "";
  2089. if (updateAuxInfo(jo, out err) != 0)
  2090. {
  2091. error = $"更新目录信息失败{err}";
  2092. iResult--;
  2093. }
  2094. err = "";
  2095. if (updateCellingPrice(jo, out err) != 0)
  2096. {
  2097. error = $"{error};更新限价信息失败{err}";
  2098. iResult--;
  2099. }
  2100. return iResult;
  2101. }
  2102. private void tsmUpdateCellPriceOfAllMapped_Click(object sender, EventArgs e)
  2103. {
  2104. updateMappedInsuInfo(updateCellPriceWrapper);
  2105. }
  2106. private void tsmUpdateLevelTypeOfAllMappedData_Click(object sender, EventArgs e)
  2107. {
  2108. updateMappedInsuInfo(updateAuxInfoWrapper);
  2109. }
  2110. private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
  2111. {
  2112. }
  2113. public int UpdateDictionaryBySelf(AddSingleDictionary addDic, out string errMsg)
  2114. {
  2115. string outParam = "", HBDictionaryDr = "";
  2116. JObject joRtn;
  2117. JObject jo = addDic.joPamam;
  2118. try
  2119. {
  2120. //if (JsonHelper.getDestValue(jo, "operateType") == "0")
  2121. //{
  2122. //插入并获取字典主表的DR
  2123. JObject joDic = JObject.FromObject(jo["dicObj"]);
  2124. joRtn = mIS.insertDictionary(joDic);
  2125. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  2126. {
  2127. return -1;
  2128. }
  2129. else
  2130. {
  2131. HBDictionaryDr = JsonHelper.getDestValue(joRtn, "data.HBDictionaryDr");
  2132. if (HBDictionaryDr == "")
  2133. {
  2134. errMsg = "HBDictionaryDr返回值为空";
  2135. return -1;
  2136. }
  2137. }
  2138. //}
  2139. //else
  2140. //{
  2141. // if (addDic.dr != null)
  2142. // {
  2143. // HBDictionaryDr = addDic.dr["hBDictionaryID"].ToString();
  2144. // }
  2145. // else
  2146. // {
  2147. // errMsg = "修改状态下未获得字典主表ID!请联系管理员";
  2148. // return -1;
  2149. // }
  2150. //}
  2151. //插入明细表
  2152. JObject joDicDetail = JObject.FromObject(jo["detailObj"]);
  2153. joDicDetail.Add("HBDictionaryDr", HBDictionaryDr);
  2154. JArray jaParams = new JArray();
  2155. jaParams.Add(joDicDetail);
  2156. joRtn = mIS.insertDictionaryDataDetail(jaParams);
  2157. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  2158. {
  2159. return -1;
  2160. }
  2161. else
  2162. {
  2163. return 0;
  2164. }
  2165. }
  2166. catch (Exception ex)
  2167. {
  2168. errMsg = ex.Message;
  2169. return -1;
  2170. }
  2171. }
  2172. }
  2173. public class OutParamWrapper
  2174. {
  2175. public string Value { get; set; }
  2176. }
  2177. }