Histórico da Página
...
Na prática, o cliente deverá remover a chamada do segmento xxxxx e no lugar desta chamada utilizar o código abaixo, o qual alimenta os campos da temp-table com os campos que antes eram enviados para o segmento de conexão.
Substituir a criação do segmento pela criação da temp tmp-servicos-req, atribuindo os valores do segmento nas respectivas posições da temp conforme exemplo a seguir.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{acp/ac1006d.i} /* def temp-table tmp-servicos-req no-undo field in-ordem as int /* Não utilizado */ field tp-servico as char format "x(12)" field tp-insumo as char format "99" field qt-servico as char format "999" field qt-servico-dec as char format "999" field cd-servico as char format "99999999" field cd-tipo-percentual as char format "99" field vl-servico as char format "x(9)" field cd-prest-exec as char format "x(15)" field cd-prest-divisao as char format "x(15)" field cd-grau-part as char format "x(2)" field cd-via-acesso as char field cd-tecnica as char field cd-servico-generico as char format "99999999" field nm-prof-exec as char format "x(70)" field cons-prof-compl as char field num-cons-compl as char field uf-compl as char field cd-cbos-compl as char field nr-cpf-compl as char field hr-inicial as char field hr-final as char field dt-realizacao as date field cd-variacao as int field cd-servico-principal-pacote as char /* Serviço principal utilizado no pacote, caso deseje utilizar um procedimento alternativo ao invés do principal */ field cr-solicitacao as char /* U - Urgência E - Eletivo */ field tp-comb as char field ds-servico as char. def temp-table tmp-retorno-serv no-undo field id-autoriza as char field in-servico as char field tp-servico as char field cd-servico as int64 field qt-ser-per as dec field vl-part-cob as dec field cd-erro-sistema as char field cd-pacote as char. */ def var in-prox-pos as int no-undo. def var nr-ver-tra-imp as char no-undo. def var segmento-req-par as char no-undo. assign nr-ver-tra-imp = substr(segmento-req-par, 81, 2). case nr-ver-tra-imp: when "22" then assign in-prox-pos = 3399. when "24" then assign in-prox-pos = 3393. when "25" then assign in-prox-pos = 3409. end case. repeat: case nr-ver-tra-imp: when "22" or when "25" then assign in-prox-pos = in-prox-pos + 29. when "24" then assign in-prox-pos = in-prox-pos + 35. end case. create tmp-servicos-req. assign tmp-servicos-req.tp-servico = substr(segmento-req-par,in-prox-pos + 01, 1) //I - Insumos, P - Procedimentos e A - Pacote tmp-servicos-req.tp-insumo = substr(segmento-req-par,in-prox-pos + 02, 2) //Tipo insumo tmp-servicos-req.qt-servico = substr(segmento-req-par,in-prox-pos + 12,5) //Quantidade inteira do serviço (Ex: Qtd: 12,5, este campo fica 12) tmp-servicos-req.qt-servico-dec = substr(segmento-req-par,in-prox-pos + 17,3) //Quantidade fracionada do serviço (Ex: Qtd: 12,5, este campo fica 5) tmp-servicos-req.cd-servico = substr(segmento-req-par,in-prox-pos + 04, 8) //Código do serviço, 8 dígitos para procedimentos ou pacotes e 10 dígitos para insumos tmp-servicos-req.cd-tipo-percentual = substr(segmento-req-par,in-prox-pos + 34,2) //45-Fator Red/Acr tmp-servicos-req.vl-servico = substr(segmento-req-par,in-prox-pos + 20,14) //Valor do serviço informado em tela sem a virgula (Ex: Valor 100,10, este campo fica 10010) tmp-servicos-req.cd-prest-exec = substr(segmento-req-par,in-prox-pos + 51,15) //Unidade do prestador exec (4 dígitos) + código do prestador exec (8 dígitos) + código especialidade do prestador exec (3 dígitos) tmp-servicos-req.cd-prest-divisao = substr(segmento-req-par,in-prox-pos + 36,15) //Unidade do prestador divisão (4 dígitos) + código do prestador divisão (8 dígitos) + código especialidade do prestador divisão (3 dígitos) tmp-servicos-req.cd-grau-part = substr(segmento-req-par,in-prox-pos + 152,2) //Grau de participação do membro de equipe tmp-servicos-req.cd-via-acesso = substr(segmento-req-par,in-prox-pos + 149,2) //Via de acesso tmp-servicos-req.cd-tecnica = substr(segmento-req-par,in-prox-pos + 151,1) //Técnica utilizada tmp-servicos-req.nm-prof-exec = substr(segmento-req-par,in-prox-pos + 67,70) //Nome do profissional pf executante tmp-servicos-req.cons-prof-compl = substr(segmento-req-par,in-prox-pos + 154,7) //Sigla do conselho do profissional pf executante tmp-servicos-req.num-cons-compl = substr(segmento-req-par,in-prox-pos + 161,15) //Numero do conselho do profissional pf executante tmp-servicos-req.uf-compl = substr(segmento-req-par,in-prox-pos + 176,2) //Numero do conselho do profissional pf executante tmp-servicos-req.cd-cbos-compl = substr(segmento-req-par,in-prox-pos + 178,7) //CBOS do profissional pf executante tmp-servicos-req.nr-cpf-compl = /* Não era passado por segmento */ //Cpf do conselho do profissional pf executante tmp-servicos-req.hr-inicial = substr(segmento-req-par,in-prox-pos + 145,4) //Hora inicial do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.hr-final = substr(segmento-req-par,in-prox-pos + 145,4) //Hora final do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.dt-realizacao = substr(segmento-req-par,in-prox-pos + 141,8) //Data do registro (Ex: 25/05/2021, este campo fica 25052021) tmp-servicos-req.cd-variacao = substr(segmento-req-par,in-prox-pos + 189,4) //Código da variação do procedimento tmp-servicos-req.cr-solicitacao = substr(segmento-req-par,in-prox-pos + 66,1) //Caráter da solicitação tmp-servicos-req.tp-comb = substr(segmento-req-par,in-prox-pos + 193,6) //Tipo da combinação não permitida /*tmp-servicos-req.ds-servico = Apenas versão >= 12.1.33 */ //Descrição do insumo genérico realizado, utilizado para controlar a quantidade utilizada corretamente (mov-insu.char-21, insuusos.char-21, insuguia.char-4) if nr-ver-tra-imp = "22" or nr-ver-tra-imp = "24" or nr-ver-tra-imp = "25" then assign in-prox-pos = in-prox-pos + 165. end. //Retorno if length (LinhaDeVolta-par) < 174 then leave. assign in-prox-pos-aux = 174. repeat: create tmp-retorno-serv. assign tmp-retorno-serv.id-autoriza = substr(LinhaDeVolta-par,in-prox-pos-aux , 1) //Status do registro tmp-retorno-serv.in-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 1, 1) //I - Insumos, P - Procedimentos tmp-retorno-serv.tp-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 3,2) //Tipo insumo tmp-retorno-serv.cd-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 5, 8) //Serviço, é retornado com 8 ou 10 dígitos dependendo do tipo tmp-retorno-serv.qt-ser-per = substr(LinhaDeVolta-par,in-prox-pos-aux + 13,8) //Quantidade do serviço (Ex: Qtd: 12,5, este campo fica 12500) tmp-retorno-serv.vl-part-cob = substr(LinhaDeVolta-par,in-prox-pos-aux + 21,14) //Valor da participação no prestador (Ex: 100,15, este campo fica com 10015) tmp-retorno-serv.cd-erro-sistema = substr(LinhaDeVolta-par,in-prox-pos-aux + 35, 4) //Mensagem de erro no sistema tmp-retorno-serv.cd-pacote = substr(LinhaDeVolta-par,in-prox-pos-aux + 47, 8).//Código do pacote do procedimento ou insumo assign in-prox-pos-aux = in-prox-pos-aux + 56. end. |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas