Árvore de páginas

Versões comparadas

Chave

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


CONTEÚDO

Visão Geral

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

...

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).

...


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:

...

Seguem os verbos disponíveis na API: 

Verbo
Path
Path
Param
Descrição
GETproceduresBusca por filtro complexo
GETprocedures
procedureId (código do procedimento)
/{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

...

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

Image Added


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

Image Added


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_CLASSE

...

Lógico
eventTypeBR8_TIPEVECaracter
procedureDescriptionBR8_DESCRICaracter
anvisaIdSempre vazio (mantido para manter a integridade já existente)Caracter
tableCodeBTU_CODTAB ou BTQ_CODTABCaracter
manufacturerReferenceBTQ_REFFABCaracter
procedureDentalBR8_ODONTO = '1'Lógico


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": "",
			"procedureDental": false
        }
    ],
    "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": "",
    "procedureDental": false
}


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
}


Busca por dentes:

AtributoCampo ProtheusTipo
procedureCodeBTU_CDTERM ou BTQ_CDTERMCaracter
terminologyCodeB05_CODIGOCaracter
descriptionBTQ_DESTERCaracter
hasSurfacesVerifica se há registros correspondentes no Alias BYLCaracter
permanent

Baseado no campo B05_CODIGO:

11,12,13,14,15,16,17,18,21,22,23,24,25,26,27,28,31,32,33,34,35,36,37,38,41,42,43,44,45,46,47,48 - True

51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85 - False

Lógico
deciduous

Baseado no campo B05_CODIGO:

11,12,13,14,15,16,17,18,21,22,23,24,25,26,27,28,31,32,33,34,35,36,37,38,41,42,43,44,45,46,47,48 - False

51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85 - True

Lógico
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
}


Busca por faces:

AtributoCampo ProtheusTipo
procedureCodeBTU_CDTERM ou BTQ_CDTERMCaracter
idR_E_C_N_O_ da BYLNumérico
teethCodeB05_CODIGOCaracter
terminologyCodeBYL_FACECaracter
hasSurfacesVerifica se há registros correspondentes no Alias BYLCaracter
permanent

Baseado no campo B05_CODIGO:

11,12,13,14,15,16,17,18,21,22,23,24,25,26,27,28,31,32,33,34,35,36,37,38,41,42,43,44,45,46,47,48 - True

51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85 - False

Lógico
deciduous

Baseado no campo B05_CODIGO:

11,12,13,14,15,16,17,18,21,22,23,24,25,26,27,28,31,32,33,34,35,36,37,38,41,42,43,44,45,46,47,48 - False

51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85 - True

Lógico
descriptionBTQ_DESTERCaracter
Bloco de código
titleSucesso 202
{
    "items": [
        {
            "procedureCode": "82000026",
            "id": 10,
            "teethCode": "12  ",
            "terminologyCode": "DIL",
            "hasSurfaces": "1",
            "permanent": true,
            "deciduous": false,
            "description": "Distal Incisal Lingual"
        }
    ],
    "hasNext": false
}



06. PONTOS DE ENTRADA

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

...

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
paramixb[7]cCodRdaCódigo do Prestador que está realizando a buscaCaracter


Retorno:

RetornoDescriçãoTipoObrigatório
cSqlQuery que será executadaCaracterSim

...

Bloco de código
collapse
titlePonto de Entada PLRSTPR1true
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]

    	Local cCodRda:= paramixb[7]      

//Implementar ajuste desejado
   
Return cSql

...

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 PLRSTPR1collapsetruePLRSTPR2
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

...