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());
      }
    }
  }