package thyyxxk.webserver.constants.sidicts;

import thyyxxk.webserver.utils.StringUtil;

/**
 * @description: Medical insurance interface function No.
 * @author: DingJie
 * @create: 2021-05-11 15:32:09
 **/
public enum SiFunction {

    /* ============================================ 人员信息 ============================================ */
    /**
     * 通过此交易获取人员信息（人员基本信息获取）
     */
    OBTAIN_BASIC_PERSON_INFO("1101", "人员基本信息获取"),

    /* ========================================== 定点医药机构信息 ========================================== */
    /**
     * 通过此交易获取医药机构基本信息（医药机构信息获取）
     */
    OBTAIN_MEDICAL_INSTITUTION_INFO("1201", "医药机构信息获取"),

    /* ============================================= 目录下载 =========================================== */
    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（西药中成药目录下载）
     */
    DOWNLOAD_PATENT_AND_WESTERN_MEDICINE_CATALOGUE("1301", "西药中成药目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（中药饮片目录下载）
     */
    DOWNLOAD_CHINESE_HERBAL_CATALOGUE("1302", "中药饮片目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（医疗机构制剂目录下载）
     */
    DOWNLOAD_INSTITUTIONS_PREPARATIONS_CATALOGUE("1303", "医疗机构制剂目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（民族药品目录下载）
     */
    DOWNLOAD_ETHNIC_MEDICINE("1304", "民族药品目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（医疗服务项目目录下载）
     */
    DOWNLOAD_MEDICAL_SERVICE_ITEMS_CATALOGUE("1305", "医疗服务项目目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（医用耗材目录下载）
     */
    DOWNLOAD_MEDICAL_SUPPLIES_CATALOGUE("1306", "医用耗材目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（疾病与诊断目录下载）
     */
    DOWNLOAD_DISEASES_AND_DIAGNOSIS_CATALOGUE("1307", "疾病与诊断目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（手术操作目录下载）
     * */
    DOWNLOAD_OPERATION_CATALOGUE("1308", "手术操作目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（门诊慢特病种目录下载）
     * */
    DOWNLOAD_OUTPATIENT_SPECIAL_CHRONIC_DISEASES_CATALOGUE("1309", "门诊慢特病种目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（按病种付费病种目录下载）
     */
    DOWNLOAD_PAY_BY_DISEASE_CATALOGUE("1310", "按病种付费病种目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（日间手术治疗病种目录下载）
     */
    DOWNLOAD_DAYTIME_SURGERY_DISEASES_CATALOGUE("1311", "日间手术治疗病种目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（医保目录信息查询）
     */
    DOWNLOAD_MEDICAL_INSURANCE_CATALOGUE("1312", "医保目录信息查询"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（肿瘤形态学目录下载）
     * */
    DOWNLOAD_TUMOR_MORPHOLOGY_CATALOGUE("1313", "肿瘤形态学目录下载"),

    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（中医疾病目录下载）
     */
    DOWNLOAD_TRADITIONAL_CHINESE_DISEASES_CATALOGUE("1314", "中医疾病目录下载"),


    /**
     * 根据本地最大版本号信息获取大于本地版本的目录信息（中医证候目录下载）
     * */
    DOWNLOAD_TCM_SYNDROME_CATALOGUE("1315", "中医证候目录下载"),

    /**
     * 通过此交易下载医疗目录与医保目录匹配信息（医疗目录与医保目录匹配信息下载）
     */
    DOWNLOAD_MEDICAL_INSURANCE_MATCH_CATALOGUE("1316", "医疗目录与医保目录匹配信息下载"),

    /**
     * 通过此交易下载医药机构目录匹配信息（医药机构目录匹配信息下载）
     */
    DOWNLOAD_MEDICAL_INSTITUTION_MATCH_CATALOGUE("1317", "医药机构目录匹配信息下载"),

    /**
     * 通过此交易下载医保目录限价信息（医保目录限价信息下载）
     */
    DOWNLOAD_MEDICAL_INSURANCE_PRICE_LIMIT_CATALOGUE("1318", "医保目录限价信息下载"),

    /**
     * 通过此交易下载医保目录先自付比例信息（医保目录先自付比例信息下载）
     */
    DOWNLOAD_MEDICAL_INSURANCE_PAY_FIRST_CATALOGUE("1319", "医保目录先自付比例信息下载"),

    /* =========================================== 其他信息 ========================================== */
    /**
     * 通过此交易下载字典表（字典表下载）
     */
    DOWNLOAD_DICTIONARY_LIST("1901", "字典表下载"),

    /* =========================================== 待遇检查 ========================================== */
    /**
     * 通过此交易检查人员的待遇享受情况，返回待遇信息（人员待遇享受检查）
     */
    CHECK_PERSON_TREATMENT("2001", "人员待遇享受检查"),

    /* =========================================== 药店结算 ========================================== */
    /**
     * 通过此交易进行药店购药，药店门诊慢特病购药的预结算（药店预结算）
     */
    DRUGSTORE_PRE_SETTLEMENT("2101", "药店预结算"),

    /**
     * 通过此交易进行药店购药，药店门诊慢特病购药的结算（含费用明细上传）("药店结算")
     */
    DRUGSTORE_SETTLEMENT("2102", "药店结算"),

    /**
     * 通过此交易撤销药店结算（含费用明细撤销）（药店结算撤销）
     */
    REVOKE_DRUGSTORE_SETTLEMENT("2103", "药店结算撤销"),

    /* =========================================== 门急诊结算 ========================================== */
    /**
     * 通过此交易进行门诊挂号（门诊挂号）
     */
    OUTPATIENT_REGISTRATION("2201", "门诊挂号"),

    /**
     * 通过此交易进行门诊挂号的撤销（撤销门诊挂号）
     */
    REVOKE_OUTPATIENT_REGISTRATION("2202", "撤销门诊挂号"),

    /**
     * 通过此交易上传门诊就诊及诊断信息（门诊就诊信息上传）
     */
    UPLOAD_OUTPATIENT_INFO("2203", "门诊就诊信息上传"),

    /**
     * 通过此交易上传门诊费用明细信息（门诊费用明细信息上传）
     */
    UPLOAD_OUTPATIENT_FEE_DETAILS("2204", "处方明细上传"),

    /**
     * 通过此交易撤销门诊费用明细信息（门诊费用明细信息撤销）
     * */
    REVOKE_OUTPATIENT_FEE_DETAILS("2205", "撤销处方明细上传"),

    /**
     * 通过此交易进行门诊结算的预结算（门诊预结算）
     */
    OUTPATIENT_PRE_SETTLEMENT("2206", "门诊预结算"),

    /**
     * 通过此交易进行门诊结算的正式结算（门诊结算）
     * */
    OUTPATIENT_SETTLEMENT("2207", "门诊结算"),

    /**
     * 通过此交易撤销门诊结算（撤销门诊结算）
     * */
    REVOKE_OUTPATIENT_SETTLEMENT("2208", "撤销门诊结算"),

    /* =========================================== 住院结算 ========================================== */
    /**
     * 通过此交易上传住院费用明细信息（住院费用明细上传）
     */
    UPLOAD_HOSPITALIZATION_FEE_DETAILS("2301", "住院费用明细上传"),

    /**
     * 通过此交易撤销住院费用明细信息（住院费用明细撤销）
     * */
    REVOKE_HOSPITALIZATION_FEE_DETAILS("2302", "撤销费用上传"),

    /**
     * 通过此交易进行住院结算的预结算（住院预结算）
     */
    HOSPITALIZATION_PRE_SETTLEMENT("2303", "住院预结算"),

    /**
     * 通过此交易进行住院结算的正式结算（住院结算）
     * */
    HOSPITALIZATION_SETTLEMENT("2304", "出院结算"),

    /**
     * 通过此交易撤销住院结算（住院结算撤销）
     * */
    REVOKE_HOSPITALIZATION_SETTLEMENT("2305", "撤销出院结算"),

    /* =========================================== 住院办理 ========================================== */
    /**
     * 通过此交易进行入院登记办理（入院登记）
     * */
    ADMISSION_REGISTRATION("2401", "入院登记"),

    /**
     * 通过此交易进出院办理（出院办理）
     */
    DISCHARGE_PROCESSING("2402", "出院办理"),

    /**
     * 通过此交易进行入院信息变更（入院信息变更）
     */
    MODIFY_ADMISSION_INFO("2403", "入院信息变更"),

    /**
     * 通过此交易进行入院撤销（撤销入院登记）
     */
    REVOKE_ADMISSION("2404", "撤销入院登记"),

    /**
     * 通过此交易进出院撤销（出院撤销）
     */
    REVOKE_DISCHARGE("2405", "撤销出院办理"),

    /* =========================================== 人员备案 ========================================== */
    /**
     * 通过此交易上传转院备案信息（转院备案）
     */
    TRANSFER_HOSPITAL_RECORD("2501", "转院备案"),

    /**
     * 通过此交易撤销上传的转院备案信息（转院备案撤销）
     * */
    REVOKE_TRANSFER_HOSPITAL_RECORD("2502", "转院备案撤销"),

    /**
     * 通过此交易上传人员慢特病备案信息（人员慢特病备案）
     */
    SPECIAL_CHRONIC_DISEASES_RECORD("2503", "慢特病备案"),

    /**
     * 通过此交易撤销医保局还未处理的人员慢特病备案信息（人员慢特病备案撤销）
     * */
    REVOKE_SPECIAL_CHRONIC_DISEASES_RECORD("2504", "撤销慢特病备案"),

    /**
     * 通过此交易上传人员定点备案信息（人员定点备案）
     */
    PERSONNEL_ASSIGNMENT_RECORD("2505", "人员定点备案"),

    /**
     * 通过此交易撤销医保局还未审核的人员定点备案信息（人员定点备案撤销）
     * */
    REVOKE_PERSONNEL_ASSIGNMENT_RECORD("2506", "人员定点备案撤销"),

    /**
     * 通过此交易上传人员意外伤害备案信息（人员意外伤害备案）
     * */
    PERSONNEL_ACCIDENT_RECORD("2560", "人员意外伤害备案"),

    REVOKE_PERSONNEL_ACCIDENT_RECORD("2561", "人员意外伤害备案撤销"),

    BIRTH_RECORD("2562", "生育待遇备案登记"),

    REVOKE_BIRTH_RECORD("2563", "生育待遇备案登记撤销"),

    /* =========================================== 事务补偿业务 ========================================== */
    /**
     * 定点医药机构发起某项交易时，因网络中断或超时等原因导致无法获取接收方状态，
     * 导致多方数据不一致或已确认接收方数据多时，可通过冲正取消接收方相应数据，保持双方数据一致（冲正交易）
     * 重点说明：
     * 1、可被冲正的交易包括：【2102】药店结算、【2103】药店结算撤销、
     *                    【2207】门诊结算、【2208】门诊结算撤销、
     *                    【2401】入院办理、【2304】住院结算、【2305】住院结算撤销。
     * 2、将需要冲正的交易信息（原交易）中的“msgid 发送方报文ID”放入本次输入的“omsgid 原发送方报文ID”中；
     * 3、将需要冲正的交易信息（原交易）中的“infno 交易编号”放入本次输入的“oinfno 原交易编号”中；
     * */
    AUTO_RECOVERY_TRADE("2601", "冲正交易"),

    /* =========================================== 明细审核 ========================================== */
    /**
     * 通过此交易进行事前的明细审核分析（明细审核分析服务）
     * */
    ITEMIZED_REVIEW_ANALYSIS_SERVICES_BEFORE("3101", "明细审核分析服务"),

    /**
     * 通过此交易进行事中的明细审核分析（明细审核分析服务）
     * */
    ITEMIZED_REVIEW_ANALYSIS_SERVICES_MIDDLE("3102", "明细审核分析服务"),

    /* =========================================== 医药机构费用结算业务 ========================================== */
    /**
     * 对通过此交易进行医药机构费用结算对总账（医药机构费用结算对总账）
     */
    INSTITUTION_SETTLEMENT_LEDGER_CHECK("3201", "医药机构费用结算对总账"),

    /**
     * 通过此交易，在医药机构费用结算总账不平时，进行对明细账（医药机构费用结算对明细账）
     */
    INSTITUTION_SETTLEMENT_DETAIL_CHECK("3202", "医药机构费用结算对明细账"),

    /* =========================================== 目录对照 ========================================== */
    /**
     * 通过此交易上传目录对照信息（目录对照上传）
     */
    UPLOAD_CATALOGUE_CONTRAST("3301", "目录对照上传"),

    /**
     * 通过此交易删除上传的目录对照信息（目录对照撤销）
     */
    REVOKE_CATALOGUE_CONTRAST("3302", "目录对照撤销"),

    /* =========================================== 科室管理 ========================================== */
    /**
     * 通过此交易上传科室信息（科室信息上传）
     */
    UPLOAD_DEPARTMENT_INFO("3401", "科室信息上传"),

    /**
     * 通过此交易批量上传科室信息（批量科室信息上传）
     */
    UPLOAD_DEPARTMENT_INFO_IN_BATCH("3401A", "批量科室信息上传"),

    /**
     * 通过此交易变更科室信息（科室信息变更）
     */
    MODIFY_DEPARTMENT_INFO("3402", "科室信息变更"),

    /**
     * 通过此交易撤销科室信息（科室信息撤销）
     * */
    REVOKE_DEPARTMENT_INFO("3403", "科室信息撤销"),

    /* =========================================== 进销存管理 ========================================== */
    /**
     * 通过此交易上传商品盘存信息（商品盘存上传）
     */
    UPLOAD_COMMODITY_INVENTORY("3501", "商品盘存上传"),

    /**
     * 通过此交易上传商品的库存变化（商品库存变更）
     */
    CHANGE_COMMODITY_INVENTORY("3502", "商品库存变更"),

    /**
     * 通过此交易上传商品采购信息（商品采购）
     */
    UPLOAD_COMMODITY_PURCHASE("3503", "商品采购"),

    /**
     * 通过此交易上传商品采购退货信息（商品采购退货）
     * */
    UPLOAD_COMMODITY_PURCHASE_RETURN("3504", "商品采购退货"),

    /**
     * 通过此交易上传商品销售信息（商品销售）
     */
    UPLOAD_COMMODITY_SALES("3505", "商品销售"),

    /**
     * 通过此交易上传商品销售退货信息（商品销售退货）
     */
    UPLOAD_COMMODITY_SALES_RETURN("3506", "商品销售退货"),

    /**
     * 通过此交易查询商品销售信息（商品入库信息查询）
     */
    SELECT_COMMODITY_INVENTORY("3512", "商品入库信息查询"),

    /**
     * 通过此交易查询商品销售信息（商品销售信息查询）
     */
    SELECT_COMMODITY_SALES("3513", "商品销售信息查询"),

    /**
     * 通过此交易删除某一批次商品信息（商品信息删除）
     */
    DELETE_COMMODITY_INFO("3507A", "商品信息删除"),

    /**
     * 通过此交易获取企业追溯码信息下载（企业追溯码信息下载）
     */
    DOWNLOAD_CODG_BCHNO("3563", "企业追溯码信息下载"),

    /**
     * 通过此交易上传医疗保障基金结算清单信息（医疗保障基金结算清单信息上传）
     * */
    UPLOAD_SI_SETTLE_INFO("4101", "结算清单上传"),

    /**
     * 通过此交易修改医疗保障基金结算清单信息（医疗保障基金结算清单信息状态修改）
     * */
    MODIFY_SI_SETTLE_STATE("4102", "医疗保障基金结算清单信息状态修改"),

    /**
     * 通过此交易查询医疗保障基金结算清单详细信息（医疗保障基金结算清单信息查询）
     * */
    QUERY_SI_SETTLE_INFO("4103", "医疗保障基金结算清单信息查询"),

    /**
     * 通过此交易查询结算清单质控结果（医疗保障基金结算清单质控结果查询）
     * */
    QUERY_SI_SETTLE_QUALITY_CONTROL("4104", "医疗保障基金结算清单质控结果查询"),

    /**
     * 通过此交易查询结算清单数量统计结果（医疗保障基金结算清单数量统计查询）
     * */
    QUERY_SI_SETTLE_QUANTITY_COUNT("4105", "医疗保障基金结算清单数量统计查询"),

    /* =========================================== 自费病人就医信息 ========================================== */
    /**
     * 通过此交易上传自费病人费用明细信息（自费病人费用明细信息上传）
     */
    UPLOAD_SELF_FUNDED_PATIENT_FEE_DETAIL("4201", "自费病人费用明细信息上传"),

    /* =========================================== 门急诊业务 ========================================== */
    /**
     * 门急诊诊疗记录（通过此交易上传门急诊诊疗记录）
     * */
    UPLOAD_CLINIC_RECORD("4301", "上传门急诊诊疗记录"),

    /**
     * 急诊留观手术及抢救信息（通过此交易上传急诊留观手术及抢救信息）
     * */
    UPLOAD_EMERGENCY_RECORD("4302", "上传急诊留观手术及抢救信息"),

    /* =========================================== 临床辅助业务 ========================================== */
    /**
     * 临床检查报告记录（通过此交易上传临床检查记录）
     * */
    UPLOAD_EXAMINIATION_REPORT_RECORD("4501", "上传临床检查记录"),

    /**
     * 临床检验报告记录（通过此交易上传临床检验记录）
     * */
    UPLOAD_INSPECTION_REPORT_RECORD("4502", "上传临床检验记录"),

    /**
     * 细菌培养报告记录（通过此交易上传细菌培养报告记录）
     * */
    UPLOAD_BACTERIA_REPORT_RECORD("4503", "上传细菌培养报告记录"),

    /**
     * 药敏记录报告记录（通过此交易上传药敏记录报告记录）
     * */
    UPLOAD_MEDICINE_ALLERGY_REPORT_RECORD("4504", "上传药敏记录报告记录"),

    /**
     * 病理检查报告记录（通过此交易上传病理检查报告记录）
     * */
    UPLOAD_PATHOLOGIC_REPORT_RECORD("4505", "上传病理检查报告记录"),

    /**
     * 非结构化报告记录（通过此交易上传非结构化报告记录）
     * */
    UPLOAD_NONE_STRUCTURED_REPORT_RECORD("4506", "上传非结构化报告记录"),

    /* =========================================== 医疗管理业务 ========================================== */
    /**
     * 输血信息（通过此交易上传输血信息）
     * */
    UPLOAD_BLOOD_TRANSFUSION_INFO("4601", "传输血信息"),

    /**
     * 护理操作生命体征测量记录（通过此交易上传护理操作生命体征测量记录）
     * */
    UPLOAD_VITAL_SIGN_INFO("4602", "上传护理操作生命体征测量记录"),

    /**
     * 电子病历上传（通过此交易上传电子病历信息）
     * */
    UPLOAD_EMR("4701", "上传电子病历信息"),

    /* =========================================== 基础信息查询 ========================================== */
    /**
     * 通过此交易获取当前医疗机构的科室基本信息（科室信息查询）
     */
    QUERY_DEPARTMENT_INFO("5101", "科室信息查询"),

    /**
     * 通过此交易获取当前医药机构的医师、护士、药师人员信息（医执人员信息查询）
     */
    QUERY_MEDICAL_STAFF_INFO("5102", "医执人员信息查询"),

    /**
     * 通过此交易上传住院病案首页信息（病案首页信息）
     */
    UPLOAD_FRONT_SHEET_INFO("4401", "病案首页信息上传"),

    /**
     * 通过此交易上传住院医嘱记录（住院医嘱记录）
     */
    UPLOAD_ACT_ORDER("4402", "住院医嘱记录上传"),

    /* =========================================== 医保服务查询 ========================================== */
    /**
     * 根据人员信息获取该人员在本机构一段时间内的就诊信息（就诊信息查询）
     */
    QUERY_VISIT_INFO("5201", "就诊信息查询"),

    /**
     * 根据就诊信息获取该人员当次就诊的诊断信息（诊断信息查询）
     */
    QUERY_DIAGNOSIS_INFO("5202", "诊断信息查询"),

    /**
     * 根据条件信息获取该人员在本机构一段时间内的结算信息（结算信息查询）
     */
    QUERY_SETTLEMENT_INFO("5203", "结算信息查询"),

    /**
     * 根据人员就诊信息获取该笔结算的明细信息（费用明细查询）
     */
    QUERY_FEE_DETAILS("5204", "费用明细查询"),

    /**
     * 根据人员信息获取该人员在一段时间内的门诊慢特病用药信息（人员慢特病用药记录查询）
     */
    QUERY_SPECIAL_CHRONIC_DISEASES_MEDICAL_RECORD("5205", "人员慢特病用药记录查询"),

    /**
     * 根据人员信息获取该人员的累计信息（人员累计信息查询）
     */
    QUERY_PERSONNEL_CUMULATIVE_INFO("5206", "人员累计信息查询"),

    /* =========================================== 医药机构服务查询 ========================================== */
    /**
     * 根据个人信息获取该人员当前有效的慢特病备案信息（人员慢特病备案查询）
     */
    QUERY_SPECIAL_CHRONIC_DISEASES_ACCREDITATION("5301", "人员慢特病备案查询"),

    /**
     * 通过此交易获取该人员当前的定点信息（人员定点信息查询）
     */
    QUERY_PERSONNEL_ASSIGNMENT_INFO("5302", "人员定点信息查询"),

    /**
     * 通过此交易获取当前定点医疗机构的在院病人信息（在院信息查询）
     */
    QUERY_IN_HOSPITAL_PATIENTS_INFO("5303", "在院信息查询"),

    /**
     * 通过此交易获取该人员在本机构一段时间内的转院信息（转院信息查询）
     */
    QUERY_PERSONNEL_TRANSFER_HOSPITAL_INFO("5304", "转院信息查询"),

    /* =========================================== 检查检验互认结果查询 ========================================== */
    /**
     * 通过此交易在开医技医嘱时获取项目互认的结果（项目互认信息查询）
     */
    QUERY_MUTUAL_ACCREDIT_INFO("5401", "项目互认信息查询"),

    /**
     * 通过此交易在根据互认结果列表获取诊断明细（报告明细信息查询）
     */
    QUERY_DIAGNOSIS_REPORT_DETAIL("5402", "报告明细信息查询"),


    /* =========================================== 电子凭证缴费业务 ========================================== */
    /**
     * 定点医药机构向地方移动支付中心发起上传费用明细交易，
     * 由地方移动支付中心向地方医保核心系统发起验证后完成[2204]、[2301]、[6201]接口业务交互。
     * 定点医药机构需要修改处方时，需要先撤销上传，修改完成之后重新上传。
     * */
    ECTOKEN_UPLOAD_FEE_DETAIL("6201", ""),

    /**
     * 无收银台模式下，定点医药机构向地方移动支付中心发起医保移动支付下单请求，
     * 地方移动支付中心进行移动支付权限核验后，返回支付下单结果信息。
     * */
    ECTOKEN_CREATE_PAY_ORDER("6202", ""),

    /**
     * 定点医药机构对已经完成移动支付交易的医保订单，发起退费交易，
     * 医保订单交易原路返还参保人医保账户或现金支付账户。
     * */
    ECTOKEN_REVOKE_FEE("6203", ""),

    /**
     * 定点医药机构向地方移动支付中心发起医保移动支付下单请求，
     * 地方移动支付中心进行移动支付权限核验后返回医保收银台地址并向参保人展示医保订单信息，
     * 参保人确认继续支付后，通过医保订单信息同步接口返回医保下单结果信息。
     * */
    ECTOKEN_SYNCHRONIZE_PAY_ORDER("6204", ""),


    /* =========================================== 药店线上支付 ========================================== */
    /**
     * 通过此交易，定点零售药店上传药店线上支付使用的费用明细（药店线上费用明细上传）
     */
    UPLOAD_DRUGSTORE_ONLINE_FEE_DETAIL("6101", ""),

    /* =========================================== 电子处方 ========================================== */
    /**
     * 通过此交易，定点医疗机构实现医师开方时的医保电子处方信息预核验，
     * 预核验通过的处方才能进行上传，
     * 上传时处方须经定点医疗机构医保医师签名且院内医保药师审核通过。
     * */
    RX_PRE_CHECK("7101", ""),

    /**
     * 定点医疗机构使用全国统一的医保信息平台下发的国密数字证书，
     * 对上传的电子处方信息及处方格式化电子文件进行医保电子签名。
     * */
    RX_SIGN("7102", ""),

    /**
     * 通过此交易，定点医疗机构将医保电子签名后的签名结果及处方文件上传至医保电子处方中心。
     * */
    RX_UPLOAD("7103", ""),

    /**
     * 通过此交易，定点医疗机构对还未结算的异常电子处方进行撤销操作。
     * */
    RX_REVOKE("7104", ""),

    /**
     * 通过此交易，定点医疗机构可查询上传的患者处方详情信息及状态。
     * */
    RX_INFO_QUERY("7105", ""),

    /**
     * 通过此交易，定点医疗机构可主动查询为患者开具的处方在取药机构的处方审核结果信息。
     * */
    RX_AUDITING_QUERY("7106", ""),

    /**
     * 通过此交易，定点医疗机构可主动查询为患者开具的处方在取药机构的处方结算结果信息。
     * */
    RX_SETL_QUERY("7107", ""),

    /**
     * 通过此交易，定点医疗机构可接收在取药机构的电子处方审核结果通知信息，
     * 定点医疗机构可根据自身业务需要，考虑是否对接该接口实现实时接收处方审核结果通知。
     * 此接口为HTTP回调接口，需定点医疗机构提供接口回调地址，
     * 消息接收路径：定点机构回调地址/rxChkInfoCallback。
     * */
    RX_AUDIT_NOTIFY("7108", ""),

    /**
     * 通过此交易，定点医疗机构可接收在取药机构的电子处方取药结果通知信息，
     * 定点医疗机构可根据自身业务需要，考虑是否对接该接口来实现实时接收处方取药结果通知。
     * 此接口为HTTP回调接口，需定点医疗机构提供接口回调地址，
     * 消息接收路径：定点机构回调地址/rxSetlInfoCallback。
     * */
    RX_SETL_NOTIFY("7109", ""),

    /**
     * 通过此交易，用户使用医保电子凭证身份验证的方式，
     * 线下流转授权定点医药机构查询待取药的电子处方列表信息及电子处方令牌（用于后续处方下载及业务验证）。
     * */
    RX_AUTHORIZE_OFFLINE("7201", ""),

    /**
     * 通过此交易，用户在渠道应用通过医保电子凭证线上身份核验，
     * 进行电子处方线上流转授权后，定点医药机构接收返回的线上流转授权业务流水号，
     * 查询获取电子处方令牌（用于后续处方下载及业务验证）。
     * */
    RX_TRANS_QUERY_ONLINE("7202", ""),

    /**
     * 通过此交易，定点医药机构解析用户选择展示的电子处方二维码，
     * 授权获取对应的电子处方令牌（用于后续处方下载及业务验证）
     * （注：此接口地方中台默认未启用，默认使用医保电子凭证码解码授权）。
     * */
    RX_QR_DECODE("7203", ""),

    /**
     * 定点医药机构使用返回的电子处方令牌信息下载用户授权的电子处方。
     * */
    RX_DOWNLOAD("7204", ""),

    /**
     * 定点医药机构在处方审核和调配前，对处方信息进行核验，
     * 验证医保电子签名有效性及处方的来源真实性，并确认处方未被篡改。
     * */
    RX_CHECK("7205", ""),

    /**
     * 定点医药机构药师审核电子处方，并上传审核结果。
     * */
    RX_CHECK_UPLOAD("7206", ""),

    /**
     * 通过此交易，定点医药机构查询可开具或取药的电子处方药品目录范围。
     * */
    RX_QUERY_MEDICINE("7211", ""),


    /* =========================================== 签到签退 ========================================== */
    /**
     * 通过此交易进行调用方签到（签到）
     */
    SIGN_IN("9001", "签到"),

    /**
     * 通过此交易进行调用方签退（签退）
     */
    SIGN_OUT("9002", "签退"),

    /**
     * 获取政策项费用
     * */
    LIST_POL_ITEM_CODE_PAY_INFO("100001", "政策项费用查询"),

    /* =========================================== 上传下载 ========================================== */
    /**
     * 通过此交易上传文件（文件上传）
     */
    UPLOAD_FILE("9101", "文件上传"),

    /**
     * 通过此交易下载【1301-1319】目录信息下载、【5204】费用明细查询、【3202】医药机构费用结算对明细账交易生成的文件（文件下载）
     */
    DOWNLOAD_FILE("9102", "目录信息下载"),
    /* =========================================== 创智接口 ========================================== */
    DRG_GROUP_INFO("100003","分组接口"),

    QUALITY_INFO("100002","质控接口")

    ;

    private final String code;

    private final String name;

    SiFunction(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public String getName() { return name; }

    public static String getName(String code) {
        if (StringUtil.isBlank(code)) {
            return null;
        }
        for (SiFunction function : SiFunction.values()) {
            if (code.trim().equals(function.getCode())) {
                return function.getName();
            }
        }
        return null;
    }

}
