using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PTMedicalInsurance.Business; using PTMedicalInsurance.Helper; using PTMedicalInsurance.Variables; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using PTMedicalInsurance.FormSetter; using PTMedicalInsurance.Common; using FastReport; using System.Drawing.Printing; using Sunny.UI; namespace PTMedicalInsurance.Forms { public partial class BasicData : Form { //设置实例 CenterBusiness cBus = new CenterBusiness(); HisMainBusiness hBus = new HisMainBusiness(); HisIrisServices hIS = new HisIrisServices(); MIIrisServices mIS = new MIIrisServices(); InvokeHelper invoker = new InvokeHelper(); InsuServices Iis = new InsuServices(); //1.声明自适应类实例 AutoResizeForm asc = new AutoResizeForm(); public JObject joSelectedInsuInfo; public int insuInfoIndex = 0; public int idInfoIndex = 0; public BasicData() { InitializeComponent(); rbgDirecType.SelectedIndex = 0; rbgDirecType_C.SelectedIndex = 0; rbSingleDown.Checked = true; this.rbgDirecType.ValueChanged += new Sunny.UI.UIRadioButtonGroup.OnValueChanged(this.rbgDirecType_ValueChanged); this.pgDownload.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgDownload_PageChanged); this.pgCenterDirect.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.pgCenterDirect_PageChanged); Font rowFont = new Font("UTF-8", 8); Font columnFont = new Font("UTF-8", 9); rbgDirecType.SelectedIndex = 8; rbAll.Checked = true; //tabControl1.SelectedIndex = 1; //this.StartPosition = FormStartPosition.CenterParent; asc.controllInitializeSize(this); asc.controlAutoSize(this); } #region 函数封装 private void queryInsuDirectory(int currentPage, int pageSize, int directoryType, int interfaceDr, string code) { try { string dirCode = ""; string dirName = ""; string approvalNO = ""; Sunny.UI.UIDataGridView dgv; Sunny.UI.UIPagination pg; if (tabControl1.SelectedIndex == 0) { dirCode = tbDirectoryCode.Text; dirName = tbDircetoryName.Text; approvalNO = ""; dgv = dgvDirectoy; pg = pgDownload; } else { dirName = tbCenterDirectoryFilter.Text; dirCode = tbInsuCode.Text; dgv = dgvCenterDirectory; approvalNO = tbApprovalNO.Text; pg = pgCenterDirect; } JObject joInput = new JObject { { "currentPage" , currentPage }, { "pageSize" , pageSize }, { "serviceCode" , code }, { "directoryType" , directoryType }, { "directoryCode" , dirCode }, { "directoryName" , dirName }, { "approvalNO" , approvalNO }, { "directoryDr" , interfaceDr } }; JObject joRtn = mIS.getMIDirectoryByPagination(joInput); if (joRtn["errorCode"].ToString() != "0") { MessageBox.Show("IRIS数据返回错误:" + joRtn["errorMessage"].ToString()); return; } if (joRtn["result"]["rows"] == null) { MessageBox.Show("该节点不存在"); return; } if (joRtn["result"]["total"].ToString() == "0") { MessageBox.Show("未查询到数据"); dgv.DataSource = null; return; } DataTable dt = (DataTable)joRtn["result"]["rows"].ToObject(typeof(DataTable)); int totalCount = int.Parse(joRtn["result"]["total"].ToString()); pg.TotalCount = totalCount; pg.PageSize = pageSize; dgv.DataSource = dt; dgv.Columns[0].ReadOnly = true; } catch (Exception ex) { MessageBox.Show("查询异常:" + ex.Message); } } private void setHeaderTxt(int directoryType, Sunny.UI.UIDataGridView dgv) { GridViewSetter gvdSetter = new GridViewSetter(); switch (directoryType) { case 0://药品 { gvdSetter.SetHeaderTextOfDrug(dgv); break; } case 1://诊疗 { gvdSetter.SetHeaderTextOfMedicalService(dgv); break; } case 2://材料 { gvdSetter.SetHeaderTextOfMaterials(dgv); break; } case 3://疾病诊断 { gvdSetter.SetHeaderTextOfDiagnose(dgv); break; } case 4://手术 { gvdSetter.SetHeaderTextOfDiagnose(dgv); break; } case 5://慢性病 { gvdSetter.SetHeaderTextOfDiagnose(dgv); break; } case 6://DRGs { gvdSetter.SetHeaderTextOfDiagnose(dgv); break; ; } case 7://日间手术 { gvdSetter.SetHeaderTextOfDiagnose(dgv); break; ; } case 8://字典表 { gvdSetter.SetHeaderTextOfDictionary(dgv); break; } case 9://中药饮片下载 { gvdSetter.SetHeaderTextOfChineseMedicine(dgv); break; } case 10://医药机构制剂目录下载 { gvdSetter.SetHeaderTextOfPreparation(dgv); break; } case 11://肿瘤形态学下载 { gvdSetter.SetHeaderTextOfTumorMorphology(dgv); break; } case 12://中医疾病下载 { gvdSetter.GetChineseDiagnoseJsonByTxt(dgv); break; } case 13://中医证候下载 { gvdSetter.GetTCMSyndromeJsonByTxt(dgv); break; } case 14://民族药品 { gvdSetter.GetEthnicMedicineJsonByTxt(dgv); break; } case 15://目录信息查询 { gvdSetter.GetMedInsuCatalogJsonByTxt(dgv); break; } case 16://医疗与医保目录匹配关系查询 { gvdSetter.GetMedInsuCorrespondencJsonByTxt(dgv); break; } case 17://医药机构目录匹配查询 { gvdSetter.GetMedInstCorrespondencJsonByTxt(dgv); break; } case 18://医保目录限价查询 { gvdSetter.GetMedInsuFixedPriceJsonByTxt(dgv); break; } case 19://医保目录先自付比例下载 { gvdSetter.GetMedInsuFirstPayProportionJsonByTxt(dgv); break; } case 20://医药机构信息 { gvdSetter.GetMedicalInstitutionJsonByTxt(dgv); break; } } } private void queryHISInsuDirectory(int directoryType, int pageIndex, int count, Sunny.UI.UIDataGridView dgv, int interfaceDr) { string code = "09010042"; if (tabControl1.SelectedIndex == 0) { if (rbgDirecType.SelectedIndex == 20) { code = "090100XX"; } else if (rbgDirecType.SelectedIndex == 8) { code = "09010043"; } else { code = "09010042"; } if (rbgDirecType.SelectedIndex <= 13) { queryInsuDirectory(pageIndex, count, directoryType + 1, interfaceDr, code); setHeaderTxt(directoryType, dgv); } else //几个医保查询该部分数据不存数据库只是临时查询(除医疗机构信息查询外) { //生成DataView列 //setHeaderTxt(directoryType, dgv); string pages, recordCounts, errorMessage, sOutpar; dynamic joData = GetInput(rbgDirecType.SelectedIndex, out string funNo); JObject joRtn = cBus.InvokeMedicalInsuranceInquiry(funNo, joData); if (joRtn["infcode"].ToString() == "0") { try { Sunny.UI.UIPagination pg; dgv = dgvDirectoy; pg = pgDownload; DataTable dt; if (rbgDirecType.SelectedIndex == 20) { dt = (DataTable)joRtn["output"]["medinsinfo"].ToObject(typeof(DataTable)); if (joRtn["output"]["medinsinfo"].ToString() == "") { MessageBox.Show("查询成功,但返回结果集为空!"); //return; } pg.TotalCount = 50; pg.PageSize = 50; } else { pages = joRtn["output"]["pages"].ToString(); //页数 recordCounts = joRtn["output"]["recordCounts"].ToString(); //总记录条数 dt = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable)); if (recordCounts == "0") { MessageBox.Show("查询成功,但返回结果集为空!"); //return; } pg.TotalCount = int.Parse(recordCounts); pg.PageSize = int.Parse(TexBYSJL.Text); //int.Parse(pages); } dgv.DataSource = dt; dgv.Columns[0].ReadOnly = true; } catch (Exception ex) { MessageBox.Show("查询异常:" + ex.Message); } } else { errorMessage = "调用交易" + funNo + "出现错误,请查看日志!"; //joImportRtn["errorMessage"].ToString(); MessageBox.Show(errorMessage); return; } } } else { queryInsuDirectory(pageIndex, count, directoryType + 1, interfaceDr, code); setHeaderTxt(directoryType, dgv); } } private int queryHISDirectory(int currentPage, int pageSize, out string errMsg) { errMsg = ""; string directoryType = string.Empty; switch (rbgDirecType_C.SelectedIndex) { case 0: { directoryType = "drugs"; break; } case 1: { directoryType = "diagnosi"; break; } case 2: { directoryType = "consumables"; break; } } JObject joHISRtn = new JObject(); JObject joRtn = new JObject(); InvokeHelper invoker = new InvokeHelper(); string flag = ""; //全部是先调HIS,然后再匹配医保平台的对照关系 if (rbAll.Checked) { JArray jaPagination = new JArray(); JArray jaParams = new JArray(); flag = "All"; dynamic joParam = new JObject(); joParam.code = ""; joParam.descripts = ""; joParam.FindType = new JArray(); joParam.TypeID = ""; joParam.alias = tbHISDirectoryFilter.Text; joParam.include = "Hosp"; joParam.groupID = "324"; joParam.hospID = Global.inf.hisHospitalDr; joParam.interfaceDr = Global.inf.interfaceDr; joParam.type = directoryType; joParam.flag = flag; joParam.specInput = ""; jaParams.Add(joParam); dynamic joPagination = new JObject(); joPagination.pageSize = pageSize; //joPagination.pageSize = 2; joPagination.currentPage = currentPage; joPagination.sortColumn = "Code"; joPagination.sortOrder = "asc"; jaPagination.Add(joPagination); //该服务需要改写,需要跟(CloudMedicalInsurancePlatform.Tables.MapRelation)进行关联 //joInParams.code = "09010038"; if (hIS.getHISDir(jaPagination, jaParams, out joHISRtn, out errMsg) != 0) { return -1; } joRtn = mIS.ConvertHISDir(joHISRtn); if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0) { return -1; } } //已对照是先调云医保,然后再匹配HIS if (rbMaped.Checked) { JArray jaPagination = new JArray(); JArray jaParams = new JArray(); flag = "Maped"; dynamic joParam = new JObject(); joParam.alias = tbHISDirectoryFilter.Text; joParam.HospitalDr = Global.inf.hospitalDr; joParam.InterfaceDr = Global.inf.interfaceDr; joParam.hisType = directoryType; jaParams.Add(joParam); dynamic joPagination = new JObject(); joPagination.pageSize = pageSize; joPagination.currentPage = currentPage; joPagination.sortColumn = "HisCode"; joPagination.sortOrder = "asc"; jaPagination.Add(joPagination); JObject joMIRtn = mIS.GetMappedHISDir(jaPagination, jaParams); if (JsonHelper.parseIrisRtnValue(joMIRtn, out errMsg) != 0) { return -1; } //传给HIS,进行匹配 joParam = new JObject(); joParam.TotalCount = joMIRtn["result"]["TotalCount"]; joParam.type = directoryType; joParam.flag = flag; joParam.hospID = Global.inf.hisHospitalDr; joParam.interfaceDr = Global.inf.interfaceDr; joParam.alias = tbHISDirectoryFilter.Text; joParam.include = "Hosp"; joParam.groupID = "324"; joParam.compareArr = joMIRtn["result"]["Data"]; jaParams = new JArray(); jaParams.Add(joParam); if (hIS.getHISDir(jaPagination, jaParams, out joRtn, out errMsg) != 0) { return -1; } } //if (rbNoMaped.Checked) { flag = "NoMaped"; } //未对照 if (rbNoMaped.Checked) { JArray jaPagination = new JArray(); JArray jaParams = new JArray(); flag = "All"; dynamic joParam = new JObject(); joParam.code = ""; joParam.descripts = ""; joParam.FindType = new JArray(); joParam.TypeID = ""; joParam.alias = tbHISDirectoryFilter.Text; joParam.include = "Hosp"; joParam.groupID = "324"; joParam.hospID = Global.inf.hisHospitalDr; joParam.interfaceDr = Global.inf.interfaceDr; joParam.type = directoryType; joParam.flag = flag; joParam.specInput = ""; jaParams.Add(joParam); dynamic joPagination = new JObject(); joPagination.pageSize = pageSize; //pageSize; //joPagination.pageSize = 2; joPagination.currentPage = currentPage; joPagination.sortColumn = "Code"; joPagination.sortOrder = "asc"; jaPagination.Add(joPagination); //1.获取全部HIS目录 if (hIS.getHISDir(jaPagination, jaParams, out joHISRtn, out errMsg) != 0) { return -1; } joRtn = mIS.GetNoMappHISDir(joHISRtn); if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0) { return -1; } } DataTable dt = (DataTable)joRtn["result"]["Data"].ToObject(typeof(DataTable)); int totalCount = int.Parse(joRtn["result"]["TotalCount"].ToString()); pgHISDirect.TotalCount = totalCount; pgHISDirect.PageSize = 50; dgvHISDirectory.DataSource = null; dgvHISDirectory.DataSource = dt; dgvHISDirectory.Columns[0].ReadOnly = true; return 0; } private void queryCenterDirectory_09010012(int currentPage, int pageSize) { string directoryType = string.Empty; switch (rbgDirecType_C.SelectedIndex) { case 0: { directoryType = "drugs"; break; } case 1: { directoryType = "diagnosi"; break; } case 2: { directoryType = "consumables"; break; } } dynamic joInParams = new JObject(); joInParams.pagination = new JArray() as dynamic; joInParams.session = new JArray() as dynamic; JArray jaParams = new JArray(); dynamic joParams = new JObject(); joParams.code = ""; joParams.descripts = ""; joParams.FindType = new JArray(); joParams.TypeID = ""; joParams.alias = ""; joParams.include = "Hosp"; joParams.groupID = "324"; joParams.hospID = "25"; joParams.type = directoryType; joParams.specInput = ""; jaParams.Add(joParams); joInParams.Add("params", JArray.FromObject(jaParams)); dynamic joSession = new JObject(); joSession.userID = ""; joSession.locID = ""; joSession.groupID = ""; joSession.hospID = ""; joSession.sessionID = ""; joSession.hospCode = ""; joSession.language = ""; joSession.hostName = ""; joSession.ipv4 = ""; joSession.ipv6 = ""; joSession.mac = ""; joInParams.session.Add(joSession); dynamic joPagination = new JObject(); joPagination.pageSize = pageSize; joPagination.currentPage = currentPage; joPagination.sortColumn = "Code"; joPagination.sortOrder = "asc"; joInParams.pagination.Add(joPagination); joInParams.code = "09010012"; string sInput = joInParams.ToString(); string sRtn = invoker.invokeInsuService(joInParams, ""); JObject jsonRtn = JObject.Parse(sRtn); if (jsonRtn["result"]["Data"] == null) { MessageBox.Show("该节点不存在"); return; } JObject joRtn = JObject.Parse(sRtn); DataTable dt = (DataTable)joRtn["result"]["Data"].ToObject(typeof(DataTable)); int totalCount = int.Parse(joRtn["result"]["TotalCount"].ToString()); pgCenterDirect.TotalCount = totalCount; pgCenterDirect.PageSize = 50; dgvCenterDirectory.DataSource = dt; } private void Mapping() { int iHis = dgvHISDirectory.CurrentRow.Index; if (dgvCenterDirectory.CurrentRow == null) { MessageBox.Show("请查询中心目录"); return; } int iCenter = dgvCenterDirectory.CurrentRow.Index; DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; DataTable dtCenter = (DataTable)dgvCenterDirectory.DataSource; dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Code"].Value.ToString(); dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Name"].Value.ToString(); int hisType = rbgDirecType_C.SelectedIndex + 1; string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString(); ; JArray jaParams = new JArray(); dynamic jsonTemp = new JObject(); jsonTemp.ID = dtHis.Rows[iHis]["MapID"]; jsonTemp.HospitalDr = Global.inf.hospitalDr; jsonTemp.updateUserID = Global.user.ID; jsonTemp.InterfaceDr = Global.inf.interfaceDr; jsonTemp.HISCode = dgvHISDirectory.Rows[iHis].Cells["itemCode"].Value; jsonTemp.HISName = dgvHISDirectory.Rows[iHis].Cells["itemDesc"].Value; jsonTemp.ChargeItemDr = dtHis.Rows[iHis]["ID"]; jsonTemp.DiretoryDr = dtCenter.Rows[iCenter]["medInsuDirectoryID"]; //1.已对照 2.已对照但未上传 3 已对照且已上传 jsonTemp.State = 1; jsonTemp.HisType = hisType; jsonTemp.HisTypeName = hisTypeName; jsonTemp.InsuCode = dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Code"].Value; jsonTemp.InsuName = dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Name"].Value; jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); jaParams.Add(jsonTemp); JObject joIn = new JObject(); joIn.Add(new JProperty("params", jaParams)); joIn.Add("code", "09010040"); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "插入对照信息"); //JObject joRtn = JObject.Parse(irisRtn); if ((int)joRtn["errorCode"] == 0) { dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "已对照"; } else { dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "对照失败"; } } ////批量对照 //private void AllMapping() //{ // int iHis = dgvHISDirectory.CurrentRow.Index; // MessageBox.Show("进入方法!"); // /*if (dgvCenterDirectory.CurrentRow == null) // { // MessageBox.Show("请查询中心目录"); // return; // }*/ // //int iCenter = dgvCenterDirectory.CurrentRow.Index; // DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; // //DataTable dtCenter = (DataTable)dgvCenterDirectory.DataSource; // //dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Code"].Value.ToString(); // //dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = dgvCenterDirectory.Rows[iCenter].Cells["Name"].Value.ToString(); // MessageBox.Show("HIS数据赋值!!"); // int hisType = rbgDirecType_C.SelectedIndex + 1; // string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString(); ; // for(int i = 0;i < dgvHISDirectory.Rows.Count;i++) // { // JArray jaParams = new JArray(); // dynamic jsonTemp = new JObject(); // jsonTemp.ID = dtHis.Rows[i]["MapID"]; // jsonTemp.HospitalDr = Global.inf.hospitalDr; // jsonTemp.updateUserID = Global.user.ID; // jsonTemp.InterfaceDr = Global.inf.interfaceDr; // jsonTemp.HISCode = dgvHISDirectory.Rows[i].Cells["itemCode"].Value; // jsonTemp.HISName = dgvHISDirectory.Rows[i].Cells["itemDesc"].Value; // jsonTemp.ChargeItemDr = dtHis.Rows[i]["ID"]; // jsonTemp.DiretoryDr = "16261127";//dtCenter.Rows[iCenter]["medInsuDirectoryID"]; // //1.已对照 2.已对照但未上传 3 已对照且已上传 // jsonTemp.State = 1; // jsonTemp.HisType = hisType; // jsonTemp.HisTypeName = hisTypeName; // jsonTemp.InsuCode = "C15010521204021072050000005";// dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Code"].Value; // jsonTemp.InsuName = "鼻腔止血海绵";//dgvCenterDirectory.Rows[dgvCenterDirectory.CurrentRow.Index].Cells["Name"].Value; // jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // jaParams.Add(jsonTemp); // JObject joIn = new JObject(); // joIn.Add(new JProperty("params", jaParams)); // joIn.Add("code", "09010040"); // InvokeHelper invoker = new InvokeHelper(); // JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "插入对照信息"); // } // MessageBox.Show("本页对照完成!"); // //if ((int)joRtn["errorCode"] == 0) // //{ // // dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "已对照"; // //} // //else // //{ // // dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "对照失败"; // //} //} private void CancleMapping() { int iHis = dgvHISDirectory.CurrentRow.Index; DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; JArray jaParams = new JArray(); dynamic jsonTemp = new JObject(); jsonTemp.ID = dtHis.Rows[iHis]["MapID"]; jsonTemp.HospitalDr = Global.inf.hospitalDr; jsonTemp.updateUserID = Global.user.ID; jsonTemp.InterfaceDr = Global.inf.interfaceDr; jsonTemp.HISCode = dgvHISDirectory.Rows[iHis].Cells["itemCode"].Value; jsonTemp.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); jaParams.Add(jsonTemp); JObject joIn = new JObject(); joIn.Add(new JProperty("params", jaParams)); joIn.Add("code", "09010041"); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeInsuService(joIn.ToString(), "取消对照"); if ((int)joRtn["errorCode"] == 0) { dgvHISDirectory.Rows[iHis].Cells["insuCode"].Value = ""; dgvHISDirectory.Rows[iHis].Cells["insuName"].Value = ""; dgvHISDirectory.Rows[iHis].Cells["flag"].Value = ""; } else { dgvHISDirectory.Rows[iHis].Cells["flag"].Value = "取消失败"; } } /// /// 医保目录单个版本号的下载 /// /// /// /// /// /// public int SingleDownload(string ver, int directoryType, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage) { string txtPath = string.Empty; errorMessage = ""; int iResult = -1; string funNo = ""; switch (directoryType) { case 0://药品 { funNo = "1301"; //"1301"; break; } case 1://诊疗 { funNo = "1305"; break; } case 2://材料 { funNo = "1306"; break; } case 3://疾病诊断 { funNo = "1307"; break; } case 4://手术 { funNo = "1308"; break; } case 5://慢性病 { funNo = "1309"; break; } case 6://DRGs { funNo = "1310"; break; ; } case 7://日间手术 { funNo = "1311"; break; } case 8://字典表 { break; } case 9://中药饮片 { funNo = "1302"; break; } case 10://医药机构制剂 { funNo = "1303"; break; } } try { JObject joRtn = hBus.DownloadDirectory(funNo, ver); //MessageBox.Show("往IRIS插入数据准备:" + joRtn.ToString()); //if (JsonHelper.parseCenterRtnValue(joRtn, out errorMessage) == 0) if (JsonHelper.parseIrisRtnValue(joRtn, out errorMessage) == 0) { txtPath = joRtn["filePath"].ToString(); //MessageBox.Show("获取txt数据往IRIS插入文件路径:"+ txtPath); DataImoport bus = new DataImoport(); JObject joImportRtn = bus.importDataToIrisByTxt(txtPath, 50, directoryType + 1, uiProcessBar); //MessageBox.Show("往IRIS插入数据:" + joImportRtn.ToString()); //if (JsonHelper.parseCenterRtnValue(joImportRtn, out errorMessage) == 0) if (JsonHelper.parseIrisRtnValue(joImportRtn, out errorMessage) == 0) { iResult = 0; } else { Global.writeLog(joImportRtn.ToString()); errorMessage = "导入数据出现错误,请查看日志!";//joImportRtn["errorMessage"].ToString(); } } return iResult; } catch (Exception ex) { errorMessage = "SingleDownload提示:" + ex.Message; return -1; } } /// /// 医保目录单个版本号的下载 /// /// /// /// /// /// public int downloadDicionary(JObject joData, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage) { errorMessage = ""; int iResult = -1; try { JObject joRtn = cBus.DownDictionay(joData); if (JsonHelper.parseCenterRtnValue(joRtn, out errorMessage) == 0) { DataImoport DI = new DataImoport(); JArray jaList = JArray.Parse(JsonHelper.getDestValue(joRtn, "output.list")); JObject joImportRtn = DI.importDictionary(uiProcessBar, jaList, tbDicType.Text); if (JsonHelper.parseIrisRtnValue(joImportRtn, out errorMessage) == 0) { iResult = 0; } else { errorMessage = "导入数据出现错误,请查看日志!" + errorMessage; } } return iResult; } catch (Exception ex) { errorMessage = "downloadDicionary提示:" + ex.Message; return -1; } } /// /// 自动下载医保目录,直到最新版本(返回报错) /// /// /// /// /// public int AutoDownload(int directoryType, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage) { int iResult = 0; errorMessage = ""; try { while (iResult == 0) { JObject joMaxVerNO = mIS.getDirectoryMaxVersionNO(directoryType); string ver = joMaxVerNO["result"]["MaxVersionNO"].ToString(); MessageBox.Show(ver); iResult = JsonHelper.parseIrisRtnValue(joMaxVerNO, out errorMessage); iResult = SingleDownload(ver, directoryType, uiProcessBar, out errorMessage); } return iResult; } catch (Exception ex) { errorMessage = ex.Message; return -1; } } #endregion private void Form1_Load(object sender, EventArgs e) { this.WindowState = FormWindowState.Maximized; rbgDirecType.ValueChanged += new Sunny.UI.UIRadioButtonGroup.OnValueChanged(rbgDirecType_ValueChanged); LabExplain.Visible = false; } private void btnDownload_Click(object sender, EventArgs e) { string errorMessage = string.Empty; //医保字典数据下载 if (rbgDirecType.SelectedIndex == 8) { if (tbDicDate.Text == "") { MessageBox.Show("请输入查询日期!"); return; } dynamic joData = new JObject(); joData.type = tbDicType.Text; //字典类型 joData.parentValue = ""; //父字典键值 joData.admdvs = Global.inf.areaCode; //行政区划 就医地 joData.date = tbDicDate.Text; //查询日期 joData.vali_flag = "1"; //有效标志 if (downloadDicionary(joData, uiProcessBar1, out errorMessage) != 0) { MessageBox.Show("医保字典下载失败:" + errorMessage); return; } } else if (rbgDirecType.SelectedIndex <=10) { if (rbSingleDown.Checked) { string ver = tbVer.Text; if (tbVer.Text != "") { ver = tbVer.Text; } if (SingleDownload(ver, rbgDirecType.SelectedIndex, uiProcessBar1, out errorMessage) != 0) { MessageBox.Show("医保目录下载失败:" + errorMessage); return; } } if (rbAutoDown.Checked) { if (AutoDownload(rbgDirecType.SelectedIndex, uiProcessBar1, out errorMessage) != 0) { MessageBox.Show("医保目录下载失败:" + errorMessage); return; } } } btnQuery_Click(sender, e); } private void btnQuery_Click(object sender, EventArgs e) { #region 校验查询条件 if ((rbgDirecType.SelectedIndex < 0) || (rbgDirecType.SelectedIndex > 20)) { MessageBox.Show("请先选择查询类型!"); return; } if (rbgDirecType.SelectedIndex > 13) { if (rbgDirecType.SelectedIndex != 20) { if ((TexDate.Text == "") || (TexDate.Text == "输入日期 2021-01-01")) { MessageBox.Show("查询条件-请输入查询日期!"); return; } if ((TexDQYS.Text == "") || (TexDQYS.Text == "当前页数")) { MessageBox.Show("查询条件-请输入当前页数!"); return; } if ((TexBYSJL.Text == "") || (TexBYSJL.Text == "本页数据量")) { MessageBox.Show("查询条件-请输入本页数据量!"); return; } } else { if ((TexYYMC.Text == "") || (TexYYMC.Text == "输入医院名称模糊查找")) { MessageBox.Show("查询条件-请输入医院名称模糊查找!"); return; } } } #endregion // queryHISInsuDirectory(rbgDirecType.SelectedIndex, 1, 20, dgvDirectoy, Global.inf.interfaceDr); queryHISInsuDirectory(rbgDirecType.SelectedIndex, 1, 1000, dgvDirectoy, Global.inf.interfaceDr); } private void btnQueryHISDirectory_Click(object sender, EventArgs e) { string errMsg; int iCount = 50;//正常50一页 GridViewSetter gridSetter = new GridViewSetter(); gridSetter.SetHeaderTextOfMapping_HisDirectory(dgvHISDirectory); if (rbNoMaped.Checked) { iCount = 3000; } if (queryHISDirectory(1, iCount, out errMsg) != 0) { MessageBox.Show(errMsg); return; } gridSetter.DatagridviewColumnWidthAdaptation(dgvHISDirectory);//自适应 } private void btnQueryCenterDirectory_Click(object sender, EventArgs e) { //查询区域通用目录 JObject joRtn = mIS.getInterface_TY(Global.inf.interfaceDr.ToString(),""); string InsuCurrencyCataLogue = JsonHelper.getDestValue(joRtn, "InsuCurrencyCataLogue"); //通用目录编码 6 string InterfaceName_TY = JsonHelper.getDestValue(joRtn, "InterfaceName_TY"); //通用目录名称 string HospName = JsonHelper.getDestValue(joRtn, "HospitalName"); //目录名称 if (InsuCurrencyCataLogue != "") { queryHISInsuDirectory(rbgDirecType_C.SelectedIndex, 1, 50, dgvCenterDirectory, int.Parse(InsuCurrencyCataLogue)); LabExplain.Visible = true; LabExplain.Text = "当前接口已设置区域通用目录,数据源:" + InterfaceName_TY+" ,如果确认没有所查目录请联系数据源医院新增维护!"; } else { queryHISInsuDirectory(rbgDirecType_C.SelectedIndex, 1, 50, dgvCenterDirectory, Global.inf.interfaceDr); LabExplain.Visible = true; LabExplain.Text = "当前接口未设置区域通用目录,数据源:" + HospName; } GridViewSetter gvdSetter = new GridViewSetter(); gvdSetter.DatagridviewColumnWidthAdaptation(dgvCenterDirectory);//自适应 } private void pgDownload_PageChanged(object sender, object pagingSource, int pageIndex, int count) { queryHISInsuDirectory(rbgDirecType.SelectedIndex, pageIndex, count, dgvDirectoy, Global.inf.interfaceDr); } private void pgHISDirect_PageChanged(object sender, object pagingSource, int pageIndex, int count) { string errMsg; if (queryHISDirectory(pageIndex, 50, out errMsg) != 0) { MessageBox.Show(errMsg); return; } } private void pgCenterDirect_PageChanged(object sender, object pagingSource, int pageIndex, int count) { queryHISInsuDirectory(rbgDirecType_C.SelectedIndex, pageIndex, count, dgvCenterDirectory, Global.inf.interfaceDr); } private void rbgDirecType_ValueChanged(object sender, int index, string text) { //选定项不同调用的接口也不相同,Index值大于 if (rbgDirecType.SelectedIndex > 13) { uiGroupBox1.Visible = false; uiGroupBox5.Visible = false; uiGroupBox2.Visible = true; //uiGroupBox3.Visible = true; uiProcessBar1.Visible = false; uiGroupBox2.Left = rbgDirecType.Width + rbgDirecType.Left + 5; uiGroupBox3.Left = uiGroupBox2.Width+rbgDirecType.Width + rbgDirecType.Left + 10; dgvDirectoy.DataSource = null; } else { uiGroupBox1.Visible = true; uiGroupBox5.Visible = true; uiGroupBox2.Visible = true; //uiGroupBox3.Visible = false; uiProcessBar1.Visible = true; uiGroupBox1.Left = rbgDirecType.Width + rbgDirecType.Left + 5; uiGroupBox5.Left = uiGroupBox1.Width + rbgDirecType.Width + rbgDirecType.Left + 10; uiGroupBox2.Left = uiGroupBox5.Width + uiGroupBox1.Width + rbgDirecType.Width + rbgDirecType.Left + 15; uiGroupBox3.Left = uiGroupBox2.Width + uiGroupBox5.Width + uiGroupBox1.Width + rbgDirecType.Width + rbgDirecType.Left + 20; uiProcessBar1.Left = rbgDirecType.Width + rbgDirecType.Left + 5; uiProcessBar1.Width = uiGroupBox1.Width + uiGroupBox5.Width + uiGroupBox2.Width + 10; } setHeaderTxt(rbgDirecType.SelectedIndex, dgvDirectoy); } private void toolStripMenuItem2_Click(object sender, EventArgs e) { CancleMapping(); } private void tsmiMapping_Click(object sender, EventArgs e) { Mapping(); } private void dgvHISDirectory_DoubleClick(object sender, EventArgs e) { int currentPage = pgHISDirect.ActivePage; string flag = dgvHISDirectory.Rows[dgvHISDirectory.CurrentRow.Index].Cells["flag"].Value.ToString(); if (flag == "未对照") { Mapping(); } else if (flag == "已对照") { CancleMapping(); } if (rbAll.Checked) { string errMsg; if (queryHISDirectory(1, 50, out errMsg) != 0) { MessageBox.Show(errMsg); return; } } } private void dgvDirectoy_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { } private void dgvDirectoy_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void uiRadioButton1_CheckedChanged(object sender, EventArgs e) { } private void dgvDirectoy_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { //自动编号,与数据无关 Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgvDirectoy.RowHeadersWidth - 4, e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dgvDirectoy.RowHeadersDefaultCellStyle.Font, rectangle, dgvDirectoy.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right); } private void rbAll_ValueChanged(object sender, bool value) { if (rbAll.Checked) { btnQueryHISDirectory_Click(null, new EventArgs()); } } private void rbMaped_CheckedChanged(object sender, EventArgs e) { if (rbMaped.Checked) { string errMsg; if (queryHISDirectory(1, 50, out errMsg) != 0) { MessageBox.Show(errMsg); return; } } } private void btAddDir_Click(object sender, EventArgs e) { AddSingleDirectory addDirectory = new AddSingleDirectory(rbgDirecType.SelectedIndex); if (addDirectory.ShowDialog() == DialogResult.OK) { JObject joRtn = mIS.UpdateDirectoryBySelf(addDirectory.joPamam); string error = ""; if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0) { MessageBox.Show("新增失败:" + error); } else { MessageBox.Show("新增成功"); } } } private void btEditDir_Click(object sender, EventArgs e) { DataTable dt = (DataTable)dgvDirectoy.DataSource; if ((dt == null) || (dt.Rows.Count < 1)) { MessageBox.Show("表中无数据,请检查!"); return; } DataRow dr = dt.Rows[dgvDirectoy.CurrentRow.Index]; AddSingleDirectory addDirectory = new AddSingleDirectory(rbgDirecType.SelectedIndex, dr); if (addDirectory.ShowDialog() == DialogResult.OK) { JObject joRtn = mIS.UpdateDirectoryBySelf(addDirectory.joPamam); string error = ""; if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0) { MessageBox.Show("修改失败:" + error); } else { MessageBox.Show("修改成功"); } } } private void btnExit_Click(object sender, EventArgs e) { Close(); } /// /// 几个医保查询的交易组织入参 /// /// /// /// private JObject GetInput(int Index, out string funNo) { funNo = ""; dynamic joData = new JObject(); switch (Index) { case 14://民族药品目 { funNo = "1304"; joData.med_list_codg = tbDirectoryCode.Text; //医疗目录编码 joData.genname_codg = ""; //通用名编号 joData.drug_genname = ""; //药品通用名 joData.drug_prodname = tbDircetoryName.Text; //药品商品名 joData.reg_name = ""; //注册名称 joData.tcmherb_name = ""; //中草药名称 joData.mlms_name = ""; //药材名称 joData.vali_flag = ""; //有效标志 joData.rid = ""; //唯一记录号 joData.ver = ""; //版本号 joData.ver_name = ""; //版本名称 joData.opt_begn_time = ""; //经办开始时间 joData.opt_end_time = ""; //经办结束时间 joData.updt_time = TexDate.Text; //更新时间 joData.page_num = TexDQYS.Text; //当前页数 joData.page_size = TexBYSJL.Text; //本页数据量 break; } case 15://目录信息查询 { funNo = "1312"; joData.query_date = ""; //查询时间点 joData.hilist_code = tbDirectoryCode.Text; //医保目录编码 joData.insu_admdvs = ""; //参保机构医保区划 joData.begndate = ""; //开始日期 joData.hilist_name = tbDircetoryName.Text; //医保目录名称 joData.wubi = ""; //五笔助记码 joData.pinyin = ""; //拼音助记码 joData.med_chrgitm_type = ""; //医疗收费项目类别 joData.chrgitm_lv = ""; //收费项目等级 joData.lmt_used_flag = ""; //限制使用标志 joData.list_type = ""; //目录类别 joData.med_use_flag = ""; //医疗使用标志 joData.matn_used_flag = ""; //生育使用标志 joData.hilist_use_type = ""; //医保目录使用类别 joData.lmt_cpnd_type = ""; //限复方使用类型 joData.vali_flag = ""; //有效标志 joData.updt_time = TexDate.Text; //更新时间 joData.page_num = TexDQYS.Text; //当前页数 joData.page_size = TexBYSJL.Text; //本页数据量 break; } case 16://医疗与医保目录匹配 { funNo = "1316"; joData.query_date = ""; //查询时间点 joData.medins_list_codg = ""; //定点医药机构目录编号 joData.hilist_code = tbDirectoryCode.Text; //医保目录编码 joData.list_type = ""; //目录类别 joData.insu_admdvs = ""; //参保机构医保区划 joData.begndate = ""; //开始日期 joData.vali_flag = ""; //有效标志 joData.updt_time = TexDate.Text; //更新时间 joData.page_num = TexDQYS.Text; //当前页数 joData.page_size = TexBYSJL.Text; //本页数据量 break; } case 17://医药机构目录匹配 { funNo = "1317"; joData.query_date = ""; //查询时间点 joData.fixmedins_code = ""; //定点医药机构编号 joData.medins_list_codg = ""; //定点医药机构目录编号 joData.medins_list_name = ""; //定点医药机构目录名称 joData.insu_admdvs = ""; //参保机构医保区划 joData.list_type = ""; //目录类别 joData.med_list_codg = tbDirectoryCode.Text; //医疗目录编码 joData.begndate = ""; //开始日期 joData.vali_flag = ""; //有效标志 joData.updt_time = TexDate.Text; //更新时间 joData.page_num = TexDQYS.Text; //当前页数 joData.page_size = TexBYSJL.Text; //本页数据量 break; } case 18://医保目录限价 { funNo = "1318"; joData.query_date = ""; //查询时间点 joData.hilist_code = tbDirectoryCode.Text; //医保目录编码 joData.hilist_lmtpric_type = ""; //医保目录限价类型 joData.overlmt_dspo_way = ""; //医保目录超限处理方式 joData.insu_admdvs = ""; //参保机构医保区划 joData.begndate = ""; //开始日期 joData.enddate = ""; //结束日期 joData.vali_flag = ""; //有效标志 joData.rid = ""; //唯一记录号 joData.tabname = ""; //表名 joData.poolarea_no = ""; //统筹区 joData.updt_time = TexDate.Text; //更新时间 joData.page_num = TexDQYS.Text; //当前页数 joData.page_size = TexBYSJL.Text; //本页数据量 break; } case 19://医保目录先自付比例 { funNo = "1319"; joData.query_date = ""; //查询时间点 joData.hilist_code = tbDirectoryCode.Text; //医保目录编码 joData.selfpay_prop_psn_type = "";//医保目录自付比例人员类别 joData.selfpay_prop_type = ""; //目录自付比例类别 joData.insu_admdvs = ""; //参保机构医保区划 joData.begndate = ""; //开始日期 joData.enddate = ""; //结束日期 joData.vali_flag = ""; //有效标志 joData.rid = ""; //唯一记录号 joData.tabname = ""; //表名 joData.poolarea_no = ""; //统筹区 joData.updt_time = TexDate.Text; //更新时间 joData.page_num = TexDQYS.Text; //当前页数 joData.page_size = TexBYSJL.Text; //本页数据量 break; } case 20://医药机构信息 { funNo = "1201"; joData.fixmedins_type = "1"; //定点医疗服务机构类型 1定点医疗机构,2定点零售药店,3工伤定点康复机构,4辅助器具配置机构,5计划生育服务机构 joData.fixmedins_name = TexYYMC.Text; //定点医药机构名称 joData.fixmedins_code = ""; //定点医药机构编号 break; } } return joData; } private void chek_UporCancel_CheckedChanged(object sender, EventArgs e) { } private void uiButton1_Click(object sender, EventArgs e) { Close(); } private void btnUpShip_Click(object sender, EventArgs e) { AllUpLoad(); } private void btnCancelUpShip_Click(object sender, EventArgs e) { AllCancelUpload(); } /// /// 单条上传目录对照关系 /// private void SingleUpload() { if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true)) { MessageBox.Show("请查询HIS目录对照关系"); return; } string errorMsg = "", sMLLX = ""; //单条目录对照关系上传 int iHis = dgvHISDirectory.CurrentRow.Index; DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料 //string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString(); if (hisType == 1) { sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他 } else if (hisType == 2) { sMLLX = "201"; } else if (hisType == 3) { sMLLX = "301"; } string InsuCode = dtHis.Rows[iHis]["InsuCode"].ToString(); string InsuName = dtHis.Rows[iHis]["InsuName"].ToString(); string HisCode = dtHis.Rows[iHis]["itemCode"].ToString(); string HisName = dtHis.Rows[iHis]["itemDesc"].ToString(); string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd"); //调用3301目录对照上传 JObject joData = new JObject(); joData.Add("fixmedins_hilist_id", HisCode); joData.Add("fixmedins_hilist_name", HisName); joData.Add("list_type", sMLLX); //目录类别 joData.Add("med_list_codg", InsuCode); //医疗目录编码 joData.Add("begndate", "2022-10-01"); //开始日期 joData.Add("enddate", UpdateDate); //结束日期 joData.Add("aprvno", ""); joData.Add("dosform", ""); joData.Add("exct_cont", ""); joData.Add("item_cont", ""); joData.Add("prcunt", ""); joData.Add("spec", ""); joData.Add("pacspec", ""); joData.Add("memo", ""); JObject joInput = new JObject(); joInput.Add("data", joData); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService("3301", JsonHelper.setCenterInpar("3301", joInput)); if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0) { MessageBox.Show("目录对照关系上传失败:" + errorMsg); } else { MessageBox.Show("目录对照关系上传成功!"); } } /// /// 单条撤销目录对照关系上传 /// private void SingleCancelUpload() { if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true)) { MessageBox.Show("请查询HIS目录对照关系"); return; } string errorMsg = "", sMLLX = ""; //撤销目录对照关系 DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; int iHis = dgvHISDirectory.CurrentRow.Index; string InsuCode = dtHis.Rows[iHis]["InsuCode"].ToString(); string HisCode = dtHis.Rows[iHis]["HisCode"].ToString(); int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料 //string hisTypeName = rbgDirecType_C.Items[hisType - 1].ToString(); if (hisType == 1) { sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他 } else if (hisType == 2) { sMLLX = "201"; } else if (hisType == 3) { sMLLX = "301"; } //调用3302目录对照撤销 JObject joData = new JObject(); joData.Add("fixmedins_code", Global.inf.hospitalNO); joData.Add("fixmedins_hilist_id", HisCode); joData.Add("list_type", sMLLX); //目录类别 joData.Add("med_list_codg", InsuCode); //医疗目录编码 JObject joInput = new JObject(); joInput.Add("data", joData); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService("3302", JsonHelper.setCenterInpar("3302", joInput)); if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0) { MessageBox.Show("目录对照撤销失败:" + errorMsg); } else { MessageBox.Show("目录对照撤销成功!"); } } /// /// 全部上传目录对照关系 /// private void AllUpLoad() { if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true)) { MessageBox.Show("请查询HIS目录对照关系"); return; } string sInputStr = "", sMLLX = "", errorMsg = "", Msg = ""; Boolean bOk = true; JObject InputjoRtn = new JObject(); string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd"); int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料 if (hisType == 1) { sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他 } else if (hisType == 2) { sMLLX = "201"; } else if (hisType == 3) { sMLLX = "301"; } DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; for (int i = 0; i < dtHis.Rows.Count; i++) { string InsuCode = dtHis.Rows[i]["InsuCode"].ToString(); //医保目录编码 string InsuName = dtHis.Rows[i]["InsuName"].ToString(); //医保目录名称 string HisCode = dtHis.Rows[i]["itemCode"].ToString(); //HIS目录编码 string HisName = dtHis.Rows[i]["itemDesc"].ToString(); //HIS目录名称 //调用3301目录对照上传 JObject joData = new JObject(); joData.Add("fixmedins_hilist_id", HisCode); joData.Add("fixmedins_hilist_name", HisName); joData.Add("list_type", sMLLX); //目录类别 joData.Add("med_list_codg", InsuCode); //医疗目录编码 joData.Add("begndate", "2022-10-01"); //开始日期 joData.Add("enddate", UpdateDate); //结束日期 joData.Add("aprvno", ""); joData.Add("dosform", ""); joData.Add("exct_cont", ""); joData.Add("item_cont", ""); joData.Add("prcunt", ""); joData.Add("spec", ""); joData.Add("pacspec", ""); joData.Add("memo", ""); JObject joInput = new JObject(); joInput.Add("data", joData); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService("3301", JsonHelper.setCenterInpar("3301", joInput)); if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0) { bOk = false; Msg = Msg + "<" + joInput.ToString() + ":" + errorMsg + ">"; } } if (bOk == false) { MessageBox.Show("全部目录对照关系上传成功,部分上传异常:" + Msg); } else { MessageBox.Show("全部目录对照关系上传成功!"); } } /// /// 全部撤销目录对照关系上传 /// private void AllCancelUpload() { if ((dgvHISDirectory.CurrentRow == null) || (rbMaped.Checked != true)) { MessageBox.Show("请查询HIS目录对照关系"); return; } string sMLLX = "", errorMsg = "", Msg = ""; Boolean bOk = true; string UpdateDate = DateTime.Now.ToString("yyyy-MM-dd"); int hisType = rbgDirecType_C.SelectedIndex + 1; //1药品 2诊疗 3材料 if (hisType == 1) { sMLLX = "101"; //101西药中成药 102中药饮片 103自制剂 104民族药 201医疗服务项目 301医用耗材 501长护服务项目 105其他 } else if (hisType == 2) { sMLLX = "201"; } else if (hisType == 3) { sMLLX = "301"; } DataTable dtHis = (DataTable)dgvHISDirectory.DataSource; for (int i = 0; i < dtHis.Rows.Count; i++) { string InsuCode = dtHis.Rows[i]["InsuCode"].ToString(); string HisCode = dtHis.Rows[i]["HisCode"].ToString(); //调用3302目录对照撤销 JObject joData = new JObject(); joData.Add("fixmedins_code", Global.inf.hospitalNO); joData.Add("fixmedins_hilist_id", HisCode); joData.Add("list_type", sMLLX); //目录类别 joData.Add("med_list_codg", InsuCode); //医疗目录编码 JObject joInput = new JObject(); joInput.Add("data", joData); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService("3302", JsonHelper.setCenterInpar("3302", joInput)); if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0) { bOk = false; Msg = Msg + "<" + joInput.ToString()+":" + errorMsg + ">"; } } if (bOk == false) { MessageBox.Show("全部撤销目录对照关系上传成功,部分撤销异常:" + Msg); } else { MessageBox.Show("全部撤销目录对照关系上传成功!"); } } private void ToolStripMenuItem_Upload_Click(object sender, EventArgs e) { SingleUpload(); } private void ToolStripMenuItem_CancelUpload_Click(object sender, EventArgs e) { SingleCancelUpload(); } private void rbgDirecType_C_ValueChanged(object sender, int index, string text) { tbHISDirectoryFilter.Text = ""; uiTextBox1.Text = ""; rbAll.Checked = true; rbMaped.Checked = false; rbNoMaped.Checked = false; tbCenterDirectoryFilter.Text = ""; tbInsuCode.Text = ""; tbApprovalNO.Text = ""; } private void tbVer_TextChanged(object sender, EventArgs e) { } private void Gxcx_Click(object sender, EventArgs e) { string mltype = ""; //GxRdio1.SelectedIndex 0药品 1诊疗 2材料 if(GxRdio1.SelectedIndex==0) { mltype = "1"; }else if(GxRdio1.SelectedIndex==1) { mltype = "2"; }else if (GxRdio1.SelectedIndex == 2) { mltype = "3"; } } private void toolStripMenuItem1_Click(object sender, EventArgs e) { if(rbgDirecType.SelectedIndex > 2) { MessageBox.Show("需要选择药品、诊疗或耗材选项!"); return; } DataTable dt = (DataTable)dgvDirectoy.DataSource; if ((dt == null) || (dt.Rows.Count < 1)) { MessageBox.Show("表中无数据,请检查!"); return; } if (string.IsNullOrEmpty(TexDate.Text)) { MessageBox.Show("查询条件-日期不能为空!"); return; } string htype = ""; if (rbgDirecType.SelectedIndex == 0) { htype = "1"; }else if(rbgDirecType.SelectedIndex == 1) { htype = "2"; } else if (rbgDirecType.SelectedIndex == 2) { htype = "3"; } DataRow dr = dt.Rows[dgvDirectoy.CurrentRow.Index]; JObject one1312 = new JObject(); one1312.Add("query_date", "");//查询时间点 日期型 if(htype == "3") { one1312.Add("hilist_code", dr[1].ToString().Substring(0,15));//医保目录编码 字符型 30 } else { one1312.Add("hilist_code", dr[1].ToString()); } one1312.Add("insu_admdvs", "");//参保机构医保区划 字符型 6 Y one1312.Add("begndate", ""); //开始日期 日期型 one1312.Add("hilist_name", "");//医保目录名称 字符型 200 one1312.Add("wubi", "");//五笔助记码 字符型 30 one1312.Add("pinyin", "");//拼音助记码 字符型 30 one1312.Add("med_chrgitm_type", "");//医疗收费项目类别 字符型 6 Y one1312.Add("chrgitm_lv", "");//收费项目等级 字符型 3 Y one1312.Add("lmt_used_flag", "");//限制使用标志 字符型 3 Y one1312.Add("list_type", "");//目录类别 字符型 30 one1312.Add("med_use_flag", "");//医疗使用标志 字符型 3 Y one1312.Add("matn_used_flag", "");//生育使用标志 字符型 3 Y one1312.Add("hilist_use_type", "");//医保目录使用类别 字符型 3 Y one1312.Add("lmt_cpnd_type", ""); //限复方使用类型 字符型 3 Y one1312.Add("vali_flag", "");//有效标志 字符型 3 Y one1312.Add("updt_time", TexDate.Text);//更新时间 日期型 one1312.Add("page_num", 1);//当前页数 数值型 4 one1312.Add("page_size", 50);//本页数据量 数值型 4 JObject data1312 = new JObject(); data1312.Add("data", one1312); JObject jo1312Rtn = invoker.invokeCenterService("1312", JObject.Parse(JsonHelper.setCenterInpar("1312", data1312.ToString()))); //string enddate= Convert.ToString(jo1312Rtn["ouput"]["data"][0]["enddate"]); //string stdate = Convert.ToString(jo1312Rtn["ouput"]["data"][0]["begndate"]); //MessageBox.Show("enddate" + enddate + ",aaa" + "stdate" + stdate //MessageBox.Show(",aaa" + "stdate" + stdate); dynamic joPamam = new JObject();//更新HIS医保目录入参 joPamam.Add("Code", ""); joPamam.Add("Name", ""); joPamam.Add("HisType", htype); joPamam.Add("ChargeItemLevel", ""); if (JsonHelper.parseCenterReturnJson(jo1312Rtn, out string errorMsg) == 0) { DataTable dt_result = (DataTable)jo1312Rtn["output"]["data"].ToObject(typeof(DataTable)); for (int n = 0; n < dt_result.Rows.Count; n++) { if (string.IsNullOrEmpty(Convert.ToString(dt_result.Rows[n][21]))) { MessageBox.Show("首条医保编码:" + dt_result.Rows[n][3].ToString()); MessageBox.Show("首条医保名称:" + dt_result.Rows[n][17].ToString()); MessageBox.Show("首条开始时间:" + dt_result.Rows[n][8].ToString()); MessageBox.Show("首条收费项目等级:" + dt_result.Rows[n][27].ToString()); //joPamam.Code = dt_result.Rows[n][3].ToString(); joPamam.Code = dr[1].ToString(); joPamam.Name = dt_result.Rows[n][17].ToString(); joPamam.ChargeItemLevel = dt_result.Rows[n][27].ToString(); JObject joRtn = mIS.UpdateDirectoryBySelf(joPamam); if (JsonHelper.parseIrisRtnValue(joRtn, out string error) != 0) { MessageBox.Show("修改失败:" + error); } else { MessageBox.Show("修改成功"); } } } } } private void ToolStripMenuItem4_Click(object sender, EventArgs e) { /* DataTable dt = (DataTable)dgvDirectoy.DataSource; if ((dt == null) || (dt.Rows.Count < 1)) { MessageBox.Show("表中无数据,请检查!"); return; } dynamic one1312 = new JObject(); one1312.Add("query_date", "");//查询时间点 日期型 one1312.Add("hilist_code", "");//医保目录编码 字符型 30 one1312.Add("insu_admdvs", "");//参保机构医保区划 字符型 6 Y one1312.Add("begndate", ""); //开始日期 日期型 one1312.Add("hilist_name", "");//医保目录名称 字符型 200 one1312.Add("wubi", "");//五笔助记码 字符型 30 one1312.Add("pinyin", "");//拼音助记码 字符型 30 one1312.Add("med_chrgitm_type", "");//医疗收费项目类别 字符型 6 Y one1312.Add("chrgitm_lv", "");//收费项目等级 字符型 3 Y one1312.Add("lmt_used_flag", "");//限制使用标志 字符型 3 Y one1312.Add("list_type", "");//目录类别 字符型 30 one1312.Add("med_use_flag", "");//医疗使用标志 字符型 3 Y one1312.Add("matn_used_flag", "");//生育使用标志 字符型 3 Y one1312.Add("hilist_use_type", "");//医保目录使用类别 字符型 3 Y one1312.Add("lmt_cpnd_type", ""); //限复方使用类型 字符型 3 Y one1312.Add("vali_flag", "");//有效标志 字符型 3 Y one1312.Add("updt_time", "2021-01-01");//更新时间 日期型 one1312.Add("page_num", 1);//当前页数 数值型 4 one1312.Add("page_size", 50);//本页数据量 数值型 4 dynamic data1312 = new JObject(); dynamic joPamam = new JObject();//更新HIS医保目录入参 joPamam.Add("Code", ""); joPamam.Add("Name", ""); joPamam.Add("HisType", 1); joPamam.Add("ChargeItemLevel", ""); int i; string sfdl = ""; for (i = 0; i < dt.Rows.Count; i++) { one1312.hilist_code = dt.Rows[i][1].ToString(); data1312.data = one1312; JObject jo1312Rtn = invoker.invokeCenterService("1312", JObject.Parse(JsonHelper.setCenterInpar("1312", data1312.ToString()))); if(JsonHelper.parseCenterReturnJson(jo1312Rtn, out string errorMsg) == 0) { DataTable dt_result = (DataTable)jo1312Rtn["output"]["data"].ToObject(typeof(DataTable)); for (int n = 0; n < dt_result.Rows.Count; n++) { if (string.IsNullOrEmpty(Convert.ToString(dt_result.Rows[n][21]))) { joPamam.Code = dt_result.Rows[n][3].ToString(); joPamam.Name = dt_result.Rows[n][17].ToString(); joPamam.ChargeItemLevel = dt_result.Rows[n][27].ToString(); JObject joRtn = mIS.UpdateDirectoryBySelf(joPamam); } } } } MessageBox.Show("更新完成!");*/ } private void ToolStripMenuItem_UpdateSfdl_Click(object sender, EventArgs e) { if (!rbMaped.Checked) { MessageBox.Show("请选择已对照进行更新"); return; } DataTable dt = (DataTable)dgvHISDirectory.DataSource; //获取当前页的数据,注意在已对照页面更新 if ((dt == null) || (dt.Rows.Count < 1)) { MessageBox.Show("表中无数据,请检查!"); return; } string htype = ""; if (rbgDirecType_C.SelectedIndex == 0) { htype = "1"; }else if(rbgDirecType_C.SelectedIndex == 1) { htype = "2"; } else if(rbgDirecType_C.SelectedIndex == 2) { htype = "3"; } // MessageBox.Show("第1列" + dt.Rows[0][0]); // MessageBox.Show("第1行" + dt.Rows[0].ToString()); dynamic one1312 = new JObject(); one1312.Add("query_date", "");//查询时间点 日期型 one1312.Add("hilist_code", "");//医保目录编码 字符型 30 one1312.Add("insu_admdvs", "");//参保机构医保区划 字符型 6 Y one1312.Add("begndate", ""); //开始日期 日期型 one1312.Add("hilist_name", "");//医保目录名称 字符型 200 one1312.Add("wubi", "");//五笔助记码 字符型 30 one1312.Add("pinyin", "");//拼音助记码 字符型 30 one1312.Add("med_chrgitm_type", "");//医疗收费项目类别 字符型 6 Y one1312.Add("chrgitm_lv", "");//收费项目等级 字符型 3 Y one1312.Add("lmt_used_flag", "");//限制使用标志 字符型 3 Y one1312.Add("list_type", "");//目录类别 字符型 30 one1312.Add("med_use_flag", "");//医疗使用标志 字符型 3 Y one1312.Add("matn_used_flag", "");//生育使用标志 字符型 3 Y one1312.Add("hilist_use_type", "");//医保目录使用类别 字符型 3 Y one1312.Add("lmt_cpnd_type", ""); //限复方使用类型 字符型 3 Y one1312.Add("vali_flag", "");//有效标志 字符型 3 Y one1312.Add("updt_time", "2021-01-01");//更新时间 日期型 one1312.Add("page_num", 1);//当前页数 数值型 4 one1312.Add("page_size", 50);//本页数据量 数值型 4 dynamic data1312 = new JObject(); dynamic joPamam = new JObject();//更新HIS医保目录入参 joPamam.Add("Code", ""); joPamam.Add("Name", ""); joPamam.Add("HisType", htype); joPamam.Add("ChargeItemLevel", ""); int i; string sfdl = ""; for (i = 0; i < dt.Rows.Count; i++) { one1312.hilist_code = dt.Rows[i][12].ToString();//每行的第13列是医保编码 if (htype == "3") { one1312.hilist_code = dt.Rows[i][12].ToString().Substring(0,15);//每行的第13列是医保编码,长春截取15位,医保目录只有15位 } data1312.data = one1312; JObject jo1312Rtn = invoker.invokeCenterService("1312", JObject.Parse(JsonHelper.setCenterInpar("1312", data1312.ToString()))); if (JsonHelper.parseCenterReturnJson(jo1312Rtn, out string errorMsg) == 0) { DataTable dt_result = (DataTable)jo1312Rtn["output"]["data"].ToObject(typeof(DataTable)); for (int n = 0; n < dt_result.Rows.Count; n++) { if (string.IsNullOrEmpty(Convert.ToString(dt_result.Rows[n][21])))//判断返回结束时间为空的 { //医保返参取值 //joPamam.Code = dt_result.Rows[n][3].ToString();//长春第四位医保编码 joPamam.Code = dt.Rows[i][12].ToString(); joPamam.Name = dt_result.Rows[n][17].ToString();//长春第18位医保名称 joPamam.ChargeItemLevel = dt_result.Rows[n][27].ToString();//长春第28位收费项目等级 JObject joRtn = mIS.UpdateDirectoryBySelf(joPamam); } } } } MessageBox.Show("更新完成!"); } private void rbNoMaped_CheckedChanged(object sender, EventArgs e) { } private void rbAll_CheckedChanged(object sender, EventArgs e) { } } }