class ManterObtCausaDiretaON extends BaseBusiness {

	public String preinserirObtCausaDireta(SumarioAltaDiagnosticosCidVO sumarioAltaDiagnosticosCidVO) throws ApplicationBusinessException {
		String retorno = null;
		Integer apaAtdSeq = sumarioAltaDiagnosticosCidVO.getId().getApaAtdSeq();
		Integer apaSeq = sumarioAltaDiagnosticosCidVO.getId().getApaSeq();
		Short seqp = sumarioAltaDiagnosticosCidVO.getId().getSeqp();
		
		// Pesquisa a ocorrência da Causa Direta da Morte
		MpmObtCausaDireta obtCausaDiretaExistente = this.getMpmObtCausaDiretaDAO().obterObtCausaDireta(apaAtdSeq, apaSeq, seqp);

		// Somente uma ocorrência de A Causa Direta da Morte é permitida
		if (obtCausaDiretaExistente == null) {  // A causa direta da morte NÃO está registrada no banco
			
			MpmAltaSumario altaSumario = this.getMpmAltaSumarioDAO().obterAltaSumarioPeloId(apaAtdSeq,apaSeq,seqp);

			if(altaSumario != null){
				
				MpmObtCausaDireta mpmObtCausaDiretaNovo = new MpmObtCausaDireta();		
				mpmObtCausaDiretaNovo.setMpmAltaSumarios(altaSumario);
				mpmObtCausaDiretaNovo.setIndSituacao(DominioSituacao.A);

				if(sumarioAltaDiagnosticosCidVO.getCiaSeq() != null){
					mpmObtCausaDiretaNovo.setIndCarga(DominioSimNao.S);
				}else{
					mpmObtCausaDiretaNovo.setIndCarga(DominioSimNao.N);
				}
				mpmObtCausaDiretaNovo.setDescCid(ManterAltaSumarioON.montaDescricaoCIDComPrimeiraMaiuscula(sumarioAltaDiagnosticosCidVO.getCid().getDescricao(), sumarioAltaDiagnosticosCidVO.getCid().getCodigo()));
				mpmObtCausaDiretaNovo.setCid(sumarioAltaDiagnosticosCidVO.getCid());
				mpmObtCausaDiretaNovo.setComplCid(sumarioAltaDiagnosticosCidVO.getComplementoEditado());
				
				this.getManterObtCausaDiretaRN().inserirObtCausaDireta(mpmObtCausaDiretaNovo);
				retorno = "MENSAGEM_SUCESSO_INCLUSAO_CAUSA_DIRETA_MORTE";
			}
		
		} else{ 
			ManterObtCausaDiretaONExceptionCode.MENSAGEM_EXCEDEU_LIMITE_CAUSA_DIRETA_MORTE.throwException();
			
		}
		return retorno;
		
	}

}