Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Saúde Planos

Linha de Produto:

Linha Protheus 

Segmento:

Saude 

Módulo:PLANO DE SAÚDE (SIGAPLS)
Função:Protocolo de Negativas (PLSA773)
API GPU (PLSGPURest)
Ticket:10771696
Requisito/Story/Issue (informe o requisito relacionado) :DSAUBE-13814


02. 
SITUAÇÃO/REQUISITO

Necessidade de implementar integração com o GPU - Gestão de Protocolos Unimed através de API REST, substituindo a integração via Web Service Soap.

03. SOLUÇÃO

Implementada melhoria no processo da RNº 395 para Operadoras Cooperativas Médicas Unimed, onde Foram criados serviços REST, para gerenciamento de protocolos de atendimento de beneficiários de intercâmbio. 

Configuração REST

Para iniciar a instalação do processo, devemos configurar seu INI Protheus com a funcionalidade REST para habilitar o acesso as API´s.
Com o INI Protheus configurado, a nomenclatura das API´s ficará no formato: <url + Porta + Chave rest definidos no INI Protheus> +  PLSGPUREST/v1/ + <nome da API>

Importante: Para funcionamento correto do processo de comunicação com o GPU, é necessário configurar o REST na porta 443 e o Endpoint tem que ter o nome domínio do certificado, Exemplo:
https://gpu.xx.unimed.com.br/rest/PLSGPUREST/v1/cancelarAtendimento


Endpoints do GPU - Gestão de Protocolos Unimed

Solicite para a Unimed do Brasil, os Endpoints em Produção do GPU, para que seja informado nos seguintes parâmetros (SX6):

MV_R395SOLSolicitar Protocolo de Atendimento - Beneficiário
MV_R395COMComplementar Protocolo de Atendimento
MV_R395RESResponder Atendimento
MV_R395STAConsulta Status de Protocolo
MV_R395HISConsultar Histórico do Protocolo
MV_R395CANCancelar Atendimento
MV_R395ENCEncaminhar Execução da Manifestação


Observação: Para habilitar a API de envio para os Endpoints do GPU, deverá ser ativado o parâmetro MV_PGPURES com o conteúdo igual a "1".

Autenticação de Usuário para o GPU

Para que seja realizada uma requisição a API do GPU, deverá ser realizado a autenticação de uma Conta de Serviço ou Aplicação no GIU:

Operação: Obter Token a partir de login e senha


No Remote, os dados de Login, Senha e Enpoint deveram ser informados no Cadastro de Operadoras de Saúde, na Aba Integrações Unimed:



Login GIU: Login do usuário no GIU/Client ID
Senha GIU: Senha do usuário no GIU / Client Secret
EndPoint GIU: Endpoint Produção da Unimed Brasil
Bearer GIU: Token de autenticação
Cookie GIU: Cookie utilizado para Autenticação
Tempo Exper.: Tempo para expiração do Token. no Formato: Data|Segundos

Observação: Os campos de Bearer, Cookie e Tempo Exper. serão preenchidos automaticamente pelo sistema ao realizar alguma requisição ao GPU. Na questão de expiração do acesso, o sistema irá sempre verificar o campo Tempo Exper. para verificar se será solicitado um novo Token de acesso.


Serviços disponíveis para Integração GPU:

Serviço de Solicitação Protocolo de Atendimento - Beneficiário

Objetivo: Disponibilizar o serviço “Solicitar Protocolo de Atendimento - Beneficiário”.
Enviar uma mensagem para a Unimed referente à uma manifestação de seu beneficiário. O retorno da mensagem será um Protocolo conforme padrão ANS.

Operação: solicitarProtocolo
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/solicitarProtocolo
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
    "cabecalho_transacao": {
        "cd_transacao": "001",
        "tp_cliente": "UNIMED",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0667",
        "nr_ans": "000667",
        "nr_transacao_prestadora": "0000046846",
        "dt_manifestacao": "2020-08-01 12:00:00",
        "id_usuario": "teste",
        "nr_versao_protocolo": "001"
    },
    "solicitar_protocolo": {
        "nome": "teste",
        "cd_unimed": "0666",
        "id_benef": "0000000000006",
        "cd_cpf": "09520811990",
        "ddd": "11",
        "telefone": "964269563",
        "email": "[email protected]",
        "cd_uf": "SC",
        "cd_cidade": "4205407",
        "cd_uni_atendimento": "0025",
        "tp_manifestacao": "7",
        "tp_categoria_manifestacao": [18],
        "id_resposta": 3,
        "nr_transacao_intercambio": "0000054545",
        "nr_protocolo_anterior": null,
        "mensagem": "Nathali"
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "002",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0999",
        "cd_uni_destino": "0666",
        "nr_ans": "999999",
        "nr_transacao_prestadora": "0000046846",
        "id_usuario": "fgdfgg",
        "nr_versao_protocolo": "001"
    },
    "resposta_solicitar_protocolo": {
        "cd_unimed": "0666",
        "id_benef": "0000000000005",
        "nr_protocolo": "12345678912345677777",
        "id_resposta": 3,
        "mensagem": "teste",
        "id_sistema": 2
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Serviço Complementar Protocolo de Atendimento

Objetivo: Disponibilizar o serviço “Complementar Protocolo de Atendimento”.
Enviar uma mensagem para a Unimed referente à uma manifestação de seu beneficiário. Essa mensagem poderá ser vinculada à uma transação de Intercâmbio entre as Unimeds e/ou a um protocolo de atendimento existente.

Operação: complementaProtocolo
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/complementaProtocolo
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
    "cabecalho_transacao":{
        "cd_transacao":"003",
        "tp_cliente":"UNIMED",
        "cd_uni_origem":"0001",
        "cd_uni_destino": "0667",
        "nr_ans": "000667",
        "nr_transacao_prestadora":"0000046846",
        "dt_manifestacao":"2020-08-01 12:00:00",
        "id_usuario":"teste",
        "nr_versao_protocolo":"001"
    },
    "pedido_complemento_protocolo":{
        "cd_unimed":"0667",
        "id_benef": "0000000000002",
        "nr_protocolo":"12345678912345679999",
        "mensagem":"teste",
        "nr_transacao_intercambio":"1234567891",
        "id_resposta":3
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "004",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0999",
        "cd_uni_destino": "0666",
        "nr_ans": "999999",
        "nr_transacao_prestadora": "0000046846",
        "id_usuario": "fgdfgg",
        "nr_versao_protocolo": "001"
    },
    "resposta_complemento": {
        "cd_unimed": "0666",
        "id_benef": "0000000000005",
        "id_origem_resposta": 2
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Serviço Responder Atendimento

Objetivo: Disponibilizar o serviço “Responder Atendimento”.
Enviar uma mensagem para a Unimed referente à resposta de manifestação de seu beneficiário.

Operação: responderAtendimento
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/responderAtendimento
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
   "cabecalho_transacao": {
        "cd_transacao": "005",
        "tp_cliente": "UNIMED",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0667",
        "nr_ans": "000667",
        "nr_transacao_prestadora":"0000046846",
        "dt_manifestacao": "2020-08-01 12:00:00",
        "id_usuario": "teste",
        "nr_versao_protocolo": "001"
    },
    "resposta_atendimento": {
        "cd_unimed": "0666",
        "id_benef": "0000000000006",
        "nr_protocolo": "12345678912345679999",
        "id_resposta": 3,
        "nr_transacao_origem_benef": "1234567891",
        "nr_transacao_intercambio": "1234567891",
        "mensagem": "teste"
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "006",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0999",
        "cd_uni_destino": "0666",
        "nr_ans": "999999",
        "nr_transacao_prestadora": "0000046846",
        "id_usuario": "fgdfgg",
        "nr_versao_protocolo": "001"
    },
    "resposta_atendimento": {
        "cd_unimed": "0666",
        "id_benef": "0000000000005",
        "id_origem_resposta": 1
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Consultar Status do Protocolo

Objetivo: Disponibilizar o serviço “Consulta Status de Protocolo”.
Enviar uma mensagem para a Unimed referente à consulta de status de um protocolo existente.

Operação: consultaStatusProtocolo
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/consultaStatusProtocolo
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
    "cabecalho_transacao": {
        "cd_transacao": "007",
        "tp_cliente": "UNIMED",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0032",
        "nr_ans": "304701",
        "nr_transacao_prestadora": "0000046846",
        "dt_manifestacao": "2020-08-01 12:00:00",
        "id_usuario": "teste",
        "nr_versao_protocolo": "001"
    },
    "consulta_status_protocolo": {
        "cd_unimed": "0666",
        "id_benef": "0000000000006",
        "nr_protocolo": "12345678912345679997"
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "008",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0032",
        "nr_ans": "304701",
        "nr_transacao_prestadora": "0000046846",
        "dt_sol_protocolo": "2020-08-01 12:00:00",
        "nr_versao_protocolo": "001"
    },
    "resposta_consulta_status_protocolo": {
        "cd_unimed": "0666",
        "id_benef": "0000000000006",
        "nome": "teste",
        "tp_manifestacao": null,
        "tp_categoria_manifestacao": [
            18
        ],
        "nr_protocolo": "12345678912345679997",
        "id_resposta": 3,
        "num_trans_interc_prestadora": null,
        "num_trans_origem_beneficiario": null,
        "id_origem_resposta": 2,
        "id_usuario": "teste",
        "dt_solicitacao_protocolo": "2021-01-14 14:27:02",
        "mensagem": "Nathali"
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Consultar Histórico do Protocolo

Objetivo: Disponibilizar o serviço “Consultar Historico do Protocolo”.
Enviar uma mensagem para a Unimed referente à consulta do histórico de protocolos do beneficiário

Operação: historicoProtocoloConsulta
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/historicoProtocoloConsulta
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
    "cabecalho_transacao": {
        "cd_transacao": "009",
        "tp_cliente": "UNIMED",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0667",
        "nr_ans": "000667",
        "nr_transacao_prestadora": "0000046846",
        "dt_manifestacao": "2021-02-15 01:00:00",
        "id_usuario": "teste",
        "nr_versao_protocolo": "001"
    },
    "consulta_historico": {
        "cd_unimed": "0666",
        "id_benef": "0000000000006",
        "dt_inicio_historico": "2021-01-01 12:00:00",
        "dt_fim_historico": "2021-02-18 12:00:00"
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "010",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0999",
        "cd_uni_destino": "0666",
        "nr_ans": "999999",
        "nr_transacao_prestadora": "0000046846",
        "id_usuario": "fgdfgg",
        "nr_versao_protocolo": "001"
    },
    "resposta_consulta_historico": {
        "dt_manifestacao": "2020-08-01 12:00:00",
        "nr_protocolo": "12345678912345677777",
        "id_resposta": 4,
        "id_sistema": 2
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Cancelar Atendimento

Objetivo: Disponibilizar o serviço “Cancelar Atendimento”.
Enviar uma mensagem de cancelamento para a Unimed.

Operação: cancelarAtendimento
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/cancelarAtendimento
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
    "cabecalho_transacao": {
        "cd_transacao": "011",
        "tp_cliente": "UNIMED",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0667",
        "nr_ans": "000667",
        "nr_transacao_prestadora": 1234567891,
        "dt_cancelamento": "2020-01-01 14:14:00",
        "id_usuario": "GPU Teste local",
        "nr_versao_protocolo": "001"
    },
    "cancelamento": {
        "cd_unimed": "0971",
        "id_benef": "0000000000005",
        "nr_protocolo": "12345678912345679999",
        "motivo_cancelamento": "teste"
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "012",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0618",
        "cd_uni_destino": "0971",
        "nr_ans": "367087",
        "nr_transacao_prestadora": "1234567891",
        "id_usuario": "GPU Teste local",
        "nr_versao_protocolo": "001"
    },
    "confirmacao": {
        "cd_unimed": "0971",
        "id_benef": "0000000000005",
        "id_resposta": 4,
        "nr_protocolo": "12345678912345678912",
        "id_sistema": 2
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Encaminhar Execução

Objetivo: Disponibilizar o serviço “Encaminhar Execução da Manifestação”.
Enviar uma mensagem da Unimed Origem do Beneficiário para a Unimed Repasse resolver uma manifestação (conforme acordo prévio entre as Singulares). O retorno da mensagem será uma Confirmação de recebimento e uma posterior Resposta do Atendimento pela Unimed Repasse. Detalhes em: RN 395 – Fluxo REPASSE.
Premissa: No cenário descrito a Unimed Origem já enviou o número do Protocolo para a Unimed Solicitante e apenas está encaminhando a manifestação para resolução da Unimed Repasse.

Operação: encaminharExecucao
Endpoint
: https://<url>:<porta>/rest/PLSGPUREST/v1/encaminharExecucao
Tipo
: Rest Full
Método requisição: POST
Método resposta: GET

JSON de Envio
{
    "cabecalho_transacao": {
        "cd_transacao": "013",
        "tp_cliente": "UNIMED",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0032",
        "nr_ans": "304701",
        "nr_transacao_prestadora": "0000046846",
        "dt_manifestacao": "2020-08-01 12:00:00",
        "id_usuario": "teste",
        "nr_versao_protocolo": "001"
    },
    "encaminhar_execucao": {
        "cd_unimed": "0666",
        "id_benef": "0000000000006",
        "nome": "teste",
        "cd_cpf": "09520811990",
        "ddd": "0048",
        "telefone": "96426956",
        "email": "[email protected]",
        "tp_manifestacao": "1",
        "tp_categoria_manifestacao": [1],   
        "nr_transacao_intercambio": "0000054545",
        "nr_protocolo_anterior": "30470120210119900003",
        "mensagem": "Nathali"
    }
}
JSON de Resposta
{
    "cabecalho_transacao": {
        "cd_transacao": "014",
        "tp_cliente": "PORTAL",
        "cd_uni_origem": "0001",
        "cd_uni_destino": "0032",
        "nr_ans": "304701",
        "nr_transacao_prestadora": "0000046846",
        "id_usuario": "Gestão de Protocolos - Contingência",
        "nr_versao_protocolo": "001"
    },
    "confirmacao": {
        "cd_unimed": "0032",
        "id_benef": "0000000000006",
        "id_resposta": 4,
        "nr_protocolo": "30470120210119900003",
        "id_sistema": 2
    }
}

Status Code: 
200 - Processado com sucesso!
400 - Dados com erro, verificar o manual de integração da Unimed o tipo de erro que foi retornado através do atributo "id_erro".

Inclusão no Arquivo SX3 - Campos:

CampoTipoTamanhoDecimalTituloDescriçãoPictureUsadoExibe BrowserVisual?ContextoObrigatórioPasta SXA
BA0_USRGIUCaracter200Login GIULogin do usuario no GIU
SimNãoAlterarRealNão6
BA0_PASGIUCaracter500Senha GIUSenha do usuario no GIU
SimNãoAlterarRealNão6
BA0_ENDGIUCaracter600EndPoint GIUEndPoint GIU
SimNãoAlterarRealNão6
BA0_BEAGIUMemo100Bearer GIUBearer Retorno GIU
SimNãoVisualizarRealNão6
BA0_COOGIUMemo100Cookie GIUCookie de Retorno GIU
SimNãoVisualizarRealNão6
BA0_TMPGIUCaracter200Tempo Exper.Tempo de Expericao@!SimNãoVisualizarRealNão6


Alteração no Arquivo SX3 - Campos:

CampoPasta SXA
BA0_URLPAC6
BA0_STKPAC6
BA0_USRPAC6
BA0_PWDPAC6
BA0_TOKPAC6


Inclusão no Arquivo SX6 - Parâmetros: 

Itens/Pastas

Descrição

Nome:

MV_PGPURES

Tipo:

Caracter
Descrição:Habilita Protocolos GPU via Rest

Cont. Por.:

0


Inclusão no Arquivo SXA - Pastas:

TabelaOrdemDescrição
BA06Integrações Unimed


Importante

A alteração de dicionário referente a essa implementação estará disponível no próximo pacote de Expedição Contínua do módulo SIGAPLS.

04. DEMAIS INFORMAÇÕES

Não se aplica.

05. ASSUNTOS RELACIONADOS

        12045528 DSAUBE-15638 DT GPU - Serviços de Protocolo para não Clientes