package com.lantone.qc.kernel.catalogue.yiwu.firstpagerecord;

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.operation.OperationDoc;
import com.lantone.qc.pub.util.StringUtil;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.Objects;

/**
 * @ClassName : FIRP0199
 * @Description : 新生儿出生体重未填写
 * @Author : 胡敬
 * @Date: 2020-03-14 16:30
 */
@Component
public class FIRP0199 extends QCCatalogue {
    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
        status.set("0");
        if (inputInfo.getFirstPageRecordDoc() != null) {
            if (inputInfo.getMedicalRecordInfoDoc() != null) {
                String wardName = inputInfo.getMedicalRecordInfoDoc().getStructureMap().get("wardName");
                if (StringUtil.isNotBlank(wardName) && wardName.contains("产")) {
                    if (inputInfo.getOperationDocs().size() > 0 && inputInfo.getOperationDocs().stream().map(OperationDoc::getOperationRecordDoc).anyMatch(Objects::nonNull)) {
                        Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
                        String newbornWeight = firstpageStructureMap.get(Content.newbornWeight);
                        if (StringUtil.isBlank(newbornWeight)) {
                            status.set("-1");
                            Map<String, Object> structureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
                            String xmlId = CatalogueUtil.getXmlId(structureExtMap, Content.newbornWeight);
                            id.set(xmlId);
                        }
                    }
                }
            }

            /*
            String infantAgeMonths = firstpageStructureMap.get(Content.newbornAgeMonths);
            String infantAgeDays = firstpageStructureMap.get(Content.newbornAgeDays);
            if (CatalogueUtil.isEmpty(infantAgeMonths) && CatalogueUtil.isEmpty(infantAgeDays)) {
                return;
            }

             */
        }
    }
}