01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:

Função:
País:Brasil
Story:

02. DESCRIÇÃO

Ponto de entrada para manipular as datas processadas pela rotina padrão de calendário de pagamento permitindo alterar as datas para um cenário especifico.

03. DEMAIS INFORMAÇÕES

Características do Requisito

Rotina:

Rotina(s) envolvida(s)

Nome Técnico

Atendimento (Liberação/SADT/Odonto)

PLSCalendReq

Ponto de Entrada:

PLCPGAPI 


O retorno da função deve respeitar a seguinte estrutura:

aRet := {lOK, aCriticas,cNivAut,cNivCri}

Onde:

Posição

Conteúdo

Descrição

[1]lOkAutorizada ou não (.T. ou .F.)
[2]



Estado lOk

Conteúdo

TruecNivel
FalseaCriticas

Essa posição é definida de acordo com o conteúdo da primeira posição (lOk)

cNivel

aCriticas

Tipo de autorização

0 - Dispensa Autorização
1 - Automática
2 - Guia Operadora
3 - Auditoria
4 - Guia Empresa
5 - Guia Empresa/Operadora
6 - Avaliação Contratual

Matriz com a seguinte estrutura

[1] Código da Critica - Caracter
[2] Descrição da Critica - Caracter
[3] Informação da critica - Caracter
[4] Nível - Caracter
[5] Tipo - Caracter
[6] Cod.TpProced - Caracter
[7] Código do Procedimento - Caracter

[3]cAliCamAlias do caminho da critica
[4]cChaveAuxChave do caminho da critica

Importante: O retorno deve respeitar a mesma estrutura do primeiro parâmetro de entrada, a incorreta devolução do retorno pelo ponto de entrada pode ocasionar em inconsistências na base de dados e erros na execução do programa.

Ponto de Entrada 

Eventos:

Checagem de cobertura para autorização de procedimentos

Programa Fonte:

PLSXAUT.PRW

Função:

PLSAUTP - Autorização de Procedimentos

Parâmetros de entrada:

Nome

Tipo

Descrição

aRetcaracterRetorno padrão da função até o momento da execução do Ponto de Entrada
dDatadataData de execução do procedimento

Retorno:

Nome

Tipo

Descrição

Obrigatório

 aRet

array

Retorno com as informações do nível de autorização/critica do procedimento.
Maiores detalhes da estrutura do array, disponível na descrição do artigo. 

Sim


Exemplo de implementação:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

#include 'protheus.ch'
 
user function PLSAUT02()
    //Parametros do ponto de entrada
    local aRet          := ParamIXB[01] //Criticas ja avaliadas
    local dData         := ParamIXB[02] //Data de execução do procedimento
    local cHora         := ParamIXB[03] //Hora de execução do procedimento
    local cCdTbPd       := ParamIXB[04] //Codigo da tabela
    local cCodPro       := ParamIXB[05] //Codigo do procedimento
    local nQtd          := ParamIXB[06] //Quantidade Executada
    local cCid          := ParamIXB[07] //CID do atendimento
    local cLOCALExec    := ParamIXB[08] //Local de execução ("1" - Autorizacao/"2" - Processamento de Conta)   
    local cOpeSol       := ParamIXB[09] //Operadora do solicitante
    local cCodPRFSol    := ParamIXB[10] //Codigo do profissional Solicitante
    local cCodInt       := ParamIXB[11] //Codigo da Operadora
    local cCodRda       := ParamIXB[12] //Codigo do Prestador
    local cCodLoc       := ParamIXB[13] //Codigo do local de Atendimento no Prestador
    local cLocal        := ParamIXB[14] //Local de Atendimento
    local cCodEsp       := ParamIXB[15] //Codigo da especialidade
    local cOpeUsr       := ParamIXB[16] //Operadora do Beneficiario
    local cMatrUsr      := ParamIXB[17] //Matricula do Beneficiario
    local cPadInt       := ParamIXB[18] //Apto ou enfermaria, conforme tabela de cadastro e atributo do produto
    local aDadUsr       := ParamIXB[19] //Dados do Beneficiario
    local aDadRda       := ParamIXB[20] //Dados do Prestador
    local cTpLocExec    := ParamIXB[21] //Local de validação da critica ("1/4" Remote Protheus  "2" WEB  "3" POS "5" XML)
    local cAteRNA       := ParamIXB[22] //Indica se eh atendimento de recém-nascido
    local cRegAtdNw     := ParamIXB[30] //Código do Regime de Atendimento


    local lSuaRegra     := .T.          //Variavel para controle da regra especifica
    local aCriticas     := {}           //Array com o complemento da critica especifica
    local cNivel        := ""           //Nivel da critica
    local cCodCriEsp    := "799"        //Codigo de sua critica especifica...
    local cDesCriEsp    := "TESTE"      //Descricao de sua critica especifica...
 
    //A funcao PLSPOSGLO retorna se ela esta ativa ou nao de acordo com o local de execucao
    //e tambem cria a critica de acordo com o que foi informado nos parametros 2 e 3
    //caso a mesma nao exista na tabela BCT
    If  PLSPOSGLO(PLSINTPAD(),cCodCriEsp,cDesCriEsp,cLOCALExec)
 
        //Define qual o nivel de autorizacao/critica da regra
        cNivel := "ZAA"
 
        //TODO - Implementar codigo para controlar a variavel que define se a critica sera ou nao submetida
        /*Tratar variavel 'lSuaRegra' aqui
        Exemplo:
        lSuaRegra := MsgYesNo("AUTORIZAR OU NAO?")*/
 
        // Vou criticar/autorizar de acordo com a regra tratada acima
        if !lSuaRegra
            //Aqui devo fazer a montagem do aRet de acordo com a descricao do artigo
            aAdd(aCriticas,{cCodCriEsp,cDesCriEsp,'',BCT->BCT_NIVEL,BCT->BCT_TIPO,cCdTbPd,cCodPro})
            aRet := {.F.,aCriticas,cNivel,'',.F.}
        else
            aRet := {.T.,'',cNivel,''}
        endif 
 
    endif
 
return(aRet)



04. ASSUNTOS RELACIONADOS