Histórico da Página
Ponto de entrada PLTISESP
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Saúde | ||||
Módulo: | Plano de Saúde | ||||
Rotina: |
|
Parâmetro(s): |
|
| |||||||
Ponto de Entrada: | PLTISESP | ||||||
País(es): | Todos | ||||||
Banco(s) de Dados: | Todos | ||||||
Sistema(s) Operacional(is): | Todos |
Versões/Release:
Descrição
Realizada implementação do Ponto de Entrada PLTISESP em submissão/importação de arquivos XML TISS superiores ou iguais à versão 3.
Ponto de Entrada
Descrição: | Utilizado na rotina de submissão de arquivos XML para que seja possível realizar o De/Para para associar mais de um CBO-s para uma especialidade. | |||||||||||
Localização: | Atualizações\Proc de Contas\Gerenciador XML TISS | |||||||||||
Eventos: | Submissão e Importação de Arquivos XML TISS | |||||||||||
Programa Fonte: |
| |||||||||||
Função: |
| |||||||||||
Retorno: |
|
|
Implementação
Na submissão, o ponto de entrada serve tanto para manipular o tratamento padrão das criticas referente ao CBOS dos Profissionais (maiores informações nesse artigo ), quanto na criação de novas críticas. Para isso o usuário deve configurar um novo registro na rotina Motivos Críticas (Atualizações\Cadastro Contas\Motivos de Críticas (PLSA505)) inserindo um item filho na tabela BVN (Validacao das Criticas TISS) com as seguintes informações:
BCT - Cabeçalho
Critica criado como auxilio na implementação desse ponto de entrada:
BVN_TISVER - Versão TISS
Versão do arquivo que a crítica deve ser submetida
BVN_CAMTAG - Caminho Tag
Caminho da TAG da critica a ser avaliada. O caminho é importante apenas quando é necessário diferenciar TAGS exclusivas de determinado tipo de arquivo. Ex.:
SADT: \GUIASP-SADT\PROCEDIMENTOSEXECUTADOS\PROCEDIMENTOEXECUTADO\EQUIPESADT
GRI: \GUIARESUMOINTERNACAO\PROCEDIMENTOSEXECUTADOS\PROCEDIMENTOEXECUTADO\IDENTEQUIPE
BVN_TAG - Tag XML
Tag a ser validada
BVN_TPVLD - Tipo Validação
Existem 4 tipos de validação:
1=Busca Registro;2=Valida Terminologia;3=Expressão;4=Existencia da TAG
Essa implementação entra somente no mérito do tipo 3 pois a validação será realizada através de uma expressão
BVN_DADEXP - Dado/Express
Aqui pode ser cadastrada tanto uma expressão criada pelo usuário (User Function) quanto a função PlTrCBOSUB que é utilizada no padrão de tratamento do CBOS.
A função cadastrada nesse campo será executada no momento que a TAG estiver em validação. Para utilizar a função padrão basta informar o parâmetro cCodGlo que se refere ao código da glosa customizada que está sendo validada e os demais parâmetros utilizados na função conforme exemplo abaixo:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
PlTrCBOSUB('791',_CCBOEXE,_CCBOSOL,_CCODESP,_CESPEXE,_CESPSOL,ADADUSR,ADADRDA,CCODPAD,CCODPRO) |
BVN_TAGMSG - Tag Mensagem (Opcional)
Valor da TAG a ser informado no LOG caso o arquivo não seja acatado. O padrão é que o sistema exiba o valor da TAG informada no campo BVN_TAG. No exemplo abaixo me interessa saber o valor da TAG CODIGOPROCEDIMENTO no momento da validação.
BVN_MSGAUX - Msg. Aux. (Opcional)
Mensagem auxiliar a ser informada no LOG caso o arquivo não seja acatado.
IMPORTANTE: Informar somente expressões nesse campo, caso seja uma mensagem de texto, utilizar aspas para iniciar e terminar o texto conforme exemplo abaixo
A partir da parametrização acima podemos desenvolver o ponto de entrada, lembrando que caso as criticas padrão sejam alteradas, a lógica no bloco da importação deve seguir o mesmo princípio da submissão, haja visto que validando uma informação e gravando outra pode ocasionar inconsistência na base de dados. Segue exemplo de desenvolvimento do ponto de entrada que contempla tanto o tratamento para a critica customizada na submissão, quanto a alteração da validação das criticas do padrão e gravação da importação:
Bloco de código | ||||||
---|---|---|---|---|---|---|
|
| |||
#include 'Protheus.ch' |
Local cCodCbo
user function PLTISESP() local cTpTran := |
ParamIXB[ |
Local cCodEsp := ""
Local lRet := .F.
If cCodCbo == "225125" .And. paramixb[1] == "1"
cCodEsp := "001"
lRet := .T.
Endif
/*O retorno deve ser um Array com três posições
[1] - Codigo da Especialidade*/
[2] - Codigo do CBOS
[3] - Retorno da Validação
Return {cCodEsp,cCodCbo,lRet}
1] //"1" - Submissao, "2" - Importacao
local cTipPro := ParamIXB[2] //"S" - Solicitante, "E" - Executante
local cNomProf := ParamIXB[3] //Nome do profissional de Saude
local cCboX := ParamIXB[4] //CBOS enviado no arquivo
local cEspX := ParamIXB[5] //Especialidade retornada apos realizar o De/Para
local cCodGlo := ParamIXB[6] //Codigo da glosa em validacao
local cCodEsp := "" //Codigo da especialidade tratada
local cCodCbo := "" //Codigo do CBOS tratado
local lRet := .T. //Retorno da validacao
local aRet := {} //Retorno da funcao
//Bloco da submissao
if cTpTran == "1"
Do Case
//Bloco de validacao critica X25
Case cCodGlo == "X25"
if cCboX == "225103"
cCodCbo := "225105"
cCodEsp := "036"
lRet := .F.
aAdd(aRet,cCodEsp)
aAdd(aRet,cCodCbo)
aAdd(aRet,lRet)
elseif cCboX == "225105"
cCodCbo := "225103"
cCodEsp := "035"
lRet := .F.
aAdd(aRet,cCodEsp)
aAdd(aRet,cCodCbo)
aAdd(aRet,lRet)
else
aAdd(aRet,cEspX)
aAdd(aRet,cCboX)
aAdd(aRet,lRet)
endif
//Bloco de validacao critica 791
Case cCodGlo == "791"
lRet := .F.
aAdd(aRet,cEspX)
aAdd(aRet,cCboX)
aAdd(aRet,lRet)
Otherwise
aAdd(aRet,cEspX)
aAdd(aRet,cCboX)
aAdd(aRet,lRet)
EndCase
//Bloco de validacao da importacao
else
cCodCbo := "999999"
cCodEsp := "999"
aAdd(aRet,cCodEsp)
aAdd(aRet,cCodCbo)
endif
return aRet |