private void CalculaFormulaResultado( List<ExameConfiguracao> listExameConfiguracao, XmlLoteResultadoInterface loteResultadoInterface) { for (ExameConfiguracao exameConfiguracao : listExameConfiguracao) { LabDetalheRequisicao labDetalheRequisicao = OracleHelper.getLabDetalherequisicaoByReqExameSeq( loteResultadoInterface.getReqStCodigo(), exameConfiguracao.getExaStCodigo(), exameConfiguracao.getSeqStCodigo(), loteResultadoInterface.getStrDbName()); if (exameConfiguracao.getCinStTipoResultado().equals("003")) { String resultadoFormula = null; String resultadoCkFormula = null; String vars = null; BigDecimal res = new BigDecimal(0); DecimalFormat nroFormatado = null; String code = exameConfiguracao.getExaStCodigo(); if (mapResultadoFormula.containsKey(code)) { vars = mapResultadoFormula.get(code); } LabResultados labResultado = new LabResultados( exameConfiguracao.getReqStCodigo(), exameConfiguracao.getExaStCodigo(), exameConfiguracao.getLabResultado().getSeqStCodigo(), exameConfiguracao.getMetStCodigo(), exameConfiguracao.getEmvDtValidade(), exameConfiguracao.getCinStCodigo(), dtBanco, null, null, exameConfiguracao.getLabResultado().getResStComentario(), null, exameConfiguracao.getLabResultado().getResChHidden(), exameConfiguracao.getLabResultado().getResInSequencia(), exameConfiguracao.getCinStTipoResultado(), exameConfiguracao.getDerInCodigo(), exameConfiguracao.getLabResultado().getDerInValidadeRes(), exameConfiguracao.getLabResultado().getResClResultados(), exameConfiguracao.getLabResultado().getEquStCodigo(), exameConfiguracao.getDerChParcial(), exameConfiguracao.getLabResultado().getDerChNaoNecessario(), exameConfiguracao.getLabResultado().getDerInRepeticao()); System.out.println( "exameConfiguracao.getCinStCodigo() : " + exameConfiguracao.getCinStCodigo()); ByteArrayInputStream bais = new ByteArrayInputStream((vars + exameConfiguracao.getCinClFormula()).getBytes()); if (vars != null && exameConfiguracao.getCinClFormula() != null) { resultadoFormula = resultFormulaAndCheck(vars, bais); if (exameConfiguracao.getCinInDecimais() != null) { nroFormatado = new DecimalFormat( PartnerDecimal.PartnerDecimal(exameConfiguracao.getCinInDecimais())); } else { nroFormatado = new DecimalFormat(PartnerDecimal.PartnerDecimal(0)); } System.out.println("resultado formula : " + resultadoFormula); if (resultadoFormula != null && resultadoFormula.trim().length() > 0) { try { res = new BigDecimal(resultadoFormula.replaceAll(",", ".")); labResultado.setResStIngresso(nroFormatado.format(res)); labResultado.setResStResultado(nroFormatado.format(res)); } catch (NumberFormatException xcp) { System.out.println("do something else...................."); labResultado.setResStIngresso(resultadoFormula); labResultado.setResStResultado(resultadoFormula); } } else { labResultado.setResStIngresso(resultadoFormula); labResultado.setResStResultado(resultadoFormula); } } if (vars != null && exameConfiguracao.getCinClCheckFormula() != null) { resultadoCkFormula = resultFormulaAndCheck(vars, bais); labResultado.setResStFlag(resultadoCkFormula); } String resultado = mapResultadoFormula.get(code); mapResultadoFormula.remove(code); if (resultadoFormula != null) { mapResultadoFormula.put( code, resultado + exameConfiguracao.getCinStCodigo() + ":=\"" + resultadoFormula.replace(",", ".") + "\";"); } OracleHelper.saveOrUpdateObject(labResultado, loteResultadoInterface.getStrDbName()); } } }