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

import com.lantone.qc.kernel.catalogue.QCCatalogue;
import com.lantone.qc.kernel.util.CatalogueUtil;
import com.lantone.qc.pub.Content;
import com.lantone.qc.pub.model.InputInfo;
import com.lantone.qc.pub.model.OutputInfo;
import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
import com.lantone.qc.pub.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

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

/**
 * @ClassName : DEAC0097
 * @Description : 死亡患者无死亡记录
 * @Author : 楼辉荣
 * @Date: 2020-03-06 17:28
 */
@Component
public class DEAC0097 extends QCCatalogue {
    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
        status.set("0");

        String outWay ="";
        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
        if(firstPageRecordDoc != null){
            outWay = firstPageRecordDoc.getStructureMap().get(Content.outWay);
            outWay = StringUtil.isBlank(outWay) ? "" : outWay;
        }

        List<String> deathRecords = new ArrayList<>();
        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
        if (doctorAdviceDocs.size() == 0) {
            return;
        }

        for (DoctorAdviceDoc dad : doctorAdviceDocs) {
            String deviceName = dad.getStructureMap().get("医嘱项目名称");
            if(StringUtils.isNotBlank(deviceName)){
                if(deviceName.contains("死亡")){
                    deathRecords.add(deviceName);
                }
            }
        }
        if ((deathRecords.size() > 0 || outWay.contains("死亡")) && inputInfo.getDeathRecordDoc() == null) {
            status.set("-1");
        }
        /*if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
            Map<String, String> FirstPageStructure = inputInfo.getFirstPageRecordDoc().getStructureMap();
            String outWay = FirstPageStructure.get(Content.outWay);
            //判断患者是否死亡
            if (CatalogueUtil.isEmpty(outWay) || !outWay.contains("死亡")) {
                return;
            }
            if (inputInfo.getDeathRecordDoc() == null || inputInfo.getDeathRecordDoc().getStructureMap().size() == 0){
                status.set("-1");
            }
        }*/
    }
}