HospitalTransfer.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using PTMedicalInsurance.Common;
  4. using PTMedicalInsurance.Entity;
  5. using PTMedicalInsurance.Forms.GetInsuCode;
  6. using PTMedicalInsurance.Forms.Setters.ToPutOnRecord;
  7. using PTMedicalInsurance.Helper;
  8. using PTMedicalInsurance.Variables;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using System.Windows.Forms;
  18. namespace PTMedicalInsurance.Forms.ToPutOnRecord
  19. {
  20. public partial class HospitalTransfer : Form
  21. {
  22. private ToPutOnRecord mainForm;
  23. private String otherHospCode;
  24. private String otherHospName;
  25. private String otherHospAreaCode;
  26. private String otherHospAreaName;
  27. private string diagCode;
  28. private string diagName;
  29. private InvokeHelper invoker = new InvokeHelper();
  30. GridViewSetter grd = new GridViewSetter();
  31. public HospitalTransfer(Form frm)
  32. {
  33. InitializeComponent();
  34. InitForm(frm);
  35. //
  36. mainForm.SetDBLKCombox(ref dblkcbxInsuranceType_1, mainForm.dtInsuranceType);
  37. mainForm.SetDBLKCombox(ref dblkcbxDieaseCode_1, mainForm.dtDiagnose == null ? mainForm.AssignComboxDT(out mainForm.dtDiease, mainForm.GetDirectory("4")): mainForm.dtDiagnose);
  38. }
  39. public HospitalTransfer()
  40. {
  41. InitializeComponent();
  42. }
  43. private void InitForm(Form frm)
  44. {
  45. mainForm = (ToPutOnRecord)frm;
  46. CheckForIllegalCrossThreadCalls = false;
  47. // 禁用关闭按钮
  48. this.FormBorderStyle = FormBorderStyle.None;
  49. // 隐藏标题栏
  50. this.ControlBox = false;
  51. // 其他可能需要的配置
  52. this.TopLevel = false;
  53. this.Dock = DockStyle.Fill; // 根据需要设置 Dock 属性
  54. this.tbOtherHosp.Text = Global.inf.hospitalName;
  55. this.tbOtherHosp.Focus();
  56. }
  57. private void SearchAdmdvs()
  58. {
  59. JObject joAdmdvsInfo = new JObject();
  60. SearchAdmdvs Adm = new SearchAdmdvs();
  61. try
  62. {
  63. Global.pat.card.SearchAdmKey = tbOtherHosp.Text;
  64. Adm.StartPosition = FormStartPosition.CenterParent;
  65. if (Adm.ShowDialog() == DialogResult.OK)
  66. {
  67. tbOtherHosp.Text = Global.pat.card.SearchAdmName;
  68. if (!string.IsNullOrEmpty(Global.pat.card.SearchAdmCode))
  69. {
  70. ////自动选择异地
  71. //if (Utils.isOtherCity(Global.pat.card.SearchAdmCode))
  72. //{
  73. // //rbgOtherProv.SelectedIndex = 1;
  74. //}
  75. }
  76. }
  77. }
  78. catch (Exception ex)
  79. {
  80. MessageBox.Show("异常:" + ex.Message);
  81. return;
  82. }
  83. }
  84. private DataTable GetOtherHospitalCode(string key)
  85. {
  86. var jo = new { medinsinfo = new { fixmedins_type = 1, fixmedins_name = key} };
  87. InvokeHelper invoker = new InvokeHelper();
  88. JObject joRtn = invoker.invokeCenterService(TradeEnum.MedicalOrgination,JObject.FromObject(jo));
  89. DataTable dt = (DataTable)joRtn["output"]["medinsinfo"].ToObject(typeof(DataTable));
  90. //// 使用 LINQ 查询原始表并填充新表
  91. //var rows = from row in dt.AsEnumerable()
  92. // select new
  93. // {
  94. // Code = row.Field<string>("fixmedins_code"),
  95. // Name = row.Field<string>("fixmedins_name")
  96. // };
  97. //DataTable dtNew = new DataTable();
  98. //dtNew.Columns.Add("Code",typeof(string));
  99. //dtNew.Columns.Add("Name", typeof(string));
  100. //foreach (var row in rows)
  101. //{
  102. // dtNew.Rows.Add(row.Code, row.Name);
  103. //}
  104. return mainForm.FormatComboxDatasource(dt, "fixmedins_code", "fixmedins_name");
  105. }
  106. private DataTable GetOtherHospitalArea(string key)
  107. {
  108. string Filter = " And DesCripts like '%" + key + "%' ";
  109. string sqlStr = " SELECT Top 8 B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B "
  110. + " ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'admdvs'" + Filter;
  111. InvokeHelper invoker = new InvokeHelper();
  112. dynamic joInparm = new JObject();
  113. dynamic joTmp = new JObject();
  114. joTmp.sqlStr = sqlStr;
  115. JArray jaParams = new JArray();
  116. jaParams.Add(joTmp);
  117. joInparm.Add("params", JArray.FromObject(jaParams));
  118. joInparm.code = "09010014";
  119. string inParam = joInparm.ToString();
  120. JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
  121. DataTable dt = new DataTable();
  122. if (joRtn.ContainsKey("result"))
  123. {
  124. dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
  125. }
  126. return dt;
  127. }
  128. private void btClose_1_Click(object sender, EventArgs e)
  129. {
  130. mainForm.Close();
  131. }
  132. private void tbOtherHosp_DoEnter(object sender, EventArgs e)
  133. {
  134. CodeGetter codeGetter = new CodeGetter(tbOtherHosp.Text);
  135. codeGetter.GetCode += GetOtherHospitalCode;
  136. codeGetter.Search(tbOtherHosp.Text);
  137. if (codeGetter.ShowDialog() == DialogResult.OK)
  138. {
  139. otherHospCode = codeGetter.code;
  140. otherHospName = codeGetter.name;
  141. }
  142. tbOtherHosp.Text = otherHospName;
  143. }
  144. private void tbOtherHospArea_DoEnter(object sender, EventArgs e)
  145. {
  146. CodeGetter codeGetter = new CodeGetter(tbOtherHospArea.Text);
  147. codeGetter.GetCode += GetOtherHospitalArea;
  148. codeGetter.Search(tbOtherHospArea.Text);
  149. if (codeGetter.ShowDialog() == DialogResult.OK)
  150. {
  151. otherHospAreaCode = codeGetter.code;
  152. otherHospAreaName = codeGetter.name;
  153. }
  154. tbOtherHospArea.Text = otherHospAreaName;
  155. }
  156. private void btReadCard_1_Click(object sender, EventArgs e)
  157. {
  158. string PatInfo = "";
  159. if (mainForm.GetPersonInfo(out PatInfo) != 0)
  160. {
  161. MessageBox.Show("读卡失败:" + PatInfo);
  162. }
  163. tbName_1.Text = Global.pat.name;
  164. tbPsnNo2_1.Text = tbPsnNO_1.Text = Global.pat.psn_no;
  165. foreach (DataRow row in ((DataTable)dblkcbxInsuranceType_1.DataSource).Rows)
  166. {
  167. if (row["Code"].ToString() == Global.pat.insuType)
  168. {
  169. dblkcbxInsuranceType_1.Text = row["Name"].ToString();
  170. }
  171. }
  172. }
  173. private void btApply_1_Click(object sender, EventArgs e)
  174. {
  175. PersonFixedPointRecord input = new PersonFixedPointRecord();
  176. input.psn_no = tbPsnNO_1.Text;
  177. input.insutype = Global.pat.insuType;
  178. input.tel = tbTel_1.Text;
  179. input.addr = tbAddress_1.Text;
  180. input.insu_optins = Global.pat.insuplc_admdvs;
  181. input.diag_code = diagCode;
  182. input.diag_name = diagName;
  183. input.dise_cond_dscr = "";
  184. input.reflin_medins_name = otherHospName;
  185. input.reflin_medins_no = otherHospCode;
  186. input.mdtrtarea_admdvs = otherHospAreaCode;
  187. input.hosp_agre_refl_flag = "";
  188. input.refl_type = tools.getDestPosStrBySpliter(cbReflType.Text,1,".");
  189. input.refl_date = dpTransfer.Value.ToString("yyyy-MM-dd");
  190. input.refl_rea = rtbReflReason.Text;
  191. input.refl_opnn = rtbReflOpnn.Text;
  192. input.begndate = dpStart.Value.ToString("yyyy-MM-dd");
  193. input.enddate = dpEnd.Value.ToString("yyyy-MM-dd");
  194. input.refl_used_flag = tools.getDestPosStrBySpliter(cbHospAgreFlag.Text, 1, "."); ;
  195. var joData = new { refmedin = JToken.Parse(JsonConvert.SerializeObject(input, Formatting.None)) };
  196. JObject joRtn = invoker.invokeCenterService(TradeEnum.TransferRecord, JObject.FromObject(joData));
  197. string err;
  198. if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
  199. {
  200. MessageBox.Show(err);
  201. }
  202. else
  203. {
  204. //存到后台
  205. JObject joDbIn = input.ConvertToDBJson();
  206. string declareNo = JsonHelper.getDestValue(joRtn, "output.result.trt_dcla_detl_sn");
  207. joDbIn.Add("DeclareNo", declareNo);
  208. joDbIn.Add("RecordType", "T");
  209. joDbIn.Add("RecordStatus", "1");
  210. joDbIn.Add("CreateUser", Global.user.ID);
  211. joDbIn.Add("PatientName", Global.pat.name);
  212. joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09030001", joDbIn).ToString(), "插入/更新慢性病表");
  213. if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0)
  214. {
  215. MessageBox.Show("插入失败");
  216. }
  217. //查询后在下方表格显示
  218. string sqlStr = $"select * from BS_InsuPersonnelRecord where DeclareNo ='{declareNo}'";
  219. dgvApplyResult.DataSource = mainForm.QueryRecord(sqlStr, "查询慢病备案记录");
  220. MessageBox.Show("申请成功");
  221. }
  222. }
  223. private void dblkcbxDieaseCode_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  224. {
  225. mainForm.AfterSelector(sender, e, out diagCode, out diagName);
  226. }
  227. private void btQueryCenterRecord_1_Click(object sender, EventArgs e)
  228. {
  229. JObject joTmp = new JObject();
  230. joTmp.Add("psn_no", tbPsnNo2_1.Text);
  231. JObject joData = new JObject();
  232. joData.Add("data", joTmp);
  233. JObject joRtn = invoker.invokeCenterService(TradeEnum.QueryChronicDiseaseRecord, joData);
  234. string err;
  235. if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
  236. {
  237. MessageBox.Show(err);
  238. }
  239. else
  240. {
  241. //存到后台
  242. //查询后在下方表格显示
  243. MessageBox.Show("申请成功");
  244. }
  245. }
  246. private void btQueryHisRecord_1_Click(object sender, EventArgs e)
  247. {
  248. string conditon = "";
  249. if (rbName_1.Checked)
  250. {
  251. conditon = $" PatientName ='{tbPsnNo2_1.Text}'";
  252. }
  253. if (rbPsnNo_1.Checked)
  254. {
  255. conditon = $" PersonnelNO ='{tbPsnNo2_1.Text}'";
  256. }
  257. if (rbDeclareNo_1.Checked)
  258. {
  259. conditon = $" DeclareNo ='{tbPsnNo2_1.Text}'";
  260. }
  261. string sqlStr = $"select * from BS_InsuPersonnelRecord where {conditon} ";
  262. grd.SetHeaderTextOfApplyResult1(dgvApplyResult);
  263. dgvApplyResult.DataSource = mainForm.QueryRecord(sqlStr, "查询慢病备案记录");
  264. }
  265. private void btCancleByHis_1_Click(object sender, EventArgs e)
  266. {
  267. int i = dgvApplyResult.SelectedIndex;
  268. JObject joInput = new JObject();
  269. joInput.Add("psn_no", dgvApplyResult.Rows[i].Cells["PersonnelNO"].Value.ToString());
  270. joInput.Add("trt_dcla_detl_sn", dgvApplyResult.Rows[i].Cells["DeclareNo"].Value.ToString());
  271. joInput.Add("opsp_dise_code", dgvApplyResult.Rows[i].Cells["ChronicDiseaseCode"].Value.ToString());
  272. joInput.Add("begndate", dgvApplyResult.Rows[i].Cells["BusinStartDate"].Value.ToString());
  273. joInput.Add("memo", rtbCancleReason_1.Text);
  274. JObject joData = new JObject();
  275. joData.Add("data", joInput);
  276. JObject joRtn = invoker.invokeCenterService(TradeEnum.CancleChronicDiseaseRecord, joData);
  277. string err;
  278. if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
  279. {
  280. MessageBox.Show(err);
  281. }
  282. else
  283. {
  284. //更新后台
  285. JObject joDbIn = new JObject();
  286. joDbIn.Add("DeclareNo", dgvApplyResult.Rows[i].Cells["DeclareNo"].ToString());
  287. joDbIn.Add("RecordStatus", "-1");
  288. joDbIn.Add("CreateUser", Global.user.ID);
  289. joDbIn.Add("PersonnelNO", dgvApplyResult.Rows[i].Cells["PersonnelNO"].ToString());
  290. joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09030001", joDbIn).ToString(), "插入/更新慢性病表");
  291. if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0)
  292. {
  293. MessageBox.Show("中心撤销成功但平台更新失败");
  294. }
  295. else
  296. {
  297. MessageBox.Show("撤销成功");
  298. }
  299. }
  300. }
  301. private void btCancleByCenter_1_Click(object sender, EventArgs e)
  302. {
  303. }
  304. }
  305. }