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

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.doc.DeathRecordDoc;
import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
import com.lantone.qc.pub.util.DateUtil;
import com.lantone.qc.pub.util.StringUtil;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Description: 出院记录未在患者出院前完成
 * @author: rengb
 * @time: 2020/3/10 13:53
 */
@Component
public class LEA0148 extends QCCatalogue {
    @Override
    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
        if (leaveHospitalDoc == null) {
            status.set("0");
            return;
        }
        if (inputInfo.getDeathRecordDoc() != null || inputInfo.getDeathCaseDiscussDoc() != null) {
            status.set("0");
            return;
        }
        String timeQm = leaveHospitalDoc.getStructureMap().get("签名时间");
        String timeCy = leaveHospitalDoc.getStructureMap().get("出院时间");
        if (StringUtil.isNotBlank(timeQm) && StringUtil.isNotBlank(timeCy)) {
            Date timeQmDate = StringUtil.parseDateTime(timeQm);
            Date timeCyDate = StringUtil.parseDateTime(timeCy);
            if (!CatalogueUtil.compareTime(timeCyDate, timeQmDate, 24 * 60L)) {
                status.set("0");
            }
        }else {
            status.set("0");
            return;
        }
    }
}