package com.ywt.mg.domain.models.enums;

/**
 * 处方单扩展状态（位运算）
 */
public enum PrescriptionInfoExtStatusEnum {

    IsCheckIn("已报到", 1),                 // 1
    IsSendOut("已发药", 1 << 1),            // 2
    IsPrint("已打印发票", 1 << 2),          // 4
    OtherFee("是否有其它付费", 1 << 3),      // 8
    PrintInjection("打印注射单", 1 << 4),   // 16
    PresNoPass("不通过", 1 << 5),           // 32
    Evaluate("已评价", 1 << 6),             // 64
    ExistInjection("是否有注射药品", 1 << 7);// 128

    private final String displayName;

    private final int value;

    PrescriptionInfoExtStatusEnum(String displayName, int value) {
        this.displayName = displayName;
        this.value = value;
    }

    public String getDisplayName() {
        return displayName;
    }

    public int getValue() {
        return value;
    }

    public static String getDisplayName(int value) {
        if ((value & PresNoPass.value) == PresNoPass.value) {
            return PresNoPass.displayName;
        } else if ((value & IsPrint.value) == IsPrint.value) {
            return IsPrint.displayName;
        } else if ((value & IsSendOut.value) == IsSendOut.value) {
            return IsSendOut.displayName;
        } else if ((value & IsCheckIn.value) == IsCheckIn.value) {
            return IsCheckIn.displayName;
        } else {
            return "";
        }
    }
}
