package com.fs.watch.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.Objects;
import java.util.stream.Stream;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum WatchSpo2StatusEnum implements HealthStatusEnum{

    NORMAL(0,"正常",null,null,null,null),
    LOW(1,"低氧血症",
            "您本周出现了%d次血氧偏低异常，提示慢性阻塞性肺病、肺炎、心力衰竭等疾病风险较高。",
            "低氧血症是指血液中氧分压降低，可能导致组织缺氧，常见于呼吸系统疾病。",
            "保持半卧位呼吸，避免剧烈活动；使用家庭氧疗（如有）。持续低于92%或伴随气促需急诊。",
            "居家配备指夹式血氧仪；睡眠时抬高床头15度；戒烟并避免二手烟环境。"),
    EXHAUSTION(2,"呼吸衰竭",
            "您本周出现了%d次血氧严重异常，提示呼吸衰竭、肺栓塞、急性呼吸窘迫综合征等疾病风险较高。",
            "呼吸衰竭是严重的病理状态，指呼吸功能不能维持正常气体交换，需紧急医疗干预。",
            "立即吸氧并呼叫急救，避免平卧。需住院评估肺功能及病因。",
            "准备家庭制氧机；避免前往高原地区；可在以上指导下接种肺炎和流感疫苗。"
    );

    private Integer value;
    private String desc;
    private String prediction;
    //解析
    private String analysis;
    //治疗建议
    private String suggestion;
    //注意事项
    private String precautions;

    public static WatchSpo2StatusEnum toType(Integer value) {
        return Stream.of(WatchSpo2StatusEnum.values())
                .filter(p -> Objects.equals(p.value, value))
                .findAny()
                .orElse(null);
    }
}
