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

import com.lantone.qc.kernel.catalogue.QCCatalogue;
import com.lantone.qc.pub.model.InputInfo;
import com.lantone.qc.pub.model.OutputInfo;
import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
import com.lantone.qc.pub.model.entity.Clinical;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;


/**
 * @ClassName : BEH0560
 * @Description : 现病史中症状主诉未填写
 * @Author : Mark
 * @Date: 2020-04-04 17:48
 */
@Component
public class BEH0560 extends QCCatalogue {
    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
        status.set("0");
        if (inputInfo.getBeHospitalizedDoc() == null) {
            return;
        }
        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
        if(beHospitalizedDoc != null){

//            int cnt = 0;
            String chief_txt = beHospitalizedDoc.getChiefLabel().getText();
            if(chief_txt.contains("检查") || chief_txt.contains("术后") || chief_txt.contains("药物") || chief_txt.contains("发现")){
                status.set("0");
                return;
            }
            List<Clinical> clinicals_chief = beHospitalizedDoc.getChiefLabel().getClinicals();
            List<Clinical> clinicals_present = beHospitalizedDoc.getPresentLabel().getClinicals();
            List<String> chief_symp = new ArrayList<>();
            if(clinicals_chief != null && clinicals_chief.size()>0){
                for (Clinical clinical:clinicals_present) {
                    if (clinical.getNegative()==null) {
                        if (chief_symp.indexOf(clinical.getName()) == -1) {
                            chief_symp.add(clinical.getName());
                        }
                    }
                    else {
                        continue;
                    }
                }
            }
//            String chief_txt = beHospitalizedDoc.getChiefLabel().getText();
//            String present_txt = beHospitalizedDoc.getPresentLabel().getText();

//            String present_chief_txt = present_txt.split("伴")[0];

            List<String> present_symp = new ArrayList<>();

            for (Clinical clinical:clinicals_present) {
                if (clinical.getNegative()==null) {
                    if (present_symp.indexOf(clinical.getName()) == -1) {
                        present_symp.add(clinical.getName());
                    }
                }
                else {
                    continue;
                }
            }
            if(chief_symp.size()>0 && present_symp.size()>0){
                for (String cli:chief_symp
                     ) {
                    if(!present_symp.contains(cli)){
                        status.set("-1");
                        return;
                    }
                }
            }
            /*for (String symp:present_symp) {
                if (present_chief_txt.contains(symp) && !chief_txt.contains(symp)) {
                    cnt += 1;
                }
            }

            if(cnt>0){
                status.set("-1");
            }*/
        }
    }
}