class ConsultaInternacaoON extends BaseBusiness {

	protected void atualizarStatusSumarioInternacao(AinInternacao internacao,
			DominioSimNao possuiCertificacaoEletronica,
			InternacaoVO internacaoVO) {

		if (internacao == null || possuiCertificacaoEletronica == null
				|| internacaoVO == null) {
			throw new IllegalArgumentException("Argumentos inválidos!");
		}
		
		// Quando paciente protegido então não apresenta o relatório
		if (DominioSimNao.S.equals(internacao.getPaciente()
				.getIndPacProtegido())) {
			internacaoVO.setStatusAltaObito(this
					.getStatusRelatorioAltaObito(null));
			return;
		}
		
		DominioSimNao isObito = this.getPrescricaoMedicaFacade()
				.verificarAltaSumarioObito(internacao.getAtendimento());

		AghVersaoDocumento aghVersaoDocumento;

		if (DominioSimNao.S.equals(possuiCertificacaoEletronica)
				&& isObito != null) {
			aghVersaoDocumento = this
					.getCertificacaoDigitalFacade()
					.verificarSituacaoDocumentoPorPaciente(
							internacao.getAtendimento().getSeq(),
							DominioSimNao.S.equals(isObito) ? DominioTipoDocumento.SO
									: DominioTipoDocumento.SA);
			if (aghVersaoDocumento != null) {
				if (DominioSituacaoVersaoDocumento.A.equals(aghVersaoDocumento
						.getSituacao())) {
					internacaoVO
							.setStatusAltaObito(StatusAltaObito.APRESENTA_DOCUMENTO_ASSINADO);
					internacaoVO.setSeqVersaoDocumento(aghVersaoDocumento
							.getSeq());
				} else if (DominioSituacaoVersaoDocumento.P
						.equals(aghVersaoDocumento.getSituacao())) {
					internacaoVO
							.setStatusAltaObito(StatusAltaObito.APRESENTA_DOCUMENTO_PENDENTE);
					internacaoVO.setSeqVersaoDocumento(aghVersaoDocumento
							.getSeq());
				} else {
					internacaoVO.setStatusAltaObito(this
							.getStatusRelatorioAltaObito(isObito));
				}
			} else {
				internacaoVO.setStatusAltaObito(this
						.getStatusRelatorioAltaObito(isObito));
			}
		} else {
			internacaoVO.setStatusAltaObito(this
					.getStatusRelatorioAltaObito(isObito));
		}

	}

}