package com.lantone.qc.kernel.catalogue.behospitalized;

import com.lantone.qc.kernel.catalogue.QCCatalogue;
import com.lantone.qc.kernel.util.CatalogueUtil;
import com.lantone.qc.pub.model.InputInfo;
import com.lantone.qc.pub.model.OutputInfo;
import com.lantone.qc.pub.model.entity.PD;
import com.lantone.qc.pub.model.label.ChiefLabel;
import com.lantone.qc.pub.util.StringUtil;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;


/**
 * @ClassName : BEH0006
 * @Description :主诉症状缺少近期时间描述
 * 1.张志勇提议如果主诉中包含术后不报
 * @Author : 楼辉荣
 * @Date: 2020-03-06 17:28
 */
@Component
public class BEH0006 extends QCCatalogue {
    private List<String> containList = Arrays.asList("半年", "术后");

    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
//        status.set("0");
        if (inputInfo.getBeHospitalizedDoc() == null) {
            status.set("0");
            return;
        }
        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
        if (chiefLabel == null || StringUtil.isBlank(chiefLabel.getText())) {
            status.set("0");
            return;
        }
        String chiefText = chiefLabel.getText();
        if (StringUtil.isNotBlank(chiefText)) {
            for (String fild : containList) {
                if (chiefText.contains(fild)) {
                    status.set("0");
                    return;
                }
            }
            List<PD> pds = chiefLabel.getPds();
            if (pds != null && pds.size() > 0) {
                if (pds.size() == 2) {
                    status.set("0");
                    return;
                }
                for (PD pd : pds) {
                    String pdName = pd.getName();
                    if (!CatalogueUtil.isEmpty(pdName)) {
                        if (pdName.contains("天") || pdName.contains("周") || pdName.contains("月")
                                || pdName.contains("时") || pdName.contains("半年") || pdName.contains("秒")
                                || pdName.contains("分") || pdName.contains("日") || pdName.contains("今")
                                || pdName.contains("1年") || pdName.contains("一年")) {
                            status.set("0");
                            break;
                        }
                    }
                }
            } else {
                if (StringUtil.isNotBlank(chiefLabel.getText())) {
                    status.set("0");
                    return;
                }
            }
        }
    }
}