|
@@ -1305,7 +1305,7 @@ namespace PTMedicalInsurance.Forms
|
|
|
funNo = "1312";
|
|
|
joData.query_date = ""; //查询时间点
|
|
|
joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
|
|
|
- joData.insu_admdvs = ""; //参保机构医保区划
|
|
|
+ joData.insu_admdvs = Global.inf.areaCode; //参保机构医保区划
|
|
|
joData.begndate = ""; //开始日期
|
|
|
joData.hilist_name = tbDircetoryName.Text; //医保目录名称
|
|
|
joData.wubi = ""; //五笔助记码
|
|
@@ -1366,7 +1366,7 @@ namespace PTMedicalInsurance.Forms
|
|
|
joData.hilist_code = tbDirectoryCode.Text; //医保目录编码
|
|
|
joData.hilist_lmtpric_type = ""; //医保目录限价类型
|
|
|
joData.overlmt_dspo_way = ""; //医保目录超限处理方式
|
|
|
- joData.insu_admdvs = ""; //参保机构医保区划
|
|
|
+ joData.insu_admdvs = Global.inf.areaCode; //参保机构医保区划
|
|
|
joData.begndate = ""; //开始日期
|
|
|
joData.enddate = ""; //结束日期
|
|
|
joData.vali_flag = ""; //有效标志
|
|
@@ -1801,6 +1801,413 @@ namespace PTMedicalInsurance.Forms
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void tsmExportAllMappedData_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ if (queryHISDirectory(1, 1000, out string errMsg) != 0)
|
|
|
+ {
|
|
|
+ MessageBox.Show(errMsg);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dtExport.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ string directoryType = string.Empty;
|
|
|
+ string sBZ = "";
|
|
|
+ switch (rbgDirecType_C.SelectedIndex)
|
|
|
+ {
|
|
|
+ case 0:
|
|
|
+ {
|
|
|
+ directoryType = "药品";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 1:
|
|
|
+ {
|
|
|
+ directoryType = "诊疗";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 2:
|
|
|
+ {
|
|
|
+ directoryType = "材料";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (rbAll.Checked) sBZ = "全部";
|
|
|
+ else
|
|
|
+ if (rbMaped.Checked) sBZ = "已对照";
|
|
|
+ else
|
|
|
+ if (rbNoMaped.Checked) sBZ = "未对照";
|
|
|
+
|
|
|
+ string LSH = DateTime.Now.ToString("yyyy-MM-dd"); //DateTime.Now.ToString("MMddHHmmssffff");
|
|
|
+ string sFliePathName = @"D:\" + LSH + "(" + directoryType + ")医保目录" + sBZ + "信息.xls";
|
|
|
+ string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
|
|
|
+ if (ReturnFileName != "")
|
|
|
+ {
|
|
|
+ MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
|
|
|
+ System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("导出失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmUploadAllMappedData_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ AllUpLoad();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmCancelAllUploadedData_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ AllCancelUpload();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmUpdateCellPriceOfAllMapped_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ updateMappedInsuInfo(updateCellPriceWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmUpdateAllMapped_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ updateMappedInsuInfo(updateAuxAndCellPriceWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateMappedInsuInfo(Func<JObject, OutParamWrapper, int> action)
|
|
|
+ {
|
|
|
+ string sqlStr = $"select * from HB_MedInsuMapRelation where Interface_Dr='{Global.inf.interfaceDr}' and Hospital_Dr ='{Global.inf.hospitalDr}'";
|
|
|
+ JObject joSqlstr = new JObject();
|
|
|
+ joSqlstr.Add("sqlStr", sqlStr);
|
|
|
+ JObject joRtn = mIS.QueryMappedData(joSqlstr, "查询所有已对照数据");
|
|
|
+
|
|
|
+ DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
|
|
|
+
|
|
|
+ int iFalse = 0;
|
|
|
+ int iCount = 0;
|
|
|
+ foreach (DataRow dr in dt.Rows)
|
|
|
+ {
|
|
|
+ JObject jo = new JObject();
|
|
|
+ jo.Add("code", dr["InsuCode"].ToString());
|
|
|
+ jo.Add("HisType", dr["HisType"].ToString());
|
|
|
+ OutParamWrapper outParWarp = new OutParamWrapper();
|
|
|
+ if (action(jo, outParWarp) != 0)
|
|
|
+ {
|
|
|
+ iFalse++;
|
|
|
+ Global.writeLog(outParWarp.Value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (iFalse != 0)
|
|
|
+ {
|
|
|
+ MessageBox.Show($"总共{iCount}条数据更新完成,但有{iFalse}条更新发生错误!");
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("全部数据更新完成");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int updateAuxAndCellPriceWrapper(JObject jo, OutParamWrapper outParamWrapper)
|
|
|
+ {
|
|
|
+ string err;
|
|
|
+ int iresult = updateAuxAndCellPrice(jo, out err);
|
|
|
+ outParamWrapper.Value = err;
|
|
|
+ return iresult;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int updateCellPriceWrapper(JObject jo, OutParamWrapper outParamWrapper)
|
|
|
+ {
|
|
|
+ string err;
|
|
|
+ int iresult = updateCellingPrice(jo, out err);
|
|
|
+ outParamWrapper.Value = err;
|
|
|
+ return iresult;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int updateAuxInfoWrapper(JObject jo, OutParamWrapper outParamWrapper)
|
|
|
+ {
|
|
|
+ string err;
|
|
|
+ int iresult = updateAuxInfo(jo, out err);
|
|
|
+ outParamWrapper.Value = err;
|
|
|
+ return iresult;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int updateAuxAndCellPrice(JObject jo, out string error)
|
|
|
+ {
|
|
|
+ string err = "";
|
|
|
+ int iResult = 0;
|
|
|
+ error = "";
|
|
|
+ if (updateAuxInfo(jo, out err) != 0)
|
|
|
+ {
|
|
|
+ error = $"更新目录信息失败{err}";
|
|
|
+ iResult--;
|
|
|
+ }
|
|
|
+
|
|
|
+ err = "";
|
|
|
+ if (updateCellingPrice(jo, out err) != 0)
|
|
|
+ {
|
|
|
+ error = $"{error};更新限价信息失败{err}";
|
|
|
+ iResult--;
|
|
|
+ }
|
|
|
+
|
|
|
+ return iResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmUpdateLevelTypeOfAllMappedData_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ updateMappedInsuInfo(updateAuxInfoWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmSingleUpdateInsuInfo_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true))
|
|
|
+ {
|
|
|
+ MessageBox.Show("请查询HIS目录对照关系,注意选择已对照!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ int iMapped = dgvHISDirectory.CurrentRow.Index;
|
|
|
+
|
|
|
+ string insuCode = dgvHISDirectory.Rows[iMapped].Cells["insuCode"].Value.ToString();
|
|
|
+ if (string.IsNullOrEmpty(insuCode))
|
|
|
+ {
|
|
|
+ MessageBox.Show("未检测到对应的医保目录,请检查该目录是否已对照!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ JObject jo = new JObject();
|
|
|
+ jo.Add("code", dgvHISDirectory.Rows[iMapped].Cells["insuCode"].Value.ToString());
|
|
|
+ jo.Add("HisType", rbgDirecType_C.SelectedIndex + 1);
|
|
|
+
|
|
|
+ string error;
|
|
|
+ if (updateAuxAndCellPrice(jo, out error) != 0)
|
|
|
+ {
|
|
|
+ MessageBox.Show($"更新失败{error}");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("更新成功!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public string getDataRowValue(DataRow dr,string columnName)
|
|
|
+ {
|
|
|
+ if (!dr.Table.Columns.Contains(columnName))
|
|
|
+ {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return dr[columnName].ToString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新目录信息(附属信息)
|
|
|
+ private int updateAuxInfo(JObject jo, out string err)
|
|
|
+ {
|
|
|
+ err = "";
|
|
|
+ tbDirectoryCode.Text = JsonHelper.getDestValue(jo, "code");
|
|
|
+ string funNo;
|
|
|
+ dynamic joData = GetInput(15, out funNo);
|
|
|
+ JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(funNo, joData);
|
|
|
+
|
|
|
+ if (joRtn["infcode"].ToString() == "0")
|
|
|
+ {
|
|
|
+ DataTable dtAuxInfo = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
|
|
|
+
|
|
|
+ DateTime dtToday = DateTime.Today;
|
|
|
+ string chrgitm_lv = "";
|
|
|
+ string begndate = "";
|
|
|
+ string enddate = "";
|
|
|
+ string list_type = "";
|
|
|
+ string med_chrgitm_type = "";
|
|
|
+
|
|
|
+ int iAdpater = 0;
|
|
|
+
|
|
|
+ foreach (DataRow dr in dtAuxInfo.Rows)
|
|
|
+ {
|
|
|
+ DateTime dtBegin = getDataRowValue(dr,"begndate") == "" ? Convert.ToDateTime("2000-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr,"begndate"));
|
|
|
+ DateTime dtEnd = getDataRowValue(dr,"enddate") == "" ? Convert.ToDateTime("2099-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr,"enddate"));
|
|
|
+
|
|
|
+ if ((dtBegin < dtToday) && (dtToday < dtEnd))
|
|
|
+ {
|
|
|
+ iAdpater++;
|
|
|
+ chrgitm_lv = dr["chrgitm_lv"].ToString();
|
|
|
+ begndate = dtBegin.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ enddate = dtEnd.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ list_type = dr["list_type"].ToString();
|
|
|
+ med_chrgitm_type = dr["med_chrgitm_type"].ToString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //有且只能有一条数据符合
|
|
|
+ if (iAdpater == 1)
|
|
|
+ {
|
|
|
+ JObject joPamam = new JObject();
|
|
|
+ joPamam.Add("Code", JsonHelper.getDestValue(jo, "code"));
|
|
|
+ joPamam.Add("HisType", JsonHelper.getDestValue(jo, "HisType"));
|
|
|
+ joPamam.Add("StartDate", begndate);
|
|
|
+ joPamam.Add("EndDate", enddate);
|
|
|
+ joPamam.Add("ChargeItemLevel", chrgitm_lv);
|
|
|
+ joPamam.Add("ListType", list_type);
|
|
|
+ joPamam.Add("ChargeItemType", med_chrgitm_type);
|
|
|
+
|
|
|
+ JObject joUpdateRtn = mIS.UpdateDirectoryBySelf(joPamam);
|
|
|
+ string error = "";
|
|
|
+ if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out error) != 0)
|
|
|
+ {
|
|
|
+ err = "修改失败:" + error;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ err = "修改成功";
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ err = "中心返回符合条数的记录不唯一或者为空,请检查!";
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ err = "查询中心数据出错,请检查!";
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新目录信息(附属信息)
|
|
|
+ private int updateCellingPrice(JObject jo, out string err)
|
|
|
+ {
|
|
|
+ err = "";
|
|
|
+ tbDirectoryCode.Text = JsonHelper.getDestValue(jo, "code");
|
|
|
+ string funNO;
|
|
|
+ dynamic joData = GetInput(18, out funNO);
|
|
|
+ JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(funNO, joData);
|
|
|
+
|
|
|
+ if (joRtn["infcode"].ToString() == "0")
|
|
|
+ {
|
|
|
+ DataTable dtAuxInfo = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
|
|
|
+
|
|
|
+ DateTime dtToday = DateTime.Today;
|
|
|
+ string cellingPrice = "";
|
|
|
+ string begndate = "";
|
|
|
+ string enddate = "";
|
|
|
+
|
|
|
+
|
|
|
+ int iAdpater = 0;
|
|
|
+
|
|
|
+ foreach (DataRow dr in dtAuxInfo.Rows)
|
|
|
+ {
|
|
|
+ DateTime dtBegin = getDataRowValue(dr, "begndate") == "" ? Convert.ToDateTime("2000-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "begndate"));
|
|
|
+ DateTime dtEnd = getDataRowValue(dr, "enddate") == "" ? Convert.ToDateTime("2099-01-01 00:00:00") : Convert.ToDateTime(getDataRowValue(dr, "enddate"));
|
|
|
+
|
|
|
+ if ((dtBegin < dtToday) && (dtToday < dtEnd))
|
|
|
+ {
|
|
|
+ iAdpater++;
|
|
|
+ cellingPrice = dr["hilist_pric_uplmt_amt"].ToString();
|
|
|
+ begndate = dtBegin.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ enddate = dtEnd.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //有且只能有一条数据符合
|
|
|
+ if (iAdpater == 1)
|
|
|
+ {
|
|
|
+ JObject joPamam = new JObject();
|
|
|
+ joPamam.Add("Code", JsonHelper.getDestValue(jo, "code"));
|
|
|
+ joPamam.Add("HisType", JsonHelper.getDestValue(jo, "HisType"));
|
|
|
+ joPamam.Add("StartDate", begndate);
|
|
|
+ joPamam.Add("EndDate", enddate);
|
|
|
+ joPamam.Add("CeilingPrice", cellingPrice);
|
|
|
+
|
|
|
+
|
|
|
+ JObject joUpdateRtn = mIS.UpdateDirectoryBySelf(joPamam);
|
|
|
+ string error = "";
|
|
|
+ if (JsonHelper.parseIrisRtnValue(joUpdateRtn, out error) != 0)
|
|
|
+ {
|
|
|
+ err = "修改失败:" + error;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ err = "修改成功";
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ err = "中心返回符合条数的记录不唯一或者为空,请检查!";
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ err = "查询中心数据出错,请检查!";
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void btTripMenu_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ uiContextMenuStrip1.Show(((Sunny.UI.UIButton)sender), new Point(0, btTripMenu.Height));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private void tsmiUpdateCellingPrice_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ string error;
|
|
|
+ int iDir = dgvDirectoy.CurrentRow.Index;
|
|
|
+ if (dgvDirectoy.CurrentRow == null)
|
|
|
+ {
|
|
|
+ MessageBox.Show("请查询中心目录");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JObject jo = new JObject();
|
|
|
+ jo.Add("code", dgvDirectoy.Rows[iDir].Cells["code"].Value.ToString());
|
|
|
+ jo.Add("HisType", rbgDirecType.SelectedIndex + 1);
|
|
|
+ if (updateCellingPrice(jo, out error) != 0)
|
|
|
+ {
|
|
|
+ MessageBox.Show(error);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show(error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void tsmiSingleUpdateAuxInfo_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ string error;
|
|
|
+ int iDir = dgvDirectoy.CurrentRow.Index;
|
|
|
+ if (dgvDirectoy.CurrentRow == null)
|
|
|
+ {
|
|
|
+ MessageBox.Show("请查询中心目录");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JObject jo = new JObject();
|
|
|
+ jo.Add("code", dgvDirectoy.Rows[iDir].Cells["code"].Value.ToString());
|
|
|
+ jo.Add("HisType", rbgDirecType.SelectedIndex + 1);
|
|
|
+ if (updateAuxInfo(jo, out error) != 0)
|
|
|
+ {
|
|
|
+ MessageBox.Show(error);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show(error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public class OutParamWrapper
|
|
|
+ {
|
|
|
+ public string Value { get; set; }
|
|
|
}
|
|
|
-
|
|
|
}
|