class ImportarArquivoSusON extends BaseBMTBusiness {

	public Map<String, Object> atualizarCidProcedimentoNovo(final List<String> lista) throws ApplicationBusinessException {

		// Argumentos paramentrizados
		String nomeArquivo = parametroFacade.buscarAghParametro(AghuParametrosEnum.P_NOME_ARQUIVO_PROCEDIMENTOS_CID).getVlrTexto().toLowerCase();
		
		// confere parâmetro necesário
		parametroFacade.buscarAghParametro(AghuParametrosEnum.P_PHI_SEQ_IMPORTACAO_CID);
		parametroFacade.buscarAghParametro(AghuParametrosEnum.P_SIGLA_FATURAMENTO);
		parametroFacade.buscarAghParametro(AghuParametrosEnum.P_TIPO_GRUPO_CONTA_SUS);
		parametroFacade.buscarAghParametro(AghuParametrosEnum.P_CONVENIO_SUS);
		parametroFacade.buscarAghParametro(AghuParametrosEnum.P_TABELA_FATUR_PADRAO);
		parametroFacade.buscarAghParametro(AghuParametrosEnum.P_IMPORTACAO_CID_PLANOS_SUS);
		// Abertura de arquivos
		try {
			nomeArquivo = FileUtil.arquivoExiste(lista, nomeArquivo);
		} catch (final ApplicationBusinessException e1) {
			throw new ApplicationBusinessException(ImportarArquivoSusONExceptionCode.ARQUIVO_NAO_ENCONTRADO_COM_NOME, nomeArquivo);
		}

		final File arquivo = new File(nomeArquivo);
		final AghSistemas sistema = aghuFacade.obterAghSistema(parametroFacade.buscarAghParametro(AghuParametrosEnum.P_SIGLA_FATURAMENTO).getVlrTexto());
		atualizarProcessosAbortados(sistema);
		verificarConcorrencia(arquivo.getName(), sistema);

		final AghArquivoProcessamento arquivoProcessamento;
		try {
			arquivoProcessamento = criarArquivo(arquivo, sistema, 1);
		} catch (final IOException e) {
			LOG.error(EXCECAO_CAPTURADA, e);
			throw new ApplicationBusinessException(ImportarArquivoSusONExceptionCode.ARQUIVO_NAO_ENCONTRADO_COM_NOME, nomeArquivo);
		}
		
		//-- Arquivo das modalidades --//
		String nomeArquivoModalidade = parametroFacade.buscarAghParametro(AghuParametrosEnum.P_NOME_ARQUIVO_PROCEDIMENTOS_MODALIDADE).getVlrTexto().toLowerCase();
		// Abertura de arquivos
		try {
			nomeArquivoModalidade = FileUtil.arquivoExiste(lista, nomeArquivoModalidade);
		} catch (final ApplicationBusinessException e1) {
			throw new ApplicationBusinessException(ImportarArquivoSusONExceptionCode.ARQUIVO_NAO_ENCONTRADO_COM_NOME, nomeArquivoModalidade);
		}

		final File arquivoModalidade = new File(nomeArquivoModalidade);

		//final AghArquivoProcessamento arquivoProcessamentoModalidade;
		try {
			criarArquivo(arquivoModalidade, sistema, 1);
		} catch (final IOException e) {
			LOG.error(EXCECAO_CAPTURADA, e);
			throw new ApplicationBusinessException(ImportarArquivoSusONExceptionCode.ARQUIVO_NAO_ENCONTRADO_COM_NOME, nomeArquivoModalidade);
		}
		//-- Fim Arquivo das modalidades --//
		
		File file = null;
		try {
			file = File.createTempFile(IFaturamentoFacade.NOME_ARQUIVO_LOG_CID + DateUtil.obterDataFormatada(new Date(), DateConstants.DATE_PATTERN_YYYY_MM_DD_HH_MM), IFaturamentoFacade.EXTENCAO_ARQUIVO_LOG);
		} catch (final IOException e) {
			LOG.error(e.getMessage(), e);
		}

		getProcessadorArquivosImportacaoSus().processarCidProcedimentoNovo(file, lista);
		final List<AghArquivoProcessamento> arquivos = new ArrayList<AghArquivoProcessamento>(1);
		arquivos.add(arquivoProcessamento);
		final Map<String, Object> retorno = new HashMap<String, Object>();
		retorno.put(IFaturamentoFacade.ARQUIVOS_IMPORTACAO_SUS, arquivos);
		retorno.put(IFaturamentoFacade.LOG_FILE_IMPORTACAO_SUS, file.getAbsolutePath());
		return retorno;
	}

}