01. DADOS GERAIS

Produto:

TOTVS Saúde Planos

Linha de Produto:

Linha Protheus 

Segmento:

Saude 

Módulo:PLANO DE SAÚDE (SIGAPLS)
Função:
Ticket:10771696
Requisito/Story/Issue (informe o requisito relacionado) :DSAUBE-13814


02. 
SITUAÇÃO/REQUISITO


03. SOLUÇÃO


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>
Exemplo:

Logo, a minha URL será: http://localhost:8080/rest/PLSGPUREST/v1/solicitarProtocolo



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

{
    "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"
    }
}
{
    "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

{
    "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
    }
}
{
    "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

{
   "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"
    }
}
{
    "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

{
    "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"
    }
}
{
    "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

{
    "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"
    }
}
{
    "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

{
    "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"
    }
}
{
    "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

{
    "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"
    }
}
{
    "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".

Na nova versão do PTU foram alteradas as tabelas utilizadas para trafegar:

Na versão anterior o sistema utilizava o campo BR8_TPPROC para definir o tipo de tabela daquele serviço. Na nova versão o sistema utilizará o cadastrado de terminologia para vincular o serviço com a tabela.

Os pacotes a partir dessa versão serão enviados na transação, portanto também precisaram ser cadastrados no Cadastrado de Terminologia TISS com o Tipo de tabela 98 e realizado o vinculo. 

Para realizar o vinculo de um serviço é só acessar: Tabela Padrão > Outras Ações > Vinculo TISS. 


No versão atual do PTU Online, foram disponibilizadas novas tags no XML (tipoEtapaAutorizacao, dataSolicitacao, tipoGuiatpAcomodacao), essas tags passaram a ser gravadas em uma tabela separa (B6M), além disso será gravada as mensagens de resposta da auditoria (00404) em um campo memo:

 

Será possível consultar essa tela após realizar a comunicação e gravação da Guia.

Botão Outra Ações > PTU Online da tela principal.

Para visualizar as transações de Complemento ou Prorrogação (00605): Botão Outras Ações > PTU Online do Grid do Complemento.


Ao realizar a comunicação, esses campos serão preenchidos automaticamente, sendo que as tags:

  • tipoEtapaAutorização será 1 (Solicitação de autorização prévia) quando for informado o prestador genérico do sistema, definido pelo parâmetro MV_PLSRDAG e  2 (Solicitação de autorização pelo prestador executante) quando for informado o prestador na guia.
  • dataSolicitacao será a data em que foi incluída a guia no sistema.
  • tipoGuia será 1 para consulta, 2 para SADT e 3 para Internação.
  • tpAcomodacao será preenchido de acordo com a acomodação do beneficiário, sendo que para guias do tipo 1 (Consulta) ou 2 (SADT) utilizar a opção C - Não se aplica.


Para comunicação do sistema com o WebService do SISPAC, é necessário que os seguintes campos estejam configurados no cadastro da operadora saúde:

1 Campo: A url do EndPoint.
2 Campo: token da aplicação
3 Campo: Login
4 Campo: Senha

Todas essas informações deveram ser solicitas a Unimed Brasil.

Mudanças realizadas nas transações do PTU Online 8.0 contendo pacotes


Todas as transações que contiverem pacotes deverão trafegar o código do pacote e o seu procedimento principal, sendo que o procedimento principal não possuíra nenhuma tag no XML que indique a qual pacote pertence na transação.

Devido a estas validações, SIGAPLS irá processar estas transações da seguinte maneira:

  • Enviando Transação
    Para realizar o envio de uma transação, precisará ser informado no preenchimento da guia o código do pacote (tipo de tabela 98) + o código do procedimento principal, informando no campo (BE2_PACOTE, BEJ_PACOTE ou BQV_PACOTE) o conteúdo 1 - Sim, para identificar no sistema que aquele procedimento faz parte do pacote.

  • Recebendo Transação
    Para o recebimento de um transação, precisará que seja cadastrado um pacote genérico na tabela padrão e informa-lo no parâmetro MV_PLPACPT, esse pacote servira como De-para para o recebimento de pacotes de outras Unimeds. O Pacote genérico também precisa esta cadastrado é vinculado com a terminologia TISS com o tipo de tabela 98.

    O código do Pacote da Unimed origem será gravado nos novos campos do item da guia: BE2_CDPACO, BEJ_CDPACO e BQV_CDPACO.

    Após o recebimento de uma transação que contém pacote, o sistema irá se comunicar com o SISPAC para gravação da composição do pacote (B43).
    Todos os pacotes recebidos ficaram na tabela B6L.


Schedule SISPAC

Foi criado um schedule para comunicação com o SISPAC.
Todos os pacotes recebidos estão na tabela B6L, portanto esse schedule poderá ser agendado para o sistema consultar novamente o SISPAC, caso algum pacote não tenha gravado a composição no momento do recebimento, por erro de comunicação ou algo do tipo.

Configuração do Schedule:

Rotina: PLSSisPacSc
Parâmetro: Código da Operadora



04. DEMAIS INFORMAÇÕES

Não se aplica

05. ASSUNTOS RELACIONADOS

        Não se aplica




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>