Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
{acp/ac1008d.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 cd-unid-medida as char /* Removido na 12.1.33 */ field tp-comb as char field tp-dente-regiao as char field qt-us as dec field id-face-dente as char format "x(25)". 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-sistemapacote 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). caseassign nrin-ver-tra-imp: prox-pos when "22" then assign in-prox-pos = 3399. when "24" then assign = 554. if nr-ver-tra-imp = "04" then in-prox-pos = 3393. when "25" then assign in-prox-pos = 3409551. end case. repeat: repeat: case nr-ver-tra-imp: when "22" or when "25" then assign in-prox-pos = in-prox-pos + 29. create tmp-servicos-req. /* Campo da temp *//* Posição que a informação estava no segmento *//* when "24" then assign in-prox-pos = in-prox-pos + 35.Descrição */ assign tmp-servicos-req.tp-servico = substr(segmento-req-par,in-prox-pos + 01, 1) //I - Insumos, P - Procedimentos e A - Pacote end case. create tmp-servicos-req. tp-insumo /* Campo da temp = substr(segmento-req-par,in-prox-pos + *//* Posição que a informação estava no segmento *//* Descrição */ assign 02, 2) //Tipo insumo tmp-servicos-req.tpqt-servico = substr(segmento-req-par,in-prox-pos + 0112,5) 1) //IQuantidade inteira -do Insumos, P - Procedimentos e A - Pacoteserviço (Ex: Qtd: 12,5, este campo fica 12) tmp-servicos-req.tpqt-servico-insumodec = substr(segmento-req-par,in-prox-pos + 0217,3) 2) //Tipo insumoQuantidade fracionada do serviço (Ex: Qtd: 12,5, este campo fica 5) tmp-servicos-req.qtcd-servico = substr(segmento-req-par,in-prox-pos + 1204,5 8) //QuantidadeCódigo inteira do serviço (Ex: Qtd: 12,5, este campo fica 12) tmp-servicos-req.qt-servico-dec , 8 dígitos para procedimentos ou pacotes e 10 dígitos para insumos. No caso de 10 dígitos é possível dar um assign no campo com os 10 dígitos. = substr(segmento tmp-servicos-req.vl-servico = substr(segmento-req-par,in-prox-pos + 1720,314) //QuantidadeValor fracionada do serviço informado em tela sem a virgula (Ex: Qtd:Valor 12100,510, este campo fica 510010) tmp-servicos-req.cd-prest-servicoexec = substr(segmento-req-par,in-prox-pos + 0449, 815) //CódigoUnidade do prestador serviço,exec 8(4 dígitos) para+ procedimentoscódigo oudo pacotesprestador eexec 10(8 dígitos) para+ insumos.código Noespecialidade casodo deprestador 10 dígitos é possível dar um assign no campo com os 10 dígitos.exec (3 dígitos) tmp-servicos-req.cdnm-tipo-percentualprof-exec = substr(segmento-req-par,in-prox-pos + 3477,270) //45-Fator Red/AcrNome do profissional pf executante tmp-servicos-req.vlcons-prof-servicocompl = substr(segmento-req-par,in-prox-pos + 20208,145) //ValorSigla do serviçoconselho informadodo emprofissional telapf semexecutante a virgula (Ex: Valor 100,10, este campo fica 10010) tmp-servicos tmp-servicos-req.cdnum-prestcons-exec compl = substr(segmento-req-par,in-prox-pos + 51147,15) //UnidadeNumero do prestador exec (4 dígitos) + código conselho do prestadorprofissional execpf (8executante dígitos) + código especialidade do prestador exec (3 dígitos) tmp-servicos-req.uf-compl tmp-servicos-req.cd-prest-divisao = substr(segmento-req-par,in-prox-pos + 36162,152) //UnidadeNumero do prestadorconselho divisãodo (4profissional dígitos)pf +executante código do prestador divisão (8 dígitos) + código especialidade do prestador divisão (3 dígitos) tmp-servicos-req.cd-graucbos-partcompl = substr(segmento-req-par,in-prox-pos + 152164,27) //Grau de participaçãoCBOS do membroprofissional depf equipeexecutante tmp-servicos-req.cd-via-acessohr-inicial = substr(segmento-req-par,in-prox-pos + 14973,24) //Via de acessoHora inicial do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.cdhr-tecnicafinal = substr(segmento-req-par,in-prox-pos + 15173,14) //TécnicaHora utilizada final do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.nm-prof-exec dt-realizacao = substr(segmento-req-par,in-prox-pos + 6765,708) //NomeData do profissional pf executante registro (Ex: 25/05/2021, este campo fica 25052021) tmp-servicos-req.cons-prof-compltp-comb = substr(segmento-req-par,in-prox-pos + 154212,76) //SiglaTipo doda conselhocombinação do profissional pf executantenão permitida tmp-servicos-req.numtp-consdente-compl regiao = substr(segmento-req-par,in-prox-pos + 161171,154) //NumeroTipo dode conselhodente do profissional pf executanteregiao tmp-servicos-req.uf-complqt-us = substr(segmento-req-par,in-prox-pos + 176200,27) //Numero do conselho do profissional pf executante Qt us tmp-servicos-req.cdid-cbosface-compldente = substr(segmento-req-par,in-prox-pos + 178175,725) . //CBOSId do profissional pf executanteface dente assign in-prox-pos = tmp-servicos-req.nr-cpf-compl in-prox-pos + 219. end. //Retorno if length (LinhaDeVolta-par) < 225 then leave. assign in-prox-pos-aux = 225. repeat: = /*create tmp-retorno-serv. Não era passado por segmentoassign tmp-retorno-serv.id-autoriza = substr(LinhaDeVolta-par,in-prox-pos-aux , 1) */ //CpfStatus do conselho do profissional pf executanteregistro tmp-servicosretorno-reqserv.hr-inicial in-servico = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 1451,4 1) //HoraI inicial do registro (Ex: 12:57- Insumos, esteP campo fica 1257)- Procedimentos tmp-servicosretorno-reqserv.hrtp-finalservico = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 1453,42) //Hora final do registro (Ex: 12:57, este campo fica 1257)Tipo insumo tmp-servicosretorno-reqserv.dt-realizacao cd-servico = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 1415, 8) //Data do registro (Ex: 25/05/2021, este campo fica 25052021)Serviço, é retornado com 8 ou 10 dígitos dependendo do tipo tmp-servicosretorno-reqserv.cdqt-ser-variacaoper = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 18913,48) //Código da variação do procedimentoQuantidade do serviço (Ex: Qtd: 12,5, este campo fica 12500) tmp-servicosretorno-reqserv.cr-solicitacao vl-part-cob = substr(segmento-reqLinhaDeVolta-par,in-prox-pos-aux + 6621,114) //CaráterValor da solicitação participação no prestador (Ex: 100,15, este campo fica com 10015) tmp-servicos-req.tp-comb tmp-retorno-serv.cd-pacote = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 19335,68) //Tipo da combinação não permitida Codigo do pacote assign in-prox-pos-aux = /*tmpin-servicosprox-req.dspos-servicoaux + 56. = 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. |
Após deve ser feito a chamada para o AC1006D passando os paramento conforme definição a seguir.
|
Após deve ser feito a chamada para o AC1008D passando os paramento conforme definição a seguir.
Bloco de código | ||
---|---|---|
| ||
/*01*/ | ||
Bloco de código | ||
| ||
/*01*/ def input param lg-mens-tela-par as log no-undo. /*02*/ def input param lg-simulacao-par as log no-undo. /*03*/ def input param r-maquclin-par as recid no-undo. /*04*/ def input param in-tipo-proces-par as char format "x(01)" no-undo. /*05*/ def input param segmento-req-par as char format "x(8000)" no-undo. /* Segmento com os dados do documento (sem o serviço) */ /*06*/ def input param idlg-mens-aplicativotela-par as log like paramint.id-aplicativo no-undo. /*07*/ def output param segmento-res-par as char format "x(8000)" no-undo. /* Segmento com retorno dos dados do documento (sem o serviço) */ /*0802*/def definput output param cdlg-errosimulacao-sistema-par as log char no-undo. /*0903*/ def input param lg-trata-comb-nao-perm-wac-par as int r-maquclin-par as recid no-undo. /*1004*/def definput output param dsin-errotipo-sistemaproces-ptu-par as char format init ""x(01)" no-undo. /*1105*/def definput output param dssegmento-erro-comb-nao-perm-req-par as char format "x(8000)" no-undo. /* Segmento com os dados do documento (sem o no-undo. serviço) */ /*1206*/ def input param table for tmp-servicos-req. /* Solicitação de serviços, substitui parte do segmento */ /*13*/ id-aplicativo-par like paramint.id-aplicativo no-undo. /*07*/def output param table for tmp-docusos.segmento-res-par /* Retorno temp igualas achar docusos para acesso em caso de simulação */ /*14*/ def output param table for tmp-procusosformat "x(8000)" no-undo. /* RetornoSegmento tempcom igual aretorno procusosdos paradados acessodo emdocumento caso(sem deo simulaçãoserviço) */ /*1508*/ def output param table for tmp-insuusos. /* Retorno temp igual a insuusos para acesso em caso de simulação */ /*16*/ def output param table for tmp-retorno-serv. /* Retorno do resultado do registro por movimento */ cd-erro-sistema-par as char no-undo. /*09*/def input param lg-trata-comb-nao-perm-wac-par as int no-undo. |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas