using Newtonsoft.Json.Linq;
using PTMedicalInsurance.FormSetter;
using PTMedicalInsurance.Helper;
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.Variables;

namespace PTMedicalInsurance.Forms
{
    public partial class PreAndInProcessAnalysisForm : Form
    {
        private DataTable dtVolaItems;
        private DataTable dtVolaDetail;

        private GridViewSetter grdSetter = new GridViewSetter();
        private JArray jaVolaItems;
        public string JrID = "";

        public PreAndInProcessAnalysisForm()
        {
            InitializeComponent();
        }

        public PreAndInProcessAnalysisForm(JObject jo)
        {
            InitializeComponent();
            jaVolaItems = JArray.Parse(JsonHelper.getDestValue(jo, "output.result"));
            dtVolaItems = (DataTable)jo["output"]["result"].ToObject(typeof(DataTable));
            dgvVolaItems.DataSource = dtVolaItems;
            grdSetter.SetHeaderTextOfPAIPAVolaItem(dgvVolaItems);

            //tbJrID.Text = JsonHelper.getDestValue(jo, "output.result[0].jr_id");
            //tbRuleID.Text = JsonHelper.getDestValue(jo, "output.result[0].rule_id");
            //tbPatID.Text = JsonHelper.getDestValue(jo, "output.result[0].patn_id");
            //tbMdtrdID.Text = JsonHelper.getDestValue(jo, "output.result[0].mdtrt_id");
            //tbVolaAmt.Text = JsonHelper.getDestValue(jo, "output.result[0].vola_amt");
            //tbVolaAmtStas.Text = JsonHelper.getDestValue(jo, "output.result[0].vola_amt_stas");
            //tbSevDeg.Text = JsonHelper.getDestValue(jo, "output.result[0].sev_deg");
            //tbVolaBhvrType.Text = JsonHelper.getDestValue(jo, "output.result[0].vola_bhvr_type");
            //tbVolaEvid.Text = JsonHelper.getDestValue(jo, "output.result[0].vola_evid");
            //tbRuleName.Text = JsonHelper.getDestValue(jo, "output.result[0].rule_name");
            //rbtVolaContent.Text = JsonHelper.getDestValue(jo, "output.result[0].vola_cont");            
        }

        private void showVolaItemContent(JObject jo)
        {
            tbJrID.Text = JsonHelper.getDestValue(jo, "jr_id");
            JrID = tbJrID.Text;
            tbRuleID.Text = JsonHelper.getDestValue(jo, "rule_id");
            tbPatID.Text = JsonHelper.getDestValue(jo, "patn_id");
            tbMdtrdID.Text = JsonHelper.getDestValue(jo, "mdtrt_id");
            tbVolaAmt.Text = JsonHelper.getDestValue(jo, "vola_amt");
            tbVolaAmtStas.Text = JsonHelper.getDestValue(jo, "vola_amt_stas");
            tbSevDeg.Text = JsonHelper.getDestValue(jo, "sev_deg");
            tbVolaBhvrType.Text = JsonHelper.getDestValue(jo, "vola_bhvr_type");
            tbVolaEvid.Text = JsonHelper.getDestValue(jo, "vola_evid");
            tbRuleName.Text = JsonHelper.getDestValue(jo, "rule_name");
            rbtVolaContent.Text = JsonHelper.getDestValue(jo, "vola_cont");
            dtVolaDetail = (DataTable)jo["judge_result_detail_dtos"].ToObject(typeof(DataTable));
            dgvVolaDetailDtos.DataSource = dtVolaDetail;
            grdSetter.SetHeaderTextOfPAIPAVolaDetailDtos(dgvVolaDetailDtos);
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.OK;
        }

        private void btnCancle_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }

        private void dgvVolaItems_SelectionChanged(object sender, EventArgs e)
        {
            int i = dgvVolaItems.CurrentRow.Index;
            showVolaItemContent((JObject)jaVolaItems[i]);
        }

        private void dgvVolaItems_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void uiRichTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void uiDataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void btnModify_Click(object sender, EventArgs e)
        {
            if (rtb_DspoWayRea.Text == "")
            {
                MessageBox.Show("处理方式为修改医嘱时,处理原因必填!");
                return;
            }

            Global.Set.dspoWayRea = rtb_DspoWayRea.Text;

            Global.Set.dspoWay = "2";
            DialogResult = DialogResult.OK;
        }

        private void btn_Continue_Click(object sender, EventArgs e)
        {
            Global.Set.dspoWayRea = "继续执行医嘱";
            Global.Set.dspoWay = "1";
            DialogResult = DialogResult.OK;
        }
    }
}