Árvore de páginas

Versões comparadas

Chave

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

...

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

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

...


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: 

VerboPath
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



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

Image Added

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.


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


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]
	Local cCodRda:= paramixb[7]      

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


07. PARÂMETROS

A partir da versão disponibilizada na ISSUE DSAUREV-12086 (PLSProceduresSvc.tlpp - 11/07/2024 - 09:50:31) foi criado o parâmetro:

ParâmetroTipoDescriçãoConteúdo Padrão
MV_PLAPIPRCaracter

Define o modo de pesquisa da API procedures.

1 = BUSCA %

2 = % BUSCA %

1


Indicando 1 no parâmetro, a API vai buscar todos o registros que o início seja idêntico a pesquisa realizada. Exemplos:

Buscando por CONSUL, podemos ter os resultados:

  • CONSULTA DE URGÊNCIA
  • CONSULTA ELETIVA
  • CONSULTA ODONTOLÓGICA


Indicado 2 no parâmetro, a API vai buscar todos o registros que tenham a pesquisa realizada, independente se estiver no meio do registro encontrado. Exemplos:

Buscando por CONSUL, podemos ter os resultados:

  • APLICAÇÃO DE HIPOSSENSIBILIZANTE - EM CONSULTÓRIO (AHC) EXCLUSIVE O ALÉRGENO - PLANEJAMENTO TÉCNICO
  • ATENDIMENTO AMBULATORIAL OFTALMOLÓGICO DE CRIANÇA PRÉ-VERBAL (<4 ANOS) OU CRIANÇAS COM DÉFICIT INTELECTUAL, DIFICULDADE DE COMUNICAÇÃO OU POUCO COLABORATIVAS REALIZADA EM CONSULTÓRIO
  • BIOPSIA PERCUTANEA COM AGULHA GROSSA, EM CONSULTORIO


Card documentos
InformacaoA ordenação padrão da API sempre vai trazer os registros em ordem alfabética, por isso, atenção ao utilizar o conteúdo 2 no parâmetro pois os resultados podem ser diferente do esperado pelo Operador. No exemplo acima procuramos por CONSUL em vista de utilizar a Consulta Eletiva, mas haviam registros com CONSUL no meio da descrição e foram apresentados antes pela questão de ordenação.
TituloATENÇÃO