Árvore de páginas

Versões comparadas

Chave

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

...

A regra de quebra de 9.999 guias é feita no lote de intercambio. 

02. SEQUENCIAL PTU

Na versão 1.0 do XML foi adicionado o conceito de sequencial e id único do procedimento seguindo o padrão tiss, para isto foram criados os campos BX6_SEQPTU, B43_SEQPTU, BX6_IDUNIC, B43_IDUNIC.

...

TagRegra Protheus

nrVerTra_PTU

Pergunte de exportação "Versão Atual?"  Se Sim: "2.2", Senão "2.1"

cd_Uni_Destino

BTO_OPEORI

cd_Uni_Origem

BTO_CODOPE

dt_Geracao

Data do servidor

nr_Competencia

BTO_ANOINI + BTO_MESINI

tp_Cobranca

BTO_TPMOV

...

TagRegra Protheus

cd_Unimed

BD6_MATANT / BD6BA1_MATEDI / BTO_OPEORI

id_Benef

BD6_MATANT / BD6BA1_MATEDI / Matricula genérica (9999999999999)

OBS. 
Para os casos de cobrança PEA o sistema enviará sempre o dado: BA1_MATEDI ou Matricula genérica (9999999999999)

nm_Benef

BD6_NOMUSR

id_RN

BD5_ATERNA / BE4_ATENRN

tp_Paciente

BD5_TIPPAC/ '1' Para guias de internação

...

contratadoExecutante e dadosExecutante

CPF_CNPJCPFCGC
TagRegra Protheus

nome

BD5/BE4_NOMRDA

cd_Uni_PrestBAU_CODOPE ou Operadora padrão do sistema
cd_PrestBD6_RDAEDI ou BD5/BE4_CODRDA

CPF_CNPJ

BAU_CPFCGC

CNES

CNES

1º BB8_CNES 

2º BAU_CNES

3º "9999999"

cd_MunicipioCont

BB8_CODMUN

tp_RedeMin

BAU_TIPRED

tp_Prestador

BAG_CODPT(Utilizando BAU_TIPPRE para chegar no registro)

id_RecProprio

BAU_RECPRO

...


contratadoExecutante e dadosExecutante  em casos de cobrança PEA

TagRegra Protheus

nome

1º BB0_NOME(Chave BD5/BE4_REGEXE)

2º BAU_NOME(Chave BD5/BE4_CODRDA)

BD6_NOMEDI

cd_Uni_PrestSe BAU_TIPPRE = OPE : BAU_CODOPE 
Senão: Operadora padrão do sistema
cd_PrestBD6_RDAEDI 

CPF_CNPJ

BD6_CNPJED

CNES

BD5/BE4_CNESED

cd_MunicipioCont

BD5/BE4_MUNED

tp_RedeMin

BAU_TIPRED

tp_Prestador

BD6_TRDAED

id_RecProprio

BD6_RPEDI

Obs:  Se algum dos dados EDI estiverem vazios,  o sistema exportará os dados conforme tabela anterior.

profissionalExecutante

1º BB0_ESTADOESTCRBAQ_CBOS(Chave 1ºBD6_ESPEXE, 2º CODESP)
TagRegra Protheus

nome

1º BB0_NOME

sg_Conselho

1º BB0_CODSIG(Chave BD5/BE4_REGEXE)

2º BAU_SIGLCR(Chave BD5/BE4_CODRDA)

nr_Conselho

1º BB0_NUMCR(Chave BD5/BE4_REGEXE)

2º BAU_CONREG(Chave BD5/BE4_CODRDA)

UF

(Chave BD5/BE4_REGEXE)

2º BAU_

NOME(Chave BD5/BE4_CODRDA)

CBO

sg_Conselho

1º BB0_CODSIG(Chave

BD5/BE4_

dadosGuia

REGEXE)

2º BAU_SIGLCR(Chave BD5/BE4_CODRDA)

TagRegra ProtheusObservação

nr_

Ver_TISS

Conselho

BB0_NUMCR(Chave BD5/BE4_

TISVER

REGEXE)

2º BAU_

TISVER

tp_Consulta

CONREG(Chave BD5/BE4_

TIPCON(Se for igual a 5 mudamos para 2)

CODRDA)

UF

1º BB0_ESTADO(Chave

Apenas para tipo de guia Consulta

nr_LotePrestador

BD5/BE4_

CODPEG

REGEXE)

dt_Protocolo

2º BAU_ESTCR(Chave BD5/BE4_

DTDIGI

dt_Conhecimento

CODRDA)

CBO

BAQ_CBOS(Chave 1ºBD6_ESPEXE, BD5/BE4_CODESP)

dadosGuia

DTDIGIGuiaTissPrestadorNUMIMP

2º BD5/BE4_CODLDP + BD5/BE4_CODPEG + BD5/BE4_NUMERO

TagRegra ProtheusObservação

nr_Ver_

TISS

1º BD5/BE4_

nr_GuiaTissOperadora

BD5/BE4_CODLDP + BD5/BE4_CODPEG + BD5/BE4_NUMERO

nr_GuiaTissPrincipal

BD5_GUIPRI / BE4_GUIINTCaso seja maior que 20 caracteres, removemos o código da operadora que são os 4 primeiros caracteres.

tp_IndAcidente

1º BD5/BE4_INDACI

2º "9"

dt_Atendimento

BD5/BE4_DATPRO + BD5/BE4_HORPRO

id_Liminar

BD5/BE4_GUIJUR

id_Continuado

Existência de um registro válido na tabela B5F.

id_Avisado

Existência da guia na tabela B5S

cd_Excecao

1º Se a tag "nr_Autorizacao" estiver preenchida e  for diferente de  uma internação "C"

2º Senão "L"

3º Caso a tag esteja vazia "0"

id_GlosaTotal

"N"

id_GuiaPrincipal

Se a tag "nr_GuiaTissPrincipal" estiver vazia envia "S".Somente para guia SADT

complemento

TISVER

2º BAU_TISVER


tp_Consulta

BD5/BE4_TIPCON(Se for igual a 5 mudamos para 2)

Apenas para tipo de guia Consulta

nr_LotePrestador

BD5/BE4_CODPEG


dt_Protocolo

BD5/BE4_DTDIGI


dt_Conhecimento

BD5/BE4_DTDIGI

nr_GuiaTissPrestador

1º BD5/BE4_NUMIMP

2º BD5/BE4_CODLDP + BD5/BE4_CODPEG + BD5/BE4_NUMERO


nr_GuiaTissOperadora

BD5/BE4_CODLDP + BD5/BE4_CODPEG + BD5/BE4_NUMERO

nr_GuiaTissPrincipal

BD5_GUIPRI / BE4_GUIINTCaso seja maior que 20 caracteres, removemos o código da operadora que são os 4 primeiros caracteres.

tp_IndAcidente

1º BD5/BE4_INDACI

2º "9"


dt_Atendimento

BD5/BE4_DATPRO + BD5/BE4_HORPRO

id_Liminar

BD5/BE4_GUIJUR

id_Continuado

Existência de um registro válido na tabela B5F.

id_Avisado

Existência da guia na tabela B5S

cd_Excecao

1º Se a tag "nr_Autorizacao" estiver preenchida e  for diferente de  uma internação "C"

2º Senão "L"

3º Caso a tag esteja vazia "0"


id_GlosaTotal

"N"

id_GuiaPrincipal

Se a tag "nr_GuiaTissPrincipal" estiver vazia envia "S".Somente para guia SADT

complemento

TagRegra Protheus

tp_RegCPL

"1" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BD5/BE4_INDCLI + BD5/BE4_INDCL2

tp_RegCPL

"2

TagRegra Protheus

tp_RegCPL

"1" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BD5/BE4_INDCLI + BD5/BE4_INDCL2

tp_RegCPL

"2" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BZC_OBSNO1 + BZC_OBSNO2 (Chave: 1º CODOPE+CODLDP+CODPEG+NUMERO, 2º BD5/BE4_GUIINT)

tp_RegCPL

"3" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BZC_JUSTE1+ BZC_JUSTE2 + BZC_JUSTE3 + BZC_JUSTE4 (Chave: 1º CODOPE+CODLDP+CODPEG+NUMERO, 2º BD5/BE4_GUIINT)

tp_RegCPL

"4

" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BZC_ESMAT1OBSNO1 + BZC_OBSNO2 (Chave: 1º CODOPE+CODLDP+CODPEG+NUMERO, 2º BD5/BE4_GUIINT)

tp_RegCPL

"3" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BZC_JUSTE1+ BZC_JUSTE2 + BZC_JUSTE3 + BZC_JUSTE4 ESMAT2 + BZC_ESMAT3 + BZC_ESMAT4 (Chave: 1º CODOPE+CODLDP+CODPEG+NUMERO, 2º BD5/BE4_GUIINT)

...

TagRegra Protheus

tp_RegCPL

"4" (Preenchido caso o registro abaixo seja diferente de vazio)

nm_DescComplemento

BZC_ESMAT1+ BZC_ESMAT2 + BZC_ESMAT3 + BZC_ESMAT4 (Chave: 1º CODOPE+CODLDP+CODPEG+NUMERO, 2º BD5/BE4_GUIINT)


guiaSADT

TagRegra Protheus

tp_Atendimento

1º BD5_TIPATE

Atendimento

1º BD5_TIPATE

'05'

tp_IndAcidente

1º BD5_INDACI

2º '9'

tp_Consulta

BD5_TIPCON (Se for '5' mudamos para '2')

caraterAtendimento

De-para Tabela 23 - BD5_TIPADM 

...

TagRegra Protheus

CNPJ_Fornecedor


1º BX6_CNPJFO

2º A2_CGC (Chave BD6_NFE → SF1_FORNECE)

3º BD6_CPFRDA

Não exportará na versão 2.1

nm_nm_FornecedorMaterial

1º BX6_NOMFOR

2º A2_NOME (Chave BD6_NFE → SF1_FORNECE)

3º BD5/BE4_NOMRDA

Não exportará na versão 2.1

nr_NotaFiscalFornecedor

1º BX6_NNFFOR

2º F1_DOC(Chave BD6_NFE )

Não exportará na versão 2.1

det_RegistroAnvisa

1º BX6_DREANV

2º BA8_DETANV

Não exportará na versão 2.1

nr_RegistroAnvisa

1º BX6_REGANV

2º BA8_RGANVI

cd_ReferenciaMat_Fab

BD6_REFFED

Não exportará na versão 2.1


procedimentos

TagRegra Protheus

seq_item

BX6_SEQPTU

id_itemUnico

BX6_IDUNIC

tp_Tabela

De-para BTU_CODTAB, Chave: BD6_CODPAD+BD6_CODPRO

Obs: Em caso de itens de pacote, é feito o mesmo processo utilizando B43_CODPAD+B43_CODPRO

Em casos de PACOTE nas exportações de cobrança PEA

O sistema envia os dados do campo BD6_CODPAD

cd_Servico

1º BR8_CODEDI

2º De-para BTU_CDTERM, Chave: BD6_CODPAD+BD6_CODPRO

Obs: Em caso de itens de pacote, é feito o mesmo processo utilizando B43_CODPAD+B43_CODPRO

Obs2: Para procedimentos de tabela própria devemos indicar nos dois primeiros caracteres o tipo de tabela(Material, Diária, Medicamento ou procedimento), isso é identificado pelo BR8_TPPROC, se for 3,4,7,8 envia "18", se for 1,5 envia 19, se for 2 envia 20, nenhuma das opções envia 22.

Em casos de PACOTE nas exportações de cobrança PEA 
O sistema envia os dados do campo BD6_CD_PAC (que contem o pacote recebido na importação da Cobrança)

ds_Servico

1º BD6_

ds_Servico

1º BD6_DESPRO

2º Se for item de pacote B43_DESPRO

...

TagRegra ProtheusObservação

dt_Execucao

BD6_DATPRO


hr_Inicial

BD6_HORPRO


hr_Final

BD6_HORFIM


via_Acesso

1º BGR_CODEDI

2º BGR_CODVIA


tc_Utilizada

Se BD6_TECUTI = 'C' envia '1'

Se BD6_TECUTI = 'V' envia '2'

Se BD6_TECUTI = 'R' envia '3'

Se BD6_TECUTI não for C,V e R' envia o próprio conteudo

Somente se BD6_PROCCI = '1'

id_Acrescimo

Se BD6_PERHES for maior que 1 envia 'S'.


vl_ServCobrado

BD7_VLRBPR

BD7_CODUNM diferente ('COR,COP,UCO,FIL') / Unidades manipuláveis no PE PLS500UNM

vl_FilmeCobrado

BD7_VLRBPR

BD7_CODUNM igual 'FIL' / Unidades manipuláveis no PE PLS500UNM

vl_CO_Cobrado

BD7_VLRBPR

BD7_CODUNM igual ('COR,COP,UCO') / Unidades manipuláveis no PE PLS500UNM

tx_AdmServico

BD7_VLRTAD

BD7_CODUNM diferente ('COR,COP,UCO,FIL') / Unidades manipuláveis no PE PLS500UNM

tx_AdmFilme

BD7_VLRTAD

BD7_CODUNM igual 'FIL'  / Unidades manipuláveis no PE PLS500UNM

tx_AdmCO

BD7_VLRTAD

BD7_CODUNM igual ('COR,COP,UCO') / Unidades manipuláveis no PE PLS500UNM

un_Medida

1º BX6_CODUNM

2º BA8_UNMEDI


ft_MultiplicadorServico

BD6_PERHES

id_AvisadoItem

Existência na tabela B6S

id_Pacote

Existência na tabela B43

cd_Pacote

BD6_CODPRO dependendo da existência na tabela B43

cd_PorteAnestesico

Se BD4_PORMED= '3A' envia '1'

Se BD4_PORMED= '3C' envia '2'

Se BD4_PORMED= '4C' envia '3'

Se BD4_PORMED= '6B' envia '4'

Se BD4_PORMED= '7C' envia '2'

Se BD4_PORMED= '9B' envia '6'

Se BD4_PORMED= '10C' envia '7'

Se BD4_PORMED= '12A' envia '8'

Senão BKF_CODEDI

Se o procedimento tiver PA na composição.

cd_Ato

Se BAU_TIPPRE = "MED","ANE" envia "1"


equipe_Profissional

  • Se BR8_EQUIPE = 1 ou em branco o sistema irá realizar a exportação da equipe mesmo se  BD7_CODTPA for vazio. 
  • Se a participação do evento ficar como 0 ou O - Não se aplica participação, a tag equipe_Profissional não será exportada para o evento em questão;
  • Se a guia for diferente de Honorários, será verificado na tabela BD7 os campos tipo de participação e executante do evento. Se ambos estiverem vazios, a tag equipe_Profissional não será exportada.BR8_EQUIPE =  Não,  não será exportada a equipe
TagRegra Protheus

tp_Participacao

1° Se BD7_CODTPA for diferente de vazio, de-para BTU Tabela 35 .

2° Se for vazio e BD7_CODUNM = 'PAP,PA,PAR' envia '06'

3° Se for vazio e BD7_CODUNM = 'AUX' envia BD7_NLANC

nm_Profissional

1º BB0_NOME → Chave de busca: BD7_CDPFPR

2º Se BAU_TIPPE for igual a 'F' BAU_NOME, se não BAU_DIRTEC.

cd_cpf

1º BB0_CGC →  Chave de busca: BD7_CDPFPR

2º Se BAU_TIPPE for igual a 'F' BAU_CPFCGC, se não envia vazio.

sg_Conselho

1º BD7_SIGLA

2º Se BAU_TIPPE for igual a 'F' BAU_SIGLCR, se não BAU_SIGDIR.

nr_Conselho

1º BD7_REGPRE

2º Se BAU_TIPPE for igual a 'F' BAU_CONREG, se não BAU_DIRREG.

UF

1º BD7_ESTPRE de-para BTU tabela 59

2º Se BAU_TIPPE for igual a 'F' BAU_ESTCR, se não BAU_UFCDIR.

CBO

1° BAQ_CBOS → Chave de Busca: BD7_ESPEXE 

2° BAQ_CBOS → Chave de Busca: BD7_CODESP

...

Nome:

PLSR506

Descrição:

Este Ponto de Entrada permite adicionar dados de NFE ao PTU para exportação das tags nr_NotaFiscalDoc e link_NFeDoc.

Localização:

Exportação PTU A500

Programa Fonte:

PLSUA500X

Função:

processa

Parâmetros:

cTipo - Carácter - Indica o tipo de documento que está chamando o ponto. Caso seja "1" é para o bloco documento1 caso seja "2" é o bloco documento2. Além deste parametro as tabelas BTO e SE1 estão posicionadas.

Retorno:

aRet

aRet[1] - Dado da tag nr_NotaFiscalDoc.

aRet[2] - Dado da tag link_NFeDoc.

aRet[3] - Dado da tag nr_Documento e doc_Fiscal.

Exemplo:

user function PLSR506()
local aParam:= paramixb[1]
local aRet := {'',''}

ZAA->(dbsetorder(1))
if ZAA->(msSeek(xfilial('ZAA')+SE1->E1_NUM))
   aRet[1] := ZAA->ZAA_NUM

   aRet[2] := ZAA->ZAA_URL

endif
 
return aRet


Nome:

PTUDEPARA

Descrição:

Este Ponto de Entrada permite a manipulação do código de tabela e procedimento a serem exportados.

Localização:

Exportação PTU A500/A550

Programa Fonte:

PLSUA500X/PLSUA550X

Função:

dePara

Parâmetros:

 BD6_CODPAD,BD6_CODPRO,BD6_DATPRO,BD6_CODRDA

Retorno:

aRet

aRet[1] - lAchou - Variável lógica, se retornar .T. irá considerar o retorno do PE e não fará o de-para padrão na BTU, se retornar .F. irá realizar o de-para padrão do sistema.

aRet[2]- cCodPad - Código da tabela padrão tiss (00,18,19,20,22 e etc)

aRet[3] - cCodPro - Código de procedimento.

Exemplo:

user function PTUDEPARA()


cCodPad := paramixb[1]
cCodPro := paramixb[2]
cDatPro := paramixb[3]


return {.t.,"22","10101012"}

07. LOG DE ERROS

Foi implementado na rotina um sistema de validação do XML gerado com o schema disponibilizado pela Unimed do Brasil, sendo assim garantimos que o XML gerado está dentro do minimo esperado pelo padrão.

Caso ao final da exportação do arquivo seja exibida a mensagem "Falha na estrutura." será gerado um arquivo com o mesmo nome do XML mas com o final ".LOG".

Abaixo alguns exemplos de erros que podem ocorrer:

  • "This element is not expected": Por padrão de estrutura de um XML, temos que seguir a ordem das tags obrigatórias. No exemplo abaixo o erro aponta que no protocolo e guia descritas a tag "sg_Conselho" não foi exportada, para resolver o problema é necessário analisar o tópico "Tag x Protheus" e verificar se existe algum dado para exporta-lo na tag.

Image Removed

  • "Input is not proper UTF-8, indicate encoding !": O erro abaixo está apontando que na tag "nm_Benef" possui um carácter invalido no final, o carácter sempre será apontado pela seta. Neste caso é necessário exclui-lo manualmente pois não iremos tratar via código.

Image Removed

  • "The value is not an element of the set": Algumas tags possuem valor controlado, no exemplo abaixo na tag "tp_Paciente" só pode ser colocado os conteúdos '1' e '9' mas estão enviando '6' no campo.

Image Removed

  • "is not a valid value of the atomic": Neste caso a tag possui a limitação de somente números e tamanho 10, mas estão enviando uma string no campo causando erro.

Image Removed

Nome:

PLU5CNES

Descrição:

O Ponto de Entrada permite manipular o CNES, que será exportado nas tags quando "honorário" e "contratadoexecutante"

Localização:

Exportação PTU A500/A550

Programa Fonte:

PLSUA500X

Função:

 Honorário() e contratadoexecutante()

Parâmetros:

cCnes (CNES localizado pelo sistema), cCodRDA (código RDA do cabeçalho da guia), cAlias (alias da query que manipula os dados da exportação)

Retorno:

cCNESPE (Caractere)

Deve retornar obrigatoriamente um valor do tipo caractere, que deve conter o valor do CNES desejado.

Exemplo:

USER FUNCTION PLU5CNES()


local cCNESPLS  := paramixb[1] //CNES encontrado pelo SIGAPLS
local cCodRDA   := paramixb[2] //Código da RDA
local aAliSis        := paramixb[3] //Alias da query de dados
local lOrigCham := iif( IsInCallStack("contratadoExecutante"), .t., .f. ) //verifico se CNES da função contratadoExecutante ou Honorario
local cCnesPE     := iif( lOrigCham, "ABC963147", "HON760" ) //se função contratadoExecutante, retorna "ABC963147", se não - honorários - HON760"

RETURN cCnesPE     

07. LOG DE ERROS

Foi implementado na rotina um sistema de validação do XML gerado com o schema disponibilizado pela Unimed do Brasil, sendo assim garantimos que o XML gerado está dentro do mínimo esperado pelo padrão.

Caso ao final da exportação do arquivo seja exibida a mensagem "Falha na estrutura." será gerado um arquivo com o mesmo nome do XML mas com o final ".LOG".

Abaixo alguns exemplos de erros que podem ocorrer:

  • "This element is not expected": Por padrão de estrutura de um XML, temos que seguir a ordem das tags obrigatórias. No exemplo abaixo o erro aponta que no protocolo e guia descritas a tag "sg_Conselho" não foi exportada, para resolver o problema é necessário analisar o tópico "Tag x Protheus" e verificar se existe algum dado para exporta-lo na tag.

Image Added

  • "Input is not proper UTF-8, indicate encoding !": O erro abaixo está apontando que na tag "nm_Benef" possui um carácter invalido no final, o carácter sempre será apontado pela seta. Neste caso é necessário exclui-lo manualmente pois não iremos tratar via código.

Image Added

  • "The value is not an element of the set": Algumas tags possuem valor controlado, no exemplo abaixo na tag "tp_Paciente" só pode ser colocado os conteúdos '1' e '9' mas estão enviando '6' no campo.

Image Added

  • "is not a valid value of the atomic": Neste caso a tag possui a limitação de somente números e tamanho 10, mas estão enviando uma string no campo causando erro.

Image Added


08. ALTERAÇÕES DA VERSÃO 2.1 

 

  • Será necessário a criação da subpasta V2_2 dentro da pasta de schemas, já existente em: Protheus_data\plsptu\schemaspara armazenar os novos schemas. Portanto, para funcionamento correto da versão 2.2, os novos schemas devem ficar no diretório: Protheus_data\plsptu\schemas\V2_2.


  • Ao selecionar o arquivo e clicar no botão exportar, será exibido uma janela de parâmetros para selecionar o caminho que o arquivo será salvo e qual é a Versão do PTU.
  • Se escolhido : 1- PTU 2.2 , o sistema irá validar a versão 2.2, saindo na tag <nrVerTra_PTU> o valor "05", validando com o schema novo, que deve estar no diretório: Protheus_data\plsptu\schemas\V2_2.  Se for necessário exportar na versão anterior (2- PTU 2.1), mantenha selecionado no combo Versão do PTU a versão PTU 2.1 e o sistema irá validar o schema na pasta Protheus_data\plsptu\schemas\V2_1.



09

...

MENU

  • No Configurador (SIGACFG), acesse Ambientes/Cadastro/Menu (CFGX013). Informe a nova opção de menu do SIGAPLS, conforme instruções a seguir:

...