Ir para o conteúdo

Manual de Integração

Este manual descreve as integrações possíveis com o eDok através de suas APIs. As APIs são projetadas para facilitar a integração dos documentos gerenciados pelo eDok aos fluxos de negócio utilizando sistemas de terceiros. Por exemplo, um CRM pode carregar diretamente um documento armazenado no eDok de modo transparente, sem que o seu usuário precise deixar o CRM.

O conteúdo deste manual é direcionado a analistas e programadores envolvidos nos projetos de integração de sistemas.

Para saber como utilizar outras funcionalidades do eDok, consulte os manuais na barra lateral.

APIs Disponíveis

As APIs disponíveis no eDok são:

API Descrição
DocMetadata Obtém, manipula e controla metadados nos documentos gerenciados.
DocView Visualiza um documento individual, sem navegação.
Portal Consumo simplificado da API ViewDocs, útil em intranets.
ViewDocs Visualiza documentos agrupados, com navegação.

As APIs do eDok são seguras! Suportamos TLS 1.3 com PFS e o acesso depende de chave de API.

DocMetadata

Esta API é um endpoint que unifica as ações relativas à manipulação, controle e obtenção de metadados dos documentos gerenciados pelo eDok.

Para consumir esta API, você deve fazer uma requisição GET ou POST conforme o exemplo abaixo:

curl -H "X-SecretAccessKey: secret" -X método -d 'diretriz' \
  https://<endereço>.edok.com.br/api/DocMetadata.php?Action=ação

Onde:

  • secret: chave de acesso da API no eDok;
  • método: método GET ou POST, dependendo da ação;
  • diretriz: objeto JSON com os parâmetros da requisição, quando necessário;
  • ação: ação a ser executada na API DocMetadata.

As ações disponíveis, suas diretrizes, retornos e respostas são descritas abaixo.

Ações Disponíveis

Ação Função
DescribeDoc Obtém os metadados de um documento.
ExportMetadata Exporta todos os metadados de documentos.
DocTrashByID Apaga de modo não permanente um documento especificado pelo ID.
GetDocWithNoMetadata Obtém uma lista com os documentos que não possuem metadados secundários no período informado.
PostDocMetadataByID Insere ou atualiza qualquer metadado em um documento especificado pelo ID.
PostDocMetadata Insere ou atualiza metadados secundários em documentos especificados pelos metadados primários.

Respostas Comuns

As respostas abaixo são comuns a todas as ações desta API:

Código HTTP Resposta
400 Invalid JSON statement.
401 API key provided is invalid.
400 API version not supported.
400 Action not found.
400 Invalid JSON schema.

DescribeDoc

Diretriz
{
  "Version": 2,
  "Statement": {
    "PrimaryMeta": {
      "DocType": "FI",
      "NR_ATENDIMENTO": "910100",
      "NR_PRONTUARIO": "410100",
      "DATA": "20210817"
    }
  }
}
Retorno
{
    "DocMetadata": {
        "Response": "Success",
        "Message": "Document metadata description for eDokID 18.",
        "Action": "DescribeDoc",
        "Document": {
            "eDokID": "18",
            "RepositoryPath": "f0/c4/JEmDNTlRagqlO16B0j5s1ja5UHhOQ2vXiGvEsN1J.pdf",
            "IngestDate": "2023-06-04T01:17:10-0300",
            "DocType": "FI",
            "PrimaryMeta": {
                "NR_ATENDIMENTO": "910100",
                "NR_PRONTUARIO": "410100",
                "DATA": "20210817"
            },
            "SecondaryMeta": {
                "CAIXA": "CX01"
            }
        }
    }
}
Respostas
Código HTTP Resposta
400 DocType not found.
400 Missing required primary metadata properties.
404 Document not found.
200 Document metadata description for eDokID ID.

Algumas respostas foram alteradas em relação às gerações anteriores:

Código HTTP Resposta Anterior Nova Resposta
400 DocType ID has no required fields. Missing required primary metadata properties.

DocTrashByID

A remoção de um documento com esta ação não é permamente. Para apagar o documento em definitivo, é necessário removê-lo da lixeira.

Esta é uma nova ação que não existia nas gerações anteriores.

Diretriz
{
    "Version": 2,
    "Statement": {
        "eDokID": 11
    }
}
Retorno
{
    "DocMetadata": {
        "Response": "Success",
        "Message": "Document sent to trash by ID.",
        "Action": "DocTrashByID",
        "Document": {
            "eDokID": "11",
            "RepositoryPath": "8f/d9/nsuePWSBUqU6Atyleo8lQ1CzKV8FHNMHSiOQ1aCm.pdf",
            "IngestDate": "2023-06-04T01:17:06-0300",
            "DocType": "WK"
        }
    }
}
Respostas
Código HTTP Resposta
404 Document not found.
400 eDokID does not point to a document.
200 Document sent to trash by ID.

ExportMetadata

O envio da diretriz não é obrigatório. Caso seja enviada, DocType é opcional e restringe o retorno aos documentos do tipo especificado. Caso a diretriz não seja enviada, o retorno conterá os documentos de todos os tipos compreendidos dentro do intervalo padrão de 30 dias ou do intervalo especificado na diretriz. Ao especificar o intervalo, o máximo é de 30 dias.

Diretriz
{
  "Version": 2,
  "Statement": {
    "DocType": "FI",
    "DateRange": {
      "StartDate": "2023-05-05",
      "EndDate": "2023-06-04"
    }
  }
}
Retorno
{
  "DocMetadata": {
    "Response": "Success",
    "Message": "Documents from 2023-05-05T00:00:00-0300 to 2023-06-04T23:59:59-0300 where document type code is FI.",
    "Action": "ExportMetadata",
    "Documents": [
      {
        "eDokID": "18",
        "RepositoryPath": "f0/c4/JEmDNTlRagqlO16B0j5s1ja5UHhOQ2vXiGvEsN1J.pdf",
        "IngestDate": "2023-06-04T01:17:10-0300",
        "DocType": "FI",
        "Metadata": {
          "NR_ATENDIMENTO": "910100",
          "NR_PRONTUARIO": "410100",
          "DATA": "20210817",
          "CAIXA": "CX01"
        }
      },
      {
        "eDokID": "30",
        "RepositoryPath": "c5/54/6rJLYla3qSlwORx7uCdmRRHd7WJWmDUNluP9Quwd.pdf",
        "IngestDate": "2023-06-04T01:17:40-0300",
        "DocType": "FI",
        "Metadata": {
          "NR_ATENDIMENTO": "989760",
          "NR_PRONTUARIO": "454012",
          "DATA": "20180713",
          "CAIXA": "C123"
        }
      },
      {
        "eDokID": "36",
        "RepositoryPath": "10/77/f1RBd4uUAb64yt76WKf1P7ciMKTJgk1RvRSo9JPn.pdf",
        "IngestDate": "2023-06-04T01:17:50-0300",
        "DocType": "FI",
        "Metadata": {
          "NR_ATENDIMENTO": "989720",
          "NR_PRONTUARIO": "454012",
          "DATA": "20180618",
          "CAIXA": "C123"
        }
      }
    ]
  }
}
Respostas
Código HTTP Resposta
400 Date range is greater then one month.
404 Documents not found.
200 Documents from StartDate to EndDate with any document type.
200 Documents from StartDate to EndDate where document type code is DocType.

Algumas respostas foram alteradas em relação às gerações anteriores:

Código HTTP Resposta Anterior Nova Resposta
400 Date out of DAYS days range. Date range is greater then one month.
200 Documents from StartDate to EndDate. Documents from StartDate to EndDate with any document type.
200 Documents from StartDate to EndDate with DocType DocType. Documents from StartDate to EndDate where document type code is DocType.

GetDocWithNoMetadata

O envio da diretriz não é obrigatório. Caso a diretriz não seja enviada, o retorno conterá compreendidos dentro do intervalo padrão de 30 dias ou do intervalo especificado na diretriz. Ao especificar o intervalo, o máximo é de 30 dias.

Diretriz
{
  "Version": 2,
  "Statement": {
    "DateRange": {
      "StartDate": "2023-05-05",
      "EndDate": "2023-06-04"
    }
  }
}
Retorno
{
  "DocMetadata": {
    "Response": "Success",
    "Message": "Documents with missing secondary metadata from 2023-05-05T00:00:00-0300 to 2023-06-04T23:59:59-0300.",
    "Action": "GetDocWithNoMetadata",
    "Documents": [
      {
        "eDokID": "17",
        "RepositoryPath": "80/dc/PfbfunIeSxU6Wk1H4ph9uZ9mLF6PlyaMnIrkGSd1.pdf",
        "IngestDate": "2023-06-04T01:17:09-0300",
        "DocType": "RE",
        "PrimaryMeta": {
          "EMPREGADO": "510100"
        },
        "SecondaryMissing": [
          "SALARIO",
          "NUMERO",
          "CPF",
          "CNPJ"
        ]
      }
    ]
  }
}
Respostas
Código HTTP Resposta
400 Date range is greater then one month.
404 Documents not found.
404 No documents with secondary metadata missing.
200 Documents with missing secondary metadata from StartDate to EndDate.

Algumas respostas foram alteradas em relação às gerações anteriores:

Código HTTP Resposta Anterior Nova Resposta
400 Date out of DAYS days range. Date range is greater then one month.
200 Documents with no secondary metadata from StartDate to EndDate. Documents with missing secondary metadata from StartDate to EndDate.

PostDocMetadataByID

Esta ação permite alterar qualquer metadado de um documento, sejam primários ou secundários.

Esta é uma nova ação que não existia nas gerações anteriores.

Ao alterar os metadados primários, os demais metadados, as assinaturas digitais e a data de vencimento serão atualizados, bem como as chaves de integridade do documento. Caso o documento contenha alguma assinatura eletrônica, elas serão invalidadas e deverão ser requisitadas novamente.

Diretriz
{
  "Version": 2,
  "Statement": {
    "eDokID": 18,
    "Metadata": {
      "NR_ATENDIMENTO": "910109",
      "NR_PRONTUARIO": "410100",
      "DATA": "20210817",
      "CAIXA": "CX01"
    }
  }
}
Retorno
{
  "DocMetadata": {
    "Response": "Success",
    "Message": "Document metadata updated.",
    "Action": "PostDocMetadataByID",
    "Document": {
      "eDokID": "18",
      "RepositoryPath": "f0/c4/JEmDNTlRagqlO16B0j5s1ja5UHhOQ2vXiGvEsN1J.pdf",
      "IngestDate": "2023-06-04T01:17:10-0300",
      "DocType": "FI",
      "PrimaryMeta": {
        "NR_ATENDIMENTO": "910109",
        "NR_PRONTUARIO": "410100",
        "DATA": "20210817"
      },
      "SecondaryMeta": {
        "CAIXA": "CX01"
      }
    }
  }
}
Respostas
Código HTTP Resposta
404 Document not found.
400 eDokID does not point to a document.
413 Width of FIELD is longer than expected by the document type field definition.
200 Document metadata updated.

PostDocMetadata

Esta ação permite alterar metadados secundários de um ou mais documentos especificados pelos metadados primários. Todos os documentos que combinem com os metadados primários informados terão seus metadados secundários alterados.

Diretriz
{
  "Version": 2,
  "Statement": {
    "PrimaryMeta": {
      "DocType": "FI",
      "NR_ATENDIMENTO": "910100",
      "NR_PRONTUARIO": "410100",
      "DATA": "20210817",
      "SecondaryMeta": {
        "CAIXA": "CX01"
      }
    }
  }
}
Retorno
{
  "DocMetadata": {
    "Response": "Success",
    "Message": "Document metadata updated.",
    "Action": "PostDocMetadata",
    "Document": {
      "eDokID": "18",
      "RepositoryPath": "f0/c4/JEmDNTlRagqlO16B0j5s1ja5UHhOQ2vXiGvEsN1J.pdf",
      "IngestDate": "2023-06-04T01:17:10-0300",
      "DocType": "FI",
      "PrimaryMeta": {
        "NR_ATENDIMENTO": "910100",
        "NR_PRONTUARIO": "410100",
        "DATA": "20210817"
      },
      "SecondaryMeta": {
        "CAIXA": "CX01"
      }
    }
  }
}
Respostas
Código HTTP Resposta
400 DocType not found.
400 Missing required primary metadata properties.
404 Document not found.
413 Width of # characters for secondary metadata FIELD is longer than expected # characters.
200 Document metadata updated.

Algumas respostas foram alteradas em relação às gerações anteriores:

Código HTTP Resposta Anterior Nova Resposta
400 DocType DocType has no required fields. Missing required primary metadata properties.
400 Missing any secondary metadata to update. REMOVIDA.
400 Secondary metadata FIELD not found. REMOVIDA.
413 Length of secondary metadata FIELD is longer than expected. Width of # characters for secondary metadata FIELD is longer than expected # characters.

DocView

Esta API é um endpoint que provê um método para visualizar um documento específico gerenciado pelo eDok. Diferente da API ViewDocs, esta API visualiza somente um documento por vez em cada requisição.

A visualização de documentos nesta API funciona da mesma forma em computadores e dispositivos móveis.

API DocView

Esta API implementa as seguintes configurações do eDok:

Para consumir esta API, você deve fazer uma requisição POST (recomendado) ou GET para o seguinte endpoint:

https://<endereço>.edok.com.br/api/docview?parâmetros

O endpoint desta API nas gerações anteriores era /api/DocView.php. Esse endpoint está obsoleto, porém redireciona para o novo e será removido no futuro. Atualize as chamadas que utilizem o endpoint obsoleto.

Os parâmetros para o consumo desta API são:

Parâmetro Descrição
K Chave de acesso da API no eDok.
ID Primeiro identificador do documento.
DT ID do tipo do documento desejado. (Opcional)

Ao carregar um documento, os campos a seguir são mostrados:

Campo Descrição
Documento (Tipo) Nome do documento (tipo do documento).
Data Data de criação do documento.
eDok ID Identificador único do documento no eDok.
Ferramentas Painel, pesquisa no documento, paginador, zoom, tela cheia e ferramentas adicionais.
Rodapé Links Sobre, Manual e Termos do Serviço.

Exemplos

  • Requisição com ID:

    K=secret&ID=989760
    
  • Requisição com ID e tipo de documento:

    K=secret&ID=989760&DT=2
    

Caso existam mais de um documento no eDok com os mesmos identificadores e tipo, apenas o documento mais recente é visualizado.

Respostas

Código HTTP Resposta Condição
400 REQUISIÇÃO INVÁLIDA Falta chave de acesso ou primeiro identificador do documento.
401 NÃO AUTORIZADO Chave de acesso inválida.
404 NÃO ENCONTRADO Documento não encontrado com os parâmetros informados.
200 SUCESSO Documento visualizado.

Algumas respostas foram removidas em relação às gerações anteriores:

Código HTTP Resposta
400 Faltam informações para obter o documento.
401 Alguém esqueceu de configurar a chave de acesso e isso é ruim.
401 Usuário inexistente.
401 Você não está autorizado a ver o documento.
404 O documento não foi encontrado.
404 O documento solicitado não existe no eDok.
500 Documento indisponível para visualização.
500 Não foi possível gerar a visualização do documento.
500 Os computadores brigaram e isso é um erro.

Portal

Esta API é um endpoint que provê um método acessar a API ViewDocs de modo simplificado.

A visualização de documentos nesta API funciona da mesma forma em computadores e dispositivos móveis.

API Portal

Para consumir esta API, você deve fazer uma requisição GET no endpoint:

https://<endereço>.edok.com.br/api/portal

O endpoint desta API nas gerações anteriores era /api/portal/SameCover.php. Esse endpoint está obsoleto, porém redireciona para o novo e será removido no futuro. Atualize as chamadas que utilizem o endpoint obsoleto.

Para visualizar um documento, basta digitar seu primeiro identificador no campo Qual atendimento você procura? e apertar enter. A API ViewDocs será carregada com o documento solicitado (caso exista). Os prefixos p e a suportados pela API ViewDocs também podem ser utilizados (ver exemplos).

O caso de uso típico desta API se aplica a sistemas de gestão (CRM, ERP, etc.) que cobram por usuário, ou o administrador não deseja criar uma conta de usuário no eDok só para colaboradores visualizarem documentos. Neste caso, pode ser criado um acesso via portal com autenticação própria na aplicação intranet.

Esta API vem desativada por padrão. Para ativá-la, entre em contado com o suporte técnico. Uma autenticação própria é mandatória para utilizar este recurso. Não nos responsabilizamos pelo acesso sem restrições a esta API.

ViewDocs

Esta API é um endpoint que provê um método para visualizar e navegar por documentos gerenciados pelo eDok. Diferente da API DocView, esta API permite acessar múltiplos documentos a partir da primeira requisição, desde que estejam relacionados pelos identificadores.

A visualização de documentos nesta API funciona da mesma forma em computadores e dispositivos móveis.

API ViewDocs

Esta API implementa as seguintes configurações do eDok:

Para consumir esta API, você deve fazer uma requisição POST (recomendado) ou GET para o seguinte endpoint:

https://<endereço>.edok.com.br/api/viewdocs?parâmetros

O endpoint desta API nas gerações anteriores era /api/SameCover.php. Esse endpoint está obsoleto, porém redireciona para o novo e será removido no futuro. Atualize as chamadas que utilizem o endpoint obsoleto.

Os parâmetros para o consumo desta API são:

Parâmetro Descrição
KEY Chave de acesso da API no eDok.
NM_USUARIO Usuário eDok. Se o sistema a ser integrado não disponibiliza o usuário para a requisição ou se você deseja utilizar um usuário dedicado para isso, crie um usuário sem privilégios apenas para este fim.
NR_ATENDIMENTO Primeiro identificador do documento, sendo que NR_ATENDIMENTO é o padrão. Se você usa identificadores diferentes, configure-o como Primeiro Identificador. Também pode receber o segundo identificador usando os prefixos p ou a (ver exemplos).
NR_PRONTUARIO Segundo identificador do documento, sendo que NR_PRONTUARIO é o padrão. Se você usa identificadores diferentes, configure-o como Segundo Identificador. (Opcional)

Ao carregar um documento, os campos a seguir são mostrados:

Campo Descrição
Atendimento Lista com os primeiros identificadores. O padrão é Atendimento, mas pode ser alterado em Rótulo do Primeiro Identificador.
Documento Lista com os documentos disponíveis, separados por tipo.
Prontuário Valor do segundo identificador. O padrão é Prontuário, mas pode ser alterado em Rótulo do Segundo Identificador.
eDok ID Caso apenas um documento seja selecionado, mostra o ID do documento no eDok. Não é mostrado para múltiplos documentos.
Ferramentas Cada documento possui seus próprios painéis, pesquisa no documento, paginadores, zoom, tela cheia e ferramentas adicionais.
Rodapé Links Sobre, Manual e Termos do Serviço.

Na lista de documentos, as opções a seguir estarão disponíveis automaticamente (se aplicável):

Opção Descrição
Todos - Página # Mostra todos os documentos, paginados a cada 10 documentos. Pode ser alterado via suporte técnico.
Todos Tipo Mostra todos os documentos de cada tipo.
Tipo Parte Documento é proveniente de uma separação de páginas.

O segundo identificador funciona como um agrupador de documentos. Por exemplo: múltiplos atendimentos fazem parte do mesmo prontuário do paciente. Havendo múltiplos documentos com atendimentos e prontuário idênticos, o documento mais recente é carregado e os demais poderão ser acessados pelos seletores. Para visualizar outros documentos do conjunto requisitado, basta selecionar o documento desejado na lista. Não é necessário digitar enter após a seleção, pois o carregamento é feito de forma automática ao escolher o novo tipo.

Quando uma opção com múltiplos tipos é selecionada, os documentos relevantes são mostrados simultaneamente. Role a página para vê-los e, caso deseje visualizar um documento de modo exclusivo, clique na ferramenta tela cheia para abri-lo em tela cheia. Para sair do modo tela cheia, pressione esc.

Na visualização de múltiplos tipos, cada documento possui um rótulo com tipo, eDok ID e os estados das assinaturas, que podem ser:

Estado da Assinatura Descrição
Sem Assinaturas Documento não contém assinaturas digitais ou eletrônicas.
Assinado Digitalmente Documento contém uma ou mais assinaturas digitais.
Assinado Eletronicamente Documento contém uma ou mais assinaturas eletrônicas.

Para verificar os detalhes de cada assinatura no documento, acesse-o pelo eDok.

Exemplos

  • Requisição apenas com o primeiro identificador:

    KEY=secret&NM_USUARIO=admin&NR_ATENDIMENTO=989760
    
  • Requisição com ambos identificadores:

    KEY=secret&NM_USUARIO=admin&NR_ATENDIMENTO=989760&NR_PRONTUARIO=454012
    
  • Requisição apenas com o segundo identificador para documentos que NÃO contenham o primeiro identificador (note a letra p como prefixo):

    KEY=secret&NM_USUARIO=admin&NR_ATENDIMENTO=p454012
    

    Neste caso, o primeiro documento visualizado será o que porventura contenha somente o segundo identificador, útil para documentos de legado.

  • Requisição apenas com o segundo identificador para todos os documentos (note a letra a como prefixo):

    KEY=secret&NM_USUARIO=admin&NR_ATENDIMENTO=a454012
    

    Neste caso, todos os documentos que contenham o identificador serão listados.

Respostas

Código HTTP Resposta Condição
400 REQUISIÇÃO INVÁLIDA Faltam parâmetros ou informados de modo incorreto.
401 NÃO AUTORIZADO Chave ou usuário não informados ou incorretos.
404 NÃO ENCONTRADO Documento(s) não encontrado(s) com os parâmetros informados.
200 SUCESSO Documento(s) visualizado(s).

Algumas respostas foram removidas em relação às gerações anteriores:

Código eDok Código HTTP Descrição
001 500 Falha na comunicação com o banco de dados.
002 401 Chave de acesso não informada.
003 401 Chave de acesso inválida.
004 401 Usuário não informado.
005 401 Usuário inexistente.
006 400 Indexadores não informados.
007 404 Não existem documentos com os indexadores informados.
008 404 Documento não encontrado.

Integrando o Philips® Tasy

O Philips® Tasy é um CRM para a área da saúde que pode ser integrado ao eDok de modo muito simples e completamente transparente. Com isso, os usuários do Philips® Tasy têm acesso aos documentos gerenciados diretamente do PEP (Prontuário Eletrônico do Paciente) e outros módulos. A API ViewDocs é ideal para esta integração.

Do mesmo modo que o Philips® Tasy, outros CRMs, ERPs e sistemas diversos de qualquer área podem ser integrados ao eDok com a mesma facilidade.

Você pode usar o Philips® Tasy em Delphi, Java e HTML5. Todos eles são suportados pelo eDok, inclusive simultaneamente.

A configuração é muito fácil e rápida. Veja como fazer no PEP, por exemplo:

  1. Acesse o Philips® Tasy como administrador;

  2. Navegue até Utilitários > Cadastros Gerais > Aplicação Principal > Médico > Parâmetros PEP;

  3. Na opção URL para GED, digite o endereço de integração deste modo, substituindo secret pela chave de acesso configurada no eDok:

    https://<endereço>.edok.com.br/api/viewdocs?KEY=secret&NM_USUARIO=$NM_USUARIO&NR_ATENDIMENTO=$NR_ATENDIMENTO
    
  4. Em Método GED, selecione a opção Post;

  5. Caso necessário, libere a opção Gestão eletrônica de documentos GED no perfil dos usuários que terão acesso aos documentos.

Pronto! A integração do Philips® Tasy com o eDok está configurada. Para testar, escolha um atendimento existente, digitalize para o eDok um documento com este número de atendimento, acesse o PEP, abra o atendimento escolhido e clique na opção Gestão eletrônica de documentos GED. O documento vai aparecer no Philips® Tasy sem o usuário precisar sair dele.

Recomendamos criar um usuário dedicado e sem privilégios para integrações. Utilize-o no lugar da variável $NM_USUARIO em URL para GED.

Este procedimento é apenas um exemplo pelo qual não nos responsabilizamos. Para mais detalhes e opções, consulte seu integrador Philips® Tasy.

Continuando...

Parabéns! Você concluiu o Manual de Integração. Para continuar aprendendo, siga para Governança e Segurança.


© 2005- eDok Consultoria em Sistemas LTDA. Todos os direitos reservados. Marcas de terceiros são propriedade de seus respectivos donos.

Usamos cookies para armazenar informações funcionais. Ao utilizar nossos serviços, você se declara ciente dessa característica e consente com nossa Política de Privacidade.