Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


CONTEÚDO

  1. Visão Geral
  2. Configurações INI
  3. Verbos
  4. Exemplos de chamada da API
  5. Atributos de Resposta
  6. Pontos de Entrada

01. VISÃO GERAL

A API procedures foi desenvolvida para ser utilizada em conjunto com o Portal Autorizador (HAT) auxiliando a busca de procedimentos nas rotinas de Digitação de Guias e Jornadas de Atendimento.


VERBO GET

Através do verbo GET, a API retorna os eventos disponíveis para utilização realizando a busca através de um filtro complexo ou por código de procedimento (via pathparam).

Exemplos: 


A API também tem dois recursos para retornar dentes e faces:

02. CONFIGURAÇÕES INI

Para iniciar a instalação do processo, devemos configurar seu INI Protheus com a funcionalidade REST para habilitar o acesso as API´s. Documentos auxiliares:

1. Configuração do REST do Protheus

Com o INI Protheus configurado, a nomenclatura das API´s ficará no formato: <url + Porta + chave rest definidos no INI Protheus> +  /totvsHealthPlans/v1/procedures. Exemplo:

image2020-12-17_15-28-30.png

Logo, a minha URL será: http://localhost:8080/rest/totvsHealthPlans/v1/procedures


03. VERBOS

Seguem os verbos disponíveis na API: 

VerboPathDescrição
GETproceduresBusca por filtro complexo
GETprocedures/{procedureId}Busca por código de procedimento
GETprocedures/{procedureId}/teethRegions/Retorna os dentes de um procedimento de Odonto
GETprocedures/{procedureId}/teethRegions/{teethRegionId}/surfacesRetorna as faces de um dente de um procedimento de Odonto


04. EXEMPLOS DE CHAMADA DA API


Chamada por filtro complexo:

Para o funcionamento correto da API, informar os QueryParams:

QueryParamObrigatórioDescrição
actionSimInformar sempre typeAhead
pageSizeSimQuantidade de registros que serão apresentados em uma solicitação (o padrão é 7).
filterSim se tableCode não informado

Filtro que será realizado na API. O padrão do filtro é:

( Filtro de Tabelas ) and filtro de Código de Procedimento or filtro de Código de Descrição.

Seguir o modelo abaixo (filtrando CONSULTA como exemplo):

(tableCode eq '18' or tableCode eq '19' or tableCode eq '20' or tableCode eq '22' or tableCode eq '00' or tableCode eq '98') and  procedureId startswith('CONSULTA') or procedureDescription startswith('CONSULTA')

Importante: utilizar %20 para espaços e %27 para aspas simples.

procedureIdSimCódigo do procedimento buscado.
tableCodeSim se filter não informado

Código da tabela de terminologia TISS. Utilize:

00 Tabela própria das operadoras
18 Diárias, taxas e gases medicinais
19 Materiais e Órteses, Próteses e Materiais Especiais (OPME)
20 Medicamentos
22 Procedimentos e eventos em saúde
90 Tabela Própria Pacote Odontológico
98 Tabela Própria de Pacotes

customWhereNão

Realiza um filtro adicional:

1 - Consultas

9 - Procedimentos de Odonto

tratSeriado - Eventos de Seriado (Definidos pela classe do evento BJE_TIPO = 2)


Exemplo da chamada filtrando por filter:

http://localhost:8080/rest/totvshealthplans/v1/procedures?action=typeAhead&pageSize=7&customWhere=1&filter=(tableCode%20eq%20%2718%27%20or%20tableCode%20eq%20%2719%27%20or%20tableCode%20eq%20%2720%27%20or%20tableCode%20eq%20%2722%27%20or%20tableCode%20eq%20%2700%27%20or%20tableCode%20eq%20%2798%27)%20and%20%20procedureId%20startswith(%27CONSULTA%27)%20or%20procedureDescription%20startswith(%27CONSULTA%27)&procedureId=10101012


Exemplo de chamada por tableCode e procedureId:

http://localhost:8080/rest/totvshealthplans/v1/procedures?action=typeAhead&pageSize=7&customWhere=1&tableCode=22&procedureId=10101012

Chamada por procedureID:

Esta busca retorna o primeiro registro encontrado com o pathparam informado. Realizado a busca por 10101012:

http://localhost:8080/rest/totvshealthplans/v1/procedures/10101012

Busca por dentes

Retorna os dentes de um procedimento de Odonto:

http://localhost:8080/rest/totvshealthplans/v1/procedures/2282000026/teethRegions?page=1&pageSize=7


Busca por faces

Retorna as faces de um dente de um procedimento de Odonto:

http://localhost:8080/rest/totvshealthplans/v1/procedures/2282000026/teethRegions/12/surfaces?page=1&pageSize=10


05. ATRIBUTOS DE RESPOSTA

  • Chamadas GET:

    AtributoCampo ProtheusTipo
    manufacturerBTQ_FABRICCaracter
    procedureIdBTU_CODTAB + BTU_CDTERM ou BTQ_CODTAB + BTQ_CDTERMCaracter
    procedureCodeBTU_CDTERM ou BTQ_CDTERMCaracter
    procedureTypeBR8_TPPROCCaracter
    inSerieBJE_TIPO = '2' (o registro BJE é vinculado ao BR8_CLASSEBoolean
    eventTypeBR8_TIPEVECaracter
    procedureDescriptionBR8_DESCRICaracter
    anvisaIdSempre vazio (mantido para manter a integridade já existente)Caracter
    tableCodeBTU_CODTAB ou BTQ_CODTABCaracter
    manufacturerReferenceBTQ_REFFABCaracter


    Exemplo de resposta com evento encontrado (filtro complexo):

    Bloco de código
    titleSucesso 202
    {
        "items": [
            {
                "manufacturer": "",
                "procedureId": "2210101012",
                "procedureCode": "10101012",
                "procedureType": "0",
                "inSerie": false,
                "eventType": "",
                "procedureDescription": "CONSULTA EM CONSULTORIO",
                "anvisaId": "",
                "tableCode": "22",
                "manufacturerReference": ""
            }
        ],
        "hasNext": false
    }


    Exemplo de resposta com evento encontrado (busca por ID):

    Bloco de código
    titleSucesso 202
    {
        "manufacturer": "",
        "procedureId": "2210101012",
        "procedureCode": "10101012",
        "procedureType": "0",
        "inSerie": false,
        "eventType": "",
        "procedureDescription": "CONSULTA EM CONSULTORIO",
        "anvisaId": "",
        "tableCode": "22",
        "manufacturerReference": ""
    }


    Em buscas por filtro complexo, a quantidade mínima de caracteres para realizar a busca é 3. Se forem informados menos que 3, será apresentada uma mensagem impeditiva:

    Bloco de código
    titleSucesso 202
    {
        "code": 200,
        "message": "Nao foram localizados resultados com os valores informados",
        "detailedMessage": "O servidor nao foi capaz de entender a solicitacao",
        "helpUrl": "",
        "details": [
            {
                "code": "",
                "message": "",
                "detailedMessage": "",
                "helpUrl": ""
            }
        ]
    }


    Em buscas por filtro complexo, a quando não for encontrado um evento com os parâmetros informados:

    Bloco de código
    titleSucesso 202
    {
        "items": [],
        "hasNext": false
    }

Em buscas por filtro complexo, a quando não for encontrado um evento com os parâmetros informados:

Bloco de código
titleSucesso 202
{
    "items": [
        {
            "procedureCode": "82000026",
            "terminologyCode": "11",
            "description": "Incisivo Central Superior Direito",
            "hasSurfaces": "1",
            "permanent": true,
            "deciduous": false
        },
        {
            "procedureCode": "82000026",
            "terminologyCode": "12",
            "description": "Incisivo Lateral Superior Direito",
            "hasSurfaces": "1",
            "permanent": true,
            "deciduous": false
        }
    ],
    "hasNext": false
}








06. PONTOS DE ENTRADA

Foram implementados os pontos de entrada PLRSTPR1 e PLRSTPR2 para auxiliarem na API.


PLRSTPR1

O ponto de entrada PLRSTPR1 permite customizar a Query que será executadas para buscar os procedimentos.

Parâmetros:

ParamixbParâmetrosDescriçãoTipo
paramixb[1]cSqlQuery padrão montada pelo sistemaCaracter 
paramixb[2]cType

Indica se está realizando a busca por filtro complexo ou id.

C - Complexo

S - Busca por id

Caracter 
paramixb[3]cFilterConteúdo do Queryparam filterCaracter 
paramixb[4]cTableCodeConteúdo do Queryparam tableCodeCaracter 
paramixb[5]cProcedIdConteúdo do Queryparam procedureIdCaracter 
paramixb[6]lSrcTabCodeIndica se a busca será realizada por Código Tabela + ProcedimentoLógico


Retorno:

RetornoDescriçãoTipoObrigatório
cSqlQuery que será executadaCaracterSim


Exemplo de Ponto de Entrada:

Bloco de código
titlePonto de Entada PLRSTPR1
User Function PLRSTPR1()

    Local cSql := paramixb[1]
    Local cType := paramixb[2]
    Local cFilter  := paramixb[3]
    Local cTableCode := paramixb[4]
    Local cProcedID := paramixb[5]
    Local lSrcTabCode  := paramixb[6]

    //Implementar ajuste desejado
   
Return cSql


PLRSTPR2

O ponto de entrada PLRSTPR2 permite customizar o json de resposta. O ponto será executado para cada evento encontrada na Query. É possível capturar um dado da query utilizando o Alias TRB→ (consultar o exemplo abaixo). A lista com todos os Alias podem ser encontradas analisando a Query informada no ponto de entrada PLRSTPR1.

Parâmetros:

ParamixbParâmetrosDescriçãoTipo
paramixb[1]oItemObjeto json gerado pelo sistema para o evento posicionadoObjeto 


Retorno:

RetornoDescriçãoTipoObrigatório
oItemObjeto do item que será apresentado no json de respostaObjetoSim


Exemplo de Ponto de Entrada:

Bloco de código
titlePonto de Entada PLRSTPR2
User Function PLRSTPR2()

    Local oItem := paramixb[1]
    Local cItem := ''
    
    //Implementar ajuste desejado
    cItem := oItem:toJson()
    Conout('Procedure description: ' + TRB->PROCEDUREDESCRIPTIONJSON) //Capturando descricao do evento no alias TRB
    Conout('Json do objeto posicionado: ' + cItem) //Imprimindo Json do Evento posicionado

Return oItem