private LabDetalheRequisicao inclusaoTSA(
      XmlExameResultadoInterface xmlExameResultadoInterface,
      XmlLoteResultadoInterface resultadoInterface) {

    LabDetalheRequisicao labDetalheRequisicao =
        OracleHelper.getLabDetalherequisicaoByReqExameSeq(
            resultadoInterface.getReqStCodigo(),
            xmlExameResultadoInterface.getExaStCodigo(),
            xmlExameResultadoInterface.getSeqStCodigo(),
            resultadoInterface.getStrDbName());

    if (labDetalheRequisicao == null) {
      labDetalheRequisicao =
          OracleHelper.getLabDetalherequisicaoByReqExameSeq(
              resultadoInterface.getReqStCodigo(),
              xmlExameResultadoInterface.getExaStCodigo(),
              "01",
              resultadoInterface.getStrDbName());

      LoteInterfaceReceiverSql.insertDetalherequisicao(
          labDetalheRequisicao,
          xmlExameResultadoInterface,
          resultadoInterface,
          resultadoInterface.getStrDbName());

      labDetalheRequisicao.setLegStCodigo("002");
      labDetalheRequisicao.setSeqStCodigo(xmlExameResultadoInterface.getSeqStCodigo());
      labDetalheRequisicao.setLegStCodigoFat("CON");

      OracleHelper.saveObject(labDetalheRequisicao, resultadoInterface.getStrDbName());

      labDetalheRequisicao =
          OracleHelper.getLabDetalherequisicaoByReqExameSeq(
              resultadoInterface.getReqStCodigo(),
              xmlExameResultadoInterface.getExaStCodigo(),
              xmlExameResultadoInterface.getSeqStCodigo(),
              resultadoInterface.getStrDbName());
    }
    return labDetalheRequisicao;
  }
  public void buildRetornoInterface(
      List<XmlRetornoInterface> listaRetornoInterface, XmlRetorno xRetorno) {

    if (listaRetornoInterface != null && listaRetornoInterface.size() > 0) {

      List<LabDetalheRequisicao> listaDetalheRequisicao = new ArrayList<LabDetalheRequisicao>();

      for (XmlRetornoInterface xmlRetornoInterface : listaRetornoInterface) {
        LabDetalheRequisicao detalheRequisicao =
            OracleHelper.getLabDetalherequisicaoByReqExameSeq(
                xmlRetornoInterface.getReqStCodigo(),
                xmlRetornoInterface.getExaStCodigo(),
                xmlRetornoInterface.getSeqStCodigo(),
                xmlRetornoInterface.getStrDbName());

        detalheRequisicao.setDerInEnvioLis(1);

        listaDetalheRequisicao.add(detalheRequisicao);
      }

      OracleHelper.updateObjectList(
          listaDetalheRequisicao, listaRetornoInterface.get(0).getStrDbName());
    }
  }
  private void AtualizaDetalheRequisicao(
      LabResultados labResultado,
      ExameConfiguracao exameConfiguracao,
      XmlLoteResultadoInterface loteResultadoInterface) {

    LabDetalheRequisicao labDetalheRequisicao =
        OracleHelper.getLabDetalherequisicaoByReqExameSeq(
            labResultado.getReqStCodigo(),
            labResultado.getExaStCodigo(),
            labResultado.getSeqStCodigo(),
            loteResultadoInterface.getStrDbName());

    if (labDetalheRequisicao != null) {

      if (exameConfiguracao.getCinChObrigatorio().equals('S')
          && exameConfiguracao.getLabResultado().getResStResultado() != null
          && exameConfiguracao.getLabResultado().getResStResultado().equals("")) {
        labDetalheRequisicao.setLegStCodigo("007");
      } else {
        labDetalheRequisicao.setLegStCodigo(loteResultadoInterface.getLegStcodigo());
      }

      labDetalheRequisicao.setMetStCodigo(exameConfiguracao.getLabResultado().getMetStCodigo());
      labDetalheRequisicao.setUsuStCodigo(VerificaUsuario(loteResultadoInterface));
      labDetalheRequisicao.setDerInRepeticao(
          exameConfiguracao.getLabResultado().getDerInRepeticao());
      labDetalheRequisicao.setDerChNaoNecessario(
          exameConfiguracao.getLabResultado().getDerChNaoNecessario());
      labDetalheRequisicao.setEmvDtValidade(exameConfiguracao.getEmvDtValidade());
      labDetalheRequisicao.setDerInValidadeRes(
          exameConfiguracao.getLabResultado().getDerInValidadeRes());
      labDetalheRequisicao.setDerChParcial(exameConfiguracao.getLabResultado().getDerChParcial());
      labDetalheRequisicao.setFrlCodigo(loteResultadoInterface.getObsStCodigo());

      if (exameConfiguracao.getEquStCodigo() != null
          && !exameConfiguracao.getEquStCodigo().equals("")) {
        labDetalheRequisicao.setEquInCodigo(exameConfiguracao.getEquInCodigo().longValue());
      }

      // TODO tratar exames assinados
      if (loteResultadoInterface.getTipoExame().equals("I")) {}

      OracleHelper.saveOrUpdateObject(labDetalheRequisicao, loteResultadoInterface.getStrDbName());
    }
  }
  private void buildMapResultado(
      List<XmlExameResultadoInterface> resultadoExame,
      XmlLoteResultadoInterface resultadoInterface) {

    dtBanco = OracleHelper.getDateFromDB(resultadoInterface.getStrDbName());
    String resStIngresso = null;
    String resStResultado = null;

    if (resultadoExame != null && !resultadoExame.isEmpty()) {

      for (XmlExameResultadoInterface xmlExameResultadoInterface : resultadoExame) {

        LabDetalheRequisicao labDetalheRequisicao = null;

        if (xmlExameResultadoInterface.getExaStCodigo().equalsIgnoreCase("TSA")) {
          labDetalheRequisicao = inclusaoTSA(xmlExameResultadoInterface, resultadoInterface);
        } else {
          labDetalheRequisicao =
              OracleHelper.getLabDetalherequisicaoByReqExameSeq(
                  resultadoInterface.getReqStCodigo(),
                  xmlExameResultadoInterface.getExaStCodigo(),
                  xmlExameResultadoInterface.getSeqStCodigo(),
                  resultadoInterface.getStrDbName());
        }

        if (labDetalheRequisicao != null) {

          String codResultado;

          if (xmlExameResultadoInterface.getResuladosExameItem() != null
              && !xmlExameResultadoInterface.getResuladosExameItem().isEmpty()) {

            for (XmlItemExameResultadoInterface itemExameResultadoInterface :
                xmlExameResultadoInterface.getXmlResuladosExameItem()) {

              if (xmlExameResultadoInterface.getDerChNaoNecessario().equals('N')) {

                if (labDetalheRequisicao.getLegStCodigo().equals("004")
                    || labDetalheRequisicao.getLegStCodigo().equals("002")
                    || labDetalheRequisicao.getLegStCodigo().equals("001")
                    || labDetalheRequisicao.getLegStCodigo().equals("003")
                    || labDetalheRequisicao.getLegStCodigo().equals("005")
                    || labDetalheRequisicao.getLegStCodigo().equals("006")
                    || labDetalheRequisicao.getLegStCodigo().equals("007")
                    || (labDetalheRequisicao.getLegStCodigo().equals("011")
                        && labDetalheRequisicao.getDerChParcial().toString().equalsIgnoreCase("S"))
                    || (labDetalheRequisicao.getLegStCodigo().equals("016")
                        && labDetalheRequisicao.getDerChParcial().toString().equalsIgnoreCase("S"))
                    || labDetalheRequisicao.getLegStCodigo().equals("010")
                    || labDetalheRequisicao.getLegStCodigo().equals("018")
                    || labDetalheRequisicao.getLegStCodigo().equals("045")
                    || labDetalheRequisicao.getLegStCodigo().equals("012")) {

                  derInValidadeRes = labDetalheRequisicao.getDerInValidadeRes();

                  if (derInValidadeRes != null) {
                    derInValidadeRes = derInValidadeRes + 1;
                  } else {
                    derInValidadeRes = 1;
                  }

                  if (xmlExameResultadoInterface.getExaStCodigo().equals("TSA")) {
                    resStIngresso =
                        itemExameResultadoInterface
                            .getResStIngresso()
                            .replace("{", "<")
                            .replace("}", ">");
                    resStResultado =
                        itemExameResultadoInterface
                            .getResStResultado()
                            .replace("{", "<")
                            .replace("}", ">");
                  } else {
                    resStIngresso = itemExameResultadoInterface.getResStIngresso();
                    resStResultado = itemExameResultadoInterface.getResStResultado();
                  }

                  Character sParcial;

                  if (xmlExameResultadoInterface.getDerChParcial().toString().equalsIgnoreCase("F")
                      || xmlExameResultadoInterface
                          .getDerChParcial()
                          .toString()
                          .equalsIgnoreCase("N")) {
                    sParcial = 'N';
                  } else {
                    sParcial = 'S';
                  }

                  LabResultados labResultados =
                      new LabResultados(
                          resultadoInterface.getReqStCodigo(),
                          xmlExameResultadoInterface.getExaStCodigo(),
                          xmlExameResultadoInterface.getSeqStCodigo(),
                          xmlExameResultadoInterface.getMetStCodigo(),
                          null,
                          itemExameResultadoInterface.getCinStCodigo(),
                          null,
                          itemExameResultadoInterface.getResStFlag(),
                          resStIngresso,
                          itemExameResultadoInterface.getResStComentario(),
                          resStResultado,
                          itemExameResultadoInterface.getResChHidden(),
                          null,
                          resultadoInterface.getLegStcodigo(),
                          new BigDecimal(labDetalheRequisicao.getDerInCodigo()),
                          derInValidadeRes,
                          null,
                          xmlExameResultadoInterface.getEquStCodigo(),
                          sParcial,
                          xmlExameResultadoInterface.getDerChNaoNecessario(),
                          xmlExameResultadoInterface.getDerInRepeticao());

                  codResultado =
                      labDetalheRequisicao.getDerInCodigo()
                          + itemExameResultadoInterface.getCinStCodigo();

                  if (!mapResultado.containsKey(codResultado)) {
                    mapResultado.put(codResultado, labResultados);
                  }

                  listExameConfiguracao =
                      LoteInterfaceReceiverSql.ConfiguraIngresso(
                          labResultados,
                          resultadoInterface.getStrDbName(),
                          xmlExameResultadoInterface.getDerInRepeticao());
                }

              } else {
                labDetalheRequisicao.setDerChNaoNecessario('S');
                labDetalheRequisicao.setUsuStCodigo(resultadoInterface.getUsuStCodigo());
                OracleHelper.updateObject(labDetalheRequisicao, resultadoInterface.getStrDbName());
              }
            }
          }
        } else {
          System.out.println("detalherequiscao nao encontrada");
        }
      }
    } else {
      System.out.println("lista vazia.");
    }
  }