| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 | using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using PTMedicalInsurance.Common;using PTMedicalInsurance.Helper;using PTMedicalInsurance.FormSetter;using PTMedicalInsurance.Business;using PTMedicalInsurance.Variables;using System.IO;using Newtonsoft.Json.Linq;using Newtonsoft.Json;using GMCrypto.Lib;namespace PTMedicalInsurance.Forms{    /// <summary>    /// 南昌双通道备案申请、查询和撤销    /// 查询时支持查询本地申请记录(用于撤销或查看历史)、查询中心记录并显示结果    /// 本地表结构与中心做了格式转换,用于表格显示    /// </summary>    public partial class DualChannelRecordForm : Form    {        //设置业务实例        HisMainBusiness hBus = new HisMainBusiness();        MIIrisServices mIS = new MIIrisServices();        InvokeHelper invoker = new InvokeHelper();        public bool LocalQueryMode = true;        private JObject joBasicInfo = null;        DataTable dtApplyDrug = null;        public DualChannelRecordForm()        {            InitializeComponent();            //asc.controllInitializeSize(this);            //asc.controlAutoSize(this);            this.StartPosition = FormStartPosition.CenterScreen;            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfChannelBasicInfo(dgv_BasicInfo);            grdSetter.DatagridviewColumnWidthAdaptation(dgv_BasicInfo);            grdSetter.SetHeaderTextOfChannelInsuInfo(dgv_DrugApply);            grdSetter.DatagridviewColumnWidthAdaptation(dgv_DrugApply);            grdSetter.SetHeaderTextOfChannelInsuInfo(dgv_DrugInfo);            grdSetter.DatagridviewColumnWidthAdaptation(dgv_DrugInfo);            grdSetter.SetHeaderTextOfChannelOrgInfo(dgv_OrgInfo);            grdSetter.DatagridviewColumnWidthAdaptation(dgv_OrgInfo);        }        private void btnClose_Click(object sender, EventArgs e)        {            Close();        }        private void DualChannelRecordForm_Load(object sender, EventArgs e)        {            this.Height = 600;            this.Width = 1200;            //asc.controllInitializeSize(this);            //asc.controlAutoSize(this);                    }        private void btnPresUpload_Click(object sender, EventArgs e)        {            if (joBasicInfo == null)            {                MessageBox.Show("请先读卡获取基本信息");                return;            }            if(dtApplyDrug == null || dtApplyDrug.Rows.Count < 1)            {                MessageBox.Show("请先增加药品信息");                return;            }            // 调用申请            string errMsg = string.Empty;            JObject joRtn = invoker.invokeCenterService(TradeEnum.DualChannelApply, GetApplyParam());            if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg)!=0)            {                MessageBox.Show("申请失败:" + errMsg);                return;            }            // 保存申请记录            if (SaveApply(joRtn))            {                MessageBox.Show("申请成功!");            }        }        private JObject GetApplyParam()        {            JArray jaDrugs = new JArray();            foreach (DataRow row in dtApplyDrug.Rows)            {                dynamic obj = new JObject();                obj.med_list_codg = row["med_list_codg"].ToString();                obj.med_list_name = row["med_list_name"].ToString();                jaDrugs.Add(obj);            }            dynamic joOrg = new JObject();            joOrg.fixmedins_code = Global.inf.hospitalNO;            joOrg.fixmedins_name = Global.inf.hospitalName;            joOrg.poolarea_no = Global.inf.areaCode;            if (joBasicInfo != null)            {                joBasicInfo["appy_type"] = "32";                joBasicInfo["begndate"] = dtpStart.Value.ToString("yyyy-MM-dd");                joBasicInfo["enddate"] = dtpEnd.Value.ToString("yyyy-MM-dd");                joBasicInfo["addr"] = txtAddress.Text.Trim();                joBasicInfo["cond_abst"] = txtDiag.Text.Trim();            }            dynamic joInput = new JObject();            joInput.data = joBasicInfo;            joInput.twopathdruglist = jaDrugs;            joInput.twopathfixmedins = new JArray() { joOrg };            return joInput;        }        private bool SaveApply(JObject joRtn)        {            string errorMessage = string.Empty;            string dcla = joRtn["two_path_reg_sn"].ToString();            JObject joParams = GetApplyParam();            // 兼容通用备案            JObject joInput = (JObject)joParams["data"].DeepClone();            joInput["trt_dcla_detl_sn"] = dcla;            joInput["transCode"] = TradeEnum.DualChannelApply.GetCode();            joInput["transDesc"] = TradeEnum.DualChannelApply.GetName();            joInput["cond_abst_diag"] = joInput["cond_abst"];            joInput["cond_abst"].Remove();            joInput["drugs"] = joParams["twopathdruglist"];            joInput["fixmedins"] = joParams["twopathfixmedins"];            joInput["iresult"] = "0";            joInput["HospitalDr"] = Global.inf.hospitalDr;            string outparam = string.Empty;            int status = mIS.SaveReferralRecord(joInput, out outparam);            if (status != 0)            {                MessageBox.Show("保存失败:" + outparam);                return false;            }            return true;        }        private void btnReadCard_Click(object sender, EventArgs e)        {            CallResult ret = new ReadCardProcess().Process(new JObject());            if (ret.Success)            {                string outparam = string.Empty;                string patInfo = ret.PureData?.ToString();                hBus.convertPatientInfo(patInfo, out outparam);                if (string.IsNullOrEmpty(outparam))                {                    JObject joRtn = JObject.Parse(outparam);                    this.joBasicInfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "output.baseinfo"));                    joBasicInfo["emp_no"] = JsonHelper.getDestValue(joRtn, "selectedInsuInfo.emp_no");                    joBasicInfo["emp_name"] = JsonHelper.getDestValue(joRtn, "selectedInsuInfo.emp_name");                    joBasicInfo["insutype"] = JsonHelper.getDestValue(joRtn, "selectedInsuInfo.insutype");                    txt_PsnName.Text = joBasicInfo["psn_name"].Text();                    txtPsnNO.Text = joBasicInfo["psn_no"].Text();                    txtInsuType.Text = joBasicInfo["insutype"].Text();                    txtCertType.Text = joBasicInfo["psn_cert_type"].Text();                    txtCertNo.Text = joBasicInfo["certno"].Text();                    txtBirth.Text = joBasicInfo["brdy"].Text();                    txtSex.Text = joBasicInfo["gend"].Text();                    txtNation.Text = joBasicInfo["naty"].Text();                    txtUnitNo.Text = joBasicInfo["emp_no"].Text();                    txtUnitName.Text = joBasicInfo["emp_name"].Text();                                    }            }            else            {                MessageBox.Show(ret.Data);            }        }        private void tc_Main_TabIndexChanged(object sender, EventArgs e)        {        }        private void btnQuery_Click(object sender, EventArgs e)        {            if (this.joBasicInfo == null)            {                MessageBox.Show("请先读卡获取基本信息");                return;            }            dynamic joParam = new JObject();            JObject joRtn = new JObject();            string errMsg = string.Empty;            JArray jaDrugs = new JArray();            JArray jaOrgs = new JArray();            JArray jaBasic = new JArray();            // 查询本院            if (LocalQueryMode)            {                joParam = new JObject();                joParam["CardID"] = joBasicInfo["certno"];                joParam["TransCode"] = TradeEnum.DualChannelApply.GetCode();                int status = mIS.QueryReferralRecord(joParam, out errMsg);                if (status != 0)                {                    MessageBox.Show("没有查询到申请记录!");                    return;                }                joRtn = JObject.Parse(errMsg);                jaBasic = JArray.Parse(joRtn["result"].Text());            }            else             {                dynamic joInput = new JObject();                joParam.psn_no = this.joBasicInfo["psn_no"].Text();                joParam.begndate = dtpStart.Value.ToString("yyyy-MM-dd"); ;                joParam.enddate = dtpEnd.Value.ToString("yyyy-MM-dd");                joInput.data = joParam;                //查询中心                joRtn = invoker.invokeCenterService(TradeEnum.DualChannelQuery, joInput);                if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)                {                    MessageBox.Show("查询失败:" + errMsg);                    return;                }                JObject joBasic = JObject.Parse(joRtn["result"].Text());                jaDrugs = JArray.Parse(joRtn["twopathdruglist"].Text());                jaOrgs = JArray.Parse(joRtn["twopathfixmedins"].Text());                // 转换为本地格式                jaBasic["PsnNo"] = jaBasic["psn_no"];                jaBasic["Name"] = jaBasic["psn_name"];                jaBasic["CardID"] = jaBasic["certno"];                jaBasic["CreateDate"] = jaBasic["apply_date"];                jaBasic["BegnDate"] = jaBasic["begndate"];                jaBasic["EndDate"] = jaBasic["enddate"];                jaBasic["iResult"] = "0";                jaBasic["begndate"].Remove();                jaBasic["enddate"].Remove();                jaBasic = new JArray() { joBasic };                jaDrugs.ToList().ForEach(drug =>                {                    drug["InsuCode"] = drug["med_list_codg"];                    drug["InsuName"] = drug["med_list_name"];                });                jaOrgs.ToList().ForEach(org =>                {                    org["Code"] = org["fixmedins_code"];                    org["Name"] = org["fixmedins_name"];                    org["InsuranceArea"] = org["poolarea_no"];                });            }            DataTable dtBasic = jaBasic.ToObject<DataTable>();            DataTable dtDrugs = jaDrugs.ToObject<DataTable>();            DataTable dtOrgs = jaOrgs.ToObject<DataTable>();            dgv_BasicInfo.DataSource = dtBasic;            dgv_DrugInfo.DataSource = dtDrugs;            dgv_OrgInfo.DataSource = dtOrgs;        }        private void btnCancel_Click(object sender, EventArgs e)        {            if (dgv_BasicInfo.SelectedIndex == -1)            {                MessageBox.Show("请先选择申请记录!");                return;            }            DataGridViewRow row = dgv_BasicInfo.Rows[dgv_BasicInfo.SelectedIndex];            string trt_id = row.Cells["InsuSerNo"].Value.ToString();            dynamic joInput = new JObject();            dynamic joParam = new JObject();            joParam.two_path_reg_sn_list = new List<string>() { trt_id };            joInput.data = joParam;            string errMsg = string.Empty;            JObject joRtn = invoker.invokeCenterService(TradeEnum.DualChannelCancel, joInput);            if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)            {                MessageBox.Show("撤销失败:" + errMsg);                return;            }            //修改iris状态            joParam = new JObject();            joParam["ID"] = row.Cells["ID"].Value;            joParam["trtDclaDetlSn"] = trt_id;            int status = mIS.CancelReferralRecord(joParam, out errMsg);            if (status != 0)            {                MessageBox.Show("没有查询到申请记录!");                return;            }            MessageBox.Show("撤销成功!");        }    }}
 |