class GeraDadosSumPrescQuimioSolRN extends BaseBusiness {

	public void processarListaPrescricaoMedicamento(Integer intAtdSeq, Integer apaSeq, Integer pteAtdSeq, Integer pteSeq, Date agpDtAgenda, 
			List<MptPrescricaoMedicamento> listaPrescricaoMedicamento, Boolean solucao ) throws ApplicationBusinessException {
		
		for (MptPrescricaoMedicamento prescricaoMedicamento : listaPrescricaoMedicamento) { 

			// @ORADB MPTP_SINT_SUM_SOL_Q (solucoes)			
			Integer itqSeq = mptSintSumSolQ(intAtdSeq, apaSeq, pteAtdSeq, pteSeq, prescricaoMedicamento.getId().getSeq());	

			if (itqSeq > 0){				
				Date data = agpDtAgenda;
				String valorP = "P";
				String valorS = null;
				if(prescricaoMedicamento.getAlteradoEm() != null && DominioSituacaoItemPrescricaoMedicamento.V.equals(prescricaoMedicamento.getSituacaoItem())){
					valorS = "S";
				}
				Integer seqp = 0;
				Boolean achouP = false;
				Boolean achouS = false;

				List<MptDataItemSumario> listaDataItemSumario = getProcedimentoTerapeuticoFacade().pesquisarDataItemSumario(intAtdSeq, apaSeq, itqSeq);
				for (MptDataItemSumario dataItemSumario : listaDataItemSumario) {
					seqp = dataItemSumario.getId().getSeqp();
					if( (valorP != null) && (dataItemSumario.getValor() == valorP) && (DateUtil.truncaData(dataItemSumario.getData()) == data) ){
						achouP = true;						
					}
					if( (valorS != null) && (dataItemSumario.getValor() == valorS) && (DateUtil.truncaData(dataItemSumario.getData()) == data) ){
						achouS = true;						
					}
				}
				if( !achouP && valorP != null){
					seqp = seqp + 1;	

					//INSERT MptDataItemSumario 
					inserirMptDataItemSumario(intAtdSeq, apaSeq, itqSeq, seqp, data, valorP);					
				}
				if( !achouS && valorS != null){
					seqp = seqp + 1;					

					//INSERT MptDataItemSumario 
					inserirMptDataItemSumario(intAtdSeq, apaSeq, itqSeq, seqp, data, valorS);						
				}
			}				
			
			identificarHierarquia(intAtdSeq, apaSeq, pteAtdSeq, pteSeq, prescricaoMedicamento.getId().getSeq(), agpDtAgenda, solucao);	
		}
	}

}