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 |
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:
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:
#include 'Protheus.ch' user function PLTISESP() local cTpTran := ParamIXB[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