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("6101", "读电子凭证")]
        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>
        /// CFYLJG001，电子处方上传预核验
        /// </summary>
        [Trade("CFYLJG001", "电子处方上传预核验")]
        RxUploadChk,

        /// <summary>
        /// CFYLJG002，电子处方医保电子签名
        /// </summary>
        [Trade("CFYLJG002", "电子处方医保电子签名")]
        RxFixmedinsSign,

        /// <summary>
        /// CFYLJG003，电子处方上传
        /// </summary>
        [Trade("CFYLJG003", "电子处方上传")]
        RxFileUpld,

        /// <summary>
        /// CFYLJG004，电子处方撤销
        /// </summary>
        [Trade("CFYLJG004", "电子处方撤销")]
        RxUndo,

        /// <summary>
        /// CFYLJG005，电子处方信息查询
        /// </summary>
        [Trade("CFYLJG005", "电子处方信息查询")]
        RxDetlQuery,

        /// <summary>
        /// CFYLJG006，电子处方审核结果查询
        /// </summary>
        [Trade("CFYLJG006", "电子处方审核结果查询")]
        RxChkInfoQuery,

        /// <summary>
        /// CFYLJG007，电子处方取药结果查询
        /// </summary>
        [Trade("CFYLJG007", "电子处方取药结果查询")]
        RxSetlInfoQuery,

        /// <summary>
        /// 7108，电子处方审核结果通知
        /// </summary>
        [Trade("7108", "电子处方审核结果通知")]
        RxChkInfoCallback,

        /// <summary>
        /// 7109，电子处方结算结果通知
        /// </summary>
        [Trade("7109", "电子处方结算结果通知")]
        RxSetlInfoCallback,

        /// <summary>
        /// CFYLJG009，电子处方上传预核验
        /// </summary>
        [Trade("CFYLJG009", "查询处方药品信息")]
        RxDrugQuery,

        /// <summary>
        /// CFYLJG008，查询药店列表
        /// </summary>
        [Trade("CFYLJG008", "查询药店列表")]
        RxDrugStoreQuery,
        #endregion

        #region 备案
        /// <summary>
        /// 2501，转院备案
        /// </summary>
        [Trade("2501", "转院备案")]
        TransferRecord,

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

        /// <summary>
        /// 2502，撤销转院备案
        /// </summary>
        [Trade("2502", "撤销转院备案")]
        CancelTransferRecord,


        /// <summary>
        /// 2505，定点备案
        /// </summary>
        [Trade("2505", "定点备案")]
        FixedPointRecord,


        /// <summary>
        /// 2506，人员定点备案撤销
        /// </summary>
        [Trade("2506", "人员定点备案撤销")]
        CancelFixedPointRecord,

        /// <summary>
        /// 90210，人员定点备案（东莞）
        /// </summary>
        [Trade("90210", "定点备案")]
        FixedPointRecordOfLocal,

        /// <summary>
        /// 90211，人员定点备案（东莞）
        /// </summary>
        [Trade("90211", "定点备案变更")]
        FixedPointAlter,

        /// <summary>
        /// 90110，定点信息查询
        /// </summary>
        [Trade("90110", "定点信息查询")]
        QueryFixedPointRecordLocal,

        /// <summary>
        /// 5302，定点备案
        /// </summary>
        [Trade("5302", "定点信息查询")]
        QueryFixedPointRecord,

        /// <summary>
        /// 2503，慢特病备案
        /// </summary>
        [Trade("2503", "慢特病备案")]
        ChronicDiseaseRecord,

        /// <summary>
        /// 2504，撤销慢特病备案
        /// </summary>
        [Trade("2504", "撤销慢特病备案")]
        CancleChronicDiseaseRecord,

        /// <summary>
        /// 90206，慢特病备案
        /// </summary>
        [Trade("90206", "慢特病备案")]
        ChronicDiseaseRecordLocal,

        /// <summary>
        /// 90304，撤销慢特病备案
        /// </summary>
        [Trade("90304", "撤销慢特病备案")]
        CancleChronicDiseaseRecordLocal,

        /// <summary>
        /// 5301，慢特病备案查询
        /// </summary>
        [Trade("5301", "慢特病备案查询")]
        QueryChronicDiseaseRecord,

        /// <summary>
        /// 90104，慢特病备案查询
        /// </summary>
        [Trade("90104", "慢特病备案查询")]
        QueryChronicDiseaseRecordLocal,

        /// <summary>
        /// 90102，家庭医生签约登记查询
        /// </summary>
        [Trade("90102", "家庭医生签约登记查询")]
        QueryFamilyDoctor,

        #endregion

        #region 其他业务


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

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

        // 3102
        [Trade("3103", "事中事中反馈")]
        InProcessAnalysisFeedback,

        /// <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("5201", "就诊信息查询")]
        QueryAdmInfo,
        [Trade("5202", "诊断信息查询")]
        QueryDiagInfo,
        [Trade("5203", "结算信息查询(含基金分项信息)")]
        QuerySettlInfo,
        [Trade("5203A", "结算信息查询(不含基金分项信息)")]
        QuerySettlInfoA,
        [Trade("5204", "费用明细查询")]
        QueryFeeDetailInfo,
        [Trade("5205", "慢特病用药记录查询")]
        QueryChronicDiseInfo,
        [Trade("5206", "人员累计信息查询")]
        QueryAccumulateInfo,
        #endregion
        #region 地方扩展

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

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

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

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

        // 90100
        [Trade("90100", "缴费明细查询")]
        QueryPaymentDetail,

        // 90215
        [Trade("90215", "转院信息查询（本地）")]
        QueryTransferInfo,

        // 90216
        [Trade("90216", "结算累计信息查询（本地）")]
        QueryAccumutualInfoLocal,

        // 3260
        [Trade("3260", "提取异地清分明细")]
        QueryOutOfAreaClearingDetail,

        // 3261
        [Trade("3261", "异地清分结果确认")]
        ConfirmOutOfAreaClearing,

        // 3262
        [Trade("3262", "异地清分结果确认回退")]
        RollBackOutOfAreaClearing,
        #endregion

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