SettlementBilllist.cs 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Common;
  3. using PTMedicalInsurance.FormSetter;
  4. using PTMedicalInsurance.Helper;
  5. using PTMedicalInsurance.Variables;
  6. using System;
  7. using System.Data;
  8. using System.Windows.Forms;
  9. using PTMedicalInsurance.Business;
  10. namespace PTMedicalInsurance.Forms
  11. {
  12. public partial class SettlementBillPrint : Form
  13. {
  14. private int hospitalDr;
  15. private int interfaceDr;
  16. private string hospitalNO;
  17. private string interfaceNO;
  18. private string hospitalName;
  19. private string hospitalAreaCode;
  20. public string insuType { get; set; }
  21. //医疗类别(人群类别)
  22. public string med_type { get; set; }
  23. public string fund_pay_type { get; set; }
  24. private InvokeHelper invoker = new InvokeHelper();
  25. private MIIrisServices mIS = new MIIrisServices();
  26. public SettlementBillPrint()
  27. {
  28. InitializeComponent();
  29. hospitalDr = Global.inf.hospitalDr;
  30. hospitalNO = Global.inf.hospitalNO;
  31. hospitalName = Global.inf.hospitalName;
  32. hospitalAreaCode = Global.inf.areaCode;
  33. interfaceDr = Global.inf.interfaceDr;
  34. }
  35. public SettlementBillPrint(JObject joParam)
  36. {
  37. InitializeComponent();
  38. hospitalDr = Global.inf.hospitalDr;
  39. hospitalNO = Global.inf.hospitalNO;
  40. hospitalName = Global.inf.hospitalName;
  41. hospitalAreaCode = Global.inf.areaCode;
  42. if (joParam == null) return;
  43. string setl_id = JsonHelper.getDestValue(joParam, "setl_id");
  44. if (setl_id == "")
  45. {
  46. MessageBox.Show("根据传入的结算编号为查询到相关信息,请手动输入查询!");
  47. return;
  48. }
  49. string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.hospitalDr;
  50. sqlStr = sqlStr + " and SettlementID='" + setl_id + "'";
  51. JObject joSqlstr = new JObject();
  52. joSqlstr.Add("sqlStr", sqlStr);
  53. JArray jaParam = new JArray();
  54. jaParam.Add(joSqlstr);
  55. JObject joSettlQuery = new JObject();
  56. joSettlQuery.Add("params", jaParam);
  57. joSettlQuery.Add("code", "09010059");
  58. InvokeHelper invoker = new InvokeHelper();
  59. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
  60. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  61. dgvSettlRecord.DataSource = dt;
  62. }
  63. private void SettlementBillPrint_Load(object sender, EventArgs e)
  64. {
  65. dpST.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
  66. dpED.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
  67. dt_ST.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  68. dt_ET.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
  69. dt_ST_Detail.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  70. dt_ET_Detail.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
  71. ComboxSetter cbxSetter = new ComboxSetter();
  72. cbxSetter.setCbxInterfaceDataSource(cbxInterface);
  73. GridViewSetter grdSetter = new GridViewSetter();
  74. grdSetter.SetHeaderTextOfSettlList(dgvSettlRecord);
  75. rbgAdmType.SelectedIndex = 0;
  76. rbgBillType.SelectedIndex = 1;
  77. rbg_SettleDetailAdmType.SelectedIndex = 2;
  78. //cbxInterface.SelectedValueChanged += new EventHandler(cbxInterface_SelectedValueChanged);
  79. grdSetter.SetHeaderTextOfSettltMentFeelDetailInfo(dgvInsuFeeUpload);
  80. grdSetter.SetHeaderTextOfSettltMentDetailInfo(dgv_SettleMentDetail);
  81. grdSetter.DatagridviewColumnWidthAdaptation(dgvInsuFeeUpload);
  82. grdSetter.DatagridviewColumnWidthAdaptation(dgv_SettleMentDetail);
  83. initCombox(Global.inf.InsuCurrencyCataLogue);
  84. }
  85. private void cbxInterface_SelectedValueChanged(object sender, EventArgs e)
  86. {
  87. DataTable dt = (DataTable)cbxInterface.DataSource;
  88. int i = cbxInterface.SelectedIndex;
  89. if (i >= 0)
  90. {
  91. //赋值
  92. hospitalNO = dt.Rows[i]["HospitalNO"].ToString();
  93. //MessageBox.Show(dt.Rows[i]["HospitalDr"].ToString());
  94. //MessageBox.Show(dt.Rows[i]["HospitalDr"].ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
  95. hospitalDr = int.Parse(dt.Rows[i]["HospitalDr"].ToString());
  96. interfaceNO = dt.Rows[i]["InterfaceNO"].ToString();
  97. interfaceDr = int.Parse(dt.Rows[i]["ID"].ToString());
  98. hospitalAreaCode = dt.Rows[i]["AreaCode"].ToString();
  99. //Global.inf.centerURL = dt.Rows[i]["CenterURL"].ToString();
  100. //Global.inf.businessDllName = dt.Rows[i]["DLLName"].ToString();
  101. //Global.inf.patientAreaCode = dt.Rows[i]["AreaCode"].ToString();
  102. }
  103. }
  104. private void btnClose_Click(object sender, EventArgs e)
  105. {
  106. Close();
  107. }
  108. private void btnQuery_Click(object sender, EventArgs e)
  109. {
  110. string sqlStr = " SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + hospitalDr;
  111. sqlStr = sqlStr + " and OccurTime>'" + dpST.Text + "'";
  112. sqlStr = sqlStr + " and OccurTime<'" + dpED.Text + "'";
  113. if (tbName.Text != "")
  114. {
  115. sqlStr = sqlStr + " and PatientName='" + tbName.Text + "'";
  116. }
  117. if (tbPatSettlID.Text != "")
  118. {
  119. sqlStr = sqlStr + " and SettlementID='" + tbPatSettlID.Text + "'";
  120. }
  121. if (tbHisNO.Text != "")
  122. {
  123. sqlStr = sqlStr + " and Adm_Dr='" + tbHisNO.Text + "'";
  124. }
  125. if (cbxInterface.Text != "")
  126. {
  127. sqlStr = sqlStr + " and Interface_Dr=" + Global.inf.interfaceDr + "";
  128. }
  129. if (rbgAdmType.SelectedIndex == 1)
  130. {
  131. sqlStr = sqlStr + " and AdmType=2";
  132. }
  133. if (rbgAdmType.SelectedIndex == 2)
  134. {
  135. sqlStr = sqlStr + " and AdmType=1";
  136. }
  137. if (rbgBillType.SelectedIndex == 1)
  138. {
  139. sqlStr = sqlStr + " and BillType=1 and ValidFlag=1 ";
  140. }
  141. if (rbgBillType.SelectedIndex == 2)
  142. {
  143. sqlStr = sqlStr + " and BillType=-1 and ValidFlag=0 ";
  144. }
  145. JObject joSqlstr = new JObject();
  146. joSqlstr.Add("sqlStr", sqlStr);
  147. JArray jaParam = new JArray();
  148. jaParam.Add(joSqlstr);
  149. JObject joSettlQuery = new JObject();
  150. joSettlQuery.Add("params", jaParam);
  151. joSettlQuery.Add("code", "09010059");
  152. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
  153. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  154. dgvSettlRecord.DataSource = dt;
  155. }
  156. public void btnPrint_Click(object sender, EventArgs e)
  157. {
  158. if (dgvSettlRecord.RowCount <= 0)
  159. {
  160. MessageBox.Show("请先查询结算数据!");
  161. return;
  162. }
  163. try
  164. {
  165. int i = dgvSettlRecord.CurrentRow.Index;
  166. DataTable dt = (DataTable)dgvSettlRecord.DataSource;
  167. string AdmID = dt.Rows[i]["AdmID"].ToString();
  168. string SettlementID = dt.Rows[i]["SettlementID"].ToString();
  169. string ValidFlag = dt.Rows[i]["ValidFlag"].ToString();
  170. string MdtrtID = dt.Rows[i]["MdtrtID"].ToString();
  171. JObject joRtn = GetFastReportParams("", AdmID, MdtrtID, SettlementID, ValidFlag);
  172. if (JsonHelper.parseIrisRtnValue(joRtn, out string errMsg) != 0)
  173. {
  174. MessageBox.Show("获取FastReport入参失败:" + errMsg);
  175. return;
  176. }
  177. string sFastReportParam = JsonHelper.getDestValue(joRtn, "result");
  178. if (FastReportPrint(sFastReportParam, out errMsg) != 0)
  179. {
  180. MessageBox.Show("调用FastReport打印失败!" + errMsg);
  181. return;
  182. }
  183. }
  184. catch (Exception ex)
  185. {
  186. MessageBox.Show(ex.Message);
  187. return;
  188. }
  189. }
  190. public void btnDesign_Click(object sender, EventArgs e)
  191. {
  192. if (dgvSettlRecord.RowCount <= 0)
  193. {
  194. MessageBox.Show("请先查询结算数据!");
  195. return;
  196. }
  197. try
  198. {
  199. string errMsg;
  200. int i = dgvSettlRecord.CurrentRow.Index;
  201. DataTable dt = (DataTable)dgvSettlRecord.DataSource;
  202. string AdmID = dt.Rows[i]["AdmID"].ToString();
  203. string SettlementID = dt.Rows[i]["SettlementID"].ToString();
  204. string ValidFlag = dt.Rows[i]["ValidFlag"].ToString();
  205. string MdtrtID = dt.Rows[i]["MdtrtID"].ToString();
  206. string PsnNo = dt.Rows[i]["PersonnelNO"].ToString();
  207. //更新医保费用明细表
  208. //JObject joRtnFee = UpdateMedInsuUploadData(AdmID, PsnNo, MdtrtID, SettlementID);
  209. //if (JsonHelper.parseIrisRtnValue(joRtnFee, out errMsg) != 0)
  210. //{
  211. // MessageBox.Show("更新医保费用明细表失败:" + errMsg);
  212. // return;
  213. //}
  214. JObject joRtn = GetFastReportParams("Y", AdmID, MdtrtID, SettlementID, ValidFlag);
  215. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  216. {
  217. MessageBox.Show("获取FastReport入参失败:" + errMsg);
  218. return;
  219. }
  220. string sFastReportParam = JsonHelper.getDestValue(joRtn, "result");
  221. if (FastReportPrint(sFastReportParam, out errMsg) != 0)
  222. {
  223. MessageBox.Show("调用FastReport设计失败!" + errMsg);
  224. return;
  225. }
  226. }
  227. catch (Exception ex)
  228. {
  229. MessageBox.Show(ex.Message);
  230. return;
  231. }
  232. }
  233. public int FastReportPrint(string InParams,out string OutMsg)
  234. {
  235. Global.writeLog("调用FastReport入参:" + InParams);
  236. try
  237. {
  238. #region【调用正版FastReport打印】
  239. FastReportFrom.FastReportDll FrDll = new FastReportFrom.FastReportDll();
  240. string sRtnFr = FrDll.FastReport(InParams);
  241. JObject joRetObj = JObject.Parse(sRtnFr);
  242. if (JsonHelper.parseIrisRtnValue(joRetObj, out string errMsg) != 0)
  243. {
  244. OutMsg = "调用FastReport打印失败!" + errMsg;
  245. return -1;
  246. }
  247. else
  248. {
  249. OutMsg = "";
  250. return 0;
  251. }
  252. #endregion
  253. }
  254. catch (Exception ex)
  255. {
  256. OutMsg = "调用FastReport打印失败!" + ex.Message;
  257. return -1;
  258. }
  259. }
  260. public JObject GetFastReportParams(string designFlag, string admID, string MdtrtID, string settlementID, string validFlag)
  261. {
  262. try
  263. {
  264. if (designFlag == "") { designFlag = "N"; }
  265. #region【获取HIS医保结算信息】
  266. JObject joSettel = new JObject();
  267. joSettel.Add("HospitalDr", Global.inf.hospitalDr);
  268. joSettel.Add("interfaceDr", Global.inf.interfaceDr);
  269. joSettel.Add("admID", admID);
  270. joSettel.Add("SettlementID", settlementID);
  271. joSettel.Add("ValidFlag", validFlag);
  272. joSettel.Add("MdtrtID", MdtrtID);
  273. JObject joRtnSettle = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010066", joSettel).ToString(), "获取结算单信息");
  274. if (JsonHelper.parseIrisRtnValue(joRtnSettle, out string errMsg) != 0)
  275. {
  276. JObject joRtnSet = new JObject();
  277. joRtnSet.Add("errorCode", -1);
  278. joRtnSet.Add("errorMessage", errMsg);
  279. joRtnSet.Add("result", "");
  280. return joRtnSet;
  281. }
  282. #endregion
  283. #region【组织FastReport调用入参】
  284. JArray jachargeItemLvFee = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.chargeItemLvFee"));
  285. JArray jaClassification = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.classification"));
  286. JArray jaSettlement = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement"));
  287. JArray jaSettlementDetail = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.settlementDetail"));
  288. JArray jaReginfo = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.reginfo"));
  289. JArray japatinsuinfo = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.patinsuinfo"));
  290. //转换金额大写
  291. string Sumamt = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].Sumamt").ToString());
  292. string ActualPayDeductible = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].ActualPayDeductible").ToString());
  293. string PersonCashPay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].PersonCashPay").ToString());
  294. string AccountPaySumamt = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].AccountPaySumamt").ToString());
  295. string FundPaySumamt = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].FundPaySumamt").ToString());
  296. string LargeExpensesSupplementPay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].LargeExpensesSupplementPay").ToString());
  297. string SeriousIllnessPay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].SeriousIllnessPay").ToString());
  298. string CivilserviceAllowancePay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].CivilserviceAllowancePay").ToString());
  299. string MedicalAssistPay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].MedicalAssistPay").ToString());
  300. string OtherPay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].OtherPay").ToString());
  301. string HospitalPartAmount = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].HospitalPartAmount").ToString());
  302. string AccountMutualAidAmount = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].AccountMutualAidAmount").ToString());
  303. string InPolicyRangeAmount = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].InPolicyRangeAmount").ToString());
  304. string InsuAdmdvsCode = JsonHelper.getDestValue(joRtnSettle, "result.data.patinsuinfo[0].insuplcAdmdvs").ToString();
  305. string InsuAdmdvsName = string.Empty;
  306. if ((InsuAdmdvsCode == "321200") || (InsuAdmdvsCode == "321299"))
  307. InsuAdmdvsName = "泰州市";
  308. else if (InsuAdmdvsCode == "321202")
  309. InsuAdmdvsName = "海陵区";
  310. else if (InsuAdmdvsCode == "321203")
  311. InsuAdmdvsName = "高港区";
  312. else if (InsuAdmdvsCode == "321204")
  313. InsuAdmdvsName = "姜堰区";
  314. else if (InsuAdmdvsCode == "321281")
  315. InsuAdmdvsName = "兴化市";
  316. else if (InsuAdmdvsCode == "321282")
  317. InsuAdmdvsName = "靖江市";
  318. else if (InsuAdmdvsCode == "321283")
  319. InsuAdmdvsName = "泰兴市";
  320. else
  321. InsuAdmdvsName = InsuAdmdvsCode;
  322. //string BeginDate = JsonHelper.getDestValue(joRtnSettle, "result.data.reginfo[0].RegDate").ToString();
  323. //string EndDate = JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].HISDischargeTime").ToString();
  324. //string InHosDays = FastReportFunction.DateDiff(Convert.ToDateTime(BeginDate), Convert.ToDateTime(EndDate));
  325. JObject jaAmountChiness = new JObject();
  326. jaAmountChiness.Add("Sumamt", Sumamt);
  327. jaAmountChiness.Add("ActualPayDeductible", ActualPayDeductible);
  328. jaAmountChiness.Add("PersonCashPay", PersonCashPay);
  329. jaAmountChiness.Add("AccountPaySumamt", AccountPaySumamt);
  330. jaAmountChiness.Add("FundPaySumamt", FundPaySumamt);
  331. jaAmountChiness.Add("LargeExpensesSupplementPay", LargeExpensesSupplementPay);
  332. jaAmountChiness.Add("SeriousIllnessPay", SeriousIllnessPay);
  333. jaAmountChiness.Add("CivilserviceAllowancePay", CivilserviceAllowancePay);
  334. jaAmountChiness.Add("MedicalAssistPay", MedicalAssistPay);
  335. jaAmountChiness.Add("OtherPay", OtherPay);
  336. jaAmountChiness.Add("HospitalPartAmount", HospitalPartAmount);
  337. jaAmountChiness.Add("AccountMutualAidAmount", AccountMutualAidAmount);
  338. jaAmountChiness.Add("InPolicyRangeAmount",InPolicyRangeAmount); //合规费用
  339. jaAmountChiness.Add("SettlOpter", Global.user.name);
  340. jaAmountChiness.Add("InsuAdmdvsName", InsuAdmdvsName);
  341. JArray jachinessParams = new JArray();
  342. jachinessParams.Add(jaAmountChiness);
  343. JObject joDataResult = new JObject();
  344. joDataResult.Add("SettlementInfo", jaSettlement);
  345. joDataResult.Add("SettlementDetailInfo", jaSettlementDetail);
  346. joDataResult.Add("ChargeItemLvFee", jachargeItemLvFee);
  347. joDataResult.Add("ClassificationInfo", jaClassification);
  348. joDataResult.Add("RegInfo", jaReginfo);
  349. joDataResult.Add("Patinsuinfo", japatinsuinfo);
  350. joDataResult.Add("ChinessSummat", jachinessParams);
  351. JObject joParams = new JObject();
  352. joParams.Add("fastReportCode", "SP11"); //这个要从表取值
  353. joParams.Add("hospID", Global.inf.hisHospitalDr.ToString());
  354. joParams.Add("printCode", Global.inf.interfaceDr.ToString());
  355. joParams.Add("templateID", "");
  356. JArray jaParams = new JArray();
  357. jaParams.Add(joParams);
  358. JObject joReportParams = new JObject();
  359. joReportParams.Add("params", jaParams);
  360. joReportParams.Add("code", "01040306");
  361. JObject joParam = new JObject();
  362. joParam.Add("designFlag", designFlag); //报表设计预览
  363. joParam.Add("logFlag", "N");
  364. joParam.Add("dataParams", "");
  365. joParam.Add("pdfName", "");
  366. joParam.Add("reportparams", joReportParams);
  367. joParam.Add("dataResult", joDataResult);
  368. JObject joDataURL = new JObject();
  369. joDataURL.Add("dataIP", Global.hisConfig.ip);
  370. joDataURL.Add("urlAddress", Global.hisConfig.url);
  371. joDataURL.Add("authorization", Global.hisConfig.authorization);
  372. joParam.Add("dataURL", joDataURL);
  373. JArray jaParam = new JArray();
  374. jaParam.Add(joParam);
  375. JObject joInparam = new JObject();
  376. joInparam.Add("params", JArray.FromObject(jaParam));
  377. joInparam.Add("session", Global.curEvt.jaSession);
  378. #endregion
  379. JObject joRtn = new JObject();
  380. joRtn.Add("errorCode", 0);
  381. joRtn.Add("errorMessage", "");
  382. joRtn.Add("result", joInparam.ToString());
  383. return joRtn;
  384. }
  385. catch (Exception ex)
  386. {
  387. JObject joRtnEx = new JObject();
  388. joRtnEx.Add("errorCode", -1);
  389. joRtnEx.Add("errorMessage", ex.Message);
  390. joRtnEx.Add("result", "");
  391. return joRtnEx;
  392. }
  393. }
  394. /// <summary>
  395. /// 【5204】费用明细查询更新医保费用上传记录表
  396. /// </summary>
  397. /// <returns></returns>
  398. public JObject UpdateMedInsuUploadData(string AdmID, string psnNo, string MdtrtID, string SettlementID)
  399. {
  400. string errorMsg, outParam;
  401. if (string.IsNullOrEmpty(AdmID))
  402. return JObject.Parse(JsonHelper.setExceptionJson(-1, "", "AdmID不能为空!").ToString());
  403. if (string.IsNullOrEmpty(psnNo))
  404. return JObject.Parse(JsonHelper.setExceptionJson(-1, "", "psnNo不能为空!").ToString());
  405. if (string.IsNullOrEmpty(MdtrtID))
  406. return JObject.Parse(JsonHelper.setExceptionJson(-1, "", "MdtrtID不能为空!").ToString());
  407. if (string.IsNullOrEmpty(SettlementID))
  408. return JObject.Parse(JsonHelper.setExceptionJson(-1, "", "settlementID不能为空!").ToString());
  409. if (string.IsNullOrEmpty(Global.inf.hospitalDr.ToString()))
  410. return JObject.Parse(JsonHelper.setExceptionJson(-1, "", "hospitalDr不能为空!").ToString());
  411. try
  412. {
  413. #region【5204】费用明细查询
  414. JObject joData = new JObject();
  415. joData.Add("psn_no", psnNo);
  416. joData.Add("setl_id", SettlementID);
  417. joData.Add("mdtrt_id", MdtrtID);
  418. JObject joInput = new JObject();
  419. joInput.Add("data", joData);
  420. JObject joRtn5204 = invoker.invokeCenterService(TradeEnum.InsuFeeUpdate, joInput);
  421. if (JsonHelper.parseCenterRtnValue(joRtn5204, out errorMsg) != 0)
  422. {
  423. outParam = JsonHelper.setExceptionJson(-1, "【5204】费用明细查询失败!", errorMsg).ToString();
  424. return JObject.Parse(outParam);
  425. }
  426. #endregion
  427. JArray jaRtn5204 = JArray.Parse(JsonHelper.getDestValue(joRtn5204, "output"));
  428. if (jaRtn5204.Count <= 0)
  429. return JObject.Parse(JsonHelper.setExceptionJson(-1, "", "【5204】医保费用明细查询返回结果为空!").ToString());
  430. dynamic joTmp = new JObject();
  431. joTmp.code = "09010090";
  432. JArray jaParams = jaRtn5204;
  433. joTmp.Add("params", jaParams);
  434. joTmp.HospitalDr = Global.inf.hospitalDr;
  435. joTmp.InterfaceDr = Global.inf.InsuCurrencyCataLogue; //如果是通用目录就更新通用目录
  436. joTmp.admID = AdmID;
  437. joTmp.mdtrt_id = MdtrtID;
  438. joTmp.psn_no = psnNo;
  439. joTmp.updateUserID = Global.user.ID;
  440. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "更新医保费用上传明细表");
  441. if (JsonHelper.parseIrisRtnValue(joRtn, out errorMsg) != 0)
  442. {
  443. outParam = JsonHelper.setExceptionJson(-1, "更新医保费用上传明细表失败!", errorMsg).ToString();
  444. return JObject.Parse(outParam);
  445. }
  446. return joRtn;
  447. }
  448. catch (Exception ex)
  449. {
  450. JObject joRtnEx = new JObject();
  451. joRtnEx.Add("errorCode", -1);
  452. joRtnEx.Add("errorMessage", ex.Message);
  453. return joRtnEx;
  454. }
  455. }
  456. private JObject getPatCheckList()
  457. {
  458. try
  459. {
  460. int i = dgvSettlRecord.CurrentRow.Index;
  461. DataTable dt = (DataTable)dgvSettlRecord.DataSource;
  462. JObject joSettel = new JObject();
  463. joSettel.Add("HospitalDr", Global.inf.hospitalDr);
  464. joSettel.Add("interfaceDr", Global.inf.interfaceDr);
  465. joSettel.Add("admID", dt.Rows[i]["AdmID"].ToString());
  466. joSettel.Add("SettlementID", dt.Rows[i]["SettlementID"].ToString());
  467. joSettel.Add("ValidFlag", dt.Rows[i]["ValidFlag"].ToString());
  468. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010066", joSettel).ToString(), "获取结算单信息");
  469. return joRtn;
  470. }
  471. catch (Exception ex)
  472. {
  473. JObject joRtn = new JObject();
  474. joRtn.Add("errorCode", -1);
  475. joRtn.Add("errorMessage", ex.Message);
  476. return joRtn;
  477. }
  478. }
  479. private void btn_UpdateMedInsuFee_Click(object sender, EventArgs e)
  480. {
  481. string errorMsg;
  482. if (dgvSettlRecord.RowCount <= 0)
  483. {
  484. MessageBox.Show("请先查询结算数据!");
  485. return;
  486. }
  487. int i = dgvSettlRecord.CurrentRow.Index;
  488. DataTable dt = (DataTable)dgvSettlRecord.DataSource;
  489. string AdmID = dt.Rows[i]["AdmID"].ToString();
  490. string SettlementID = dt.Rows[i]["SettlementID"].ToString();
  491. string MdtrtID = dt.Rows[i]["MdtrtID"].ToString();
  492. string PsnNo = dt.Rows[i]["PersonnelNO"].ToString();
  493. #region【5204】1.医保费用明细查询 2.更新医保平台费用上传明细表
  494. JObject joRtnFee = UpdateMedInsuUploadData(AdmID, PsnNo, MdtrtID, SettlementID);
  495. if (JsonHelper.parseIrisRtnValue(joRtnFee, out errorMsg) != 0)
  496. {
  497. MessageBox.Show("更新医保费用明细表失败:" + errorMsg);
  498. return;
  499. }
  500. else
  501. {
  502. MessageBox.Show("更新医保费用明细表成功");
  503. }
  504. #endregion
  505. }
  506. private void btnOK_Click(object sender, EventArgs e)
  507. {
  508. string sqlStr;
  509. sqlStr = " SELECT top 500 a.Adm_Dr,c.InsuName as HISName,a.PatientName as Name, b.HISCode, b.MedInsuNO, b.Price,b.Sumamt,";
  510. sqlStr = sqlStr + " b.ChargeItemLevel,'' ChargeItemLevelName,b.SelfPayProp, b.UpLimitAmount,b.OverLimitAmount, ";
  511. sqlStr = sqlStr + " b.InScopeAmount,b.FullOwnPayAmount,b.PreSelfPayAmount,b.LimitUsedFlag, b.MedicalChargeItemType,\"Count\" ";
  512. sqlStr = sqlStr + " FROM BS_MedInsuSettlement a LEFT JOIN BS_MedInsuFeeUploadRecord b ";
  513. sqlStr = sqlStr + " ON a.Hospital_Dr=b.Hospital_Dr AND a.MdtrtID=b.MdtrtID AND a.PersonnelNO=b.PersonnelNO ";
  514. sqlStr = sqlStr + " LEFT JOIN HB_MedInsuMapRelation c ON b.MedInsuNO=c.InsuCode AND a.Interface_Dr=c.Interface_Dr AND a.Hospital_Dr=c.Hospital_Dr ";
  515. sqlStr = sqlStr + " WHERE b.MedInsuNO<>'' and a.ValidFlag=1 AND a.BillType=1 AND a.AdmType=2 ";
  516. sqlStr = sqlStr + " AND a.Interface_Dr=" + Global.inf.interfaceDr;
  517. sqlStr = sqlStr + " AND a.Hospital_Dr= " + Global.inf.hospitalDr;
  518. sqlStr = sqlStr + " AND a.OccurTime>'" + dt_ST.Text + "'";
  519. sqlStr = sqlStr + " AND a.OccurTime<'" + dt_ET.Text + "'";
  520. if (tb_InHospNo.Text != "")
  521. {
  522. sqlStr = sqlStr + " and a.BillID='" + tb_InHospNo.Text + "'";
  523. }
  524. if (tb_SettleID.Text != "")
  525. {
  526. sqlStr = sqlStr + " and a.SettlementID='" + tb_SettleID.Text + "'";
  527. }
  528. if (tbPatientName.Text != "")
  529. {
  530. sqlStr = sqlStr + " and a.PatientName='" + tbPatientName.Text + "'";
  531. }
  532. if (tbCertNo.Text != "")
  533. {
  534. sqlStr = sqlStr + " and a.CertificateNO='" + tbCertNo.Text + "'";
  535. }
  536. if (cbbOverPrice.Text == "是")
  537. {
  538. sqlStr = sqlStr + " AND b.OverLimitAmount>0 ";
  539. }
  540. else if (cbbOverPrice.Text == "否")
  541. {
  542. sqlStr = sqlStr + " AND b.OverLimitAmount<=0 ";
  543. }
  544. if (cbbLevel.Text == "甲类")
  545. {
  546. sqlStr = sqlStr + " AND b.ChargeItemLevel='01' ";
  547. }
  548. else if (cbbLevel.Text == "乙类")
  549. {
  550. sqlStr = sqlStr + " AND b.ChargeItemLevel='02' ";
  551. }
  552. else if (cbbLevel.Text == "丙类")
  553. {
  554. sqlStr = sqlStr + " AND b.ChargeItemLevel='03' ";
  555. }
  556. JObject joSqlstr = new JObject();
  557. joSqlstr.Add("sqlStr", sqlStr);
  558. JArray jaParam = new JArray();
  559. jaParam.Add(joSqlstr);
  560. JObject joSettlQuery = new JObject();
  561. joSettlQuery.Add("params", jaParam);
  562. joSettlQuery.Add("code", "09010118");
  563. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询医保结算费用信息");
  564. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  565. dgvInsuFeeUpload.DataSource = dt;
  566. }
  567. private void bt_QuerySettleDetail_Click(object sender, EventArgs e)
  568. {
  569. string sqlStr, sqlStr_MX, sqlStr_HZ, sqlStr_Master;
  570. sqlStr_MX = " SELECT a.SettlementID,a.PatientName,a.Gender,a.Age,a.CertificateNO,a.AdmType,b.PayTypeCode,b.PayTypeName,";
  571. sqlStr_MX = sqlStr_MX + " b.SettlProcInfo,a.SettlementDateTime,b.InScopyAmount,b.CurrLimtAmount,b.FundPayAmount ";
  572. sqlStr_HZ = " SELECT '合计','0','0','0','0','0','0','0',null,null,";
  573. sqlStr_HZ = sqlStr_HZ + "sum(b.InScopyAmount),sum(b.CurrLimtAmount),sum(b.FundPayAmount) ";
  574. sqlStr = " FROM BS_MedInsuSettlement a, BS_MedInsuSettlementDetail b ";
  575. sqlStr = sqlStr + " WHERE a.Interface_Dr=b.Interface_Dr AND a.SettlementID=b.SettlementID ";
  576. sqlStr = sqlStr + " AND a.ValidFlag=1 AND a.BillType=1 ";
  577. sqlStr = sqlStr + " AND a.Interface_Dr=" + Global.inf.interfaceDr;
  578. sqlStr = sqlStr + " AND a.Hospital_Dr= " + Global.inf.hospitalDr;
  579. sqlStr = sqlStr + " AND a.OccurTime>'" + dt_ST_Detail.Text + "'";
  580. sqlStr = sqlStr + " AND a.OccurTime<'" + dt_ET_Detail.Text + "'";
  581. if (rbg_SettleDetailAdmType.SelectedIndex > 0)
  582. sqlStr = sqlStr + " and a.AdmType=" + rbg_SettleDetailAdmType.SelectedIndex;
  583. if (!string.IsNullOrEmpty(tb_SettleMentID.Text))
  584. sqlStr = sqlStr + " and a.SettlementID='" + tb_SettleMentID.Text + "'";
  585. if (!string.IsNullOrEmpty(tb_Name.Text))
  586. sqlStr = sqlStr + " AND a.patientName='" + tb_Name.Text + "' ";
  587. if (!string.IsNullOrEmpty(tb_CertNo.Text))
  588. sqlStr = sqlStr + " AND a.CertificateNO='" + tb_CertNo.Text + "' ";
  589. if (!string.IsNullOrEmpty(dblkcbxInsuranceType.Text))
  590. sqlStr = sqlStr + " AND a.InsuranceType='"+ insuType +"'";
  591. if (!string.IsNullOrEmpty(dblkcbxMedicalType.Text))
  592. sqlStr = sqlStr + " AND a.MedicalType='" + med_type + "'";
  593. if (!string.IsNullOrEmpty(dblkcbxFundPayType.Text))
  594. sqlStr = sqlStr + " AND b.PayTypeCode='" + fund_pay_type + "'";
  595. sqlStr_Master = sqlStr_MX + sqlStr + " UNION ALL " + sqlStr_HZ + sqlStr;
  596. JObject joSqlstr = new JObject();
  597. joSqlstr.Add("sqlStr", sqlStr_Master);
  598. JArray jaParam = new JArray();
  599. jaParam.Add(joSqlstr);
  600. JObject joSettlQuery = new JObject();
  601. joSettlQuery.Add("params", jaParam);
  602. joSettlQuery.Add("code", "09010143");
  603. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询医保结算明细信息");
  604. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  605. dgv_SettleMentDetail.DataSource = dt;
  606. }
  607. private void initCombox(int InsuCurrencyCataLogue)
  608. {
  609. //获取通用目录
  610. if (string.IsNullOrEmpty(InsuCurrencyCataLogue.ToString()))
  611. {
  612. string sTYML = mIS.GetCommonInterface_Dr(Global.inf.interfaceDr.ToString(), "");
  613. if (string.IsNullOrEmpty(sTYML))
  614. InsuCurrencyCataLogue = Global.inf.interfaceDr;
  615. else
  616. InsuCurrencyCataLogue = int.Parse(sTYML);
  617. }
  618. string sqlStr;
  619. string sqlCondition = " and A.Interface_Dr = '" + InsuCurrencyCataLogue.ToString() + "'";
  620. sqlStr = "SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'insutype'" + sqlCondition;
  621. SetDBLKCombox(ref dblkcbxInsuranceType, sqlStr);
  622. sqlStr = "SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'med_type'" + sqlCondition;
  623. SetDBLKCombox(ref dblkcbxMedicalType, sqlStr);
  624. sqlStr = "SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'fund_pay_type'" + sqlCondition;
  625. SetDBLKCombox(ref dblkcbxFundPayType, sqlStr);
  626. }
  627. private DataTable GetDBLKComboxTable(string sqlStr)
  628. {
  629. InvokeHelper invoker = new InvokeHelper();
  630. dynamic joInparm = new JObject();
  631. dynamic joTmp = new JObject();
  632. joTmp.sqlStr = sqlStr;
  633. JArray jaParams = new JArray();
  634. jaParams.Add(joTmp);
  635. joInparm.Add("params", JArray.FromObject(jaParams));
  636. joInparm.code = "09010014";
  637. string inParam = joInparm.ToString();
  638. JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
  639. //dynamic jsonRtn = JsonConvert.DeserializeObject(strRtn);
  640. DataTable dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
  641. //dt.Columns[0].ColumnName = "编码";
  642. //dt.Columns[1].ColumnName = "名称";
  643. //dt.Columns[2].ColumnName = "拼音查找码";
  644. return dt;
  645. }
  646. private void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, string sqlStr)
  647. {
  648. dblcbx.sDisplayField = "Code,Name,SearchCode";
  649. dblcbx.sDisplayMember = "名称";
  650. dblcbx.sKeyWords = "Code,SearchCode";
  651. DataTable dt = GetDBLKComboxTable(sqlStr);
  652. dblcbx.DataSource = dt;
  653. if (dt?.Rows.Count > 0)
  654. {
  655. // default to select first one;
  656. }
  657. dblcbx.RowFilterVisible = true;
  658. dblcbx.TextBox.Width = 400;
  659. dblcbx.DataGridView.Width = 400;
  660. dblcbx.DataGridView.Columns[0].Name = "编码";
  661. dblcbx.DataGridView.Columns[1].Name = "名称";
  662. dblcbx.DataGridView.Columns[2].Name = "查找码";
  663. dblcbx.DataGridView.Columns[0].Width = 100;
  664. dblcbx.DataGridView.Columns[1].Width = 200;
  665. }
  666. private void dblkcbxInsuranceType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  667. {
  668. DataGridViewRow row = e.Value as DataGridViewRow;
  669. DataRowView dataRow = row.DataBoundItem as DataRowView;
  670. insuType = dataRow["Code"].ToString().Trim();
  671. //insuTypeName = dataRow["Name"].ToString().Trim();
  672. }
  673. private void dblkcbxMedicalType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  674. {
  675. DataGridViewRow row = e.Value as DataGridViewRow;
  676. DataRowView dataRow = row.DataBoundItem as DataRowView;
  677. med_type = dataRow["Code"].ToString().Trim();
  678. //med_type_name = dataRow["Name"].ToString().Trim();
  679. }
  680. private void dblkcbxFundPayType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  681. {
  682. DataGridViewRow row = e.Value as DataGridViewRow;
  683. DataRowView dataRow = row.DataBoundItem as DataRowView;
  684. fund_pay_type = dataRow["Code"].ToString().Trim();
  685. }
  686. }
  687. }