PatientInsuInfo.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Newtonsoft.Json.Linq;
  11. using PTMedicalInsurance.Helper;
  12. using PTMedicalInsurance.Variables;
  13. using PTMedicalInsurance.Business;
  14. namespace PTMedicalInsurance.Forms
  15. {
  16. public partial class PatientInsuInfo : Form
  17. {
  18. public DataTable dtInsuInfo;
  19. public DataTable dtIDInfo;
  20. public DataTable dtWorkInjury;
  21. public JObject joSelectedInsuInfo;
  22. public int insuInfoIndex = 0;
  23. public int idInfoIndex = 0;
  24. InvokeHelper invoker = new InvokeHelper();
  25. private MIIrisServices mIS = new MIIrisServices();
  26. private DataTable dtFundPayType;
  27. private Form mainForm;
  28. //1.声明自适应类实例
  29. AutoResizeForm asc = new AutoResizeForm();
  30. public PatientInsuInfo()
  31. {
  32. InitializeComponent();
  33. this.StartPosition = FormStartPosition.CenterParent;
  34. asc.controllInitializeSize(this);
  35. asc.controlAutoSize(this);
  36. }
  37. public PatientInsuInfo(JObject jo, Form frm)
  38. {
  39. InitializeComponent();
  40. InitForm(jo, frm);
  41. }
  42. private DataTable GetDBLKComboxTable(string sqlStr)
  43. {
  44. InvokeHelper invoker = new InvokeHelper();
  45. dynamic joInparm = new JObject();
  46. dynamic joTmp = new JObject();
  47. joTmp.sqlStr = sqlStr;
  48. JArray jaParams = new JArray();
  49. jaParams.Add(joTmp);
  50. joInparm.Add("params", JArray.FromObject(jaParams));
  51. joInparm.code = "09010014";
  52. string inParam = joInparm.ToString();
  53. JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
  54. //dynamic jsonRtn = JsonConvert.DeserializeObject(strRtn);
  55. DataTable dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
  56. //dt.Columns[0].ColumnName = "编码";
  57. //dt.Columns[1].ColumnName = "名称";
  58. //dt.Columns[2].ColumnName = "拼音查找码";
  59. return dt;
  60. }
  61. private void InitForm(JObject jo, Form frm)
  62. {
  63. InitForm(jo);
  64. mainForm = frm;
  65. CheckForIllegalCrossThreadCalls = false;
  66. // 禁用关闭按钮
  67. this.FormBorderStyle = FormBorderStyle.None;
  68. // 隐藏标题栏
  69. this.ControlBox = false;
  70. // 其他可能需要的配置
  71. if (mainForm != this)
  72. {
  73. this.TopLevel = false;
  74. this.Dock = DockStyle.Fill; // 根据需要设置 Dock 属性
  75. }
  76. else
  77. {
  78. this.WindowState = FormWindowState.Maximized;
  79. }
  80. //
  81. //grdSetter.setHisRegInfo(dgvHisRegInfo);
  82. //grdSetter.setCenterApplyInfo(dgvCenterApplyInfo);
  83. }
  84. private void InitForm(JObject jo)
  85. {
  86. dtInsuInfo = (DataTable)jo["insuinfo"].ToObject(typeof(DataTable));
  87. dtIDInfo = (DataTable)jo["idetinfo"].ToObject(typeof(DataTable));
  88. JObject joBaseInfo = JObject.FromObject(jo["baseinfo"]);
  89. this.tbName.Text = joBaseInfo["psn_name"].ToString();
  90. this.tbPsnNO.Text = joBaseInfo["psn_no"].ToString();
  91. this.tbGend.Text = joBaseInfo["gend"].ToString();
  92. this.tbBirthDay.Text = joBaseInfo["brdy"].ToString();
  93. this.tbNaty.Text = joBaseInfo["naty"].ToString();
  94. this.tbCertType.Text = joBaseInfo["psn_cert_type"].ToString();
  95. this.tbCertNO.Text = joBaseInfo["certno"].ToString();
  96. this.tbAge.Text = joBaseInfo["age"].ToString();
  97. string expContent = joBaseInfo["exp_content"].ToString(); //字段扩展 只有居民返回
  98. //JObject joInsuInfo = JObject.FromObject(jo["insuinfo"]);
  99. //Global.pat.insuType= joInsuInfo["insutypeNo"].ToString();
  100. setDgvIDInfo();
  101. setDgvInsuInfo();
  102. setDgvTreatement(dgvTreatment);
  103. dgvInsuInfo.DataSource = dtInsuInfo;
  104. dgvIDInfo.DataSource = dtIDInfo;
  105. //获取通用目录
  106. string sTYML = mIS.GetCommonInterface_Dr(Global.inf.interfaceDr.ToString(), "");
  107. if (sTYML == "")
  108. Global.inf.interfaceDr_TY = Global.inf.interfaceDr;
  109. else
  110. Global.inf.interfaceDr_TY = int.Parse(sTYML);
  111. string sqlCondition = " and A.Interface_Dr = '" + Global.inf.interfaceDr_TY.ToString() + "'";
  112. string 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;
  113. dtFundPayType = GetDBLKComboxTable(sqlStr);
  114. }
  115. public PatientInsuInfo(JObject jo)
  116. {
  117. InitializeComponent();
  118. dtInsuInfo = (DataTable)jo["insuinfo"].ToObject(typeof(DataTable));
  119. dtIDInfo = (DataTable)jo["idetinfo"].ToObject(typeof(DataTable));
  120. JObject joBaseInfo = JObject.FromObject(jo["baseinfo"]);
  121. this.tbName.Text = joBaseInfo["psn_name"].ToString();
  122. this.tbPsnNO.Text = joBaseInfo["psn_no"].ToString();
  123. this.tbGend.Text = joBaseInfo["gend"].ToString();
  124. this.tbBirthDay.Text = joBaseInfo["brdy"].ToString();
  125. this.tbNaty.Text = joBaseInfo["naty"].ToString();
  126. this.tbCertType.Text = joBaseInfo["psn_cert_type"].ToString();
  127. this.tbCertNO.Text = joBaseInfo["certno"].ToString();
  128. this.tbAge.Text = joBaseInfo["age"].ToString();
  129. if (Global.pat.isWorkInjury)
  130. {
  131. dtWorkInjury = (DataTable)jo["workinjury"].ToObject(typeof(DataTable));
  132. }
  133. //JObject joInsuInfo = JObject.FromObject(jo["insuinfo"]);
  134. //Global.pat.insuType= joInsuInfo["insutypeNo"].ToString();
  135. setDgvIDInfo();
  136. setDgvInsuInfo();
  137. setDgvWorkInjury();
  138. dgvInsuInfo.DataSource = dtInsuInfo;
  139. dgvIDInfo.DataSource = dtIDInfo;
  140. dgvWorkInjury.DataSource = dtWorkInjury;
  141. }
  142. private void AddDGVColumn(DataGridView dgv, string headerText, string dataPropertyName, int width = 120)
  143. {
  144. DataGridViewColumn newColumn = new DataGridViewTextBoxColumn();
  145. newColumn.HeaderText = headerText;
  146. newColumn.Width = width;
  147. newColumn.DataPropertyName = dataPropertyName;
  148. newColumn.Name = dataPropertyName;
  149. dgv.Columns.Add(newColumn);
  150. }
  151. public void setDgvTreatement(DataGridView dgv)
  152. {
  153. dgv.AutoGenerateColumns = false;
  154. dgv.Columns.Clear();
  155. AddDGVColumn(dgv, "人员编号", "psn_no", 300);
  156. AddDGVColumn(dgv, "待遇检查类型", "trt_chk_type", 140);
  157. AddDGVColumn(dgv, "基金支付类型", "fund_pay_type", 300);
  158. AddDGVColumn(dgv, "基金款项待遇享受标志", "trt_enjymnt_flag", 140);
  159. AddDGVColumn(dgv, "开始日期", "begndate", 200);
  160. AddDGVColumn(dgv, "结束日期", "enddate", 200);
  161. AddDGVColumn(dgv, "待遇检查结果", "trt_chk_rslt", 140);
  162. AddDGVColumn(dgv, "字段扩展", "exp_content", 140);
  163. dgv.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Bold);
  164. dgv.ColumnHeadersHeight = 30;
  165. }
  166. private void setDgvInsuInfo()
  167. {
  168. dgvInsuInfo.AutoGenerateColumns = false;
  169. AddDGVColumn(dgvInsuInfo, "余额", "balc", 80);
  170. AddDGVColumn(dgvInsuInfo, "险种类型", "insutype",200);
  171. AddDGVColumn(dgvInsuInfo, "人员类别", "psn_type",100);
  172. AddDGVColumn(dgvInsuInfo, "人员参保状态", "psn_insu_stas",100);
  173. AddDGVColumn(dgvInsuInfo, "个人参保日期", "psn_insu_date",150);
  174. AddDGVColumn(dgvInsuInfo, "暂停参保日期", "paus_insu_date",150);
  175. AddDGVColumn(dgvInsuInfo, "公务员标志", "cvlserv_flag",80);
  176. AddDGVColumn(dgvInsuInfo, "参保地医保区划", "insuplc_admdvs");
  177. AddDGVColumn(dgvInsuInfo, "单位名称", "emp_name",300);
  178. AddDGVColumn(dgvInsuInfo, "险种类型编码", "insutypeNo", 150);
  179. AddDGVColumn(dgvInsuInfo, "单位编号", "emp_no", 120);
  180. dgvInsuInfo.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Bold);
  181. dgvInsuInfo.ColumnHeadersHeight = 40;
  182. }
  183. private void setDgvWorkInjury()
  184. {
  185. dgvWorkInjury.AutoGenerateColumns = false;
  186. AddDGVColumn(dgvWorkInjury, "单位编号", "emp_no", 120);
  187. AddDGVColumn(dgvWorkInjury, "单位名称", "emp_name", 300);
  188. AddDGVColumn(dgvWorkInjury, "工伤认定日期", "alc031", 150);
  189. AddDGVColumn(dgvWorkInjury, "工伤认定标志", "alc029");
  190. AddDGVColumn(dgvWorkInjury, "工伤认定单位", "alc030",300);
  191. AddDGVColumn(dgvWorkInjury, "工伤人员类别", "ylc035");
  192. AddDGVColumn(dgvWorkInjury, "伤害部位", "alc022", 120);
  193. dgvWorkInjury.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Bold);
  194. dgvWorkInjury.ColumnHeadersHeight = 40;
  195. }
  196. private void setDgvIDInfo()
  197. {
  198. dgvIDInfo.AutoGenerateColumns = false;
  199. AddDGVColumn(dgvIDInfo, "人员身份类别", "psn_idet_type", 140);
  200. AddDGVColumn(dgvIDInfo, "人员类别等级", "psn_type_lv", 140);
  201. AddDGVColumn(dgvIDInfo, "备注", "memo", 150);
  202. AddDGVColumn(dgvIDInfo, "开始时间", "begntime", 200);
  203. AddDGVColumn(dgvIDInfo, "结束时间", "endtime", 200);
  204. dgvIDInfo.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Bold);
  205. dgvIDInfo.ColumnHeadersHeight = 40;
  206. }
  207. private void uiButton1_Click(object sender, EventArgs e)
  208. {
  209. insuInfoIndex = dgvInsuInfo.CurrentRow.Index;
  210. if (dtIDInfo.Rows.Count != 0 )
  211. idInfoIndex = dgvIDInfo.CurrentRow.Index;
  212. joSelectedInsuInfo = new JObject();
  213. for (int i = 0; i < dtInsuInfo.Columns.Count; i++)
  214. {
  215. string key = dtInsuInfo.Columns[i].ColumnName;
  216. string value = dgvInsuInfo.CurrentRow.Cells[key].Value.ToString();
  217. joSelectedInsuInfo.Add(key, value);
  218. }
  219. DialogResult = DialogResult.OK;
  220. }
  221. private void uiButton2_Click(object sender, EventArgs e)
  222. {
  223. DialogResult = DialogResult.Cancel;
  224. }
  225. private void btnRYDY2001_Click(object sender, EventArgs e)
  226. {
  227. string sInput = "", errorMsg = "";
  228. int iHis = dgvInsuInfo.CurrentRow.Index;
  229. if (dgvInsuInfo.CurrentRow == null)
  230. {
  231. MessageBox.Show("请选择参保信息再查询!");
  232. return;
  233. }
  234. string insutype = dgvInsuInfo.Rows[iHis].Cells["insutypeNo"].Value.ToString();
  235. MessageBox.Show(insutype);
  236. JObject joData = new JObject();
  237. joData.Add("psn_no", this.tbPsnNO.Text);
  238. joData.Add("insutype", insutype);
  239. joData.Add("fixmedins_code", Global.inf.hospitalNO);
  240. joData.Add("med_type", "11");
  241. joData.Add("begntime", "2010-01-01 00:00:00");
  242. joData.Add("endtime", "");
  243. joData.Add("dise_codg", "");
  244. joData.Add("dise_name", "");
  245. joData.Add("oprn_oprt_code", "");
  246. joData.Add("oprn_oprt_name", "");
  247. joData.Add("matn_type", "");
  248. joData.Add("birctrl_type", "");
  249. JObject joInput = new JObject();
  250. joInput.Add("data", joData);
  251. InvokeHelper invoker = new InvokeHelper();
  252. sInput = JsonHelper.setCenterInpar("2001", joInput);
  253. JObject joRtn = invoker.invokeCenterService("2001", sInput);
  254. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  255. {
  256. MessageBox.Show("人员待遇享受检查失败:" + errorMsg);
  257. }
  258. else
  259. {
  260. MessageBox.Show("人员待遇享受检查成功!"+ joRtn.ToString());
  261. }
  262. }
  263. }
  264. }