using PTMedicalInsurance.FormSetter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PTMedicalInsurance.Forms.PrescriptionCirculations
{
    class GridViewSetter : GridViewSetterBase
    {
        /// <summary>
        /// 设置HIS就诊信息列标题
        /// </summary>
        public void SetHeaderTextOfHISRegister(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "ID", "id", 80);
            AddDGVColumn(dgv, "就诊PatID", "patID", 300);
            AddDGVColumn(dgv, "就诊AdmID", "admID", 300);
            AddDGVColumn(dgv, "姓名", "patName", 80);
            AddDGVColumn(dgv, "性别", "patSex", 300);
            AddDGVColumn(dgv, "接诊科室", "loc", 250);
            AddDGVColumn(dgv, "接诊医生", "doc", 250);
            AddDGVColumn(dgv, "接诊时间", "dateTime", 250);
            AddDGVColumn(dgv, "处方编号", "prescNo", 250);
        }

        /// <summary>
        /// 设置HIS就诊信息列标题
        /// </summary>
        public void SetHeaderTextOfHISPrescFee(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "名称", "medDesc", 80);
            AddDGVColumn(dgv, "药品类别", "medCat", 300);
            AddDGVColumn(dgv, "通用名", "drugGenname", 300);
            AddDGVColumn(dgv, "剂型名称", "drugDosform", 80);
            AddDGVColumn(dgv, "规格", "drugSpec", 300);
            AddDGVColumn(dgv, "用法编码", "medcWayCodg", 250);
            AddDGVColumn(dgv, "用法名称", "medcWayDscr", 250);
            AddDGVColumn(dgv, "数量", "drugCnt", 250);
            AddDGVColumn(dgv, "药品剂量单位", "drugDosunt", 250);
            AddDGVColumn(dgv, "总量", "drugTotlcnt", 250);
            AddDGVColumn(dgv, "总量单位", "drugTotlcntEmp", 250);
            AddDGVColumn(dgv, "剂量", "sinDoscnt", 250);
            AddDGVColumn(dgv, "剂量单位", "sinDosunt", 250);
            AddDGVColumn(dgv, "给药方法编码", "usedFrquCodg", 250);
            AddDGVColumn(dgv, "给药方法名称", "usedFrquName", 250);
            AddDGVColumn(dgv, "医院审批标志", "hospApprFlag", 250);
        }

        /// <summary>
        /// 设置电子处方上传表信息列标题
        /// </summary>
        public void SetHeaderTextOfPresUploadInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "记录ID", "ID", 80);
            AddDGVColumn(dgv, "状态", "RxStasName", 80);
            AddDGVColumn(dgv, "医保就诊ID", "MdtrtID", 200);
            AddDGVColumn(dgv, "HIS就诊号", "Adm_Dr", 200);
            AddDGVColumn(dgv, "医保处方编号", "HiRxno", 180);
            AddDGVColumn(dgv, "处方追溯码", "RxTraceCode", 300);
            AddDGVColumn(dgv, "姓名", "PatnName", 250);
            AddDGVColumn(dgv, "证件号码", "Certno", 250);
            AddDGVColumn(dgv, "医疗机构编号", "FixmedinsCode", 250); //
            AddDGVColumn(dgv, "开方医保医师代码", "DrCode", 250); //
            AddDGVColumn(dgv, "证件类型", "PsnCertType", 250);
            AddDGVColumn(dgv, "开方医师姓名", "PrscDrName", 250);
            AddDGVColumn(dgv, "审方药师科室名称", "PharDeptName", 250);
            AddDGVColumn(dgv, "审方药师姓名", "PharName", 250);
            AddDGVColumn(dgv, "医疗机构药师审方时间", "PharChkTime", 250);
            AddDGVColumn(dgv, "发生时间", "OccurTime", 250);
            AddDGVColumn(dgv, "医保处方状态编码", "RxStasCodg", 250);
            AddDGVColumn(dgv, "医保处方状态名称", "RxStasName", 250);

            AddDGVColumn(dgv, "撤销医师的医保医师代码", "UndrCode", 250);
            AddDGVColumn(dgv, "撤销医师姓名", "UndoDrName", 250);
            AddDGVColumn(dgv, "撤销医师证件类型", "UndoDrCertType", 250);
            AddDGVColumn(dgv, "撤销医师证件号码", "UndoDrCertno", 250);
            AddDGVColumn(dgv, "撤销原因描述", "UndoRea", 250);
            AddDGVColumn(dgv, "撤销时间", "UndoTime", 250);
        }

        /// <summary>
        /// 设置电子处方上传审核信息查询列标题
        /// </summary>
        public void SetHeaderTextOfPresUploadProcessInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "记录ID", "ID", 80);
            AddDGVColumn(dgv, "状态", "Upload", 80);
            AddDGVColumn(dgv, "医保就诊ID", "MdtrtID", 200);
            AddDGVColumn(dgv, "HIS就诊号", "Adm_Dr", 200);
            AddDGVColumn(dgv, "医保处方编号", "HiRxno", 180);
            AddDGVColumn(dgv, "处方追溯码", "RxTraceCode", 300);
            AddDGVColumn(dgv, "姓名", "PatnName", 250);
            AddDGVColumn(dgv, "证件号码", "Certno", 250);
            AddDGVColumn(dgv, "医疗机构编号", "FixmedinsCode", 250); //
            AddDGVColumn(dgv, "开方医保医师代码", "DrCode", 250); //
            AddDGVColumn(dgv, "证件类型", "PsnCertType", 250);
            AddDGVColumn(dgv, "开方医师姓名", "PrscDrName", 250);
            AddDGVColumn(dgv, "审方药师科室名称", "PharDeptName", 250);
            AddDGVColumn(dgv, "审方药师姓名", "PharName", 250);
            AddDGVColumn(dgv, "医疗机构药师审方时间", "PharChkTime", 250);
            AddDGVColumn(dgv, "发生时间", "OccurTime", 250);
            AddDGVColumn(dgv, "医保处方状态名称", "RxStasName", 250);
        }

        /// <summary>
        /// 设置电子处方上传审核信息返回列标题
        /// </summary>
        public void SetHeaderTextOfPresPresAuditResults(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "医保处方编号", "hiRxno", 100);
            AddDGVColumn(dgv, "处方审核状态代码", "rxChkStasCodg", 100);
            AddDGVColumn(dgv, "处方审核状态", "rxChkStasName", 200);
            AddDGVColumn(dgv, "处方审核意见", "rxChkOpnn", 180);
            AddDGVColumn(dgv, "处方审核时间", "rxChkTime", 300);
            AddDGVColumn(dgv, "医保药师姓名", "pharName", 80);
            AddDGVColumn(dgv, "医保药师代码", "pharCode", 200);
        }

        /// <summary>
        /// 设置电子处方上传预核验信息返回列标题
        /// </summary>
        public void SetHeaderTextOfPresPresCheckInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "HIS处方号", "HospRxno", 80);
            AddDGVColumn(dgv, "医保处方号", "HiRxno", 80);
            AddDGVColumn(dgv, "医保就诊ID", "MdtrtId", 100);
            AddDGVColumn(dgv, "人员名称", "PatnName", 200);
            AddDGVColumn(dgv, "人员证件类型", "PsnCertType", 100);
            AddDGVColumn(dgv, "证件号码", "Certno", 100);
            AddDGVColumn(dgv, "医疗类别", "MedType", 70);
            AddDGVColumn(dgv, "住院/门诊号", "IptOtpNo", 70);
            AddDGVColumn(dgv, "开方科室名称", "PrscDeptName", 70);
            AddDGVColumn(dgv, "开方医师姓名", "prscDrName", 70);
            AddDGVColumn(dgv, "就诊时间", "MdtrtTime", 70);
            AddDGVColumn(dgv, "主诊断代码", "MaindiagCode", 70);
            AddDGVColumn(dgv, "主诊断名称", "MaindiagName", 70);
            AddDGVColumn(dgv, "医疗费总额", "MedfeeSumamt", 70);
        }

        /// <summary>
        /// 设置电子处方信息查询返回值列标题
        /// </summary>
        public void SetHeaderTextOfPresDataInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "医保处方号", "hiRxno", 80);
            AddDGVColumn(dgv, "定点医疗机构编号", "fixmedinsCode", 100);
            AddDGVColumn(dgv, "定点医疗机构名称", "fixmedinsName", 200);
            AddDGVColumn(dgv, "长期处方标志", "longRxFlag", 100);
            AddDGVColumn(dgv, "开方时间", "prscTime", 100);
            //AddDGVColumn(dgv, "医保处方状态编码", "rxStasCodg", 70);
            AddDGVColumn(dgv, "医保处方状态名称", "rxStasName", 70);
            //AddDGVColumn(dgv, "处方类别编号", "rxTypeCode", 70);
            AddDGVColumn(dgv, "处方类别名称", "rxTypeName", 70);
            //AddDGVColumn(dgv, "医保处方使用状态编码", "rxUsedStasCodg", 70);
            AddDGVColumn(dgv, "医保处方使用状态名称", "rxUsedStasName", 70);
            AddDGVColumn(dgv, "处方有效天数", "valiDays", 70);
            AddDGVColumn(dgv, "有效截止时间", "valiEndTime", 70);
        }

        /// <summary>
        /// 设置电子处方信息查询返回值rxDetlList列标题
        /// </summary>
        public void SetHeaderTextOfPresDetlListInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "医保处方号", "medListCodg", 80);
            AddDGVColumn(dgv, "定点医疗机构编号", "fixmedinsHilistId", 100);
            AddDGVColumn(dgv, "定点医疗机构名称", "hospPrepFlag", 200);
            AddDGVColumn(dgv, "长期处方标志", "rxItemTypeCode", 100);
            AddDGVColumn(dgv, "开方时间", "rxItemTypeName", 100);
            AddDGVColumn(dgv, "医保处方状态编码", "tcmdrugTypeName", 70);
            AddDGVColumn(dgv, "医保处方状态名称", "tcmdrugTypeCode", 70);
            AddDGVColumn(dgv, "处方类别编号", "tcmherbFoote", 70);
            AddDGVColumn(dgv, "处方类别名称", "mednTypeCode", 70);
            AddDGVColumn(dgv, "医保处方使用状态编码", "mednTypeName", 70);
            AddDGVColumn(dgv, "医保处方使用状态名称", "mainMedcFlag", 70);
            AddDGVColumn(dgv, "处方有效天数", "urgtFlag", 70);
            AddDGVColumn(dgv, "有效截止时间", "basMednFlag", 70);
            AddDGVColumn(dgv, "是否进口药品", "impDrugFlag", 70);
            AddDGVColumn(dgv, "药品商品名", "drugProdname", 70);
            AddDGVColumn(dgv, "通用名编码", "gennameCodg", 70);
            AddDGVColumn(dgv, "药品通用名", "drugGenname", 70);
            AddDGVColumn(dgv, "药品剂型", "drugDosform", 70);
            AddDGVColumn(dgv, "药品规格", "drugSpec", 70);
            AddDGVColumn(dgv, "生厂厂家", "prdrName", 70);
            AddDGVColumn(dgv, "药品单价", "drugPric", 70);
            AddDGVColumn(dgv, "药品总金额", "drugSumamt", 70);
            AddDGVColumn(dgv, "用药途径代码", "medcWayCodg", 70);
            AddDGVColumn(dgv, "用药途径描述", "medcWayDscr", 70);
            AddDGVColumn(dgv, "用药开始时间", "medcBegntime", 70);
            AddDGVColumn(dgv, "用药结束时间", "medcEndtime", 70);
            AddDGVColumn(dgv, "用药天数", "medcDays", 70);
            AddDGVColumn(dgv, "药品总用药量", "drugCnt", 70);
            AddDGVColumn(dgv, "药品总用药剂量单位", "drugDosunt", 70);
            AddDGVColumn(dgv, "单次用量", "sinDoscnt", 70);
            AddDGVColumn(dgv, "单次剂量单位", "sinDosunt", 70);
            AddDGVColumn(dgv, "使用频次编码", "usedFrquCodg", 70);
            AddDGVColumn(dgv, "使用频次名称", "usedFrquName", 70);
            AddDGVColumn(dgv, "所需药品库存数量", "drugTotlcnt", 70);
            AddDGVColumn(dgv, "所需药品库存单位", "drugTotlcntEmp", 70);
            AddDGVColumn(dgv, "医院审批标志", "hospApprFlag", 70);
        }

        /// <summary>
        /// 设置电子处方信息查询返回值rxOtpinfo列标题
        /// </summary>
        public void SetHeaderTextOfPresOtpinfoInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "医疗类别", "medType", 80);
            AddDGVColumn(dgv, "住院/门诊号", "iptOpNo", 100);
            AddDGVColumn(dgv, "门诊住院标志", "otpIptFlag", 200);
            AddDGVColumn(dgv, "患者姓名", "patnName", 100);
            AddDGVColumn(dgv, "年龄", "patnAge", 100);
            //AddDGVColumn(dgv, "患者身高", "patnHgt", 70);
            //AddDGVColumn(dgv, "患者体重", "patnWt", 70);
            AddDGVColumn(dgv, "性别", "gend", 70);
            AddDGVColumn(dgv, "过敏史", "algsHis", 70);
            AddDGVColumn(dgv, "险种类型", "insutype", 70);
            AddDGVColumn(dgv, "开方科室名称", "prscDeptName", 70);
            AddDGVColumn(dgv, "开方医师姓名", "prscDrName", 70);
            AddDGVColumn(dgv, "药师姓名", "pharName", 70);
            AddDGVColumn(dgv, "医疗机构药师审方时间", "pharChkTime", 70);
            AddDGVColumn(dgv, "就诊时间", "mdtrtTime", 70);
            AddDGVColumn(dgv, "病种编码", "diseCodg", 70);
            AddDGVColumn(dgv, "病种名称", "diseName", 70);
            AddDGVColumn(dgv, "是否特殊病种", "spDiseFlag", 70);
            AddDGVColumn(dgv, "主诊断代码", "maindiagCode", 70);
            AddDGVColumn(dgv, "主诊断名称", "maindiagName", 70);
            AddDGVColumn(dgv, "疾病病情描述", "diseCondDscr", 70);
            AddDGVColumn(dgv, "是否初诊", "fstdiagFlag", 70);
        }

        /// <summary>
        /// 设置电子处方信息查询返回值rxDiseList列标题
        /// </summary>
        public void SetHeaderTextOfPresDiseListInfo(DataGridView dgv)
        {
            dgv.AutoGenerateColumns = false;
            dgv.Columns.Clear();
            AddDGVColumn(dgv, "诊断类别", "diagType", 80);
            AddDGVColumn(dgv, "主诊断标志", "maindiagFlag", 100);
            AddDGVColumn(dgv, "诊断排序号", "diagSrtNo", 200);
            AddDGVColumn(dgv, "诊断代码", "diagCode", 100);
            AddDGVColumn(dgv, "诊断名称", "diagName", 100);
            AddDGVColumn(dgv, "诊断科室", "diagDept", 70);
            AddDGVColumn(dgv, "诊断医生编码", "diagDrNo", 70);
            AddDGVColumn(dgv, "诊断医生姓名", "diagDrName", 70);
            AddDGVColumn(dgv, "诊断时间", "diagTime", 70);
            AddDGVColumn(dgv, "中医病名代码", "tcmDiseCode", 70);
            AddDGVColumn(dgv, "中医病名名称", "tcmDiseName", 70);
            AddDGVColumn(dgv, "中医症候代码", "tcmsympCode", 70);
            AddDGVColumn(dgv, "中医症候", "tcmsymp", 70);
        }
    }
}
