Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. Configuração INI
  3. Verbos
  4. Exemplo de Chamada da API
  5. Atributos de Resposta
  6. Exemplos de JSON de Resposta

01. VISÃO GERAL

A API clinicalStaff tem como objetivo, trabalhar com ações relacionadas ao corpo clínico no sistema de gestão Plano de Saúde.


VERBO GET

Através do verbo GET, a API pode retornar os dados do corpo clínico (tabela BC1) de uma Rede de Atendimento/Local de Atendimento/Especialidade. Esta solicitação é feita através de 3 Queryparams para realizar este filtro:

QueryParamCampoDescriçãoTipo de Dado
healthProviderCodeBC1_CODIGOCódigo Rede de AtendimentoCaracter
locationCodeBC1_CODLOCCódigo Local de AtendimentoCaracter
specialtyCodeBC1_CODESPCódigo EspecialidadeCaracter


VERBO POST

Através do verbo POST, a API permite realizar a solicitação de inclusão de um novo profissional no Corpo Clínico.

Caso o parametro MV_PLINBC1 esteja desativado, esta solicitação deve ser analisada posteriormente na rotina Análise de Alterações Cadastrais (PLSA814). A solicitação POST permite realizar também, o upload de um arquivo para análise do Auditor (o arquivo deve ser enviado no formato Base 64).



VERBO PUT

Através do verbo PUT, a API permite realizar o bloqueio de um profissional de saúde informado no Corpo Clínico

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/authorizations/<guia>. Exemplo:

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

Logo, a minha URL será: http://localhost:8080/rest/clinicalStaff

03. VERBOS

Seguem os verbos disponíveis na API:

VerboPathQueryParamsPathParamDescrição
GETclinicalStaffhealthProviderCode - RDA
locationCode - Local de Atendimento
specialtyCode - Especialidade 

Retorna os profissionais de um corpo clínico.
POSTclinicalStaff

Solicita o cadastramento de um novo profissional no corpo clínico.
PUTclinicalStaff/{id}/block
id - Recno do profissionalBloqueia um profissional no corpo clínico.

04. EXEMPLO DE CHAMADA DA API

Chamada GET

Exemplo solicitando o Corpo Clínico da RDA 000004, Local de Atendimento 001 e Especialidade 001  .

http://spon019400235:8080/rest/totvshealthplans/v1/clinicalStaff?healthProviderCode=000004&locationCode=001&specialtyCode=001


Chamada POST

Exemplo solicitando a inclusão de um profissional no corpo clínico.

http://spon019400235:8080/rest/totvshealthplans/v1/clinicalStaff

JSON Solicitação POST
{
    "professionalCouncil": "CRM",
    "professionalCouncilNumber": "951248",
    "name": "TESTE INCLUSAO API 4",
    "stateAbbreviation": "SP",
    "locationCode": "001",
    "specialtyCode": "001",
    "healthProviderCode": "000004",
    "filename": "totvs_4.png",
    "officialRecord": "92632864003",
    "base64file": "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"
}
AtributoDescriçãoTipo
professionalCouncilCódigo do conselho médicoCaracter
professionalCouncilNumberNúmero do conselho médicoCaracter
nameNome do profissionalCaracter
stateAbbreviationSigla do EstadoCaracter
locationCodeCódigo do Local de AtendimentoCaracter
specialtyCodeCódigo da EspecialidadeCaracter
healthProviderCodeCódigo da Rede de AtendimentoCaracter
filenameNome de arquivo de anexoCaracter
officialRecordCPF/CNPJ do profissional de saúdeCaracter
base64fileBase64 do arquivo de anexoCaracter


Chamada PUT - Bloqueando um profissional

Exemplo bloqueando o profissional com o Recno 1 (o Recno do profissional enviado deve ser o mesmo do atributo id ao realizar uma solicitação GET previamente)

http://spon019400235:8080/rest/totvshealthplans/v1/clinicalStaff/1/block

05. ATRIBUTOS DE RESPOSTA

Solicitação GET

AtributoCampoTipo
idOnHealthInsurerBC1_CODRDACaracter
professionalCouncilBC1_SIGLCRCaracter
professionalCouncilNumberBC1_NUMCRCaracter
stateAbbreviationBC1_ESTCRCaracter
nameBC1_NOMPRFCaracter
idR_E_C_N_O_Caracter


Solicitação POST

Atributo

Campo

Tipo

code

Campo fixo que indica a ação encontrada: 0001

Caracter
message

Mensagem indicativa referente ao código acima:

0001 - Pedido de inclusao gerado com sucesso

0002 - Não foi encontrada guia, e possível realizar o reenvio

Caracter


06. EXEMPLOS DE JSON DE RESPOSTA


Solicitação GET:


Sucesso 202 - Corpo Clínico encontrado
{
    "items": [
        {
            "idOnHealthInsurer": "000008",
            "professionalCouncil": "",
            "professionalCouncilNumber": "",
            "id": 8,
            "name": "",
            "stateAbbreviation": ""
        },
        {
            "idOnHealthInsurer": "000005",
            "professionalCouncil": "",
            "professionalCouncilNumber": "",
            "id": 9,
            "name": "",
            "stateAbbreviation": ""
        },
        {
            "idOnHealthInsurer": "000003",
            "professionalCouncil": "CRM",
            "professionalCouncilNumber": "555555",
            "id": 10,
            "name": "RDA CLAUDIA",
            "stateAbbreviation": "SP"
        },
        {
            "idOnHealthInsurer": "",
            "professionalCouncil": "CRM",
            "professionalCouncilNumber": "654987",
            "id": 11,
            "name": "DAIANE BERNARDE BATISTA",
            "stateAbbreviation": "SP"
        },
        {
            "idOnHealthInsurer": "",
            "professionalCouncil": "CRO",
            "professionalCouncilNumber": "321987",
            "id": 12,
            "name": "ALMIRO NOGUEIRA FILHO",
            "stateAbbreviation": "SP"
        },
        {
            "idOnHealthInsurer": "000007",
            "professionalCouncil": "CRM",
            "professionalCouncilNumber": "19011985",
            "id": 13,
            "name": "RDA SILVIA SANT ANNA",
            "stateAbbreviation": "SP"
        }
    ],
    "hasNext": false
}
Falha 202 - Corpo clínico não encontrado
{
    "code": 400,
    "message": "Registros nao encontrados",
    "detailedMessage": "Nao foi encontrado o corpo clinico para os parametros informados",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}



Solicitação POST:

Sucesso - Inclusão de pedido gerado com sucesso
{
    "code": "0001",
    "message": "Pedido de inclusao gerado com sucesso: 000030"
}
Falha 202 - Inclusão de pedido não processada
{
    "code": 400,
    "message": "Falha ao criar pedido",
    "detailedMessage": "Nao foi possivel gerar o pedido de inclusao de Profissional no Corpo Clinico",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}


Solicitação PUT - Bloqueio de Profissional

Sucesso - HTTP Status 200

Falha 202 - Id não encontrado
{
    "code": 400,
    "message": "Registros nao encontrados",
    "detailedMessage": "Nao foi encontrado corpo clinico com o id informado",
    "helpUrl": "",
    "details": [
        {
            "code": "",
            "message": "",
            "detailedMessage": "",
            "helpUrl": ""
        }
    ]
}