Trauma.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  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;
  11. using Newtonsoft.Json.Linq;
  12. using PTMedicalInsurance.Helper;
  13. using PTMedicalInsurance.Variables;
  14. using PTMedicalInsurance.Common;
  15. using PTMedicalInsurance.Business;
  16. using PTMedicalInsurance.Entity;
  17. using PTMedicalInsurance.Forms.Setters.ToPutOnRecord;
  18. namespace PTMedicalInsurance.Forms.ToPutOnRecord
  19. {
  20. public partial class Trauma : Form
  21. {
  22. InvokeHelper invoker = new InvokeHelper();
  23. private MIIrisServices mis = new MIIrisServices();
  24. private Form mainForm;
  25. public string insuType, InsuplcAdmdvs;
  26. public Trauma()
  27. {
  28. InitializeComponent();
  29. }
  30. public Trauma(Form frm)
  31. {
  32. InitializeComponent();
  33. mainForm = frm;
  34. CheckForIllegalCrossThreadCalls = false;
  35. // 禁用关闭按钮
  36. this.FormBorderStyle = FormBorderStyle.None;
  37. // 隐藏标题栏
  38. this.ControlBox = false;
  39. // 其他可能需要的配置
  40. this.TopLevel = false;
  41. this.Dock = DockStyle.Fill; // 根据需要设置 Dock 属性
  42. GridViewSetter grd = new GridViewSetter();
  43. grd.SetHeaderTextOfTraumaApplyResult(dgvApplyResult);
  44. grd.DatagridviewColumnWidthAdaptation(dgvApplyResult);
  45. dpt_ST_Trauma.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
  46. dpt_ET_Trauma.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
  47. dpt_AdmDateTime_Trauma.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
  48. dpt_DateTime_Trauma.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  49. rbg_Status.SelectedIndex = 2;
  50. }
  51. private void GetPatientInfo(string PatientInfo)
  52. {
  53. JObject joPatient = JObject.Parse(PatientInfo);
  54. JObject joBaseInfo = JObject.Parse(JsonHelper.getDestValue(joPatient, "output.baseinfo"));
  55. this.tbName.Text = joBaseInfo["psn_name"].ToString();
  56. this.tbPsnNO.Text = joBaseInfo["psn_no"].ToString();
  57. this.tbGend.Text = joBaseInfo["gend"].ToString();
  58. this.tbBirthDay.Text = joBaseInfo["brdy"].ToString();
  59. this.tbNaty.Text = joBaseInfo["naty"].ToString();
  60. this.tbCertType.Text = joBaseInfo["psn_cert_type"].ToString();
  61. this.tbCertNO.Text = joBaseInfo["certno"] + "";
  62. this.tbAge.Text = joBaseInfo["age"] + "";
  63. JObject joSelectedInsuInfo = JObject.Parse(JsonHelper.getDestValue(joPatient, "selectedInsuInfo"));
  64. insuType = JsonHelper.getDestValue(joSelectedInsuInfo, "insutype").ToString();
  65. tb_InsuplcAdmdvs.Text = InsuplcAdmdvs = JsonHelper.getDestValue(joSelectedInsuInfo, "insuplc_admdvs").ToString();
  66. //险种类型
  67. DataTable dtInsuType = (DataTable)dblkcbxInsuranceType.DataSource;
  68. for (int i = 0; i < dtInsuType.Rows.Count; i++)
  69. {
  70. if (dtInsuType.Rows[i]["Code"].ToString() == insuType)
  71. {
  72. dblkcbxInsuranceType.Text = dtInsuType.Rows[i]["Name"].ToString();
  73. }
  74. }
  75. }
  76. private void btn_ReadCard_Click(object sender, EventArgs e)
  77. {
  78. string outParam;
  79. //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
  80. PatientService patientService = new PatientService();
  81. int ret = patientService.readPatientInfo(out outParam);
  82. if (ret != 0)
  83. {
  84. MessageBox.Show("获取参保人员基本信息失败:" + outParam);
  85. return;
  86. }
  87. GetPatientInfo(outParam);
  88. }
  89. private void btn_Exit_Click(object sender, EventArgs e)
  90. {
  91. mainForm.Close();
  92. }
  93. private void btn_Reg_Click(object sender, EventArgs e)
  94. {
  95. string outParam = string.Empty, errorMsg = string.Empty;
  96. JObject joData = new JObject();
  97. joData.Add("psn_no", Global.pat.psn_no);
  98. joData.Add("insutype", insuType);
  99. joData.Add("begndate", dpt_ST_Trauma.Text);
  100. joData.Add("enddate", dpt_ET_Trauma.Text);
  101. joData.Add("psn_cert_type", "01"); //01身份证
  102. joData.Add("certno", Global.pat.certNO);
  103. joData.Add("tel", "");
  104. joData.Add("addr", "");
  105. joData.Add("insu_admdvs", Global.pat.insuplc_admdvs);
  106. joData.Add("emp_no", "");
  107. joData.Add("emp_name", "");
  108. joData.Add("mdtrt_id", "");
  109. joData.Add("setl_id", "");
  110. joData.Add("trum_part", "");
  111. joData.Add("trum_time", dpt_DateTime_Trauma.Text);
  112. joData.Add("trum_site", "");
  113. joData.Add("trum_rea", "");
  114. joData.Add("adm_mtd", "");
  115. joData.Add("adm_time", dpt_AdmDateTime_Trauma.Text);
  116. joData.Add("adm_diag_dscr", "");
  117. joData.Add("agnter_name", "");
  118. joData.Add("agnter_cert_type", "");
  119. joData.Add("agnter_certno", "");
  120. joData.Add("agnter_tel", "");
  121. joData.Add("agnter_addr", "");
  122. joData.Add("agnter_rlts", "");
  123. joData.Add("biz_used_flag", "1"); //0-否,1-是
  124. joData.Add("memo", "");
  125. joData.Add("ttp_pay_prop", "");
  126. JObject joInput = new JObject();
  127. joInput.Add("data", joData);
  128. JObject joRtn = invoker.invokeCenterService(TradeEnum.TraumaRecord, joInput);
  129. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  130. {
  131. MessageBox.Show("【2560】外伤备案登记失败:" + errorMsg);
  132. return;
  133. }
  134. else
  135. {
  136. //存到后台
  137. //TraumaRecordInput TraumaIn = JsonConvert.DeserializeObject<TraumaRecordInput>(joRtn.ToString());
  138. //JObject joDbIn = TraumaIn.ConvertToDBJson();
  139. string declareNo = JsonHelper.getDestValue(joRtn, "output.trtDclaDetlSn");
  140. JObject joDbIn = new JObject();
  141. joDbIn.Add("PersonnelNO", Global.pat.psn_no);
  142. joDbIn.Add("Insutype", insuType);
  143. joDbIn.Add("InsuranceAreaCode", Global.pat.insuplc_admdvs);
  144. joDbIn.Add("BusinHospCode", Global.inf.hospitalNO);
  145. joDbIn.Add("BusinHospDesc", Global.inf.hospitalName);
  146. joDbIn.Add("BusinStartDate", dpt_ST_Trauma.Text);
  147. joDbIn.Add("BusinEndDate", dpt_ET_Trauma.Text);
  148. joDbIn.Add("BusinDate", DateTime.Now.ToString("yyyy-MM-dd"));
  149. joDbIn.Add("AreaCode", Global.pat.mdtrtarea_admvs);
  150. joDbIn.Add("AdmDateTime", dpt_AdmDateTime_Trauma.Text);
  151. joDbIn.Add("TraumaDateTime", dpt_DateTime_Trauma.Text);
  152. joDbIn.Add("AgnterCertType", "01"); //证件类型 01身份证
  153. joDbIn.Add("AgnterCertNo", Global.pat.certNO); //证件号码
  154. joDbIn.Add("DeclareNo", declareNo);
  155. joDbIn.Add("RecordType", "Tr"); //
  156. joDbIn.Add("RecordStatus", "1");
  157. joDbIn.Add("CreateUser", Global.user.ID);
  158. joDbIn.Add("PatientName", Global.pat.name);
  159. joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09030001", joDbIn).ToString(), "插入/更新备案登记记录表");
  160. if (JsonHelper.parseIrisRtnValue(joRtn, out errorMsg) != 0)
  161. {
  162. MessageBox.Show("插入失败");
  163. return;
  164. }
  165. MessageBox.Show("外伤备案登记成功");
  166. }
  167. }
  168. private DataTable QueryRecord(string sqlStr, string desc)
  169. {
  170. JObject joRtn = mis.DynamicQuery(sqlStr, desc);
  171. string err;
  172. if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0)
  173. {
  174. MessageBox.Show("查询失败");
  175. return null;
  176. }
  177. return (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  178. }
  179. private void QueryData()
  180. {
  181. string sqlStr = " select Top 100 * from BS_InsuPersonnelRecord "
  182. + " Where Hospital_Dr= " + Global.inf.hospitalDr
  183. + " AND Interface_Dr= " + Global.inf.interfaceDr;
  184. if (rbg_Status.SelectedIndex == 0)
  185. sqlStr = sqlStr + " And RecordStatus=1";
  186. else
  187. if (rbg_Status.SelectedIndex == 1)
  188. sqlStr = sqlStr + " And RecordStatus=-1";
  189. if (!string.IsNullOrEmpty(tb_CertNo.Text))
  190. sqlStr = sqlStr + " And AgnterCertNo= '" + tb_CertNo.Text + "'";
  191. sqlStr = sqlStr + " Order By ID DESC ";
  192. dgvApplyResult.DataSource = QueryRecord(sqlStr, "查询外伤备案登记记录");
  193. }
  194. private void btn_Query_Click(object sender, EventArgs e)
  195. {
  196. QueryData();
  197. }
  198. private void btn_Cancel_Click(object sender, EventArgs e)
  199. {
  200. string err;
  201. if (dgvApplyResult.RowCount == 0)
  202. {
  203. MessageBox.Show("请先查询外伤备案登记信息!");
  204. return;
  205. }
  206. if ((rtb_CancelReason.Text == "请输入撤销原因") || (string.IsNullOrEmpty(rtb_CancelReason.Text)))
  207. {
  208. MessageBox.Show("请输入撤销原因");
  209. if (rtb_CancelReason.CanSelect) { rtb_CancelReason.SelectAll(); }
  210. return;
  211. }
  212. int i = dgvApplyResult.SelectedIndex;
  213. if (dgvApplyResult.Rows[i].Cells["RecordStatus"].Value.ToString() != "1")
  214. {
  215. MessageBox.Show("当前外伤备案记录已撤销,请检查!");
  216. return;
  217. }
  218. string PersonnelNO = dgvApplyResult.Rows[i].Cells["PersonnelNO"].Value.ToString();
  219. string PatientName = dgvApplyResult.Rows[i].Cells["PatientName"].Value.ToString();
  220. string DeclareNo = dgvApplyResult.Rows[i].Cells["DeclareNo"].Value.ToString();
  221. JObject joInput = new JObject();
  222. joInput.Add("psn_no", PersonnelNO);
  223. joInput.Add("trt_dcla_detl_sn", DeclareNo);
  224. joInput.Add("memo", rtb_CancelReason.Text);
  225. JObject joData = new JObject();
  226. joData.Add("data", joInput);
  227. JObject joRtn = invoker.invokeCenterService(TradeEnum.TraumaCancelRecord, joData);
  228. if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
  229. {
  230. MessageBox.Show(err);
  231. return;
  232. }
  233. else
  234. {
  235. //更新后台
  236. JObject joDbIn = new JObject();
  237. joDbIn.Add("PersonnelNO", PersonnelNO);
  238. joDbIn.Add("PatientName", PatientName);
  239. joDbIn.Add("DeclareNo", DeclareNo);
  240. joDbIn.Add("RecordType", "Tr"); //
  241. joDbIn.Add("RecordStatus", "-1");
  242. joDbIn.Add("CreateUser", Global.user.ID);
  243. joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09030001", joDbIn).ToString(), "插入/更新备案登记信息表");
  244. if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0)
  245. {
  246. MessageBox.Show("中心撤销成功但HIS医保平台撤销更新失败,请联系管理员手工处理");
  247. return;
  248. }
  249. else
  250. {
  251. MessageBox.Show("外伤备案登记撤销成功");
  252. QueryData();
  253. }
  254. }
  255. }
  256. }
  257. }