class CancelarPrescricaoMedicaRN extends BaseBusiness {

	protected void cancelarItens(
			List<? extends ItemPrescricaoMedica> listaItens, String nomeMicrocomputador)
			throws BaseException {	
		
		for (ItemPrescricaoMedica item: listaItens){
			switch (item.getIndPendente()) {
			case B:
				//Remove os sub-ítens
				this.verificarRemoverSubItens(item);
				removerItemFisicamente(item, nomeMicrocomputador);
				break;
			case A:
				//Remove o item logicamente
				removerItemLogicamente(item, nomeMicrocomputador);
				break;
			case E:
				//Remove o item logicamente
				removerItemLogicamente(item, nomeMicrocomputador);
				break;
			case P:
				//Remove os sub-ítens
				this.verificarRemoverSubItens(item);
				removerItemFisicamente(item, nomeMicrocomputador);
				break;
			case R:
				//Verifica se o item não é uma hemoterapia ou consultoria
				validarIndPendenteConsultoriaHemoterapia(item);
				//Remove os sub-ítens
				this.verificarRemoverSubItens(item);
				removerItemFisicamente(item, nomeMicrocomputador);
				break;
			case Y:
				//Verifica se o item não é uma hemoterapia ou consultoria
				validarIndPendenteConsultoriaHemoterapia(item);
				//Remove os sub-ítens
				this.verificarRemoverSubItens(item);
				removerItemFisicamente(item, nomeMicrocomputador);
				break;
			default:
				if (item instanceof MpmPrescricaoDieta){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_DIETA_INVALIDO);
				}
				else if (item instanceof MpmPrescricaoCuidado){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_CUIDADO_INVALIDO);
				}
				else if (item instanceof MpmPrescricaoMdto){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_MEDICAMENTO_INVALIDO);			
				}
				else if (item instanceof MpmPrescricaoProcedimento){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_PROCEDIMENTO_INVALIDO);			
				}
				else if (item instanceof MpmPrescricaoNpt){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_NPT_INVALIDO);
				}
				else if (item instanceof MpmSolicitacaoConsultoria){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_CONSULTORIA_INVALIDO);
				}
				else if (item instanceof AbsSolicitacoesHemoterapicas){
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.IND_PENDENTE_HEMOTERAPIA_INVALIDO);
				}
				else{
					throw new ApplicationBusinessException(CancelarPrescricaoMedicaRNExceptionCode.ERRO_CANCELAR_PRESCRICAO);
				}
				
			}
		}
	}

}