using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PTMedicalInsurance.Entity;
using System.Reflection;
using PTMedicalInsurance.Helper;
using Newtonsoft.Json;

namespace PTMedicalInsurance
{
    public enum TradeEnum
    {
        #region 签到与读卡
        [Trade("9001", "签到")]
        SignIn,

        [Trade("9002", "签退")]
        SingOut,

        // 1101
        [Trade("1101", "获取个人信息")]
        PatientInfo,

        /// <summary>
        /// 1161,读卡并获取个人信息
        /// </summary>
        [Trade("1161", "读卡并获取个人信息")]
        ReadCardInfo,

        /// <summary>
        /// 1162,读电子凭证
        /// </summary>
        [Trade("1162", "读电子凭证")]
        ReadECToken,

        // 1193
        [Trade("1193", "修改密码")]
        ModifyPassword,

        #endregion

        #region 基础信息查询
        /// <summary>
        /// 1201,机构信息获取
        /// </summary>
        [Trade("1201", "签退")]
        MedicalOrgination,

        /// <summary>
        /// 1301,西药中成药目录
        /// </summary>
        [Trade("1301", "西药中成药目录")]
        CMDirectory,

        /// <summary>
        /// 1302,中药饮片目录
        /// </summary>
        [Trade("1302", "中药饮片目录")]
        CMPiecesDirectory,

        /// <summary>
        /// 1303,医疗机构制剂
        /// </summary>
        [Trade("1303", "医疗机构制剂")]
        MedOrgSelfDrug,

        /// <summary>
        /// 1304,民族药品目录
        /// </summary>
        [Trade("1304", "民族药品目录")]
        NationalityDrug,

        /// <summary>
        /// 1305,医疗服务项目目录
        /// </summary>
        [Trade("1305", "医疗服务项目目录")]
        MedicalServiceDirectory,

        /// <summary>
        /// 1306,医用耗材目录
        /// </summary>
        [Trade("1306", "医用耗材目录")]
        MaterialDirectory,

        /// <summary>
        /// 1307,疾病与诊断目录
        /// </summary>
        [Trade("1307", "疾病与诊断目录")]
        DiseaseDiagDirectory,
        /// <summary>
        /// 1308,手术操作目录
        /// </summary>
        [Trade("1308", "手术操作目录")]
        OperationDirectory,
        /// <summary>
        /// 1309,门诊慢特病种目录
        /// </summary>
        [Trade("1309", "门诊慢特病种目录")]
        OPSDiseaseDirectory,
        /// <summary>
        /// 1310,按病种付费病种目录
        /// </summary>
        [Trade("1310", "按病种付费病种目录")]
        DRGDiseaseDirectory,
        /// <summary>
        /// 1311,日间手术治疗病种目录
        /// </summary>
        [Trade("1311", "日间手术治疗病种目录")]
        DayOperationDiseaseDirectory,
        /// <summary>
        /// 1312,医保目录信息
        /// </summary>
        [Trade("1312", "医保目录信息")]
        InsuDirectory,
        /// <summary>
        /// 1313,肿瘤形态学目录
        /// </summary>
        [Trade("1313", "肿瘤形态学目录")]
        TumorDirectory,
        /// <summary>
        /// 1314,中医疾病目录
        /// </summary>
        [Trade("1314", "中医疾病目录")]
        CMDiseaseDirectory,
        /// <summary>
        /// 1315,中医证候目录
        /// </summary>
        [Trade("1315", "中医证候目录")]
        CMSyndromeDirectory,

        /// <summary>
        /// 1316,医疗目录与医保目录匹配
        /// </summary>
        [Trade("1316", "医疗目录与医保目录匹配")]
        MedicalAndInsuDirectory,
        /// <summary>
        /// 1317,医药机构目录匹配
        /// </summary>
        [Trade("1317", "医药机构目录匹配")]
        MedcineOrgDirectory,
        /// <summary>
        /// 1318,医保目录限价
        /// </summary>
        [Trade("1318", "医保目录限价")]
        InsuPriceLimitDirectory,

        /// <summary>
        /// 1319,医保目录先自付比例
        /// </summary>
        [Trade("1319", "医保目录先自付比例")]
        PrepayPercentDirectory,

        /// <summary>
        /// 1320,中药配方颗粒目录下载
        /// </summary>
        [Trade("1320", "中药配方颗粒目录")]
        ChineseMedinceDirectory,

        /// <summary>
        /// 1321,医疗服务项目(新)
        /// </summary>
        [Trade("1321", "医疗服务项目(新)")]
        MedServiceNewDirectory,

        /// <summary>
        /// 门诊诊疗国际分类字典库-就诊原因和疾病诊断
        /// </summary>
        [Trade("1361", "(ICPC-3)就诊原因和疾病诊断")]
        ICPC3AdmReason,

        /// <summary>
        /// 门诊诊疗国际分类字典库-检查和治疗
        /// </summary>
        [Trade("1362", "(ICPC-3)检查和治疗")]
        ICPC3Treatment,

        /// <summary>
        /// 1901(字典下载)
        /// </summary>
        [Trade("1901", "字典下载")]
        DictionaryDownload,

        #endregion

        #region 门诊
        /// <summary>
        /// 2001,待遇检查
        /// </summary>
        [Trade("2001", "待遇检查")]
        BenefitCheck,

        /// <summary>
        /// 2201,门诊挂号
        /// </summary>
        [Trade("2201", "门诊挂号")]
        OutpatientRegistration,

        /// <summary>
        /// 2202,门诊挂号取消
        /// </summary>
        [Trade("2202", "门诊挂号取消")]
        OutpatientRegistionCancel,

        /// <summary>
        /// 2203,门诊就诊信息上传
        /// </summary>
        [Trade("2203", "门诊就诊信息上传")]
        OutpatientAdmUpload,

        /// <summary>
        /// 2203A,门诊就诊信息上传A
        /// </summary>
        [Trade("2203A", "门诊就诊信息上传A")]
        OutpatientAdmUploadA,

        /// <summary>
        /// 2204,门诊费用明细上传
        /// </summary>
        [Trade("2204", "门诊费用明细上传")]
        OutpatientFeeUpload,

        /// <summary>
        /// 2205,门诊费用明细撤销
        /// </summary>
        [Trade("2205", "门诊费用明细撤销")]
        OutpatientFeeCancel,

        // 2206
        [Trade("2206", "门诊预结算")]
        OutpatientPreSettlement,

        [Trade("2206A", "门诊预结算")]
        OutpatientPreSettlementA,

        /// <summary>
        /// 2207,门诊结算
        /// </summary>
        [Trade("2207", "门诊结算")]
        OutpatientSettlement,

        [Trade("2207A", "门诊结算A")]
        OutpatientSettlementA,

        /// <summary>
        /// 2208,门诊结算取消
        /// </summary>
        [Trade("2208", "门诊结算取消")]
        OutpatientSettlementCancel,

        #endregion

        #region 住院
        /// <summary>
        /// 2401,入院登记
        /// </summary>
        [Trade("2401", "入院登记")]
        InpatientReg,

        /// <summary>
        /// 2402,出院办理
        /// </summary>
        [Trade("2402", "出院办理")]
        InpatientExit,

        /// <summary>
        /// 2403,入院信息变更
        /// </summary>
        [Trade("2403", "入院信息变更")]
        InpatientInfoChange,

        /// <summary>
        /// 2404,撤销入院登记
        /// </summary>
        [Trade("2404", "撤销入院登记")]
        InpaitentRegCancel,

        /// <summary>
        /// 2405,出院撤销
        /// </summary>
        [Trade("2405", "出院撤销")]
        InpatientExitCancel,

        /// <summary>
        /// 2301,住院费用明细上传
        /// </summary>
        [Trade("2301", "住院费用明细上传")]
        InpatientFeeUpload,

        /// <summary>
        /// 2302,住院费用明细撤销
        /// </summary>
        [Trade("2302", "住院费用明细撤销")]
        InpatientFeeCancel,

        /// <summary>
        /// 2303,住院预结算
        /// </summary>
        [Trade("2303", "住院预结算")]
        InpatientPreSettlement,

        /// <summary>
        /// 2304,住院结算
        /// </summary>
        [Trade("2304", "住院结算")]
        InpatientSettlement,

        /// <summary>
        /// 2305,住院结算撤销
        /// </summary>
        [Trade("2305", "住院结算撤销")]
        InpatientSettlementCancel,

        #endregion

        #region 其他业务
        /// <summary>
        /// 2501,转院备案
        /// </summary>
        [Trade("2501", "转院备案")]
        TransferRecord,

        /// <summary>
        /// 2501A,转院备案
        /// </summary>
        [Trade("2501A", "转院备案")]
        TransferRecordA,

        // 3101
        [Trade("3101", "事前分析")]
        PreAnalysis,

        // 3102
        [Trade("3102", "事中分析")]
        InProcessAnalysis,

        /// <summary>
        /// 3201,费用结算对总账
        /// </summary>
        [Trade("3201", "费用结算对总账")]
        FeeSummaryCheck,


        /// <summary>
        /// 3202,费用结算对明细账
        /// </summary>
        [Trade("3202", "费用结算对明细账")]
        FeeDetailCheck,

        #endregion

        #region 文件及清算
        /// <summary>
        /// 9101,文件上传
        /// </summary>
        [Trade("9101", "文件上传")]
        FileUpload,

        /// <summary>
        /// 9102,文件下载
        /// </summary>
        [Trade("9102", "文件下载")]
        FileDownload,

        // 1191
        [Trade("1191", "身份认证")]
        Authenticate,

        // 1192
        [Trade("1192", "身份核验")]
        IdentityVerify,

        /// <summary>
        /// 2601,冲正交易
        /// </summary>
        [Trade("2601", "冲正交易")]
        ReverseTransaction,

        /// <summary>
        /// 3203,清算申请
        /// </summary>
        [Trade("3203", "清算申请")]
        ClearingApply,

        /// <summary>
        ///  3204,清算申请撤销
        /// </summary>
        [Trade("3204", "清算申请撤销")]
        ClearingCancel,


        /// <summary>
        ///  3301,目录对照上传
        /// </summary>
        [Trade("3301", "目录对照上传")]
        DirectoryContrastUpload,


        /// <summary>
        ///  3301A,目录对照上传
        /// </summary>
        [Trade("3301A", "目录对照上传")]
        DirectoryContrastUploadA,


        /// <summary>
        ///  3302,目录对照撤销
        /// </summary>
        [Trade("3302", "目录对照撤销")]
        DirectoryContrastCancel,
        #endregion


        #region 辅助接口

        [Trade("4101","结算清单上传")]
        SettlementBillUpload,

        [Trade("4101A", "结算清单上传(新)")]
        SettlementBillUploadA,

        [Trade("4401", "住院病案首页信息")]
        InpatientCaseIndex,

        [Trade("4402", "住院医嘱记录")]
        InpatientOrderRecord,

        [Trade("4501", "临床检查报告记录")]
        ClinicalCheckReport,

        [Trade("4502", "临床检验报告记录")]
        ClinicalLisReport,

        [Trade("4505", "病理检查报告记录")]
        PathologyCheckReport,

        [Trade("4701", "电子病历上传")]
        EMRReportUpload,

        [Trade("3501", "商品盘存上传")]
        StockUpload,

        [Trade("3568", "商品库存信息")]
        StockInfo,

        [Trade("3502", "商品库存变更")]
        StockChange,

        [Trade("3503", "商品采购")]
        CommodityPurchase,

        [Trade("3504","商品采购退货")]
        CommodityReturn,

        [Trade("3505", "商品销售")]
        CommoditySale,

        [Trade("3506", "商品销售退货")]
        CommoditySaleReturn,

        [Trade("3507", "商品信息删除")]
        CommodityRemove,

        [Trade("3569", "商品企业信息")]
        CommodityCorp,

        [Trade("3570", "商品领用信息")]
        CommodityReceive,

        #endregion

        #region 地方扩展

        [Trade("5280", "历史处方查询")]
        HistoryPrescriptionQuery,

        [Trade("2511", "双通道备案申请")]
        DualChannelApply,

        [Trade("5311", "双通道备案查询")]
        DualChannelQuery,

        [Trade("2512", "双通道备案撤销")]
        DualChannelCancel,


        #endregion

        /// <summary>
        /// 默认属性,无意义
        /// </summary>
        DEFAULT,
    }
}