Interface OCRService

All Known Implementing Classes:
OCRServiceImpl

public interface OCRService
Servico de OCR (reconhecimento optico de caracteres) de documentos.

Concentra a gestao dos modelos de OCR (ModeloDocumentoOCR) vinculados a um ModeloDocumento, o mapeamento entre os campos do documento e as regioes reconhecidas, a execucao do OCR sobre arquivos e a conversao de formatos necessaria ao processamento.

Este e um dos servicos expostos aos scripts dos usuarios, portanto o contrato dos metodos publicos deve permanecer estavel.

Author:
DavinTI
  • Method Details

    • criarModelo

      ModeloDocumentoOCR criarModelo(ModeloDocumentoOCR modelo, Arquivo amostra, File amostraTempFile)
      Cria um novo modelo de OCR a partir de um documento de amostra. O arquivo de amostra e persistido e usado como referencia para o mapeamento de campos.
      Parameters:
      modelo - configuracao inicial do modelo de OCR
      amostra - metadados do arquivo de amostra
      amostraTempFile - arquivo fisico de amostra em area temporaria
      Returns:
      o modelo de OCR criado e persistido
    • salvarModelo

      ModeloDocumentoOCR salvarModelo(ModeloDocumentoOCR modelo)
    • atualizarAmostra

      Arquivo atualizarAmostra(ModeloDocumentoOCR modelo, FileInfo amostra)
      Substitui o arquivo de amostra de um modelo de OCR existente.
      Parameters:
      modelo - modelo de OCR a ter a amostra atualizada
      amostra - novo arquivo de amostra
      Returns:
      metadados do arquivo de amostra persistido
    • getModelosParaDocumento

      List<ModeloDocumentoOCR> getModelosParaDocumento(ModeloDocumento modelo)
    • getModelosAtivosParaDocumento

      List<ModeloDocumentoOCR> getModelosAtivosParaDocumento(ModeloDocumento modelo)
    • getMapeamentos

      List<MapeamentoCampoModeloOCR> getMapeamentos(ModeloDocumentoOCR documentoOCR)
    • saveMapeamento

      MapeamentoCampoModeloOCR saveMapeamento(MapeamentoCampoModeloOCR mapeamento)
    • getCountCamposNaoMapeados

      Long getCountCamposNaoMapeados(ModeloDocumentoOCR mapeamento)
    • getCamposNaoMapeados

      List<ModeloCampoDocumento> getCamposNaoMapeados(ModeloDocumentoOCR mapeamento)
    • getCountCamposObrigatoriosNaoMapeados

      Long getCountCamposObrigatoriosNaoMapeados(ModeloDocumentoOCR mapeamento)
    • getCamposObrigatoriosNaoMapeados

      List<ModeloCampoDocumento> getCamposObrigatoriosNaoMapeados(ModeloDocumentoOCR mapeamento)
    • getStatus

      StatusModeloOCR getStatus(ModeloDocumentoOCR mapeamento)
    • refreshStatus

      void refreshStatus(ModeloDocumentoOCR modelo)
      Recalcula e persiste o status do modelo de OCR (ex.: completo, com pendencias de mapeamento) com base no estado atual de seus mapeamentos.
      Parameters:
      modelo - modelo de OCR a ter o status reavaliado
    • refreshStatus

      void refreshStatus(ModeloDocumentoOCR modelo, List<OCRResult> results)
      Recalcula e persiste o status do modelo de OCR considerando tambem os resultados de OCR informados.
      Parameters:
      modelo - modelo de OCR a ter o status reavaliado
      results - resultados de OCR a serem levados em conta na avaliacao
    • refreshStatusForModels

      void refreshStatusForModels(ModeloDocumento documento)
    • refreshStatusForModels

      void refreshStatusForModels(String documentKey)
    • saveMapeamentos

      void saveMapeamentos(Collection<MapeamentoCampoModeloOCR> mapeamentos)
    • removerMapeamento

      void removerMapeamento(MapeamentoCampoModeloOCR mapeamento)
    • getMapeamentoCampo

      MapeamentoCampoModeloOCR getMapeamentoCampo(ModeloDocumentoOCR documentoOCR, String campoId)
    • getMapeamentosCampo

      List<MapeamentoCampoModeloOCR> getMapeamentosCampo(ModeloDocumento modelo, String campoId)
    • getDocumentoOCRPorId

      ModeloDocumentoOCR getDocumentoOCRPorId(Long id)
    • doOCRForAllModels

      List<OCRResult> doOCRForAllModels(File source) throws OCRException
      Executa o OCR do arquivo informado contra todos os modelos de OCR cadastrados no sistema.
      Parameters:
      source - arquivo a ser processado
      Returns:
      lista de resultados, um por modelo avaliado
      Throws:
      OCRException - em caso de falha no processamento do OCR
    • doOCRForAllDocumentModels

      List<OCRResult> doOCRForAllDocumentModels(File source, ModeloDocumento document) throws OCRException
      Executa o OCR do arquivo informado contra todos os modelos de OCR vinculados ao documento informado.
      Parameters:
      source - arquivo a ser processado
      document - documento cujos modelos de OCR serao usados
      Returns:
      lista de resultados, um por modelo avaliado
      Throws:
      OCRException - em caso de falha no processamento do OCR
    • doOCRForAllDocumentModels

      List<OCRResult> doOCRForAllDocumentModels(File source, String documentKey) throws OCRException
      Throws:
      OCRException
    • doOCR

      List<OCRResult> doOCR(File source, Collection<ModeloDocumentoOCR> models) throws OCRException
      Executa o OCR do arquivo informado contra um conjunto especifico de modelos.
      Parameters:
      source - arquivo a ser processado
      models - modelos de OCR a serem aplicados
      Returns:
      lista de resultados, um por modelo avaliado
      Throws:
      OCRException - em caso de falha no processamento do OCR
    • doOCR

      List<OCRResult> doOCR(Path source, Collection<ModeloDocumentoOCR> models) throws OCRException
      Throws:
      OCRException
    • doOCRForAllModels

      List<OCRResult> doOCRForAllModels(File source, boolean stopOnSucess) throws OCRException
      Executa o OCR contra todos os modelos cadastrados, com opcao de interromper o processamento assim que um modelo for reconhecido com sucesso.
      Parameters:
      source - arquivo a ser processado
      stopOnSucess - se true, interrompe ao primeiro modelo bem-sucedido, evitando avaliar os demais
      Returns:
      lista de resultados ate o ponto de parada
      Throws:
      OCRException - em caso de falha no processamento do OCR
    • doOCRForAllDocumentModels

      List<OCRResult> doOCRForAllDocumentModels(File source, ModeloDocumento document, boolean stopOnSucess) throws OCRException
      Throws:
      OCRException
    • doOCRForAllDocumentModels

      List<OCRResult> doOCRForAllDocumentModels(File source, String documentKey, boolean stopOnSucess) throws OCRException
      Throws:
      OCRException
    • doOCR

      List<OCRResult> doOCR(File source, Collection<ModeloDocumentoOCR> models, boolean stopOnSucess) throws OCRException
      Throws:
      OCRException
    • doOCR

      List<OCRResult> doOCR(Path source, Collection<ModeloDocumentoOCR> models, boolean stopOnSucess) throws OCRException
      Throws:
      OCRException
    • convertFile

      File convertFile(File source, FileType targetType) throws OCRException
      Converte o arquivo de origem para o tipo de destino informado, quando suportado (ex.: normalizacao de formato antes do OCR).
      Parameters:
      source - arquivo de origem
      targetType - tipo de arquivo desejado para a saida
      Returns:
      arquivo convertido
      Throws:
      OCRException - se a conversao nao for suportada ou falhar
      See Also:
    • tryResolveType

      FileType tryResolveType(File source) throws OCRException
      Tenta resolver o tipo do arquivo informado a partir de seu conteudo.
      Parameters:
      source - arquivo cujo tipo sera detectado
      Returns:
      tipo de arquivo detectado
      Throws:
      OCRException - se o tipo nao puder ser determinado
    • canBeconverted

      boolean canBeconverted(File source, FileType targetType) throws OCRException
      Throws:
      OCRException
    • definirOrdemModeloOCR

      void definirOrdemModeloOCR(Long modeloOCRID, int novaOrdem)
    • store

      Long store(OCRResult result)
    • store

      Long store(OCRResult result, StoreOptions options)
      Persiste um resultado de OCR aplicando as opcoes de armazenamento informadas (ex.: sobrescrita de campos ja preenchidos).
      Parameters:
      result - resultado de OCR a persistir
      options - opcoes que controlam como o resultado e gravado
      Returns:
      id do registro persistido