Class OCRServiceImpl

Object
OCRServiceImpl
All Implemented Interfaces:
DocumentEngineEventListener, DocumentHandler, OCRService, OCRServiceRegistry

@Service("vOCRService") public class OCRServiceImpl extends Object implements OCRService, OCRServiceRegistry, DocumentEngineEventListener, DocumentHandler
  • Constructor Details

    • OCRServiceImpl

      public OCRServiceImpl()
  • Method Details

    • setOcrDao

      @Autowired public void setOcrDao(ModeloDocumentoOCRDao ocrDao)
    • setFileService

      @Autowired public void setFileService(FileService fileService)
    • setModeloDao

      @Autowired public void setModeloDao(ModeloDocumentoDao modeloDao)
    • setDocumentoDao

      @Autowired public void setDocumentoDao(DocumentoDao documentoDao)
    • setDocumentoOCRDao

      @Autowired public void setDocumentoOCRDao(DocumentoOCRDao documentoOCRDao)
    • register

      public void register(OCRProvider provider)
      Specified by:
      register in interface OCRServiceRegistry
    • doOCRForAllModels

      public List<OCRResult> doOCRForAllModels(File source) throws OCRException
      Description copied from interface: OCRService
      Executa o OCR do arquivo informado contra todos os modelos de OCR cadastrados no sistema.
      Specified by:
      doOCRForAllModels in interface OCRService
      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

      public List<OCRResult> doOCRForAllDocumentModels(File source, ModeloDocumento document) throws OCRException
      Description copied from interface: OCRService
      Executa o OCR do arquivo informado contra todos os modelos de OCR vinculados ao documento informado.
      Specified by:
      doOCRForAllDocumentModels in interface OCRService
      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

      public List<OCRResult> doOCRForAllDocumentModels(File source, String documentKey) throws OCRException
      Specified by:
      doOCRForAllDocumentModels in interface OCRService
      Throws:
      OCRException
    • doOCR

      public List<OCRResult> doOCR(File source, Collection<ModeloDocumentoOCR> models) throws OCRException
      Description copied from interface: OCRService
      Executa o OCR do arquivo informado contra um conjunto especifico de modelos.
      Specified by:
      doOCR in interface OCRService
      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

      public List<OCRResult> doOCR(Path source, Collection<ModeloDocumentoOCR> models) throws OCRException
      Specified by:
      doOCR in interface OCRService
      Throws:
      OCRException
    • doOCRForAllModels

      public List<OCRResult> doOCRForAllModels(File source, boolean stopOnSucess) throws OCRException
      Description copied from interface: OCRService
      Executa o OCR contra todos os modelos cadastrados, com opcao de interromper o processamento assim que um modelo for reconhecido com sucesso.
      Specified by:
      doOCRForAllModels in interface OCRService
      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

      public List<OCRResult> doOCRForAllDocumentModels(File source, ModeloDocumento document, boolean stopOnSucess) throws OCRException
      Specified by:
      doOCRForAllDocumentModels in interface OCRService
      Throws:
      OCRException
    • doOCRForAllDocumentModels

      public List<OCRResult> doOCRForAllDocumentModels(File source, String documentKey, boolean stopOnSucess) throws OCRException
      Specified by:
      doOCRForAllDocumentModels in interface OCRService
      Throws:
      OCRException
    • doOCR

      public List<OCRResult> doOCR(File source, Collection<ModeloDocumentoOCR> models, boolean stopOnSucess) throws OCRException
      Specified by:
      doOCR in interface OCRService
      Throws:
      OCRException
    • doOCR

      public List<OCRResult> doOCR(Path filePath, Collection<ModeloDocumentoOCR> models, boolean stopOnSucess) throws OCRException
      Specified by:
      doOCR in interface OCRService
      Throws:
      OCRException
    • criarModelo

      public ModeloDocumentoOCR criarModelo(ModeloDocumentoOCR modelo, Arquivo amostra, File tempFile)
      Description copied from interface: OCRService
      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.
      Specified by:
      criarModelo in interface OCRService
      Parameters:
      modelo - configuracao inicial do modelo de OCR
      amostra - metadados do arquivo de amostra
      tempFile - arquivo fisico de amostra em area temporaria
      Returns:
      o modelo de OCR criado e persistido
    • salvarModelo

      @Transactional(propagation=REQUIRED) public ModeloDocumentoOCR salvarModelo(ModeloDocumentoOCR modelo)
      Specified by:
      salvarModelo in interface OCRService
    • atualizarAmostra

      @Transactional(propagation=REQUIRED) public Arquivo atualizarAmostra(ModeloDocumentoOCR modelo, FileInfo amostra)
      Description copied from interface: OCRService
      Substitui o arquivo de amostra de um modelo de OCR existente.
      Specified by:
      atualizarAmostra in interface OCRService
      Parameters:
      modelo - modelo de OCR a ter a amostra atualizada
      amostra - novo arquivo de amostra
      Returns:
      metadados do arquivo de amostra persistido
    • getModelosParaDocumento

      @Transactional(propagation=REQUIRED) public List<ModeloDocumentoOCR> getModelosParaDocumento(ModeloDocumento modelo)
      Specified by:
      getModelosParaDocumento in interface OCRService
    • getModelosAtivosParaDocumento

      public List<ModeloDocumentoOCR> getModelosAtivosParaDocumento(ModeloDocumento modelo)
      Specified by:
      getModelosAtivosParaDocumento in interface OCRService
    • getMapeamentos

      public List<MapeamentoCampoModeloOCR> getMapeamentos(ModeloDocumentoOCR documentoOCR)
      Specified by:
      getMapeamentos in interface OCRService
    • saveMapeamento

      @Transactional(propagation=REQUIRED) public MapeamentoCampoModeloOCR saveMapeamento(MapeamentoCampoModeloOCR mapeamento)
      Specified by:
      saveMapeamento in interface OCRService
    • refreshStatus

      @Transactional(propagation=REQUIRED) public void refreshStatus(ModeloDocumentoOCR modelo)
      Description copied from interface: OCRService
      Recalcula e persiste o status do modelo de OCR (ex.: completo, com pendencias de mapeamento) com base no estado atual de seus mapeamentos.
      Specified by:
      refreshStatus in interface OCRService
      Parameters:
      modelo - modelo de OCR a ter o status reavaliado
    • refreshStatus

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

      @Transactional(propagation=REQUIRED) public void refreshStatusForModels(ModeloDocumento documento)
      Specified by:
      refreshStatusForModels in interface OCRService
    • refreshStatusForModels

      @Transactional(propagation=REQUIRED) public void refreshStatusForModels(String documentKey)
      Specified by:
      refreshStatusForModels in interface OCRService
    • getCountCamposNaoMapeados

      public Long getCountCamposNaoMapeados(ModeloDocumentoOCR mapeamento)
      Specified by:
      getCountCamposNaoMapeados in interface OCRService
    • getCamposNaoMapeados

      public List<ModeloCampoDocumento> getCamposNaoMapeados(ModeloDocumentoOCR mapeamento)
      Specified by:
      getCamposNaoMapeados in interface OCRService
    • getCountCamposObrigatoriosNaoMapeados

      public Long getCountCamposObrigatoriosNaoMapeados(ModeloDocumentoOCR mapeamento)
      Specified by:
      getCountCamposObrigatoriosNaoMapeados in interface OCRService
    • getCamposObrigatoriosNaoMapeados

      public List<ModeloCampoDocumento> getCamposObrigatoriosNaoMapeados(ModeloDocumentoOCR mapeamento)
      Specified by:
      getCamposObrigatoriosNaoMapeados in interface OCRService
    • getStatus

      public StatusModeloOCR getStatus(ModeloDocumentoOCR mapeamento)
      Specified by:
      getStatus in interface OCRService
    • saveMapeamentos

      @Transactional(propagation=REQUIRED) public void saveMapeamentos(Collection<MapeamentoCampoModeloOCR> mapeamentos)
      Specified by:
      saveMapeamentos in interface OCRService
    • getMapeamentoCampo

      public MapeamentoCampoModeloOCR getMapeamentoCampo(ModeloDocumentoOCR documentoOCR, String campoId)
      Specified by:
      getMapeamentoCampo in interface OCRService
    • getMapeamentosCampo

      public List<MapeamentoCampoModeloOCR> getMapeamentosCampo(ModeloDocumento modelo, String campoId)
      Specified by:
      getMapeamentosCampo in interface OCRService
    • removerMapeamento

      @Transactional(propagation=REQUIRED) public void removerMapeamento(MapeamentoCampoModeloOCR mapeamento)
      Specified by:
      removerMapeamento in interface OCRService
    • getDocumentoOCRPorId

      public ModeloDocumentoOCR getDocumentoOCRPorId(Long id)
      Specified by:
      getDocumentoOCRPorId in interface OCRService
    • tryResolveType

      public FileType tryResolveType(File source) throws OCRException
      Description copied from interface: OCRService
      Tenta resolver o tipo do arquivo informado a partir de seu conteudo.
      Specified by:
      tryResolveType in interface OCRService
      Parameters:
      source - arquivo cujo tipo sera detectado
      Returns:
      tipo de arquivo detectado
      Throws:
      OCRException - se o tipo nao puder ser determinado
    • convertFile

      public File convertFile(File source, FileType targetType) throws OCRException
      Description copied from interface: OCRService
      Converte o arquivo de origem para o tipo de destino informado, quando suportado (ex.: normalizacao de formato antes do OCR).
      Specified by:
      convertFile in interface OCRService
      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:
    • canBeconverted

      public boolean canBeconverted(File source, FileType targetType) throws OCRException
      Specified by:
      canBeconverted in interface OCRService
      Throws:
      OCRException
    • definirOrdemModeloOCR

      @Transactional(propagation=REQUIRED) public void definirOrdemModeloOCR(Long mapeamentoID, int novaOrdem)
      Specified by:
      definirOrdemModeloOCR in interface OCRService
    • afterModelFieldInsertOrUpdate

      @Transactional(propagation=REQUIRED) public void afterModelFieldInsertOrUpdate(ModeloCampoDocumento campo)
      Specified by:
      afterModelFieldInsertOrUpdate in interface DocumentEngineEventListener
    • beforeModelFieldRemoved

      @Transactional(propagation=REQUIRED) public void beforeModelFieldRemoved(ModeloCampoDocumento campo)
      Specified by:
      beforeModelFieldRemoved in interface DocumentEngineEventListener
    • documentParserServiceId

      public String documentParserServiceId()
      Specified by:
      documentParserServiceId in interface DocumentHandler
    • parseRepresentation

      public DocumentRepresentation parseRepresentation(String representation)
      Specified by:
      parseRepresentation in interface DocumentHandler
    • store

      @Transactional(propagation=REQUIRED) public Long store(OCRResult result)
      Specified by:
      store in interface OCRService
    • store

      @Transactional(propagation=REQUIRED) public Long store(OCRResult result, StoreOptions options)
      Description copied from interface: OCRService
      Persiste um resultado de OCR aplicando as opcoes de armazenamento informadas (ex.: sobrescrita de campos ja preenchidos).
      Specified by:
      store in interface OCRService
      Parameters:
      result - resultado de OCR a persistir
      options - opcoes que controlam como o resultado e gravado
      Returns:
      id do registro persistido