From 4d75e8f8e2741010ccb79a7e1e6038cfadd18ba1 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Mon, 24 Aug 2026 14:29:44 -0300 Subject: [PATCH] =?UTF-8?q?Inclus=C3=A3o=20dos=20parametros=20da=20operado?= =?UTF-8?q?ra=20Unimed=20Foz.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.json | 8 +- CLAUDE.md | 26 +- media/planos_saude/operadora/Mensalidade.pdf | 1649 ++++++ .../operadora/cooparticipação.pdf | 5261 +++++++++++++++++ .../planilha_padrao/questor_1123_2026-08.csv | 24 + plano.md | 32 + portal_api/admin.py | 6 + .../0048_arquivo_operadora_multiplo_passo1.py | 35 + ...uivo_operadora_multiplo_passo2_backfill.py | 28 + .../0050_arquivo_operadora_multiplo_passo3.py | 17 + portal_api/models.py | 53 +- portal_api/planos_saude/operadoras/base.py | 12 + .../planos_saude/operadoras/unimed/saude.py | 293 +- portal_api/planos_saude/pipeline.py | 59 +- portal_api/serializers.py | 8 +- portal_api/views.py | 34 +- static/css/importacao-plano-saude.css | 58 + static/js/importacao-plano-saude.js | 106 +- templates/importacao-plano-saude.html | 12 +- 19 files changed, 7636 insertions(+), 85 deletions(-) create mode 100644 media/planos_saude/operadora/Mensalidade.pdf create mode 100644 media/planos_saude/operadora/cooparticipação.pdf create mode 100644 media/planos_saude/planilha_padrao/questor_1123_2026-08.csv create mode 100644 portal_api/migrations/0048_arquivo_operadora_multiplo_passo1.py create mode 100644 portal_api/migrations/0049_arquivo_operadora_multiplo_passo2_backfill.py create mode 100644 portal_api/migrations/0050_arquivo_operadora_multiplo_passo3.py diff --git a/.claude/settings.json b/.claude/settings.json index e691b33..4955277 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -6,7 +6,13 @@ "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api --dry-run --verbosity 2)", "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api)", "Bash(node --check static/js/importacao-plano-saude.js)", - "Bash(grep -n \"Histórico \\(\\\\`#ips-list-table\\\\`\\)\" CLAUDE.md)" + "Bash(grep -n \"Histórico \\(\\\\`#ips-list-table\\\\`\\)\" CLAUDE.md)", + "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api --name arquivo_operadora_multiplo_passo1)", + "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api --empty --name arquivo_operadora_multiplo_passo2_backfill)", + "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api --name arquivo_operadora_multiplo_passo3)", + "Bash(.venv/Scripts/python.exe -c ' *)", + "Bash(ls -1 'C:\\\\Users\\\\Depaula\\\\.claude\\\\projects\\\\c--Users-Depaula-Documents-Portal\\\\memory')", + "Read(//c/Users/Depaula/.claude/projects/c--Users-Depaula-Documents-Portal/memory/**)" ] } } diff --git a/CLAUDE.md b/CLAUDE.md index d322ef8..c87e75c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -557,7 +557,7 @@ portal_api/planos_saude/ └── operadoras/ ├── base.py OperadoraParser (interface) ├── amil/odonto_mensalidade.py Amil Odonto (PDF via pdfplumber, só mensalidade, casamento por CPF) - ├── unimed/saude.py Unimed (CSV, mensalidade+coparticipação, casamento por nome) + ├── unimed/saude.py Unimed Saúde — CSV (mensalidade+coparticipação no mesmo arquivo) **ou** 2 PDFs separados (um por tipo), detectados automaticamente pelo conteúdo; mensalidade por nome, coparticipação por CPF (ver "Múltiplos arquivos de operadora" abaixo) ├── itamed/saude.py Itamed Saúde (PDF via pdfplumber, mensalidade+coparticipação, casamento por nome) ├── dental_uni/odonto_mensalidade.py Dental Uni Odonto (PDF via pdfplumber, só mensalidade, casamento por nome) ├── unimed_oeste_pr/saude.py Unimed Oeste do Paraná (PDF via pdfplumber, mensalidade+coparticipação por texto da descrição, casamento por nome) @@ -575,7 +575,8 @@ Pra adicionar uma operadora nova: criar `operadoras//.py` impleme ### Modelos (`portal_api/models.py`) -- `ImportacaoPlanoSaude`: uma execução da ferramenta — `operadora`/`nome_operadora`, `tipos_lancamento` (JSONField, lista), `custeio_por_tipo` (JSONField, `{"mensalidade": {"titular": {"modo": "empresa"|"empregado"|"especifica", "limite_valor": float|None, "percentual": float|None}, "dependente": {...}}, "coparticipacao": {...}}` — ver regra de custeio acima), `regra_empresa` (CharField, blank — chave de `planos_saude.regras_empresa.REGRAS_EMPRESA` quando "mensalidade" foi custeada por uma regra especial em vez do `custeio_por_tipo["mensalidade"]` normal, ver "Regra empresa" abaixo), os dois arquivos anexados (`planilha_padrao`/`arquivo_operadora`, `FileField` com o mesmo padrão de validator de tamanho de `LinkFerramenta.icone`, só que 15MB em vez de 2MB — são documentos reais, não ícones; `planilha_padrao` é `blank=True` desde que passou a poder vir de uma busca no Questor em vez de upload, ver "Planilha padrão via Questor (SQL)" abaixo), `competencia` (DateField, null — só preenchida quando a origem da planilha padrão foi essa busca no Questor), `status` (`revisao`/`concluida`), `criado_por`, `criado_em`/`concluida_em`. **Com histórico**: decisão explícita do usuário — cada importação fica salva (quem fez, quando, arquivos), não é um fluxo descartável. +- `ImportacaoPlanoSaude`: uma execução da ferramenta — `operadora`/`nome_operadora`, `tipos_lancamento` (JSONField, lista), `custeio_por_tipo` (JSONField, `{"mensalidade": {"titular": {"modo": "empresa"|"empregado"|"especifica", "limite_valor": float|None, "percentual": float|None}, "dependente": {...}}, "coparticipacao": {...}}` — ver regra de custeio acima), `regra_empresa` (CharField, blank — chave de `planos_saude.regras_empresa.REGRAS_EMPRESA` quando "mensalidade" foi custeada por uma regra especial em vez do `custeio_por_tipo["mensalidade"]` normal, ver "Regra empresa" abaixo), `planilha_padrao` (`FileField`, mesmo padrão de validator de tamanho de `LinkFerramenta.icone`, só que 15MB em vez de 2MB — é `blank=True` desde que passou a poder vir de uma busca no Questor em vez de upload, ver "Planilha padrão via Questor (SQL)" abaixo), `competencia` (DateField, null — só preenchida quando a origem da planilha padrão foi essa busca no Questor), `status` (`revisao`/`concluida`), `criado_por`, `criado_em`/`concluida_em`. **Com histórico**: decisão explícita do usuário — cada importação fica salva (quem fez, quando, arquivos), não é um fluxo descartável. O arquivo (ou arquivos) da operadora vive num model relacionado separado, ver `ImportacaoPlanoSaudeArquivoOperadora` a seguir e "Múltiplos arquivos de operadora" abaixo. +- `ImportacaoPlanoSaudeArquivoOperadora`: um dos relatórios da operadora anexados a uma importação (FK `importacao`, `arquivo` FileField, `ordem`) — a maioria das operadoras manda só um, mas algumas (ex.: Unimed Saúde em PDF) mandam mensalidade e coparticipação em arquivos separados. Substituiu, numa rodada posterior, o antigo `FileField` único `ImportacaoPlanoSaude.arquivo_operadora` (migração em 3 passos — `0048` cria o model novo + torna o campo legado `blank=True`; `0049`, `RunPython`, cria uma linha por importação já existente reapontando pro mesmo caminho já salvo em `MEDIA_ROOT`, sem copiar bytes; `0050` remove o campo legado — mesmo padrão já usado em `IndicadorDepartamento`/`RegraCusteioPlanoSaude.codigo_empresa`). - `ImportacaoPlanoSaudeLinha`: uma linha da planilha padrão já casada com o valor do mês (espelha `LinhaSistema` campo a campo) — na tela de revisão, uma linha que já veio do processamento (upload ou Questor) só edita **Valor Empresa/Valor**; os demais campos (cadastro da pessoa) só ficam editáveis numa linha incluída manualmente via "Adicionar linha" (regra revista — nasceu como "todos os campos editáveis em qualquer linha", decisão do usuário depois de ver dados reais na tela: só uma linha nova precisa editar o cadastro, uma linha já casada não devia arriscar um cadastro certo sendo alterado por engano). Essa restrição é só de UI (`importacao-plano-saude.js`, `linhasIncluidasManualmente()` — deriva de `ImportacaoPlanoSaudeAlteracao` já carregada, sem campo novo), o backend continua aceitando PATCH em qualquer campo. `valor`/`valor_empresa` ficam como `CharField` no mesmo formato string do pipeline (`"51,69"`/`"0"`), não `DecimalField`, pra manter fidelidade 1:1 com o CSV final sem risco de arredondamento. - `ImportacaoPlanoSaudeAuditoria`: espelha `ItemAuditoria` — os campos extraídos do arquivo da operadora (`motivo`/`nome`/`valor`/`detalhe`...) são read-only na tela; `resolvida`/`linha_vinculada` são a exceção, graváveis via a resolução manual (ver "Resolução manual de auditoria por nome" abaixo). `MOTIVOS_RESOLVIVEIS = ("NOME_DIVERGENTE", "NAO_CADASTRADO")` (atributo de classe) é a lista dos dois motivos "de leitura/grafia de nome" que aceitam esse fluxo — `VALOR_NEGATIVO`/`TIPO_INVALIDO` são outra categoria de problema (valor real negativo, tipo de despesa não mapeado) e não têm solução por "essa é a mesma pessoa". - `ImportacaoPlanoSaudeAlteracao`: log de cada edição de campo/inclusão/exclusão de linha feita manualmente na revisão — ver seção "Alterações" abaixo. @@ -584,7 +585,7 @@ Pra adicionar uma operadora nova: criar `operadoras//.py` impleme ### Fluxo e endpoints `ImportacaoPlanoSaudeViewSet` (`/api/importacoes-plano-saude/`, `PermissaoApp("utilitarios", "importacao-plano-saude")` pra todos os métodos): -- `create()` (multipart, `ImportacaoPlanoSaudeCreateSerializer` valida a entrada) resolve a planilha padrão (upload **ou** busca no Questor — ver "Planilha padrão via Questor (SQL)" abaixo), salva o model (isso já grava os 2 arquivos em `MEDIA_ROOT`) e roda `pipeline.processa_importacao()` **de forma síncrona** usando `instance.arquivo_operadora.path` + a lista de `LinhaSistema` já resolvida — sem fila/Celery, o arquivo típico processa em menos de um request. Se o processamento falhar (PDF num layout desconhecido etc.), apaga os arquivos recém-salvos + o registro órfão e devolve 400. +- `create()` (multipart, `ImportacaoPlanoSaudeCreateSerializer` valida a entrada) resolve a planilha padrão (upload **ou** busca no Questor — ver "Planilha padrão via Questor (SQL)" abaixo), salva o model + um `ImportacaoPlanoSaudeArquivoOperadora` por arquivo em `arquivo_operadora` (lista, ver "Múltiplos arquivos de operadora" abaixo) e roda `pipeline.processa_importacao()` **de forma síncrona** usando os caminhos de todos os arquivos da operadora + a lista de `LinhaSistema` já resolvida — sem fila/Celery, o arquivo típico processa em menos de um request. Se o processamento falhar (PDF num layout desconhecido etc.), apaga os arquivos recém-salvos (planilha + todos os da operadora) + o registro órfão e devolve 400. - `GET /operadoras/` (`@action` sem detail) devolve `pipeline.lista_operadoras()` — fonte única pro combobox pesquisável "Operadora" do formulário (`#ips-operadora-combo`, mesmo padrão de "Regra de custeio salva" — ver "Regras de custeio salvas" abaixo), sem duplicar a lista em JS. `label` já vem no formato `" - "` (ex.: `"3755 - Itamed Saúde"`) — o código é o de cadastro da operadora no Questor, pedido explícito do usuário pra identificar a operadora sem ambiguidade (útil quando duas operadoras têm nome parecido); editar em `pipeline.OPERADORAS`, não formatar o código separadamente no frontend. - `POST /{id}/gerar/` monta o(s) CSV(s) a partir das **linhas já salvas** (isto é, já com qualquer edição feita na revisão — não reprocessa os arquivos originais) usando `leiaute_sistema.CABECALHO`; 1 tipo de lançamento vira um `.csv` direto, 2 tipos (mensalidade + coparticipação) viram um `.zip` com um `.csv` por tipo (`zipfile` em memória). Sempre marca `status="concluida"` (+ `concluida_em`) — pode ser chamada de novo enquanto `concluida` (regera o mesmo arquivo a partir do que já está salvo), mas a partir daí toda edição de linha/auditoria/alteração fica bloqueada até reabrir (ver `reabrir()` abaixo e "Trava de edição pós-conclusão"). - `POST /{id}/reabrir/` volta `status="revisao"` (zera `concluida_em`) — contrapartida de `gerar()`, é o único jeito de voltar a editar uma importação concluída. Botão "Editar" na tela de Revisão, visível só quando `status === "concluida"`. @@ -603,6 +604,25 @@ No frontend (`importacao-plano-saude.js`), a tela de Revisão espelha essa trava Clicar em "Gerar Arquivo" (`gerarBtn`) sempre volta pro histórico (`showView("list")` + `refreshList()`) depois do download disparar — decisão explícita do usuário, já que a partir daí a importação está `concluida` e travada (ver acima), não há mais nada pra revisar de imediato na própria tela. +### Múltiplos arquivos de operadora + +Até uma rodada anterior, "Arquivo da operadora" (passo 2 de "Nova Importação") era um único upload obrigatório — trocado por **1 ou mais arquivos** (pedido explícito do usuário): algumas operadoras mandam mensalidade e coparticipação em arquivos separados (a primeira real: Unimed Saúde, quando manda PDF em vez do CSV único — ver "Parser da Unimed Saúde" abaixo), em vez de um único arquivo com os dois tipos juntos. + +- **Backend**: `ImportacaoPlanoSaudeCreateSerializer.arquivo_operadora` é um `ListField(child=FileField(), allow_empty=False)` — o DRF já lê múltiplos arquivos do mesmo campo em `multipart/form-data` via `request.data.getlist(...)` (mesma semântica do `QueryDict`), sem tratamento manual extra na view. `create()` cria um `ImportacaoPlanoSaudeArquivoOperadora` por arquivo (`ordem=índice`); `pipeline.processa_importacao(operadora_key, caminhos_arquivo_operadora: List[str], ...)` chama `OperadoraParser.extrai()` **uma vez por caminho** (nenhum parser existente muda de assinatura — quem ganha a responsabilidade de iterar é só o `pipeline.py`) e concatena os indivíduos/itens de auditoria de todos os arquivos antes de seguir com o casamento normal. +- **`_agrega_individuos_entre_arquivos()` (`pipeline.py`)** — bug real encontrado e corrigido ao testar esta funcionalidade de ponta a ponta: se dois arquivos contribuem indivíduos da MESMA pessoa e do MESMO `tipo_lancamento` (ex.: duas coparticipações do mesmo mês, separadas por período), só concatenar as duas listas não bastava — `casa_individuos_com_planilha`/`_aplica_regra_custeio` (matcher.py) **grava** o valor final na `LinhaSistema` por pessoa, não acumula, então o segundo arquivo processado sobrescrevia o valor do primeiro em vez de somar. Corrigido somando (`valor_total` e `rubricas`) os indivíduos de mesma chave (`numero_beneficiario`, `tipo_lancamento`) **entre arquivos**, logo depois de concatenar as listas — mesmo padrão que cada parser já faz **dentro** de um único arquivo (`_agrega_por_individuo_e_tipo`), só que agora entre arquivos também. +- `perform_destroy()`/os `except` de `create()` (arquivo ilegível, regra empresa incompatível, código de empresa não confere) apagam **todos** os arquivos de `importacao.arquivos_operadora.all()` de `MEDIA_ROOT`, não só um. +- **Frontend**: `` + uma lista dinâmica (`#ips-form-arquivo-list`/`.ips-arquivo-list`, `importacao-plano-saude.js`) no lugar do campo único de sempre — cada arquivo anexado é validado individualmente (mesmo endpoint `POST /.../validar-arquivo/` de sempre, chamado uma vez por arquivo, sem mudança nenhuma nele) e listado com seu próprio status + botão de remover; trocar a operadora revalida todos os arquivos já anexados. No submit, `formData.append("arquivo_operadora", file)` uma vez por arquivo. + +#### Parser da Unimed Saúde (PDF): dois relatórios separados, tipo detectado automaticamente + +`operadoras/unimed/saude.py` (`unimed_saude`, código 5060) ganhou um segundo formato de entrada, além do CSV único já existente: **dois PDFs** de um cliente real (mensalidade + coparticipação analítico), detectados automaticamente pelo **conteúdo** de cada arquivo — nunca pelo usuário escolhendo um "tipo de documento" (pedido explícito). `UnimedSaude.extrai()` abre o PDF com `pdfplumber` e olha a primeira página: `"BENEFICIARIOS COM FATURAMENTO NO MES"` → relatório de mensalidade (`_extrai_pdf_mensalidade`, uma linha por beneficiário, `extract_text()` simples já basta); `"SERVIÇOS PRESTADOS"`/`"ANALITICO"` → coparticipação analítica (`_extrai_pdf_coparticipacao`, várias linhas de serviço por beneficiário, somadas por pessoa). + +- Confirmado com o usuário: a coparticipação devida por beneficiário é a **soma do "Vl Total" de cada linha de serviço** daquele beneficiário — a coluna "Tt Copar" (valor fixo, repetido em toda linha do documento) **não é usada**. Linhas "Pct:MED"/"Pct:HOS"/"Pct:MAT" (detalhamento informativo de um item, cuja soma já está no valor do item principal) são ignoradas — senão duplicariam o valor. +- `nome`/`Grau Dep.` (TITULAR/CONJUGE/FILHO(A)/...) só aparecem na primeira linha de cada bloco de atendimento — parsing com estado (mesmo padrão do `ItamedSaude`). +- Valores nos dois PDFs vêm em **formato americano** (ponto decimal, vírgula de milhar — ex. "6,061.74"), ao contrário do formato BR do resto do pipeline — `_valor_pdf_para_float`, função própria, separada de `_valor_para_float` (BR, só pro CSV). +- **`OperadoraParser` ganhou `chave_casamento_para_tipo(tipo_lancamento)`** (default: devolve `chave_casamento`, mesmo valor de sempre — método novo, backward-compatible pra todo outro parser) porque a coparticipação analítica da Unimed em PDF precisou de uma estratégia de casamento **diferente da mensalidade dentro da mesma operadora**: o "Beneficiario" desse relatório vem colado sem espaço com o nome e o grau de dependência (ex.: "0975.0167003824292ANDREIA STORMTITULAR") e o **nome sai truncado em ~13 caracteres** por largura de coluna ("ANDREIA STORMOSKI LARA" → "ANDREIA STORM") — inviabilizando casamento por nome. Como esse relatório traz CPF completo e confiável, `UnimedSaude` usa `"cpf"` só pra `tipo_lancamento="coparticipacao"` quando a origem foi esse PDF (rastreado numa flag de instância, `self._veio_de_pdf_coparticipacao`, setada em `extrai()`); mensalidade (sem CPF em nenhum dos dois formatos) continua em `"nome"`. `pipeline.processa_importacao` chama `chave_casamento_para_tipo(tipo_lancamento)` em vez do atributo fixo. +- **Validado contra os dois arquivos reais** (não só texto colado numa conversa — o texto que sai de um PDF colado no chat **não é** o que `pdfplumber.extract_text()` de fato produz, então não serve pra desenhar regex com confiança; só o arquivo real confirma). Bate exatamente com "Total da Familia"/"Total da Sequencia" impresso no próprio relatório (1.372,08 de coparticipação, 6.061,74 de mensalidade) e com o casamento por CPF contra a planilha padrão real da empresa — toda família presente na planilha bateu centavo a centavo; a família ausente da planilha de teste foi corretamente pra auditoria, não ignorada silenciosamente. + ### Planilha padrão via Questor (SQL) Até uma rodada anterior, a "planilha padrão" (cadastro dos beneficiários, sem valores — o mesmo que `le_planilha_padrao` lê de um CSV) só chegava por upload manual, exportado à mão do Questor. O usuário forneceu e validou uma consulta SQL equivalente contra o próprio banco do Questor, então "Nova Importação" ganhou um segundo caminho: buscar essa planilha automaticamente a partir de empresa (já resolvida pela `RegraCusteioPlanoSaude` escolhida) + operadora + competência (mês/ano digitado na tela) — **sem precisar mais exportar/anexar nada** nesse caso. O upload manual continua existindo como alternativa (Questor fora do ar, ou empresa ainda não migrada) — decisão explícita do usuário, não uma substituição total. diff --git a/media/planos_saude/operadora/Mensalidade.pdf b/media/planos_saude/operadora/Mensalidade.pdf new file mode 100644 index 0000000..8231508 --- /dev/null +++ b/media/planos_saude/operadora/Mensalidade.pdf @@ -0,0 +1,1649 @@ +%PDF-1.1 +1 0 obj +<< +/Creator (Developer 2000) +/CreatorDate ( +/Author (Oracle Reports) +/Producer (Oracle PDF driver) +/Title (F105_201960286_975.pdf) +>> +endobj +5 0 obj +<> +stream +q +0.00 0.00 612.00 792.00 re W n +q +2.24 661.44 600.00 10.48 re W n +BT +2.24 665.56 TD +/F0 8.00 Tf +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +3.04 707.60 TD +/F0 8.00 Tf +(Competencia: 8/2026 Tipo Pessoa: Juridica Faixa de Títulos: 201960286 a 201960286 Faixa de Contratante: 0-0 a 9999999-999) Tj +0.00 -14.24 TD +(Faixa de Plano: 0 a 9999 Data Faturamento: 01/08/2026 Faixa de Produto: 0 a 9999 Emite Matricula : SIM) Tj +-1.56 -101.08 TD +(Familia) Tj +0.00 -8.52 TD +(--------) Tj +55.16 8.52 TD +(Benef.) Tj +0.00 -8.52 TD +(-------------) Tj +68.20 8.52 TD +(Nome) Tj +0.00 -8.52 TD +(----------------------) Tj +217.16 8.52 TD +(Parc) Tj +0.00 -8.52 TD +(----) Tj +-293.72 19.08 TD +(D) Tj +0.00 -8.48 TD +(T) Tj +0.00 -8.52 TD +(-) Tj +463.68 7.00 TD +(Mvt) Tj +0.00 -8.48 TD +(---) Tj +20.28 8.48 TD +(FxE) Tj +0.00 -8.48 TD +(---) Tj +22.96 8.48 TD +(Comb) Tj +0.00 -8.48 TD +(----) Tj +22.36 8.48 TD +(Pla.) Tj +0.00 -8.48 TD +(----) Tj +-209.96 16.88 TD +(Id.) Tj +-4.80 -8.52 TD +( Fat) Tj +4.80 -8.52 TD +(---) Tj +50.16 17.04 TD +(Valor) Tj +-19.20 -8.52 TD +(Inscricao) Tj +-9.60 -8.52 TD +(-----------) Tj +92.72 17.04 TD +(Valor) Tj +-28.80 -8.52 TD +(Mensalidade) Tj +-9.60 -8.52 TD +(-------------) Tj +-385.72 -22.80 TD +(167003824292) Tj +0.00 -12.68 TD +(167003824306) Tj +0.00 -12.72 TD +(167018863914) Tj +0.00 -40.64 TD +(167003833380) Tj +0.00 -40.64 TD +(167003335747) Tj +0.00 -12.68 TD +(167003335763) Tj +0.00 -12.72 TD +(167003335755) Tj +0.00 -12.68 TD +(167003356078) Tj +0.00 -40.64 TD +(167003335720) Tj +0.00 -12.68 TD +(167013213741) Tj +0.00 -12.72 TD +(167013213733) Tj +0.00 -40.64 TD +(167003611124) Tj +0.00 -40.64 TD +(167003335771) Tj +0.00 -12.68 TD +(167003540006) Tj +0.00 -40.68 TD +(167003865045) Tj +0.00 -40.64 TD +(167013128019) Tj +0.00 -40.64 TD +(167003895050) Tj +0.00 -40.64 TD +(167003569233) Tj +0.00 -12.72 TD +(167003569241) Tj +0.00 -12.68 TD +(167003783804) Tj +0.00 -12.68 TD +(167003569250) Tj +0.00 -40.64 TD +(167003671747) Tj +65.76 546.08 TD +(ANDREIA STORMOSKI LARA Sem) Tj +0.00 -12.68 TD +(MANUELA LARA VILLELA Sem) Tj +0.00 -12.72 TD +(GABRIELE LARA VILLELA Sem) Tj +0.00 -40.64 TD +(CHRISTIAN GASTON RIZZI Sem) Tj +0.00 -40.64 TD +(FALLKNER RIBEIRO BORGES Sem) Tj +0.00 -12.68 TD +(CATHERINE NUNES BORGES Sem) Tj +0.00 -12.72 TD +(ADRIANA RODRIGUES Sem) Tj +0.00 -12.68 TD +(AMANDA RODRIGUES BORGES Sem) Tj +0.00 -40.64 TD +(FRANCIELLI J A SANTOS Sem) Tj +0.00 -12.68 TD +(LUCAS RAFAEL SANTOS Sem) Tj +0.00 -12.72 TD +(ANA LUIZA A SANTOS Sem) Tj +0.00 -40.64 TD +(FRANCIELLI ZANDONA XAVIER Sem) Tj +0.00 -40.64 TD +(GABRIEL H A OLIVEIRA Sem) Tj +0.00 -12.68 TD +(ANA JULIA R A OLIVEIRA Sem) Tj +0.00 -40.68 TD +(JEFFERSON D HWANG 16) Tj +0.00 -40.64 TD +(JESSICA RIBEIRO DE SOUZA Sem) Tj +0.00 -40.64 TD +(MARINA MASSAO PEREIRA Sem) Tj +0.00 -40.64 TD +(NEREU AMBROZINI Sem) Tj +0.00 -12.72 TD +(HEITOR N AMBROZINI Sem) Tj +0.00 -12.68 TD +(CRISTIANE DO NASCIMENTO Sem) Tj +0.00 -12.68 TD +(ALICE N AMBROZINI Sem) Tj +0.00 -40.64 TD +(PAULO HENRIQUE A SILVA Sem) Tj +215.36 546.08 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -12.72 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -12.72 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -12.72 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -40.68 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -12.72 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +31.04 546.08 TD +(46) Tj +0.00 -12.68 TD +(14) Tj +0.00 -12.72 TD +(22) Tj +0.00 -40.64 TD +(54) Tj +0.00 -40.64 TD +(43) Tj +0.00 -12.68 TD +(22) Tj +0.00 -12.72 TD +(43) Tj +0.00 -12.68 TD +(11) Tj +0.00 -40.64 TD +(42) Tj +0.00 -12.68 TD +(40) Tj +2.40 -12.72 TD +(1) Tj +-2.40 -40.64 TD +(35) Tj +0.00 -40.64 TD +(30) Tj +2.40 -12.68 TD +(8) Tj +-2.40 -40.68 TD +(37) Tj +0.00 -40.64 TD +(23) Tj +0.00 -40.64 TD +(32) Tj +0.00 -40.64 TD +(38) Tj +2.40 -12.72 TD +(8) Tj +-2.40 -12.68 TD +(38) Tj +0.00 -12.68 TD +(11) Tj +0.00 -40.64 TD +(32) Tj +42.12 546.08 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -12.72 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -12.72 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -12.72 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -40.68 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -12.72 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +59.24 546.08 TD +( 276.76) Tj +0.00 -12.68 TD +( 112.17) Tj +0.00 -12.72 TD +( 138.21) Tj +0.00 -40.64 TD +( 609.50) Tj +0.00 -40.64 TD +( 299.75) Tj +0.00 -12.68 TD +( 153.25) Tj +0.00 -12.72 TD +( 316.57) Tj +0.00 -12.68 TD +( 142.84) Tj +0.00 -40.64 TD +( 316.57) Tj +0.00 -12.68 TD +( 223.88) Tj +0.00 -12.72 TD +( 118.74) Tj +0.00 -40.64 TD +( 190.36) Tj +0.00 -40.64 TD +( 155.76) Tj +0.00 -12.68 TD +( 112.17) Tj +0.00 -40.68 TD +( 172.87) Tj +0.00 -40.64 TD +( 117.62) Tj +0.00 -40.64 TD +( 173.33) Tj +0.00 -40.64 TD +( 172.87) Tj +0.00 -12.72 TD +( 112.17) Tj +0.00 -12.68 TD +( 172.87) Tj +0.00 -12.68 TD +( 112.17) Tj +0.00 -40.64 TD +( 227.66) Tj +-423.00 546.08 TD +(T) Tj +0.00 -12.68 TD +(D) Tj +0.00 -12.72 TD +(D) Tj +0.00 -40.64 TD +(T) Tj +0.00 -40.64 TD +(T) Tj +0.00 -12.68 TD +(D) Tj +0.00 -12.72 TD +(D) Tj +0.00 -12.68 TD +(D) Tj +0.00 -40.64 TD +(T) Tj +0.00 -12.68 TD +(D) Tj +0.00 -12.72 TD +(D) Tj +0.00 -40.64 TD +(T) Tj +0.00 -40.64 TD +(T) Tj +0.00 -12.68 TD +(D) Tj +0.00 -40.68 TD +(T) Tj +0.00 -40.64 TD +(T) Tj +0.00 -40.64 TD +(T) Tj +0.00 -40.64 TD +(T) Tj +0.00 -12.72 TD +(D) Tj +0.00 -12.68 TD +(D) Tj +0.00 -12.68 TD +(D) Tj +0.00 -40.64 TD +(T) Tj +463.24 546.08 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -12.72 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -12.72 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -12.72 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -40.68 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -12.72 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +24.20 546.08 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -12.72 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -12.72 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -12.72 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -40.68 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -12.72 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +ET +q +552.36 557.40 22.24 10.36 re W n +BT +550.64 561.40 TD +(10080) Tj +ET +Q 0 g 0 G +q +552.36 544.72 22.24 10.36 re W n +BT +550.64 548.72 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 532.00 22.24 10.36 re W n +BT +550.64 536.00 TD +/F0 8.00 Tf +(10311) Tj +ET +Q 0 g 0 G +q +552.36 491.36 22.24 10.36 re W n +BT +550.64 495.36 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 450.72 22.24 10.36 re W n +BT +550.64 454.72 TD +/F0 8.00 Tf +(10079) Tj +ET +Q 0 g 0 G +q +552.36 438.04 22.24 10.36 re W n +BT +550.64 442.04 TD +/F0 8.00 Tf +(10079) Tj +ET +Q 0 g 0 G +q +552.36 425.32 22.24 10.36 re W n +BT +550.64 429.32 TD +/F0 8.00 Tf +(10310) Tj +ET +Q 0 g 0 G +q +552.36 412.64 22.24 10.36 re W n +BT +550.64 416.64 TD +/F0 8.00 Tf +(10079) Tj +ET +Q 0 g 0 G +q +552.36 372.00 22.24 10.36 re W n +BT +550.64 376.00 TD +/F0 8.00 Tf +(10310) Tj +ET +Q 0 g 0 G +q +552.36 359.28 22.24 10.36 re W n +BT +550.64 363.32 TD +/F0 8.00 Tf +(10311) Tj +ET +Q 0 g 0 G +q +552.36 346.60 22.24 10.36 re W n +BT +550.64 350.60 TD +/F0 8.00 Tf +(10311) Tj +ET +Q 0 g 0 G +q +552.36 305.95 22.24 10.36 re W n +BT +550.64 309.95 TD +/F0 8.00 Tf +(10311) Tj +ET +Q 0 g 0 G +q +552.36 265.32 22.24 10.36 re W n +BT +550.64 269.32 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 252.60 22.24 10.36 re W n +BT +550.64 256.64 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 211.96 22.24 10.36 re W n +BT +550.64 215.96 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 171.32 22.24 10.36 re W n +BT +550.64 175.32 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 130.68 22.24 10.36 re W n +BT +550.64 134.68 TD +/F0 8.00 Tf +(10311) Tj +ET +Q 0 g 0 G +q +552.36 90.00 22.24 10.36 re W n +BT +550.64 94.04 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 77.32 22.24 10.36 re W n +BT +550.64 81.32 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 64.64 22.24 10.36 re W n +BT +550.64 68.64 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 51.96 22.24 10.36 re W n +BT +550.64 55.96 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 11.28 22.24 10.36 re W n +BT +550.64 15.32 TD +/F0 8.00 Tf +(10079) Tj +ET +Q 0 g 0 G +BT +8.84 561.40 TD +/F0 8.00 Tf +(838732) Tj +0.00 -12.68 TD +(838732) Tj +0.00 -12.72 TD +(838732) Tj +0.00 -40.64 TD +(838925) Tj +0.00 -40.64 TD +(832120) Tj +0.00 -12.68 TD +(832120) Tj +0.00 -12.72 TD +(832120) Tj +0.00 -12.68 TD +(832120) Tj +0.00 -40.64 TD +(832119) Tj +0.00 -12.68 TD +(832119) Tj +0.00 -12.72 TD +(832119) Tj +0.00 -40.64 TD +(835160) Tj +0.00 -40.64 TD +(832121) Tj +0.00 -12.68 TD +(832121) Tj +0.00 -40.68 TD +(839598) Tj +0.00 -40.64 TD +(850472) Tj +0.00 -40.64 TD +(840372) Tj +0.00 -40.64 TD +(834642) Tj +0.00 -12.72 TD +(834642) Tj +0.00 -12.68 TD +(834642) Tj +0.00 -12.68 TD +(834642) Tj +0.00 -40.64 TD +(836117) Tj +570.40 546.08 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -12.72 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -12.72 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -12.72 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -40.68 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -12.72 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +-108.16 505.28 TD +( 527.14) Tj +0.00 -40.64 TD +( 609.50) Tj +0.00 -78.72 TD +( 912.41) Tj +0.00 -66.04 TD +( 659.19) Tj +0.00 -40.68 TD +( 190.36) Tj +0.00 -53.32 TD +( 267.93) Tj +0.00 -40.64 TD +( 172.87) Tj +0.00 -40.68 TD +( 117.62) Tj +0.00 -40.64 TD +( 173.33) Tj +0.00 -78.72 TD +( 570.08) Tj +-59.24 480.08 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -78.72 TD +( 0.00) Tj +0.00 -66.04 TD +( 0.00) Tj +0.00 -40.68 TD +( 0.00) Tj +0.00 -53.32 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -40.68 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -78.72 TD +( 0.00) Tj +-135.96 480.08 TD +(Total por Familia:) Tj +0.00 -40.64 TD +(Total por Familia:) Tj +0.00 -78.72 TD +(Total por Familia:) Tj +0.00 -66.04 TD +(Total por Familia:) Tj +0.00 -40.68 TD +(Total por Familia:) Tj +0.00 -53.32 TD +(Total por Familia:) Tj +0.00 -40.64 TD +(Total por Familia:) Tj +0.00 -40.68 TD +(Total por Familia:) Tj +0.00 -40.64 TD +(Total por Familia:) Tj +0.00 -78.72 TD +(Total por Familia:) Tj +-126.36 608.20 TD +(0) Tj +-42.76 0.00 TD +(5877318) Tj +-100.64 -3.04 TD +(Contratante: ) Tj +170.12 2.28 TD +(FALLKNER RIBEIRO BORGES PRODUCOES ME Nome Fantasia: FALLKNER RIBEIRO BORGES PRODUC) Tj +-172.48 29.80 TD +(Faixa de Contratante Responsavel:) Tj +179.36 2.24 TD +(0-0 a 9999999-999) Tj +-33.92 -48.20 TD +() Tj +-9.20 0.00 TD +() Tj +-134.19 -1.52 TD +(Contratante Responsavel:) Tj +169.72 1.52 TD +( Nome Fantasia Resp.: ) Tj +ET +q +4.52 724.36 600.00 10.48 re W n +BT +4.52 728.48 TD +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +4.24 739.24 TD +/F0 8.00 Tf +(FATTR105/) Tj +56.28 -0.08 TD +(MATHEUS) Tj +-55.52 25.80 TD +(UNIMED DO ESTADO DO PAR) Tj +-0.76 -11.44 TD +(FATURAMENTO) Tj +ET +q +4.52 773.16 600.00 10.48 re W n +BT +4.52 777.32 TD +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +479.32 768.76 TD +/F0 8.00 Tf +(Folha:) Tj +0.00 -12.48 TD +(Data.:) Tj +89.36 12.32 TD +( 1) Tj +-38.40 -12.32 TD +(03/08/2026) Tj +9.56 -13.44 TD +(15:06:59) Tj +-60.52 0.00 TD +(Hora.:) Tj +-269.48 25.36 TD +(BENEFICIARIOS COM FATURAMENTO NO MES) Tj +10.56 -14.16 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +-44.76 -13.48 TD +(SAC Deficiente Auditivo/Fala: 08006422009) Tj +53.08 -148.28 TD +/F0 8.00 Tf +(Matricula) Tj +0.00 -8.52 TD +(-------------) Tj +66.52 8.52 TD +(Dt.Incl.) Tj +0.00 -8.52 TD +(--------) Tj +2.20 -22.40 TD +(01/02/24) Tj +0.00 -12.68 TD +(01/02/24) Tj +0.00 -12.68 TD +(10/02/26) Tj +0.00 -40.68 TD +(01/03/24) Tj +0.00 -40.64 TD +(15/04/14) Tj +0.00 -12.68 TD +(15/04/14) Tj +0.00 -12.68 TD +(15/04/14) Tj +0.00 -12.72 TD +(01/12/14) Tj +0.00 -40.64 TD +(15/04/14) Tj +0.00 -12.68 TD +(07/04/25) Tj +0.00 -12.72 TD +(08/04/25) Tj +0.00 -40.64 TD +(01/06/20) Tj +0.00 -40.64 TD +(15/04/14) Tj +0.00 -12.68 TD +(01/10/18) Tj +0.00 -40.68 TD +(01/08/24) Tj +0.00 -40.64 TD +(10/03/25) Tj +0.00 -40.64 TD +(01/11/24) Tj +0.00 -40.64 TD +(01/06/19) Tj +0.00 -12.72 TD +(01/06/19) Tj +0.00 -12.68 TD +(01/08/23) Tj +0.00 -12.68 TD +(01/06/19) Tj +0.00 -40.64 TD +(01/12/21) Tj +-156.16 631.96 TD +/F0 10.00 Tf +(-) Tj +-1.08 -16.88 TD +(-) Tj +ET +Q 0 g 0 G +endstream +endobj +6 0 obj +14110 +endobj +7 0 obj +<> +endobj +8 0 obj +[600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 0 600 600 600 600 +600 600 600 600 600 600 600 0 600 0 +0 600 600 600 600 600 600 600 0 600 +600 600 600 0 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 ] +endobj +9 0 obj +<< +/Type /FontDescriptor +/FontName /CourierNew +/Ascent 795 +/CapHeight 735 +/Descent -270 +/Flags 33 +/FontBBox [0 0 0 0] +/ItalicAngle 0 +/StemV 0 +/AvgWidth 570 +/MaxWidth 600 +>> +endobj +4 0 obj +<< +/Type /Page +/MediaBox [0 0 612 792] +/Parent 3 0 R +/Resources <> >> +/Contents 5 0 R +/CropBox [0 0 612 792] +>> +endobj +11 0 obj +<> +stream +q +0.00 0.00 612.00 792.00 re W n +q +2.24 661.44 600.00 10.48 re W n +BT +2.24 665.56 TD +/F0 8.00 Tf +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +3.04 707.60 TD +/F0 8.00 Tf +(Competencia: 8/2026 Tipo Pessoa: Juridica Faixa de Títulos: 201960286 a 201960286 Faixa de Contratante: 0-0 a 9999999-999) Tj +0.00 -14.24 TD +(Faixa de Plano: 0 a 9999 Data Faturamento: 01/08/2026 Faixa de Produto: 0 a 9999 Emite Matricula : SIM) Tj +-1.56 -101.08 TD +(Familia) Tj +0.00 -8.52 TD +(--------) Tj +55.16 8.52 TD +(Benef.) Tj +0.00 -8.52 TD +(-------------) Tj +68.20 8.52 TD +(Nome) Tj +0.00 -8.52 TD +(----------------------) Tj +217.16 8.52 TD +(Parc) Tj +0.00 -8.52 TD +(----) Tj +-293.72 19.08 TD +(D) Tj +0.00 -8.48 TD +(T) Tj +0.00 -8.52 TD +(-) Tj +463.68 7.00 TD +(Mvt) Tj +0.00 -8.48 TD +(---) Tj +20.28 8.48 TD +(FxE) Tj +0.00 -8.48 TD +(---) Tj +22.96 8.48 TD +(Comb) Tj +0.00 -8.48 TD +(----) Tj +22.36 8.48 TD +(Pla.) Tj +0.00 -8.48 TD +(----) Tj +-209.96 16.88 TD +(Id.) Tj +-4.80 -8.52 TD +( Fat) Tj +4.80 -8.52 TD +(---) Tj +50.16 17.04 TD +(Valor) Tj +-19.20 -8.52 TD +(Inscricao) Tj +-9.60 -8.52 TD +(-----------) Tj +92.72 17.04 TD +(Valor) Tj +-28.80 -8.52 TD +(Mensalidade) Tj +-9.60 -8.52 TD +(-------------) Tj +-178.40 -263.36 TD +(Total por Contratante:) Tj +146.96 0.00 TD +( 0.00) Tj +49.64 0.00 TD +( 6,061.74) Tj +-403.92 240.56 TD +(167003820467) Tj +0.00 -12.68 TD +(167003820459) Tj +0.00 -40.64 TD +(167003718034) Tj +0.00 -12.72 TD +(167003718042) Tj +0.00 -40.64 TD +(167003798542) Tj +0.00 -12.68 TD +(167003798550) Tj +0.00 -40.68 TD +(167003898032) Tj +0.00 -40.64 TD +(167003747506) Tj +65.76 200.68 TD +(VICENTE NERIS S ROZENDO Sem) Tj +0.00 -12.68 TD +(TALYTA CARNEIRO NERIS Sem) Tj +0.00 -40.64 TD +(PAULO ROMEO DOMINGUES JR Sem) Tj +0.00 -12.72 TD +(LOHAINE AGUIAR DOMINGUES Sem) Tj +0.00 -40.64 TD +(RODRIGO GOTTLIEB MONZON Sem) Tj +0.00 -12.68 TD +(SOL GRACIOLA MONZON Sem) Tj +0.00 -40.68 TD +(THAIS BRUNO CUNHA SANTOS Sem) Tj +0.00 -40.64 TD +(WALLACE ZENARO Sem) Tj +215.36 200.68 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -12.72 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +0.00 -12.68 TD +( 1.00) Tj +0.00 -40.68 TD +( 1.00) Tj +0.00 -40.64 TD +( 1.00) Tj +33.44 200.68 TD +(4) Tj +-2.40 -12.68 TD +(34) Tj +0.00 -40.64 TD +(41) Tj +2.40 -12.72 TD +(9) Tj +-2.40 -40.64 TD +(47) Tj +0.00 -12.68 TD +(12) Tj +0.00 -40.68 TD +(34) Tj +0.00 -40.64 TD +(32) Tj +42.12 200.68 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -12.72 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -12.68 TD +( 0.00) Tj +0.00 -40.68 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +59.24 200.68 TD +( 142.84) Tj +0.00 -12.68 TD +( 298.38) Tj +0.00 -40.64 TD +( 198.32) Tj +0.00 -12.72 TD +( 142.84) Tj +0.00 -40.64 TD +( 280.86) Tj +0.00 -12.68 TD +( 116.27) Tj +0.00 -40.68 TD +( 298.38) Tj +0.00 -40.64 TD +( 155.76) Tj +-423.00 200.68 TD +(D) Tj +0.00 -12.68 TD +(D) Tj +0.00 -40.64 TD +(T) Tj +0.00 -12.72 TD +(D) Tj +0.00 -40.64 TD +(T) Tj +0.00 -12.68 TD +(D) Tj +0.00 -40.68 TD +(T) Tj +0.00 -40.64 TD +(T) Tj +463.24 200.68 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -12.72 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +0.00 -12.68 TD +(Inc) Tj +0.00 -40.68 TD +(Inc) Tj +0.00 -40.64 TD +(Inc) Tj +24.20 200.68 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -12.72 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +0.00 -12.68 TD +(Nao) Tj +0.00 -40.68 TD +(Nao) Tj +0.00 -40.64 TD +(Nao) Tj +ET +q +552.36 557.40 22.24 10.36 re W n +BT +550.64 561.40 TD +(10079) Tj +ET +Q 0 g 0 G +q +552.36 544.72 22.24 10.36 re W n +BT +550.64 548.72 TD +/F0 8.00 Tf +(10310) Tj +ET +Q 0 g 0 G +q +552.36 504.04 22.24 10.36 re W n +BT +550.64 508.08 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 491.36 22.24 10.36 re W n +BT +550.64 495.36 TD +/F0 8.00 Tf +(10079) Tj +ET +Q 0 g 0 G +q +552.36 450.72 22.24 10.36 re W n +BT +550.64 454.72 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 438.04 22.24 10.36 re W n +BT +550.64 442.04 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +q +552.36 397.36 22.24 10.36 re W n +BT +550.64 401.36 TD +/F0 8.00 Tf +(10310) Tj +ET +Q 0 g 0 G +q +552.36 356.72 22.24 10.36 re W n +BT +550.64 360.72 TD +/F0 8.00 Tf +(10080) Tj +ET +Q 0 g 0 G +BT +8.84 561.40 TD +/F0 8.00 Tf +(836117) Tj +0.00 -12.68 TD +(836117) Tj +0.00 -40.64 TD +(836814) Tj +0.00 -12.72 TD +(836814) Tj +0.00 -40.64 TD +(838265) Tj +0.00 -12.68 TD +(838265) Tj +0.00 -40.68 TD +(840435) Tj +0.00 -40.64 TD +(837308) Tj +570.40 200.68 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -12.72 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +0.00 -12.68 TD +(535) Tj +0.00 -40.68 TD +(535) Tj +0.00 -40.64 TD +(535) Tj +-108.16 172.56 TD +( 668.88) Tj +0.00 -53.32 TD +( 341.16) Tj +0.00 -53.36 TD +( 397.13) Tj +0.00 -40.64 TD +( 298.38) Tj +0.00 -40.64 TD +( 155.76) Tj +-59.24 187.96 TD +( 0.00) Tj +0.00 -53.32 TD +( 0.00) Tj +0.00 -53.36 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +0.00 -40.64 TD +( 0.00) Tj +-135.96 187.96 TD +(Total por Familia:) Tj +0.00 -53.32 TD +(Total por Familia:) Tj +0.00 -53.36 TD +(Total por Familia:) Tj +0.00 -40.64 TD +(Total por Familia:) Tj +0.00 -40.64 TD +(Total por Familia:) Tj +-126.36 303.40 TD +(0) Tj +-42.76 0.00 TD +(5877318) Tj +-100.64 -3.04 TD +(Contratante: ) Tj +170.12 2.28 TD +(FALLKNER RIBEIRO BORGES PRODUCOES ME Nome Fantasia: FALLKNER RIBEIRO BORGES PRODUC) Tj +-172.48 29.80 TD +(Faixa de Contratante Responsavel:) Tj +179.36 2.24 TD +(0-0 a 9999999-999) Tj +-33.92 -48.20 TD +() Tj +-9.20 0.00 TD +() Tj +-134.19 -1.52 TD +(Contratante Responsavel:) Tj +169.72 1.52 TD +( Nome Fantasia Resp.: ) Tj +ET +q +4.52 724.36 600.00 10.48 re W n +BT +4.52 728.48 TD +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +4.24 739.24 TD +/F0 8.00 Tf +(FATTR105/) Tj +56.28 -0.08 TD +(MATHEUS) Tj +-55.52 25.80 TD +(UNIMED DO ESTADO DO PAR) Tj +-0.76 -11.44 TD +(FATURAMENTO) Tj +ET +q +4.52 773.16 600.00 10.48 re W n +BT +4.52 777.32 TD +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +479.32 768.76 TD +/F0 8.00 Tf +(Folha:) Tj +0.00 -12.48 TD +(Data.:) Tj +89.36 12.32 TD +( 2) Tj +-38.40 -12.32 TD +(03/08/2026) Tj +9.56 -13.44 TD +(15:06:59) Tj +-60.52 0.00 TD +(Hora.:) Tj +-269.48 25.36 TD +(BENEFICIARIOS COM FATURAMENTO NO MES) Tj +10.56 -14.16 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +-44.76 -13.48 TD +(SAC Deficiente Auditivo/Fala: 08006422009) Tj +53.08 -148.28 TD +/F0 8.00 Tf +(Matricula) Tj +0.00 -8.52 TD +(-------------) Tj +66.52 8.52 TD +(Dt.Incl.) Tj +0.00 -8.52 TD +(--------) Tj +2.20 -22.40 TD +(01/01/24) Tj +0.00 -12.68 TD +(01/01/24) Tj +0.00 -40.64 TD +(01/08/22) Tj +0.00 -12.72 TD +(01/08/22) Tj +0.00 -40.64 TD +(01/10/23) Tj +0.00 -12.68 TD +(01/10/23) Tj +0.00 -40.64 TD +(01/12/24) Tj +0.00 -40.68 TD +(01/02/23) Tj +-156.16 286.56 TD +/F0 10.00 Tf +(-) Tj +-1.08 -16.88 TD +(-) Tj +ET +Q 0 g 0 G +endstream +endobj +12 0 obj +7294 +endobj +10 0 obj +<< +/Type /Page +/MediaBox [0 0 612 792] +/Parent 3 0 R +/Resources <> >> +/Contents 11 0 R +/CropBox [0 0 612 792] +>> +endobj +14 0 obj +<> +stream +q +0.00 0.00 612.00 792.00 re W n +q +2.24 661.44 600.00 10.48 re W n +BT +2.24 665.56 TD +/F0 8.00 Tf +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +3.04 707.60 TD +/F0 8.00 Tf +(Competencia: 8/2026 Tipo Pessoa: Juridica Faixa de Títulos: 201960286 a 201960286 Faixa de Contratante: 0-0 a 9999999-999) Tj +0.00 -14.24 TD +(Faixa de Plano: 0 a 9999 Data Faturamento: 01/08/2026 Faixa de Produto: 0 a 9999 Emite Matricula : SIM) Tj +235.16 -96.52 TD +(RESUMO DO FATURAMENTO) Tj +-226.96 -22.60 TD +( Valor Valor) Tj +0.00 -8.52 TD +(Dep/Tit Nro. Insc. Inscricao Parc.Mens. Mensalidade Qt.Benef.) Tj +0.00 -8.52 TD +(------- --------- ------------ ---------- ---------------- ---------) Tj +76.80 -28.84 TD +( 0) Tj +0.00 -12.80 TD +( 0) Tj +58.80 12.80 TD +( 0.00) Tj +0.00 -12.80 TD +( 0.00) Tj +58.52 12.80 TD +( 15.00) Tj +0.00 -12.80 TD +( 15.00) Tj +78.68 12.80 TD +( 2,415.37) Tj +0.00 -12.80 TD +( 3,646.37) Tj +-256.16 12.80 TD +(DEP) Tj +0.00 -12.80 TD +(TIT) Tj +357.80 12.80 TD +( 15) Tj +0.00 -12.80 TD +( 15) Tj +-236.16 133.16 TD +(0) Tj +-42.76 0.00 TD +(5877318) Tj +-100.64 -3.04 TD +(Contratante: ) Tj +170.12 2.28 TD +(FALLKNER RIBEIRO BORGES PRODUCOES ME Nome Fantasia: FALLKNER RIBEIRO BORGES PRODUC) Tj +-172.48 29.80 TD +(Faixa de Contratante Responsavel:) Tj +179.36 2.24 TD +(0-0 a 9999999-999) Tj +-33.92 -48.20 TD +() Tj +-9.20 0.00 TD +() Tj +-134.19 -1.52 TD +(Contratante Responsavel:) Tj +169.72 1.52 TD +( Nome Fantasia Resp.: ) Tj +ET +q +4.52 724.36 600.00 10.48 re W n +BT +4.52 728.48 TD +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +4.24 739.24 TD +/F0 8.00 Tf +(FATTR105/) Tj +56.28 -0.08 TD +(MATHEUS) Tj +-55.52 25.80 TD +(UNIMED DO ESTADO DO PAR) Tj +-0.76 -11.44 TD +(FATURAMENTO) Tj +ET +q +4.52 773.16 600.00 10.48 re W n +BT +4.52 777.32 TD +(=============================================================================================================================) Tj +ET +Q 0 g 0 G +BT +479.32 768.76 TD +/F0 8.00 Tf +(Folha:) Tj +0.00 -12.48 TD +(Data.:) Tj +89.36 12.32 TD +( 3) Tj +-38.40 -12.32 TD +(03/08/2026) Tj +9.56 -13.44 TD +(15:06:59) Tj +-60.52 0.00 TD +(Hora.:) Tj +-269.48 25.36 TD +(BENEFICIARIOS COM FATURAMENTO NO MES) Tj +10.56 -14.16 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +-44.76 -13.48 TD +(SAC Deficiente Auditivo/Fala: 08006422009) Tj +-34.36 -93.32 TD +(-) Tj +-1.08 -16.88 TD +(-) Tj +ET +Q 0 g 0 G +endstream +endobj +15 0 obj +2700 +endobj +13 0 obj +<< +/Type /Page +/MediaBox [0 0 612 792] +/Parent 3 0 R +/Resources <> >> +/Contents 14 0 R +/CropBox [0 0 612 792] +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< +/Type /Pages +/Kids [ +4 0 R 10 0 R 13 0 R ] +/Count 3 +>> +endobj +xref +0 16 +0000000000 65535 f +0000000010 00000 n +0000026432 00000 n +0000026487 00000 n +0000015726 00000 n +0000000168 00000 n +0000014333 00000 n +0000014357 00000 n +0000014540 00000 n +0000015523 00000 n +0000023283 00000 n +0000015908 00000 n +0000023259 00000 n +0000026248 00000 n +0000023467 00000 n +0000026224 00000 n +trailer +<< +/Size 16 +/Root 2 0 R +/Info 1 0 R +>> +startxref +26569 +%%EOF \ No newline at end of file diff --git a/media/planos_saude/operadora/cooparticipação.pdf b/media/planos_saude/operadora/cooparticipação.pdf new file mode 100644 index 0000000..549c4f4 --- /dev/null +++ b/media/planos_saude/operadora/cooparticipação.pdf @@ -0,0 +1,5261 @@ +%PDF-1.1 +1 0 obj +<< +/Creator (Developer 2000) +/CreatorDate ( +/Author (Oracle Reports) +/Producer (Oracle PDF driver) +/Title (F201960286_975.pdf) +>> +endobj +5 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 1) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +0.00 -9.88 TD +(Tipo de Plano:) Tj +83.88 0.00 TD +(AMBOS) Tj +-83.88 -9.88 TD +(Faixa de Contratante: ) Tj +83.88 0.00 TD +(Todos) Tj +-83.88 -9.88 TD +(Tipo Pessoa:) Tj +83.88 0.00 TD +(Jurídica) Tj +-83.88 -19.72 TD +(Faixa Plano:) Tj +83.88 0.00 TD +(0 a 9999) Tj +183.28 29.60 TD +(Numero da Nota na Unimed:) Tj +99.40 0.00 TD +(Local) Tj +-99.40 -9.88 TD +(Emitir por Fatura:) Tj +99.40 0.00 TD +(Sim) Tj +-99.40 -9.88 TD +(Numero da fatura:) Tj +99.40 0.04 TD +(201960286 a 201960286) Tj +-99.40 -9.88 TD +(Imprimir Resumo:) Tj +99.40 0.00 TD +(Não) Tj +148.80 39.48 TD +(Quebra por Família:) Tj +105.60 0.00 TD +(Sim) Tj +-354.12 0.00 TD +(Ordem Emissão:) Tj +99.36 0.00 TD +(Alfabetica por Titulo) Tj +-312.88 -98.72 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.76 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 398.32 779.56 9.88 re W n +BT +6.20 403.52 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 438.88 779.52 9.88 re W n +BT +6.20 444.12 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 414.48 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167003824292) Tj +0.00 -21.20 TD +(0975.0167003824292) Tj +ET +q +74.68 382.48 43.48 7.08 re W n +BT +74.68 384.88 TD +(ANDREIA STORM) Tj +ET +Q 0 g 0 G +q +74.68 361.28 43.48 7.08 re W n +BT +74.68 363.68 TD +/F0 6.00 Tf +(ANDREIA STORM) Tj +ET +Q 0 g 0 G +BT +156.72 384.88 TD +/F0 6.00 Tf +() Tj +0.00 -21.20 TD +() Tj +116.64 21.20 TD +() Tj +0.00 -21.20 TD +() Tj +2.68 21.20 TD +(NÃO) Tj +0.00 -21.20 TD +(NÃO) Tj +13.68 21.20 TD +(15/07/26) Tj +0.00 -21.20 TD +(15/07/26) Tj +48.12 21.20 TD +(36651360) Tj +0.00 -21.20 TD +(36651360) Tj +69.28 21.20 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +2.36 21.20 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +ET +q +553.12 382.52 64.88 7.04 re W n +BT +553.12 384.88 TD +(Mamografia digital ) Tj +ET +Q 0 g 0 G +q +553.12 375.44 64.88 7.04 re W n +BT +553.12 377.80 TD +/F0 6.00 Tf +(US - Transvaginal \() Tj +ET +Q 0 g 0 G +BT +553.12 370.76 TD +/F0 6.00 Tf +(US - Mamas) Tj +ET +q +553.12 361.32 64.88 7.04 re W n +BT +553.12 363.68 TD +(Densitometria ossea) Tj +ET +Q 0 g 0 G +BT +657.40 385.60 TD +/F0 5.00 Tf +( 77.72) Tj +0.00 -7.08 TD +( 44.36) Tj +0.00 -7.04 TD +( 38.52) Tj +0.00 -7.08 TD +( 59.76) Tj +72.44 21.20 TD +( 77.72) Tj +0.00 -7.08 TD +( 44.36) Tj +0.00 -7.04 TD +( 38.52) Tj +0.00 -7.08 TD +( 59.76) Tj +-244.12 20.48 TD +/F0 6.00 Tf +(40808041) Tj +0.00 -7.08 TD +(40901300) Tj +0.00 -7.04 TD +(40901114) Tj +0.00 -7.08 TD +(40808130) Tj +126.32 21.92 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +-150.64 20.48 TD +/F0 6.00 Tf +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +171.48 -7.08 TD +(Total da Familia:) Tj +89.76 0.00 TD +( 220.36) Tj +-674.92 38.16 TD +(838732 ANDREIA STORMOSKI LARA) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.00 TD +(Prestador) Tj +-375.76 39.52 TD +(Titulo:) Tj +33.00 -0.04 TD +(201960286) Tj +482.36 69.12 TD +(Tipo Prestador:) Tj +105.60 0.00 TD +(Intercâmbio) Tj +-306.95 -108.60 TD +(Cartao) Tj +49.92 -29.60 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.04 TD +(1) Tj +0.00 -7.08 TD +(2) Tj +-45.56 21.20 TD +(N) Tj +0.00 -7.08 TD +(N) Tj +0.00 -7.04 TD +(N) Tj +0.00 -7.08 TD +(N) Tj +302.60 149.52 TD +(Não) Tj +-105.60 0.00 TD +(Código Genérico p/ Mat/Med:) Tj +-401.00 -128.32 TD +(TITULAR) Tj +0.00 -21.20 TD +(TITULAR) Tj +-0.76 50.80 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(40808041) Tj +0.00 -7.08 TD +(40901300) Tj +0.00 -7.04 TD +(40901114) Tj +0.00 -7.08 TD +(40808130) Tj +-4.00 50.80 TD +(Serv Atd) Tj +ET +q +6.20 458.64 779.56 9.88 re W n +BT +6.20 463.84 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 419.16 779.52 9.88 re W n +BT +6.20 424.36 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 384.88 TD +/F0 6.00 Tf +(031.535.759-24) Tj +0.00 -21.20 TD +(031.535.759-24) Tj +ET +q +205.84 409.68 42.20 9.88 re W n +BT +205.84 414.88 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 408.76 37.88 10.48 re S +BT +784.48 414.56 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +6 0 obj +7639 +endobj +7 0 obj +<> +endobj +8 0 obj +[600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 0 600 600 600 600 +600 600 600 600 600 600 600 0 600 0 +0 600 600 600 600 600 600 600 0 600 +600 600 600 0 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 +600 600 ] +endobj +9 0 obj +<< +/Type /FontDescriptor +/FontName /CourierNew +/Ascent 780 +/CapHeight 720 +/Descent -276 +/Flags 33 +/FontBBox [0 0 0 0] +/ItalicAngle 0 +/StemV 0 +/AvgWidth 576 +/MaxWidth 600 +>> +endobj +4 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 5 0 R +/CropBox [0 0 792 612] +>> +endobj +11 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 2) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +53.32 -39.52 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.72 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 467.40 779.56 9.88 re W n +BT +6.20 472.60 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 508.00 779.52 9.88 re W n +BT +6.20 513.20 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 483.60 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167003833380) Tj +0.00 -77.76 TD +(0975.0167003833380) Tj +0.00 -98.92 TD +(0975.0167003833380) Tj +ET +q +74.68 451.56 43.48 7.08 re W n +BT +74.68 454.00 TD +(CHRISTIAN GAS) Tj +ET +Q 0 g 0 G +q +74.68 373.84 43.48 7.08 re W n +BT +74.68 376.24 TD +/F0 6.00 Tf +(CHRISTIAN GAS) Tj +ET +Q 0 g 0 G +q +74.68 274.92 43.48 7.08 re W n +BT +74.68 277.32 TD +/F0 6.00 Tf +(CHRISTIAN GAS) Tj +ET +Q 0 g 0 G +BT +156.72 454.00 TD +/F0 6.00 Tf +() Tj +0.00 -77.76 TD +() Tj +0.00 -98.92 TD +() Tj +116.64 176.68 TD +() Tj +0.00 -77.76 TD +() Tj +0.00 -98.92 TD +() Tj +2.68 176.68 TD +(NÃO) Tj +0.00 -77.76 TD +(NÃO) Tj +0.00 -98.92 TD +(NÃO) Tj +13.68 176.68 TD +(09/06/26) Tj +0.00 -77.76 TD +(09/06/26) Tj +0.00 -98.92 TD +(09/06/26) Tj +48.12 176.68 TD +(36337265) Tj +0.00 -77.76 TD +(36337265) Tj +0.00 -98.92 TD +(36337265) Tj +69.28 176.68 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +2.36 190.80 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +ET +q +553.12 451.60 64.88 7.04 re W n +BT +553.12 454.00 TD +(Sodio - pesquisa e/) Tj +ET +Q 0 g 0 G +q +553.12 444.56 64.88 7.04 re W n +BT +553.12 446.92 TD +/F0 6.00 Tf +(Magnesio - pesquisa) Tj +ET +Q 0 g 0 G +q +553.12 437.48 64.88 7.04 re W n +BT +553.12 439.84 TD +/F0 6.00 Tf +(Colesterol \(HDL\) - ) Tj +ET +Q 0 g 0 G +q +553.12 430.40 64.88 7.04 re W n +BT +553.12 432.80 TD +/F0 6.00 Tf +(Calcio - pesquisa e) Tj +ET +Q 0 g 0 G +q +553.12 423.36 64.88 7.04 re W n +BT +553.12 425.72 TD +/F0 6.00 Tf +(Hemograma com conta) Tj +ET +Q 0 g 0 G +q +553.12 416.28 64.88 7.04 re W n +BT +553.12 418.64 TD +/F0 6.00 Tf +(Colesterol \(LDL\) - ) Tj +ET +Q 0 g 0 G +q +553.12 409.20 64.88 7.04 re W n +BT +553.12 411.60 TD +/F0 6.00 Tf +(Potassio - pesquisa) Tj +ET +Q 0 g 0 G +q +553.12 402.16 64.88 7.04 re W n +BT +553.12 404.52 TD +/F0 6.00 Tf +(Glicose - pesquisa ) Tj +ET +Q 0 g 0 G +q +553.12 395.08 64.88 7.04 re W n +BT +553.12 397.44 TD +/F0 6.00 Tf +(Hemoglobina glicada) Tj +ET +Q 0 g 0 G +q +553.12 388.00 64.88 7.04 re W n +BT +553.12 390.40 TD +/F0 6.00 Tf +(Colesterol total - ) Tj +ET +Q 0 g 0 G +q +553.12 380.96 64.88 7.04 re W n +BT +553.12 383.32 TD +/F0 6.00 Tf +(Creatinina - pesqui) Tj +ET +Q 0 g 0 G +q +553.12 373.88 64.88 7.04 re W n +BT +553.12 376.24 TD +/F0 6.00 Tf +(T4 livre - pesquisa) Tj +ET +Q 0 g 0 G +q +553.12 366.84 64.88 7.04 re W n +BT +553.12 369.20 TD +/F0 6.00 Tf +(Tireoestimulante, h) Tj +ET +Q 0 g 0 G +q +553.12 359.76 64.88 7.04 re W n +BT +553.12 362.12 TD +/F0 6.00 Tf +(Vitamina B12 - pesq) Tj +ET +Q 0 g 0 G +q +553.12 352.68 64.88 7.04 re W n +BT +553.12 355.04 TD +/F0 6.00 Tf +(Testosterona total ) Tj +ET +Q 0 g 0 G +q +553.12 345.64 64.88 7.04 re W n +BT +553.12 348.00 TD +/F0 6.00 Tf +(Zinco - pesquisa e/) Tj +ET +Q 0 g 0 G +q +553.12 338.56 64.88 7.04 re W n +BT +553.12 340.92 TD +/F0 6.00 Tf +(Ferritina - pesquis) Tj +ET +Q 0 g 0 G +q +553.12 331.48 64.88 7.04 re W n +BT +553.12 333.84 TD +/F0 6.00 Tf +(Transaminase oxalac) Tj +ET +Q 0 g 0 G +q +553.12 324.44 64.88 7.04 re W n +BT +553.12 326.80 TD +/F0 6.00 Tf +(Transaminase piruvi) Tj +ET +Q 0 g 0 G +q +553.12 317.36 64.88 7.04 re W n +BT +553.12 319.72 TD +/F0 6.00 Tf +(Gama-glutamil trans) Tj +ET +Q 0 g 0 G +q +553.12 310.28 64.88 7.04 re W n +BT +553.12 312.64 TD +/F0 6.00 Tf +(Triglicerideos - pe) Tj +ET +Q 0 g 0 G +q +553.12 303.24 64.88 7.04 re W n +BT +553.12 305.60 TD +/F0 6.00 Tf +(Colesterol \(VLDL\) -) Tj +ET +Q 0 g 0 G +q +553.12 296.16 64.88 7.04 re W n +BT +553.12 298.52 TD +/F0 6.00 Tf +(Insulina - pesquisa) Tj +ET +Q 0 g 0 G +q +553.12 289.08 64.88 7.04 re W n +BT +553.12 291.44 TD +/F0 6.00 Tf +(Vitamina "D" 25 HID) Tj +ET +Q 0 g 0 G +q +553.12 282.04 64.88 7.04 re W n +BT +553.12 284.40 TD +/F0 6.00 Tf +(Acido folico, pesqu) Tj +ET +Q 0 g 0 G +q +553.12 274.95 64.88 7.04 re W n +BT +553.12 277.32 TD +/F0 6.00 Tf +(Testosterona livre ) Tj +ET +Q 0 g 0 G +q +553.12 267.88 64.88 7.04 re W n +BT +553.12 270.24 TD +/F0 6.00 Tf +(Estradiol - pesquis) Tj +ET +Q 0 g 0 G +q +553.12 260.84 64.88 7.04 re W n +BT +553.12 263.20 TD +/F0 6.00 Tf +(Foliculo estimulant) Tj +ET +Q 0 g 0 G +BT +660.40 454.72 TD +/F0 5.00 Tf +( 1.74) Tj +0.00 -7.08 TD +( 1.98) Tj +0.00 -7.08 TD +( 3.72) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 3.72) Tj +0.00 -7.08 TD +( 4.96) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.08 TD +( 8.40) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +-3.00 -7.08 TD +( 10.53) Tj +0.00 -7.04 TD +( 10.53) Tj +0.00 -7.08 TD +( 10.53) Tj +0.00 -7.08 TD +( 13.01) Tj +0.00 -7.04 TD +( 14.86) Tj +0.00 -7.08 TD +( 15.48) Tj +3.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 2.48) Tj +0.00 -7.08 TD +( 2.48) Tj +0.00 -7.04 TD +( 3.72) Tj +0.00 -7.08 TD +( 6.81) Tj +0.00 -7.08 TD +( 8.28) Tj +-3.00 -7.04 TD +( 10.53) Tj +0.00 -7.08 TD +( 18.58) Tj +0.00 -7.08 TD +( 12.39) Tj +3.00 -7.04 TD +( 8.05) Tj +72.44 190.80 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.98) Tj +0.00 -7.08 TD +( 3.72) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 3.72) Tj +0.00 -7.08 TD +( 4.96) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.08 TD +( 8.40) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +-3.00 -7.08 TD +( 10.53) Tj +0.00 -7.04 TD +( 10.53) Tj +0.00 -7.08 TD +( 10.53) Tj +0.00 -7.08 TD +( 13.01) Tj +0.00 -7.04 TD +( 14.86) Tj +0.00 -7.08 TD +( 15.48) Tj +3.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 2.48) Tj +0.00 -7.08 TD +( 2.48) Tj +0.00 -7.04 TD +( 3.72) Tj +0.00 -7.08 TD +( 6.81) Tj +0.00 -7.08 TD +( 8.28) Tj +-3.00 -7.04 TD +( 10.53) Tj +0.00 -7.08 TD +( 18.58) Tj +0.00 -7.08 TD +( 12.39) Tj +3.00 -7.04 TD +( 8.05) Tj +-247.12 190.08 TD +/F0 6.00 Tf +(40302423) Tj +0.00 -7.08 TD +(40302237) Tj +0.00 -7.08 TD +(40301583) Tj +0.00 -7.04 TD +(40301400) Tj +0.00 -7.08 TD +(40304361) Tj +0.00 -7.08 TD +(40301591) Tj +0.00 -7.04 TD +(40302318) Tj +0.00 -7.08 TD +(40302040) Tj +0.00 -7.08 TD +(40302075) Tj +0.00 -7.04 TD +(40301605) Tj +0.00 -7.08 TD +(40301630) Tj +0.00 -7.08 TD +(40316491) Tj +0.00 -7.04 TD +(40316521) Tj +0.00 -7.08 TD +(40316572) Tj +0.00 -7.08 TD +(40316513) Tj +0.00 -7.04 TD +(40313328) Tj +0.00 -7.08 TD +(40316270) Tj +0.00 -7.08 TD +(40302504) Tj +0.00 -7.04 TD +(40302512) Tj +0.00 -7.08 TD +(40301990) Tj +0.00 -7.08 TD +(40302547) Tj +0.00 -7.04 TD +(40302695) Tj +0.00 -7.08 TD +(40316360) Tj +0.00 -7.08 TD +(40302830) Tj +0.00 -7.04 TD +(40301087) Tj +0.00 -7.08 TD +(40316505) Tj +0.00 -7.08 TD +(40316246) Tj +0.00 -7.04 TD +(40316289) Tj +126.32 191.52 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +-150.64 190.08 TD +/F0 6.00 Tf +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +171.48 -7.08 TD +(Total da Familia:) Tj +89.76 0.00 TD +( 184.96) Tj +-674.92 207.72 TD +(838925 CHRISTIAN GASTON RIZZI) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.04 TD +(Prestador) Tj +-375.76 39.48 TD +(Titulo:) Tj +33.00 0.00 TD +(201960286) Tj +281.00 -39.48 TD +(Cartao) Tj +49.92 -29.60 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.04 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.04 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.04 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.04 TD +(3) Tj +-45.56 190.80 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +-204.00 190.80 TD +(TITULAR) Tj +0.00 -77.76 TD +(TITULAR) Tj +0.00 -98.92 TD +(TITULAR) Tj +-0.76 206.28 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(40302423) Tj +0.00 -7.08 TD +(40302237) Tj +0.00 -7.08 TD +(40301583) Tj +0.00 -7.04 TD +(40301400) Tj +0.00 -7.08 TD +(40304361) Tj +0.00 -7.08 TD +(40301591) Tj +0.00 -7.04 TD +(40302318) Tj +0.00 -7.08 TD +(40302040) Tj +0.00 -7.08 TD +(40302075) Tj +0.00 -7.04 TD +(40301605) Tj +0.00 -7.08 TD +(40301630) Tj +0.00 -7.08 TD +(40316491) Tj +0.00 -7.04 TD +(40316521) Tj +0.00 -7.08 TD +(40316572) Tj +0.00 -7.08 TD +(40316513) Tj +0.00 -7.04 TD +(40313328) Tj +0.00 -7.08 TD +(40316270) Tj +0.00 -7.08 TD +(40302504) Tj +0.00 -7.04 TD +(40302512) Tj +0.00 -7.08 TD +(40301990) Tj +0.00 -7.08 TD +(40302547) Tj +0.00 -7.04 TD +(40302695) Tj +0.00 -7.08 TD +(40316360) Tj +0.00 -7.08 TD +(40302830) Tj +0.00 -7.04 TD +(40301087) Tj +0.00 -7.08 TD +(40316505) Tj +0.00 -7.08 TD +(40316246) Tj +0.00 -7.04 TD +(40316289) Tj +-4.00 220.40 TD +(Serv Atd) Tj +ET +q +6.20 527.76 779.56 9.88 re W n +BT +6.20 532.96 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 488.24 779.52 9.88 re W n +BT +6.20 493.48 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 454.00 TD +/F0 6.00 Tf +(703.895.279-04) Tj +0.00 -77.76 TD +(703.895.279-04) Tj +0.00 -98.92 TD +(703.895.279-04) Tj +ET +q +205.84 478.76 42.20 9.88 re W n +BT +205.84 483.96 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 477.88 37.88 10.48 re S +BT +784.48 483.68 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +12 0 obj +16866 +endobj +10 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 11 0 R +/CropBox [0 0 792 612] +>> +endobj +14 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 3) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +53.32 -39.52 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.72 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 467.40 779.56 9.88 re W n +BT +6.20 472.60 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 508.00 779.52 9.88 re W n +BT +6.20 513.20 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 483.60 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167003335763) Tj +ET +q +74.68 451.56 43.48 7.08 re W n +BT +74.68 454.00 TD +(CATHERINE NUN) Tj +ET +Q 0 g 0 G +BT +156.72 454.00 TD +/F0 6.00 Tf +() Tj +116.64 0.00 TD +() Tj +2.68 0.00 TD +(SIM) Tj +13.68 0.00 TD +(10/07/26) Tj +48.12 0.00 TD +(36590716) Tj +69.28 0.00 TD +() Tj +0.00 -39.48 TD +() Tj +2.36 39.48 TD +() Tj +0.00 -39.48 TD +() Tj +ET +q +553.12 451.60 64.88 7.04 re W n +BT +553.12 454.00 TD +(PACOTE ATENDIMENTO ) Tj +ET +Q 0 g 0 G +q +553.12 412.12 64.88 7.04 re W n +BT +553.12 414.52 TD +/F0 6.00 Tf +(Consulta em pronto ) Tj +ET +Q 0 g 0 G +BT +660.40 454.72 TD +/F0 5.00 Tf +( 3.06) Tj +-3.00 -39.48 TD +( 75.00) Tj +75.44 39.48 TD +( 3.06) Tj +-3.00 -39.48 TD +( 75.00) Tj +-244.12 38.76 TD +/F0 6.00 Tf +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +126.32 40.20 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -39.48 TD +( 1.000) Tj +-150.64 38.76 TD +/F0 6.00 Tf +(HOS) Tj +0.00 -39.48 TD +(CON) Tj +171.48 -7.08 TD +(Total da Familia:) Tj +93.36 0.00 TD +( 78.06) Tj +-678.52 56.40 TD +(832120 FALLKNER RIBEIRO BORGES) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.04 TD +(Prestador) Tj +-375.76 39.48 TD +(Titulo:) Tj +33.00 0.00 TD +(201960286) Tj +281.00 -39.48 TD +(Cartao) Tj +49.92 -29.60 TD +(1) Tj +0.00 -39.48 TD +(1) Tj +-45.56 39.48 TD +(N) Tj +0.00 -39.48 TD +(N) Tj +-204.00 39.48 TD +(FILHO\(A\)) Tj +-0.76 29.60 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +-4.00 69.08 TD +(Serv Atd) Tj +-74.84 -39.48 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +17.04 19.76 TD +(MED) Tj +0.00 -9.88 TD +(MAT) Tj +0.00 -9.88 TD +(HOS) Tj +24.32 19.76 TD +(99999927) Tj +0.00 -9.88 TD +(99999935) Tj +0.00 -9.88 TD +(99999919) Tj +ET +q +553.52 438.92 64.48 9.88 re W n +BT +553.52 444.12 TD +(MEDICAMENTO EM GER) Tj +ET +Q 0 g 0 G +BT +553.52 434.24 TD +/F0 6.00 Tf +(MATERIAL EM GERAL) Tj +ET +q +553.52 419.16 64.48 9.88 re W n +BT +553.52 424.36 TD +(SOMA DE OUTRAS TAX) Tj +ET +Q 0 g 0 G +BT +612.04 444.84 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +48.36 19.76 TD +( 1.02) Tj +0.00 -9.88 TD +( 1.02) Tj +0.00 -9.88 TD +( 1.02) Tj +ET +q +6.20 527.76 779.56 9.88 re W n +BT +6.20 532.96 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 488.24 779.52 9.88 re W n +BT +6.20 493.48 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 454.00 TD +/F0 6.00 Tf +(800.830.749-88) Tj +ET +q +205.84 478.76 42.20 9.88 re W n +BT +205.84 483.96 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 477.88 37.88 10.48 re S +BT +784.48 483.68 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -39.48 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +15 0 obj +6417 +endobj +13 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 14 0 R +/CropBox [0 0 792 612] +>> +endobj +17 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 4) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +53.32 -39.52 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.72 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 467.40 779.56 9.88 re W n +BT +6.20 472.60 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 508.00 779.52 9.88 re W n +BT +6.20 513.20 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 483.60 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167013213733) Tj +0.00 -46.56 TD +(0975.0167013213733) Tj +0.00 -7.08 TD +(0975.0167013213733) Tj +0.00 -39.48 TD +(0975.0167013213733) Tj +0.00 -7.04 TD +(0975.0167013213733) Tj +ET +q +74.68 451.56 43.48 7.08 re W n +BT +74.68 454.00 TD +(ANA LUIZA A S) Tj +ET +Q 0 g 0 G +q +74.68 405.04 43.48 7.08 re W n +BT +74.68 407.44 TD +/F0 6.00 Tf +(ANA LUIZA A S) Tj +ET +Q 0 g 0 G +q +74.68 397.96 43.48 7.08 re W n +BT +74.68 400.36 TD +/F0 6.00 Tf +(ANA LUIZA A S) Tj +ET +Q 0 g 0 G +q +74.68 358.48 43.48 7.08 re W n +BT +74.68 360.88 TD +/F0 6.00 Tf +(ANA LUIZA A S) Tj +ET +Q 0 g 0 G +q +74.68 351.40 43.48 7.08 re W n +BT +74.68 353.84 TD +/F0 6.00 Tf +(ANA LUIZA A S) Tj +ET +Q 0 g 0 G +BT +156.72 454.00 TD +/F0 6.00 Tf +() Tj +0.00 -46.56 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -39.48 TD +() Tj +0.00 -7.04 TD +() Tj +116.64 100.16 TD +() Tj +0.00 -46.56 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -39.48 TD +() Tj +0.00 -7.04 TD +() Tj +2.68 100.16 TD +(SIM) Tj +0.00 -46.56 TD +(SIM) Tj +0.00 -7.08 TD +(SIM) Tj +0.00 -39.48 TD +(SIM) Tj +0.00 -7.04 TD +(SIM) Tj +13.68 100.16 TD +(23/06/26) Tj +0.00 -46.56 TD +(27/06/26) Tj +0.00 -7.08 TD +(27/06/26) Tj +0.00 -39.48 TD +(27/06/26) Tj +0.00 -7.04 TD +(27/06/26) Tj +48.12 100.16 TD +(36474453) Tj +0.00 -46.56 TD +(36482893) Tj +0.00 -7.08 TD +(36482893) Tj +0.00 -39.48 TD +(36484120) Tj +0.00 -7.04 TD +(36484120) Tj +69.28 100.16 TD +() Tj +0.00 -39.48 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -39.48 TD +() Tj +0.00 -7.04 TD +() Tj +2.36 100.16 TD +() Tj +0.00 -39.48 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -39.48 TD +() Tj +0.00 -7.04 TD +() Tj +ET +q +553.12 451.60 64.88 7.04 re W n +BT +553.12 454.00 TD +(PACOTE ATENDIMENTO ) Tj +ET +Q 0 g 0 G +q +553.12 412.12 64.88 7.04 re W n +BT +553.12 414.52 TD +/F0 6.00 Tf +(Consulta em pronto ) Tj +ET +Q 0 g 0 G +q +553.12 405.08 64.88 7.04 re W n +BT +553.12 407.44 TD +/F0 6.00 Tf +(Consulta em pronto ) Tj +ET +Q 0 g 0 G +q +553.12 398.00 64.88 7.04 re W n +BT +553.12 400.36 TD +/F0 6.00 Tf +(PACOTE ATENDIMENTO ) Tj +ET +Q 0 g 0 G +q +553.12 358.52 64.88 7.04 re W n +BT +553.12 360.88 TD +/F0 6.00 Tf +(Consulta em pronto ) Tj +ET +Q 0 g 0 G +q +553.12 351.44 64.88 7.04 re W n +BT +553.12 353.84 TD +/F0 6.00 Tf +(PACOTE ATENDIMENTO ) Tj +ET +Q 0 g 0 G +BT +660.40 454.72 TD +/F0 5.00 Tf +( 3.06) Tj +-3.00 -39.48 TD +( 75.00) Tj +0.00 -7.08 TD +( 78.06) Tj +3.00 -7.08 TD +( 0.00) Tj +-3.00 -39.48 TD +( 78.06) Tj +3.00 -7.04 TD +( 0.00) Tj +72.44 100.16 TD +( 3.06) Tj +-3.00 -39.48 TD +( 75.00) Tj +0.00 -7.08 TD +( 78.06) Tj +3.00 -7.08 TD +( 0.00) Tj +-3.00 -39.48 TD +( 78.06) Tj +3.00 -7.04 TD +( 0.00) Tj +-247.12 99.44 TD +/F0 6.00 Tf +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +0.00 -7.08 TD +(10101039) Tj +0.00 -7.08 TD +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +0.00 -7.04 TD +(92001039) Tj +126.32 100.88 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -39.48 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -39.48 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +-150.64 99.44 TD +/F0 6.00 Tf +(HOS) Tj +0.00 -39.48 TD +(CON) Tj +0.00 -7.08 TD +(CON) Tj +0.00 -7.08 TD +(HOS) Tj +0.00 -39.48 TD +(CON) Tj +0.00 -7.04 TD +(HOS) Tj +171.48 -39.48 TD +(Total da Familia:) Tj +89.76 0.00 TD +( 234.18) Tj +-674.92 149.47 TD +(832119 FRANCIELLI JAQUELINE ALBUQUERQUE SANTOS) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.04 TD +(Prestador) Tj +-375.76 39.48 TD +(Titulo:) Tj +33.00 0.00 TD +(201960286) Tj +281.00 -39.48 TD +(Cartao) Tj +49.92 -29.60 TD +(1) Tj +0.00 -39.48 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(2) Tj +0.00 -39.48 TD +(1) Tj +0.00 -7.04 TD +(2) Tj +-45.56 100.16 TD +(N) Tj +0.00 -39.48 TD +(N) Tj +0.00 -7.08 TD +(N) Tj +0.00 -7.08 TD +(N) Tj +0.00 -39.48 TD +(N) Tj +0.00 -7.04 TD +(N) Tj +-204.00 100.16 TD +(FILHO\(A\)) Tj +0.00 -46.56 TD +(FILHO\(A\)) Tj +0.00 -7.08 TD +(FILHO\(A\)) Tj +0.00 -39.48 TD +(FILHO\(A\)) Tj +0.00 -7.04 TD +(FILHO\(A\)) Tj +-0.76 129.76 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +0.00 -7.08 TD +(10101039) Tj +0.00 -7.08 TD +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +0.00 -7.04 TD +(92001039) Tj +-4.00 129.76 TD +(Serv Atd) Tj +-74.84 -39.48 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +0.00 -33.88 TD +(Pct:) Tj +0.00 -9.84 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +0.00 -26.80 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +17.04 119.92 TD +(HOS) Tj +0.00 -9.88 TD +(MED) Tj +0.00 -9.88 TD +(MAT) Tj +0.00 -33.88 TD +(HOS) Tj +0.00 -9.84 TD +(MED) Tj +0.00 -9.88 TD +(MAT) Tj +0.00 -26.80 TD +(HOS) Tj +0.00 -9.88 TD +(MED) Tj +0.00 -9.88 TD +(MAT) Tj +24.32 119.92 TD +(99999919) Tj +0.00 -9.88 TD +(99999927) Tj +0.00 -9.88 TD +(99999935) Tj +0.00 -33.88 TD +(99999919) Tj +0.00 -9.84 TD +(99999927) Tj +0.00 -9.88 TD +(99999935) Tj +0.00 -26.80 TD +(99999919) Tj +0.00 -9.88 TD +(99999927) Tj +0.00 -9.88 TD +(99999935) Tj +ET +q +553.52 438.92 64.48 9.88 re W n +BT +553.52 444.12 TD +(SOMA DE OUTRAS TAX) Tj +ET +Q 0 g 0 G +q +553.52 429.04 64.48 9.88 re W n +BT +553.52 434.24 TD +/F0 6.00 Tf +(MEDICAMENTO EM GER) Tj +ET +Q 0 g 0 G +BT +553.52 424.36 TD +/F0 6.00 Tf +(MATERIAL EM GERAL) Tj +ET +q +553.52 385.28 64.48 9.88 re W n +BT +553.52 390.48 TD +(SOMA DE OUTRAS TAX) Tj +ET +Q 0 g 0 G +q +553.52 375.44 64.48 9.88 re W n +BT +553.52 380.64 TD +/F0 6.00 Tf +(MEDICAMENTO EM GER) Tj +ET +Q 0 g 0 G +BT +553.52 370.76 TD +/F0 6.00 Tf +(MATERIAL EM GERAL) Tj +ET +q +553.52 338.76 64.48 9.88 re W n +BT +553.52 343.96 TD +(SOMA DE OUTRAS TAX) Tj +ET +Q 0 g 0 G +q +553.52 328.88 64.48 9.88 re W n +BT +553.52 334.08 TD +/F0 6.00 Tf +(MEDICAMENTO EM GER) Tj +ET +Q 0 g 0 G +BT +553.52 324.20 TD +/F0 6.00 Tf +(MATERIAL EM GERAL) Tj +58.52 120.64 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +0.00 -33.88 TD +( 1.000) Tj +0.00 -9.84 TD +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +0.00 -26.80 TD +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +48.36 119.92 TD +( 1.02) Tj +0.00 -9.88 TD +( 1.02) Tj +0.00 -9.88 TD +( 1.02) Tj +0.00 -33.88 TD +( 0.00) Tj +0.00 -9.84 TD +( 0.00) Tj +0.00 -9.88 TD +( 0.00) Tj +0.00 -26.80 TD +( 0.00) Tj +0.00 -9.88 TD +( 0.00) Tj +0.00 -9.88 TD +( 0.00) Tj +ET +q +6.20 527.76 779.56 9.88 re W n +BT +6.20 532.96 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 488.24 779.52 9.88 re W n +BT +6.20 493.48 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 454.00 TD +/F0 6.00 Tf +(053.681.549-68) Tj +0.00 -46.56 TD +(053.681.549-68) Tj +0.00 -7.08 TD +(053.681.549-68) Tj +0.00 -39.48 TD +(053.681.549-68) Tj +0.00 -7.04 TD +(053.681.549-68) Tj +ET +q +205.84 478.76 42.20 9.88 re W n +BT +205.84 483.96 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 477.88 37.88 10.48 re S +BT +784.48 483.68 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -39.48 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -39.48 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +18 0 obj +10865 +endobj +16 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 17 0 R +/CropBox [0 0 792 612] +>> +endobj +20 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 5) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +53.32 -39.52 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.72 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 467.40 779.56 9.88 re W n +BT +6.20 472.60 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 508.00 779.52 9.88 re W n +BT +6.20 513.20 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 483.60 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167003895050) Tj +0.00 -7.08 TD +(0975.0167003895050) Tj +0.00 -7.08 TD +(0975.0167003895050) Tj +0.00 -28.24 TD +(0975.0167003895050) Tj +0.00 -98.96 TD +(0975.0167003895050) Tj +0.00 -70.64 TD +(0975.0167003895050) Tj +ET +q +74.68 451.56 43.48 7.08 re W n +BT +74.68 454.00 TD +(MARINA MASSAO) Tj +ET +Q 0 g 0 G +q +74.68 444.52 43.48 7.08 re W n +BT +74.68 446.92 TD +/F0 6.00 Tf +(MARINA MASSAO) Tj +ET +Q 0 g 0 G +q +74.68 437.44 43.48 7.08 re W n +BT +74.68 439.84 TD +/F0 6.00 Tf +(MARINA MASSAO) Tj +ET +Q 0 g 0 G +q +74.68 409.16 43.48 7.08 re W n +BT +74.68 411.60 TD +/F0 6.00 Tf +(MARINA MASSAO) Tj +ET +Q 0 g 0 G +q +74.68 310.24 43.48 7.08 re W n +BT +74.68 312.64 TD +/F0 6.00 Tf +(MARINA MASSAO) Tj +ET +Q 0 g 0 G +q +74.68 239.60 43.48 7.08 re W n +BT +74.68 242.00 TD +/F0 6.00 Tf +(MARINA MASSAO) Tj +ET +Q 0 g 0 G +BT +156.72 454.00 TD +/F0 6.00 Tf +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -28.24 TD +() Tj +0.00 -98.96 TD +() Tj +0.00 -70.64 TD +() Tj +116.64 212.00 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -28.24 TD +() Tj +0.00 -98.96 TD +() Tj +0.00 -70.64 TD +() Tj +2.68 212.00 TD +(NÃO) Tj +0.00 -7.08 TD +(NÃO) Tj +0.00 -7.08 TD +(NÃO) Tj +0.00 -28.24 TD +(NÃO) Tj +0.00 -98.96 TD +(NÃO) Tj +0.00 -70.64 TD +(NÃO) Tj +13.68 212.00 TD +(20/06/26) Tj +0.00 -7.08 TD +(22/06/26) Tj +0.00 -7.08 TD +(27/06/26) Tj +0.00 -28.24 TD +(27/06/26) Tj +0.00 -98.96 TD +(27/06/26) Tj +0.00 -70.64 TD +(23/06/26) Tj +48.12 212.00 TD +(36424761) Tj +0.00 -7.08 TD +(36427960) Tj +0.00 -7.08 TD +(36469057) Tj +0.00 -28.24 TD +(36469057) Tj +0.00 -98.96 TD +(36469057) Tj +0.00 -70.64 TD +(36473780) Tj +69.28 212.00 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +2.36 212.00 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +ET +q +553.12 451.60 64.88 7.04 re W n +BT +553.12 454.00 TD +(Consulta em consult) Tj +ET +Q 0 g 0 G +q +553.12 444.56 64.88 7.04 re W n +BT +553.12 446.92 TD +/F0 6.00 Tf +(Procedimento diagno) Tj +ET +Q 0 g 0 G +q +553.12 437.48 64.88 7.04 re W n +BT +553.12 439.84 TD +/F0 6.00 Tf +(Glicose - pesquisa ) Tj +ET +Q 0 g 0 G +q +553.12 430.40 64.88 7.04 re W n +BT +553.12 432.80 TD +/F0 6.00 Tf +(Hemograma com conta) Tj +ET +Q 0 g 0 G +q +553.12 423.36 64.88 7.04 re W n +BT +553.12 425.72 TD +/F0 6.00 Tf +(Hemoglobina glicada) Tj +ET +Q 0 g 0 G +q +553.12 416.28 64.88 7.04 re W n +BT +553.12 418.64 TD +/F0 6.00 Tf +(Insulina - pesquisa) Tj +ET +Q 0 g 0 G +q +553.12 409.20 64.88 7.04 re W n +BT +553.12 411.60 TD +/F0 6.00 Tf +(Triglicerideos - pe) Tj +ET +Q 0 g 0 G +q +553.12 402.16 64.88 7.04 re W n +BT +553.12 404.52 TD +/F0 6.00 Tf +(Bacterioscopia \(Gra) Tj +ET +Q 0 g 0 G +q +553.12 395.08 64.88 7.04 re W n +BT +553.12 397.44 TD +/F0 6.00 Tf +(Ureia - pesquisa e/) Tj +ET +Q 0 g 0 G +q +553.12 388.00 64.88 7.04 re W n +BT +553.12 390.40 TD +/F0 6.00 Tf +(Transaminase piruvi) Tj +ET +Q 0 g 0 G +q +553.12 380.96 64.88 7.04 re W n +BT +553.12 383.32 TD +/F0 6.00 Tf +(Transaminase oxalac) Tj +ET +Q 0 g 0 G +q +553.12 373.88 64.88 7.04 re W n +BT +553.12 376.24 TD +/F0 6.00 Tf +(Creatinina - pesqui) Tj +ET +Q 0 g 0 G +q +553.12 366.84 64.88 7.04 re W n +BT +553.12 369.20 TD +/F0 6.00 Tf +(Colesterol total - ) Tj +ET +Q 0 g 0 G +q +553.12 359.76 64.88 7.04 re W n +BT +553.12 362.12 TD +/F0 6.00 Tf +(Rotina de urina \(ca) Tj +ET +Q 0 g 0 G +q +553.12 352.68 64.88 7.04 re W n +BT +553.12 355.04 TD +/F0 6.00 Tf +(Tireoestimulante, h) Tj +ET +Q 0 g 0 G +q +553.12 345.64 64.88 7.04 re W n +BT +553.12 348.00 TD +/F0 6.00 Tf +(T4 livre - pesquisa) Tj +ET +Q 0 g 0 G +q +553.12 338.56 64.88 7.04 re W n +BT +553.12 340.92 TD +/F0 6.00 Tf +(Vitamina "D" 25 HID) Tj +ET +Q 0 g 0 G +q +553.12 331.48 64.88 7.04 re W n +BT +553.12 333.84 TD +/F0 6.00 Tf +(Colesterol \(LDL\) - ) Tj +ET +Q 0 g 0 G +q +553.12 324.44 64.88 7.04 re W n +BT +553.12 326.80 TD +/F0 6.00 Tf +(Colesterol \(VLDL\) -) Tj +ET +Q 0 g 0 G +q +553.12 317.36 64.88 7.04 re W n +BT +553.12 319.72 TD +/F0 6.00 Tf +(Colesterol \(HDL\) - ) Tj +ET +Q 0 g 0 G +q +553.12 310.28 64.88 7.04 re W n +BT +553.12 312.64 TD +/F0 6.00 Tf +(Hormonio luteinizan) Tj +ET +Q 0 g 0 G +q +553.12 303.24 64.88 7.04 re W n +BT +553.12 305.60 TD +/F0 6.00 Tf +(Foliculo estimulant) Tj +ET +Q 0 g 0 G +q +553.12 296.16 64.88 7.04 re W n +BT +553.12 298.52 TD +/F0 6.00 Tf +(Androstenediona - p) Tj +ET +Q 0 g 0 G +q +553.12 289.08 64.88 7.04 re W n +BT +553.12 291.44 TD +/F0 6.00 Tf +(Testosterona livre ) Tj +ET +Q 0 g 0 G +q +553.12 282.04 64.88 7.04 re W n +BT +553.12 284.40 TD +/F0 6.00 Tf +(Ferritina - pesquis) Tj +ET +Q 0 g 0 G +q +553.12 274.95 64.88 7.04 re W n +BT +553.12 277.32 TD +/F0 6.00 Tf +(Sulfato de dehidroe) Tj +ET +Q 0 g 0 G +q +553.12 267.88 64.88 7.04 re W n +BT +553.12 270.24 TD +/F0 6.00 Tf +(Estriol - pesquisa ) Tj +ET +Q 0 g 0 G +q +553.12 260.84 64.88 7.04 re W n +BT +553.12 263.20 TD +/F0 6.00 Tf +(Testosterona total ) Tj +ET +Q 0 g 0 G +q +553.12 253.76 64.88 7.04 re W n +BT +553.12 256.12 TD +/F0 6.00 Tf +(Progesterona - pesq) Tj +ET +Q 0 g 0 G +q +553.12 246.68 64.88 7.04 re W n +BT +553.12 249.04 TD +/F0 6.00 Tf +(Vitamina B12 - pesq) Tj +ET +Q 0 g 0 G +q +553.12 239.64 64.88 7.04 re W n +BT +553.12 242.00 TD +/F0 6.00 Tf +(US - Transvaginal \() Tj +ET +Q 0 g 0 G +BT +657.40 454.72 TD +/F0 5.00 Tf +( 55.00) Tj +0.00 -7.08 TD +( 19.52) Tj +3.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 3.72) Tj +0.00 -7.08 TD +( 5.58) Tj +0.00 -7.08 TD +( 6.81) Tj +0.00 -7.04 TD +( 2.48) Tj +0.00 -7.08 TD +( 1.86) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 2.48) Tj +-3.00 -7.08 TD +( 10.53) Tj +0.00 -7.04 TD +( 10.53) Tj +3.00 -7.08 TD +( 8.28) Tj +0.00 -7.08 TD +( 4.96) Tj +0.00 -7.04 TD +( 3.72) Tj +0.00 -7.08 TD +( 3.72) Tj +0.00 -7.08 TD +( 7.80) Tj +0.00 -7.04 TD +( 8.05) Tj +-3.00 -7.08 TD +( 19.82) Tj +0.00 -7.08 TD +( 18.58) Tj +0.00 -7.04 TD +( 15.48) Tj +0.00 -7.08 TD +( 13.62) Tj +0.00 -7.08 TD +( 13.62) Tj +0.00 -7.04 TD +( 13.01) Tj +0.00 -7.08 TD +( 13.01) Tj +0.00 -7.08 TD +( 10.53) Tj +0.00 -7.04 TD +( 44.36) Tj +72.44 212.00 TD +( 55.00) Tj +0.00 -7.08 TD +( 19.52) Tj +3.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 3.72) Tj +0.00 -7.08 TD +( 5.58) Tj +0.00 -7.08 TD +( 6.81) Tj +0.00 -7.04 TD +( 2.48) Tj +0.00 -7.08 TD +( 1.86) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.08 TD +( 1.74) Tj +0.00 -7.04 TD +( 1.74) Tj +0.00 -7.08 TD +( 2.48) Tj +-3.00 -7.08 TD +( 10.53) Tj +0.00 -7.04 TD +( 10.53) Tj +3.00 -7.08 TD +( 8.28) Tj +0.00 -7.08 TD +( 4.96) Tj +0.00 -7.04 TD +( 3.72) Tj +0.00 -7.08 TD +( 3.72) Tj +0.00 -7.08 TD +( 7.80) Tj +0.00 -7.04 TD +( 8.05) Tj +-3.00 -7.08 TD +( 19.82) Tj +0.00 -7.08 TD +( 18.58) Tj +0.00 -7.04 TD +( 15.48) Tj +0.00 -7.08 TD +( 13.62) Tj +0.00 -7.08 TD +( 13.62) Tj +0.00 -7.04 TD +( 13.01) Tj +0.00 -7.08 TD +( 13.01) Tj +0.00 -7.08 TD +( 10.53) Tj +0.00 -7.04 TD +( 44.36) Tj +-244.12 211.28 TD +/F0 6.00 Tf +(10101012) Tj +0.00 -7.08 TD +(40601323) Tj +0.00 -7.08 TD +(40302040) Tj +0.00 -7.04 TD +(40304361) Tj +0.00 -7.08 TD +(40302733) Tj +0.00 -7.08 TD +(40316360) Tj +0.00 -7.04 TD +(40302547) Tj +0.00 -7.08 TD +(40310060) Tj +0.00 -7.08 TD +(40302580) Tj +0.00 -7.04 TD +(40302512) Tj +0.00 -7.08 TD +(40302504) Tj +0.00 -7.08 TD +(40301630) Tj +0.00 -7.04 TD +(40301605) Tj +0.00 -7.08 TD +(40311210) Tj +0.00 -7.08 TD +(40316521) Tj +0.00 -7.04 TD +(40316491) Tj +0.00 -7.08 TD +(40302830) Tj +0.00 -7.08 TD +(40301591) Tj +0.00 -7.04 TD +(40302695) Tj +0.00 -7.08 TD +(40301583) Tj +0.00 -7.08 TD +(40316335) Tj +0.00 -7.04 TD +(40316289) Tj +0.00 -7.08 TD +(40316076) Tj +0.00 -7.08 TD +(40316505) Tj +0.00 -7.04 TD +(40316270) Tj +0.00 -7.08 TD +(40316459) Tj +0.00 -7.08 TD +(40316254) Tj +0.00 -7.04 TD +(40316513) Tj +0.00 -7.08 TD +(40316408) Tj +0.00 -7.08 TD +(40316572) Tj +0.00 -7.04 TD +(40901300) Tj +126.32 212.72 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +-150.64 211.28 TD +/F0 6.00 Tf +(CON) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.04 TD +(EXA) Tj +171.48 -7.08 TD +(Total da Familia:) Tj +89.76 0.00 TD +( 327.51) Tj +-674.92 228.92 TD +(840372 MARINA MASSAO PEREIRA) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.04 TD +(Prestador) Tj +-375.76 39.48 TD +(Titulo:) Tj +33.00 0.00 TD +(201960286) Tj +281.00 -39.48 TD +(Cartao) Tj +49.92 -29.60 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.04 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.04 TD +(2) Tj +0.00 -7.08 TD +(2) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.04 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.04 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.04 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.08 TD +(3) Tj +0.00 -7.04 TD +(1) Tj +-45.56 212.00 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(N) Tj +-204.00 212.00 TD +(TITULAR) Tj +0.00 -7.08 TD +(TITULAR) Tj +0.00 -7.08 TD +(TITULAR) Tj +0.00 -28.24 TD +(TITULAR) Tj +0.00 -98.96 TD +(TITULAR) Tj +0.00 -70.64 TD +(TITULAR) Tj +-0.76 241.60 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(10101012) Tj +0.00 -7.08 TD +(40601323) Tj +0.00 -7.08 TD +(40302040) Tj +0.00 -7.04 TD +(40304361) Tj +0.00 -7.08 TD +(40302733) Tj +0.00 -7.08 TD +(40316360) Tj +0.00 -7.04 TD +(40302547) Tj +0.00 -7.08 TD +(40310060) Tj +0.00 -7.08 TD +(40302580) Tj +0.00 -7.04 TD +(40302512) Tj +0.00 -7.08 TD +(40302504) Tj +0.00 -7.08 TD +(40301630) Tj +0.00 -7.04 TD +(40301605) Tj +0.00 -7.08 TD +(40311210) Tj +0.00 -7.08 TD +(40316521) Tj +0.00 -7.04 TD +(40316491) Tj +0.00 -7.08 TD +(40302830) Tj +0.00 -7.08 TD +(40301591) Tj +0.00 -7.04 TD +(40302695) Tj +0.00 -7.08 TD +(40301583) Tj +0.00 -7.08 TD +(40316335) Tj +0.00 -7.04 TD +(40316289) Tj +0.00 -7.08 TD +(40316076) Tj +0.00 -7.08 TD +(40316505) Tj +0.00 -7.04 TD +(40316270) Tj +0.00 -7.08 TD +(40316459) Tj +0.00 -7.08 TD +(40316254) Tj +0.00 -7.04 TD +(40316513) Tj +0.00 -7.08 TD +(40316408) Tj +0.00 -7.08 TD +(40316572) Tj +0.00 -7.04 TD +(40901300) Tj +-4.00 241.60 TD +(Serv Atd) Tj +ET +q +6.20 527.76 779.56 9.88 re W n +BT +6.20 532.96 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 488.24 779.52 9.88 re W n +BT +6.20 493.48 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 454.00 TD +/F0 6.00 Tf +(071.602.179-00) Tj +0.00 -7.08 TD +(071.602.179-00) Tj +0.00 -7.08 TD +(071.602.179-00) Tj +0.00 -28.24 TD +(071.602.179-00) Tj +0.00 -98.96 TD +(071.602.179-00) Tj +0.00 -70.64 TD +(071.602.179-00) Tj +ET +q +205.84 478.76 42.20 9.88 re W n +BT +205.84 483.96 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 477.88 37.88 10.48 re S +BT +784.48 483.68 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +21 0 obj +19104 +endobj +19 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 20 0 R +/CropBox [0 0 792 612] +>> +endobj +23 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 6) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +53.32 -39.52 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.72 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 467.40 779.56 9.88 re W n +BT +6.20 472.60 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 508.00 779.52 9.88 re W n +BT +6.20 513.20 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 483.60 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167003820459) Tj +0.00 -7.08 TD +(0975.0167003820459) Tj +0.00 -7.08 TD +(0975.0167003820459) Tj +ET +q +74.68 451.56 43.48 7.08 re W n +BT +74.68 454.00 TD +(TALYTA CARNEI) Tj +ET +Q 0 g 0 G +q +74.68 444.52 43.48 7.08 re W n +BT +74.68 446.92 TD +/F0 6.00 Tf +(TALYTA CARNEI) Tj +ET +Q 0 g 0 G +q +74.68 437.44 43.48 7.08 re W n +BT +74.68 439.84 TD +/F0 6.00 Tf +(TALYTA CARNEI) Tj +ET +Q 0 g 0 G +BT +156.72 454.00 TD +/F0 6.00 Tf +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +116.64 14.16 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +2.68 14.16 TD +(NÃO) Tj +0.00 -7.08 TD +(SIM) Tj +0.00 -7.08 TD +(SIM) Tj +13.68 14.16 TD +(09/06/26) Tj +0.00 -7.08 TD +(10/06/26) Tj +0.00 -7.08 TD +(10/06/26) Tj +48.12 14.16 TD +(36429244) Tj +0.00 -7.08 TD +(36466436) Tj +0.00 -7.08 TD +(36466436) Tj +69.28 14.16 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +2.36 14.16 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +ET +q +553.12 451.60 64.88 7.04 re W n +BT +553.12 454.00 TD +(US - Obstetrica 1º ) Tj +ET +Q 0 g 0 G +q +553.12 444.56 64.88 7.04 re W n +BT +553.12 446.92 TD +/F0 6.00 Tf +(Hormonio gonodotrof) Tj +ET +Q 0 g 0 G +q +553.12 437.48 64.88 7.04 re W n +BT +553.12 439.84 TD +/F0 6.00 Tf +(Consulta em pronto ) Tj +ET +Q 0 g 0 G +BT +657.40 454.72 TD +/F0 5.00 Tf +( 76.33) Tj +3.00 -7.08 TD +( 9.48) Tj +-3.00 -7.08 TD +( 75.00) Tj +72.44 14.16 TD +( 76.33) Tj +3.00 -7.08 TD +( 9.48) Tj +-3.00 -7.08 TD +( 75.00) Tj +-244.12 13.44 TD +/F0 6.00 Tf +(40901297) Tj +0.00 -7.08 TD +(40305767) Tj +0.00 -7.08 TD +(10101039) Tj +126.32 14.88 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +-150.64 13.44 TD +/F0 6.00 Tf +(EXA) Tj +0.00 -7.08 TD +(EXA) Tj +0.00 -7.08 TD +(CON) Tj +171.48 -7.04 TD +(Total da Familia:) Tj +89.76 0.00 TD +( 160.81) Tj +-674.92 31.04 TD +(836117 PAULO HENRIQUE APARECIDO DA SILVA) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.04 TD +(Prestador) Tj +-375.76 39.48 TD +(Titulo:) Tj +33.00 0.00 TD +(201960286) Tj +281.00 -39.48 TD +(Cartao) Tj +49.92 -29.60 TD +(1) Tj +0.00 -7.08 TD +(1) Tj +0.00 -7.08 TD +(2) Tj +-45.56 14.16 TD +(N) Tj +0.00 -7.08 TD +(N) Tj +0.00 -7.08 TD +(N) Tj +-204.00 14.16 TD +(CONJUGE) Tj +0.00 -7.08 TD +(CONJUGE) Tj +0.00 -7.08 TD +(CONJUGE) Tj +-0.76 43.76 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(40901297) Tj +0.00 -7.08 TD +(40305767) Tj +0.00 -7.08 TD +(10101039) Tj +-4.00 43.76 TD +(Serv Atd) Tj +ET +q +6.20 527.76 779.56 9.88 re W n +BT +6.20 532.96 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 488.24 779.52 9.88 re W n +BT +6.20 493.48 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 454.00 TD +/F0 6.00 Tf +(033.441.441-54) Tj +0.00 -7.08 TD +(033.441.441-54) Tj +0.00 -7.08 TD +(033.441.441-54) Tj +ET +q +205.84 478.76 42.20 9.88 re W n +BT +205.84 483.96 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 477.88 37.88 10.48 re S +BT +784.48 483.68 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +24 0 obj +6774 +endobj +22 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 23 0 R +/CropBox [0 0 792 612] +>> +endobj +26 0 obj +<> +stream +q +3.12 562.64 84.00 9.88 re W n +BT +3.12 564.72 TD +/F0 10.00 Tf +(FATTR121,SR413) Tj +ET +Q 0 g 0 G +q +680.20 582.36 49.68 9.88 re W n +BT +680.20 584.48 TD +/F0 10.00 Tf +(Folha:) Tj +ET +Q 0 g 0 G +q +680.20 572.52 40.36 9.88 re W n +BT +680.20 574.60 TD +/F0 10.00 Tf +(Data.:) Tj +ET +Q 0 g 0 G +q +733.00 582.36 52.80 9.88 re W n +BT +773.80 584.48 TD +/F0 10.00 Tf +( 7) Tj +ET +Q 0 g 0 G +q +723.68 572.52 62.12 9.88 re W n +BT +725.80 574.60 TD +/F0 10.00 Tf +(03/08/2026) Tj +ET +Q 0 g 0 G +q +733.00 562.64 52.80 9.88 re W n +BT +737.80 564.72 TD +/F0 10.00 Tf +(16:26:20) Tj +ET +Q 0 g 0 G +q +680.20 562.64 49.68 9.88 re W n +BT +680.20 564.72 TD +/F0 10.00 Tf +(Hora.:) Tj +ET +Q 0 g 0 G +q +98.40 562.64 124.80 9.88 re W n +BT +98.40 564.72 TD +/F0 10.00 Tf +(MATHEUS) Tj +ET +Q 0 g 0 G +q +3.12 582.36 186.48 9.88 re W n +BT +3.12 584.48 TD +/F0 10.00 Tf +(UNIMED DO ESTADO DO PAR) Tj +ET +Q 0 g 0 G +q +201.88 582.36 469.00 9.88 re W n +BT +364.36 584.48 TD +/F0 10.00 Tf +(EMITE SERVIÇOS PRESTADOS) Tj +ET +Q 0 g 0 G +q +3.12 592.24 786.00 9.88 re W n +BT +3.12 594.32 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +88.80 562.64 7.20 9.88 re W n +BT +89.40 564.72 TD +/F0 10.00 Tf +(/) Tj +ET +Q 0 g 0 G +q +3.12 552.76 786.00 9.88 re W n +BT +3.12 554.84 TD +/F0 10.00 Tf +(===================================================================================================================================) Tj +ET +Q 0 g 0 G +q +3.12 572.52 186.48 9.88 re W n +BT +3.12 574.60 TD +/F0 10.00 Tf +(FATURAMENTO) Tj +ET +Q 0 g 0 G +q +285.44 572.52 298.48 9.88 re W n +BT +359.68 574.60 TD +/F0 10.00 Tf +(TELEFONE SAC: 08000414554) Tj +ET +Q 0 g 0 G +BT +311.84 563.64 TD +/F0 10.00 Tf +(SAC DEFICIENTE AUDITIVO/FALA: 08006422009) Tj +ET +q +0.00 0.00 791.36 547.60 re W n +BT +6.20 542.84 TD +/F0 6.00 Tf +(Relação de Serviços Prestados em Custo Emitido no Período de 03/08/2026 a 03/08/2026 ANALITICO) Tj +53.32 -39.52 TD +(5877318) Tj +33.60 0.00 TD +(0) Tj +6.00 0.00 TD +(FALLKNER RIBEIRO BORGES PRODUCOES) Tj +267.04 0.00 TD +() Tj +-359.96 0.00 TD +(Contratante:) Tj +0.00 -19.72 TD +(Beneficiario) Tj +148.28 0.00 TD +(Mat/Orig) Tj +110.24 0.00 TD +(Ac) Tj +10.68 0.00 TD +(Eme) Tj +76.96 0.00 TD +(Nota) Tj +114.44 0.00 TD +(Tipo) Tj +83.96 0.00 TD +(Descricao Servico) Tj +99.68 0.00 TD +(Vl Unit) Tj +67.64 0.00 TD +(Vl Total) Tj +ET +q +6.20 467.40 779.56 9.88 re W n +BT +6.20 472.60 TD +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 508.00 779.52 9.88 re W n +BT +6.20 513.20 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +289.72 483.60 TD +/F0 6.00 Tf +(Atendim) Tj +341.24 0.00 TD +(Qtde) Tj +-142.36 0.00 TD +(Serviço) Tj +-480.68 -29.60 TD +(0975.0167003898032) Tj +0.00 -7.08 TD +(0975.0167003898032) Tj +0.00 -7.08 TD +(0975.0167003898032) Tj +0.00 -7.04 TD +(0975.0167003898032) Tj +ET +q +74.68 451.56 43.48 7.08 re W n +BT +74.68 454.00 TD +(THAIS BRUNO C) Tj +ET +Q 0 g 0 G +q +74.68 444.52 43.48 7.08 re W n +BT +74.68 446.92 TD +/F0 6.00 Tf +(THAIS BRUNO C) Tj +ET +Q 0 g 0 G +q +74.68 437.44 43.48 7.08 re W n +BT +74.68 439.84 TD +/F0 6.00 Tf +(THAIS BRUNO C) Tj +ET +Q 0 g 0 G +q +74.68 430.36 43.48 7.08 re W n +BT +74.68 432.80 TD +/F0 6.00 Tf +(THAIS BRUNO C) Tj +ET +Q 0 g 0 G +BT +156.72 454.00 TD +/F0 6.00 Tf +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +116.64 21.20 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +2.68 21.20 TD +(NÃO) Tj +0.00 -7.08 TD +(NÃO) Tj +0.00 -7.08 TD +(NÃO) Tj +0.00 -7.04 TD +(SIM) Tj +13.68 21.20 TD +(16/06/26) Tj +0.00 -7.08 TD +(30/06/26) Tj +0.00 -7.08 TD +(11/07/26) Tj +0.00 -7.04 TD +(22/06/26) Tj +48.12 21.20 TD +(36069909) Tj +0.00 -7.08 TD +(36069909) Tj +0.00 -7.08 TD +(36069909) Tj +0.00 -7.04 TD +(36437579) Tj +69.28 21.20 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -39.48 TD +() Tj +2.36 60.68 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.08 TD +() Tj +0.00 -7.04 TD +() Tj +0.00 -39.48 TD +() Tj +ET +q +553.12 451.60 64.88 7.04 re W n +BT +553.12 454.00 TD +(Sessao de psicotera) Tj +ET +Q 0 g 0 G +q +553.12 444.56 64.88 7.04 re W n +BT +553.12 446.92 TD +/F0 6.00 Tf +(Sessao de psicotera) Tj +ET +Q 0 g 0 G +q +553.12 437.48 64.88 7.04 re W n +BT +553.12 439.84 TD +/F0 6.00 Tf +(Sessao de psicotera) Tj +ET +Q 0 g 0 G +q +553.12 430.40 64.88 7.04 re W n +BT +553.12 432.80 TD +/F0 6.00 Tf +(PACOTE ATENDIMENTO ) Tj +ET +Q 0 g 0 G +q +553.12 390.92 64.88 7.04 re W n +BT +553.12 393.32 TD +/F0 6.00 Tf +(Consulta em pronto ) Tj +ET +Q 0 g 0 G +BT +657.40 454.72 TD +/F0 5.00 Tf +( 28.98) Tj +0.00 -7.08 TD +( 28.98) Tj +0.00 -7.08 TD +( 30.18) Tj +3.00 -7.04 TD +( 3.06) Tj +-3.00 -39.48 TD +( 75.00) Tj +72.44 60.68 TD +( 28.98) Tj +0.00 -7.08 TD +( 28.98) Tj +0.00 -7.08 TD +( 30.18) Tj +3.00 -7.04 TD +( 3.06) Tj +-3.00 -39.48 TD +( 75.00) Tj +-244.12 59.96 TD +/F0 6.00 Tf +(50000470) Tj +0.00 -7.08 TD +(50000470) Tj +0.00 -7.08 TD +(50000470) Tj +0.00 -7.04 TD +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +126.32 61.40 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.08 TD +( 1.000) Tj +0.00 -7.04 TD +( 1.000) Tj +0.00 -39.48 TD +( 1.000) Tj +-150.64 59.96 TD +/F0 6.00 Tf +(CLI) Tj +0.00 -7.08 TD +(CLI) Tj +0.00 -7.08 TD +(CLI) Tj +0.00 -7.04 TD +(HOS) Tj +0.00 -39.48 TD +(CON) Tj +171.48 -7.08 TD +(Total da Familia:) Tj +89.76 0.00 TD +( 166.20) Tj +-7.20 -8.40 TD +( 1,372.08) Tj +-89.76 0.00 TD +(Total da Sequencia:) Tj +-577.96 86.00 TD +(840435 THAIS BRUNO CUNHA DOS SANTOS) Tj +-41.48 0.00 TD +(Familia:) Tj +362.88 19.72 TD +(S) Tj +12.84 0.04 TD +(Prestador) Tj +-375.76 39.48 TD +(Titulo:) Tj +33.00 0.00 TD +(201960286) Tj +597.28 -153.64 TD +(Total do Titulo:) Tj +78.96 0.00 TD +( 1,372.08) Tj +-395.24 114.16 TD +(Cartao) Tj +49.92 -29.60 TD +(4) Tj +0.00 -7.08 TD +(5) Tj +0.00 -7.08 TD +(6) Tj +0.00 -7.04 TD +(1) Tj +0.00 -39.48 TD +(1) Tj +-45.56 60.68 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.08 TD +(S) Tj +0.00 -7.04 TD +(N) Tj +0.00 -39.48 TD +(N) Tj +-204.00 60.68 TD +(TITULAR) Tj +0.00 -7.08 TD +(TITULAR) Tj +0.00 -7.08 TD +(TITULAR) Tj +0.00 -7.04 TD +(TITULAR) Tj +-0.76 50.80 TD +(Grau Dep.) Tj +403.40 -29.60 TD +(50000470) Tj +0.00 -7.08 TD +(50000470) Tj +0.00 -7.08 TD +(50000470) Tj +0.00 -7.04 TD +(92001039) Tj +0.00 -39.48 TD +(10101039) Tj +-4.00 90.28 TD +(Serv Atd) Tj +-74.84 -60.68 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +0.00 -9.88 TD +(Pct:) Tj +17.04 19.76 TD +(HOS) Tj +0.00 -9.88 TD +(MED) Tj +0.00 -9.88 TD +(MAT) Tj +24.32 19.76 TD +(99999919) Tj +0.00 -9.88 TD +(99999927) Tj +0.00 -9.88 TD +(99999935) Tj +ET +q +553.52 417.72 64.48 9.88 re W n +BT +553.52 422.92 TD +(SOMA DE OUTRAS TAX) Tj +ET +Q 0 g 0 G +q +553.52 407.84 64.48 9.88 re W n +BT +553.52 413.04 TD +/F0 6.00 Tf +(MEDICAMENTO EM GER) Tj +ET +Q 0 g 0 G +BT +553.52 403.16 TD +/F0 6.00 Tf +(MATERIAL EM GERAL) Tj +58.52 20.48 TD +/F0 5.00 Tf +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +0.00 -9.88 TD +( 1.000) Tj +48.36 19.76 TD +( 1.02) Tj +0.00 -9.88 TD +( 1.02) Tj +0.00 -9.88 TD +( 1.02) Tj +ET +q +6.20 527.76 779.56 9.88 re W n +BT +6.20 532.96 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +q +6.20 488.24 779.52 9.88 re W n +BT +6.20 493.48 TD +/F0 6.00 Tf +(-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------) Tj +ET +Q 0 g 0 G +BT +209.76 454.00 TD +/F0 6.00 Tf +(415.927.758-61) Tj +0.00 -7.08 TD +(415.927.758-61) Tj +0.00 -7.08 TD +(415.927.758-61) Tj +0.00 -7.04 TD +(415.927.758-61) Tj +ET +q +205.84 478.76 42.20 9.88 re W n +BT +205.84 483.96 TD +(CPF/Dt.Nasc.) Tj +ET +Q 0 g 0 G +1 G +0.00 w +0 J +0 j +746.64 477.88 37.88 10.48 re S +BT +784.48 483.68 TD +/F0 6.00 Tf +() Tj +-102.04 0.16 TD +(Tt Copar) Tj +9.40 -29.12 TD +/F0 5.00 Tf +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.08 TD +( 78.06) Tj +0.00 -7.04 TD +( 78.06) Tj +0.00 -39.48 TD +( 78.06) Tj +ET +Q 0 g 0 G +endstream +endobj +27 0 obj +8802 +endobj +25 0 obj +<< +/Type /Page +/MediaBox [0 0 792 612] +/Parent 3 0 R +/Resources <> >> +/Contents 26 0 R +/CropBox [0 0 792 612] +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< +/Type /Pages +/Kids [ +4 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R ] +/Count 7 +>> +endobj +xref +0 28 +0000000000 65535 f +0000000010 00000 n +0000079853 00000 n +0000079908 00000 n +0000009250 00000 n +0000000164 00000 n +0000007858 00000 n +0000007881 00000 n +0000008064 00000 n +0000009047 00000 n +0000026380 00000 n +0000009432 00000 n +0000026355 00000 n +0000033062 00000 n +0000026564 00000 n +0000033038 00000 n +0000044193 00000 n +0000033246 00000 n +0000044168 00000 n +0000063563 00000 n +0000044377 00000 n +0000063538 00000 n +0000070602 00000 n +0000063747 00000 n +0000070578 00000 n +0000079669 00000 n +0000070786 00000 n +0000079645 00000 n +trailer +<< +/Size 28 +/Root 2 0 R +/Info 1 0 R +>> +startxref +80018 +%%EOF \ No newline at end of file diff --git a/media/planos_saude/planilha_padrao/questor_1123_2026-08.csv b/media/planos_saude/planilha_padrao/questor_1123_2026-08.csv new file mode 100644 index 0000000..63d59e6 --- /dev/null +++ b/media/planos_saude/planilha_padrao/questor_1123_2026-08.csv @@ -0,0 +1,24 @@ +CODIGOEMPRESA;NOMEFUNC;CPFFUNC;CODIGOOUTEMP;DATAINICIAL;NOMEDEPENDENTE;CPFDEPENDENTE;VALOREMPRESA;VALOR;DESCRICAO +1123;ANDREIA STORMOSKI LARA;031.535.759-24;5060;01/04/2026;GABRIELE LARAVILLELA;135.897.549-31;0;0; +1123;ANDREIA STORMOSKI LARA;031.535.759-24;5060;01/04/2026;;;0;0; +1123;ANDREIA STORMOSKI LARA;031.535.759-24;5060;01/04/2026;MANUELA LARA VILLELA;135.897.739-95;0;0; +1123;CHRISTIAN GASTON RIZZI;703.895.279-04;5060;01/04/2026;;;0;0; +1123;FALLKNER RIBEIRO BORGES;040.942.249-55;5060;01/04/2026;;;0;0; +1123;FALLKNER RIBEIRO BORGES;040.942.249-55;5060;01/04/2026;CATHERINE NUNES BORGES;800.830.749-88;0;0; +1123;FALLKNER RIBEIRO BORGES;040.942.249-55;5060;01/04/2026;AMANDA RODRIGUES BORGES;154.745.769-43;0;0; +1123;FALLKNER RIBEIRO BORGES;040.942.249-55;5060;01/04/2026;ADRIANA RODRIGUES;047.011.989-60;0;0; +1123;FRANCIELLI ZANDONA;070.345.739-05;5060;01/04/2026;;;0;0; +1123;GABRIEL HENRIQUE ALCANTARA DE OLIVEIRA;081.249.969-70;5060;01/04/2026;;;0;0; +1123;GABRIEL HENRIQUE ALCANTARA DE OLIVEIRA;081.249.969-70;5060;01/04/2026;ANA JULIA RAZZOLINI ALCANTARA DE OLIVEIRA;137.047.219-64;0;0; +1123;JEFFERSON DAMBORIANA HWANG;083.124.969-20;5060;01/04/2026;;;0;0; +1123;JESSICA RIBEIRO DE SOUZA;109.445.609-89;5060;01/04/2026;;;0;0; +1123;MARINA MASSAO PEREIRA;071.602.179-00;5060;01/04/2026;;;0;0; +1123;PAULO HENRIQUE APARECIDO DA SILVA;096.531.429-41;5060;01/04/2026;;;0;0; +1123;PAULO HENRIQUE APARECIDO DA SILVA;096.531.429-41;5060;01/04/2026;TALYTA CARNEIRO NERIS;033.441.441-54;0;0; +1123;PAULO HENRIQUE APARECIDO DA SILVA;096.531.429-41;5060;01/04/2026;VICENTE NERIS DA SILVA ROZENDO;160.485.389-10;0;0; +1123;PAULO ROMEO DOMINGUES JUNIOR;045.568.259-38;5060;01/04/2026;;;0;0; +1123;PAULO ROMEO DOMINGUES JUNIOR;045.568.259-38;5060;01/04/2026;LOHAINE AGUIAR DOMINGUES;129.814.229-60;0;0; +1123;RODRIGO GOTTLIEB MONZON;027.514.939-04;5060;01/04/2026;;;0;0; +1123;RODRIGO GOTTLIEB MONZON;027.514.939-04;5060;01/04/2026;SOL GRACIOLA MONZON;152.963.359-10;0;0; +1123;THAIS BRUNO CUNHA DOS SANTOS;415.927.758-61;5060;01/04/2026;;;0;0; +1123;WALLACE ZENARO;094.583.269-90;5060;01/04/2026;;;0;0; diff --git a/plano.md b/plano.md index 90228f7..885623c 100644 --- a/plano.md +++ b/plano.md @@ -1067,6 +1067,38 @@ Até aqui, "Nova Importação" exigia exportar manualmente do Questor a "planilh **Sétimo ajuste, mesmo dia — filtro revisado pra "estilo Excel"**: usuário pediu pra trocar os campos de texto por um filtro de planilha de verdade — clicar num ícone de funil na coluna e marcar/desmarcar os valores que aparecem numa lista, como no AutoFilter do Excel. Reescrito (`criarFiltroColuna()`) como um popup por coluna com busca + checklist dos valores distintos daquela coluna (reaproveita `.checklist-box` de Perfis de Acesso, sem CSS/componente novo pra isso) e botões "Aplicar"/"Limpar" — os filtros das 4 colunas continuam combinando entre si (AND). Precisou de um ajuste de CSS colateral: `.pa-table-wrap` corta com `overflow:hidden` pra arredondar os cantos da tabela, o que cortaria o popup também — resolvido com uma classe extra só nesta tabela (`.ips-list-table-wrap`) sobrescrevendo pra `overflow:visible`. +### 81. "Mais informações" por aplicação (botão "?") — e correção do `seed_portal.py` resetando nomes de perfil + +Pedido explícito do usuário: um botão "?" ao lado do nome de qualquer aplicação, mostrando "Mais informações" no hover e abrindo, ao clicar, um modal com um texto de ajuda (objetivo/processo/cuidados/resultado esperado). Visualizar é livre a qualquer autenticado; editar é restrito a quem tem o perfil **"Inovação"** vinculado. + +- Novo model `AjudaAplicacao` (chave natural `app_key`, `texto`, `atualizado_em`/`atualizado_por`) + endpoint `GET`/`PATCH /api/ajuda-aplicacoes//`. A checagem de quem pode editar é por **nome fixo** do perfil (`Usuario.eh_perfil_inovacao()`/`models.PERFIL_INOVACAO_NOME`), mesmo padrão já usado pro selo "Restrito" de Relatórios Gerenciais (nome === "Diretoria") — decisão explícita do usuário pra não precisar aparecer na árvore de Perfis de Acesso. `GET /api/me/` ganhou `eh_perfil_inovacao`. +- Ligado por ora só em Importação de Plano de Saúde (`static/js/ajuda-aplicacao.js`, `pidCriarBotaoAjuda()`), com um texto inicial já estruturado e salvo no banco — mecanismo genérico o bastante pra outra aplicação só precisar do botão+tooltip no HTML. +- **Ganhou imagens embutidas** (pedido explícito, mesmo mecanismo de "Observações" de Acessos Gerais): editor `
` com colar/arrastar imagem, sanitizado no servidor via `nh3` antes de salvar. As constantes de allowlist do nh3 foram generalizadas (`ACESSO_GERAL_OBSERVACOES_ALLOWED_*` → `RICHTEXT_ALLOWED_*`, `serializers.py`) pra serem compartilhadas pelos dois campos. +- **Bug real corrigido, achado ao investigar a preocupação do usuário com nomenclatura**: o usuário tinha renomeado o perfil "Integração e Inovação" (código 8) pra "Inovação" e criado um perfil novo "Integração" (código 9) — mas `seed_portal.py` fazia `update_or_create(codigo=..., defaults={"nome": ...})`, que reescrevia `nome` de volta pro valor original a cada execução do seed. Corrigido pra `get_or_create(codigo=..., defaults={"nome": ...})` (nome só gravado na criação); `ativo`/`gerencia_permissoes`/`permissoes` continuam realinhados a cada execução, de propósito. Todas as 8 telas/textos do frontend que ainda diziam "Integração e Inovação" foram atualizadas pra "Inovação". + +### 82. Modal de confirmação/aviso genérico — fim do `window.confirm`/`window.alert` nativo + +Usuário viu o popup nativo do Chrome ("192.168.x.x:8000 diz...") na confirmação de "Sair sem salvar" do modal de "Mais informações" (rodada 81) e pediu, de forma geral: nenhum popup deve usar o diálogo nativo do browser — sempre um modal dentro do próprio Portal, no padrão visual dele. + +- `static/js/confirm-modal.js` (novo, incluído logo depois de `api.js` em **todo** shell, inclusive `index.html`): `pidConfirm(mensagem, opcoes)` (Promise) e `pidAlert(mensagem, opcoes)` (Promise) compartilham o mesmo modal (`#pid-confirm-modal`), que empilha por cima de qualquer modal já aberto (`.modal-overlay--top`, z-index maior) sem fechá-lo. `opcoes.perigoso` troca o botão de ação pra `.btn-danger-outline`. +- **Migração completa** (pedido explícito — "migre as demais"): todo `window.confirm()`/`window.alert()` do app (31 ocorrências em 8 arquivos — `acessos-gerais.js`, `calendar-individual.js`, `links-ferramentas.js`, `importacao-plano-saude.js`, `ramais.js`, `profiles.js`, `indicador-desempenho.js`, `users-admin.js`) foi trocado por `pidConfirm`/`pidAlert`. Um modal bespoke que já existia em `importacao-plano-saude.js` só pra esse mesmo motivo (`#ips-regracad-confirm-fechar-modal`, no "Cadastro de Regras") foi removido e consolidado no componente genérico. **Não migrado**: um `window.prompt()` em `users-admin.js` (renomear departamento) — tipo de popup diferente (pede texto), sem componente equivalente ainda. + +### 83. Múltiplos arquivos de operadora + Unimed Saúde em PDF (Importação de Plano de Saúde) + +Cliente real (Fallkner Ribeiro Borges) em que a Unimed manda **dois PDFs separados** (mensalidade + coparticipação analítico) em vez do CSV único já suportado — diferente de toda operadora até então, que sempre mandava um único arquivo. Duas mudanças, decididas em `EnterPlanMode`/`ExitPlanMode` antes de implementar dado o tamanho: + +- **"Arquivo da operadora" passou a aceitar 1+ arquivos** — mudança de arquitetura que afeta todas as operadoras, não só a Unimed. `ImportacaoPlanoSaude.arquivo_operadora` (FileField único) foi substituído por `ImportacaoPlanoSaudeArquivoOperadora` (FK + `arquivo` + `ordem`), migração em 3 passos (`0048` cria o model novo + torna o campo legado `blank=True`; `0049` faz o backfill via `RunPython`, reapontando pro mesmo caminho já salvo sem copiar bytes; `0050` remove o campo legado) — mesmo padrão já usado em `IndicadorDepartamento`/`RegraCusteioPlanoSaude.codigo_empresa`. `pipeline.processa_importacao` passou a receber uma lista de caminhos, chamando `OperadoraParser.extrai()` uma vez por arquivo. Frontend: `` + lista dinâmica com validação e remoção individuais. +- **Bug real encontrado testando de ponta a ponta** (2 arquivos idênticos da mesma operadora/tipo, via `APIRequestFactory` real): simplesmente concatenar os indivíduos de cada arquivo não bastava — se dois arquivos contribuem pra mesma pessoa e mesmo `tipo_lancamento`, `_aplica_regra_custeio` (matcher.py) **grava** o valor por linha, não acumula, então o segundo arquivo sobrescrevia o valor do primeiro. Corrigido com `_agrega_individuos_entre_arquivos()` (`pipeline.py`), somando por (`numero_beneficiario`, `tipo_lancamento`) antes do casamento — mesmo padrão que cada parser já fazia **dentro** de um arquivo, agora replicado entre arquivos. +- **Parser da Unimed Saúde (`operadoras/unimed/saude.py`) ganhou o segundo formato**: `extrai()` detecta automaticamente, pelo conteúdo da primeira página, se o PDF é o relatório de mensalidade ("BENEFICIARIOS COM FATURAMENTO NO MES") ou o analítico de coparticipação ("SERVIÇOS PRESTADOS"/"ANALITICO") — nunca pede pro usuário escolher. Os dois usam `pdfplumber` com `layout=True` (mesma técnica já validada em `ItamedSaude`). Confirmado com o usuário: a coparticipação por beneficiário é a soma do "Vl Total" de cada serviço (a coluna "Tt Copar", valor fixo repetido em todo o documento, não é usada). +- **3 bugs reais encontrados e corrigidos testando com PDFs gerados via `reportlab`** (reproduzindo linha a linha o texto dos exemplos, através do fluxo completo de `create()`, não mocks): (1) os valores nos PDFs vêm em formato americano (ponto decimal, vírgula de milhar), diferente do formato BR do resto do pipeline — `_valor_pdf_para_float` separada; (2) o grau "FILHO(A)" nunca casava porque a regex usava `\b` logo depois de `)`, que não é caractere de palavra (`\b` nunca bate entre dois não-palavra) — trocado por `(?=\s|$)`; (3) `numero_titular` de um dependente estava sendo setado como o código da família, mas o resto do pipeline (`nomes_titular_por_numero`/`_casa_por_nome` em matcher.py) espera o `numero_beneficiario` do próprio titular ali — sem isso, a família nunca era resolvida e tudo caía em auditoria "sem titular identificado". +- **Ressalva que permanecia**: o arquivo real da Unimed nunca tinha sido processado (só o texto/imagem colados na conversa) — confirmada como necessária no mesmo dia: o usuário testou pela tela e a coparticipação deu "Nenhum beneficiário foi encontrado neste arquivo." + +**Ajuste no mesmo dia, depois do teste real — usuário forneceu o caminho dos dois arquivos no disco**: em vez de tentar adivinhar a estrutura de novo a partir de texto colado (já teria sido a terceira vez), pedi e recebi o caminho local dos PDFs e rodei o `pdfplumber` de verdade contra eles (`.venv/Scripts/python.exe` + scripts descartáveis). Duas descobertas reais, só possíveis com o arquivo de verdade — **o texto de um PDF colado numa conversa não é o que `pdfplumber.extract_text()` de fato produz**, então as duas primeiras tentativas (rodada 83 acima) estavam desenhadas sobre uma estrutura que nunca existiu: + +- **Mensalidade**: `extract_text()` simples (sem `layout=True`) já devolve linhas bem formadas — a regex da rodada anterior funcionou de primeira contra o arquivo real, bateu exatamente com "Total por Contratante: 6.061,74". +- **Coparticipação analítica**: `benef`+`nome`+`grau` vêm **colados sem espaço nenhum** (ex.: "0975.0167003824292ANDREIA STORMTITULAR") — corrigido ajustando a regex pra não exigir espaço entre eles. Mas surgiu um problema mais sério: o **nome do beneficiário sai truncado em ~13 caracteres** por largura de coluna ("ANDREIA STORMOSKI LARA" → "ANDREIA STORM"), o que faria casamento por nome falhar sistematicamente pra qualquer nome mais longo que a coluna — não é um bug de regex, é informação perdida de verdade no relatório. Como esse mesmo relatório traz CPF completo e confiável, a solução foi trocar a estratégia de casamento: `OperadoraParser` ganhou `chave_casamento_para_tipo(tipo_lancamento)` (default: mesmo valor de sempre, backward-compatible pra todo outro parser) e `UnimedSaude` a sobrescreve pra devolver `"cpf"` só quando `tipo_lancamento="coparticipacao"` **e** a origem foi o PDF (rastreado numa flag de instância setada em `extrai()` — mensalidade, sem CPF em nenhum formato, continua em `"nome"`). Também corrigido: linhas "Pct:MED"/"Pct:HOS"/"Pct:MAT" (detalhamento de um item já somado no valor principal) estavam sendo contadas como itens de serviço de verdade (colidindo com a mesma regex de tipo de serviço), duplicando o valor — agora ignoradas explicitamente. +- **Validado de ponta a ponta com os dois arquivos reais** através do fluxo completo de `create()`: bateu exatamente com "Total da Familia"/"Total da Sequencia" impressos no próprio relatório (1.372,08 de coparticipação, 6.061,74 de mensalidade) e, usando a planilha padrão real da empresa 1123, cada família presente na planilha casou centavo a centavo — a única família ausente da planilha de teste foi corretamente pra auditoria "não cadastrado", não ignorada. + ## Roadmap / próximos passos Nenhuma pendência explícita em aberto no momento, exceto a limitação conhecida diff --git a/portal_api/admin.py b/portal_api/admin.py index f0e8f79..553a508 100644 --- a/portal_api/admin.py +++ b/portal_api/admin.py @@ -12,6 +12,7 @@ from .models import ( FuncaoTelefonia, ImportacaoPlanoSaude, ImportacaoPlanoSaudeAlteracao, + ImportacaoPlanoSaudeArquivoOperadora, ImportacaoPlanoSaudeAuditoria, ImportacaoPlanoSaudeLinha, IndicadorApuracao, @@ -131,6 +132,11 @@ class ImportacaoPlanoSaudeAdmin(admin.ModelAdmin): search_fields = ("nome_operadora",) +@admin.register(ImportacaoPlanoSaudeArquivoOperadora) +class ImportacaoPlanoSaudeArquivoOperadoraAdmin(admin.ModelAdmin): + list_display = ("importacao", "arquivo", "ordem") + + @admin.register(ImportacaoPlanoSaudeLinha) class ImportacaoPlanoSaudeLinhaAdmin(admin.ModelAdmin): list_display = ("importacao", "tipo_lancamento", "nome_func", "valor_empresa", "valor") diff --git a/portal_api/migrations/0048_arquivo_operadora_multiplo_passo1.py b/portal_api/migrations/0048_arquivo_operadora_multiplo_passo1.py new file mode 100644 index 0000000..e077b7c --- /dev/null +++ b/portal_api/migrations/0048_arquivo_operadora_multiplo_passo1.py @@ -0,0 +1,35 @@ +# Generated by Django 6.0.7 on 2026-08-24 14:45 + +import django.db.models.deletion +import portal_api.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('portal_api', '0047_alter_ajudaaplicacao_texto'), + ] + + operations = [ + migrations.AlterField( + model_name='importacaoplanosaude', + name='arquivo_operadora', + field=models.FileField(blank=True, max_length=255, upload_to='planos_saude/operadora/', validators=[portal_api.models.validar_tamanho_arquivo_plano_saude], verbose_name='Arquivo da operadora (legado)'), + ), + migrations.CreateModel( + name='ImportacaoPlanoSaudeArquivoOperadora', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('arquivo', models.FileField(max_length=255, upload_to='planos_saude/operadora/', validators=[portal_api.models.validar_tamanho_arquivo_plano_saude], verbose_name='Arquivo')), + ('ordem', models.PositiveIntegerField(default=0, verbose_name='Ordem')), + ('criado_em', models.DateTimeField(auto_now_add=True)), + ('importacao', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='arquivos_operadora', to='portal_api.importacaoplanosaude')), + ], + options={ + 'verbose_name': 'Arquivo da operadora (importação de plano de saúde)', + 'verbose_name_plural': 'Arquivos da operadora (importação de plano de saúde)', + 'ordering': ['ordem', 'id'], + }, + ), + ] diff --git a/portal_api/migrations/0049_arquivo_operadora_multiplo_passo2_backfill.py b/portal_api/migrations/0049_arquivo_operadora_multiplo_passo2_backfill.py new file mode 100644 index 0000000..6f9b90f --- /dev/null +++ b/portal_api/migrations/0049_arquivo_operadora_multiplo_passo2_backfill.py @@ -0,0 +1,28 @@ +# Generated by Django 6.0.7 on 2026-08-24 14:45 + +from django.db import migrations + + +def backfill_arquivos_operadora(apps, schema_editor): + """Antes desta rodada, cada ImportacaoPlanoSaude tinha um único arquivo de + operadora (`arquivo_operadora`). Cria uma ImportacaoPlanoSaudeArquivoOperadora + por importação já existente, apontando pro mesmo caminho já salvo em + MEDIA_ROOT (`arquivo_operadora.name`) — não copia bytes, só reaponta o + FileField novo pro arquivo que já existe no disco.""" + ImportacaoPlanoSaude = apps.get_model("portal_api", "ImportacaoPlanoSaude") + ImportacaoPlanoSaudeArquivoOperadora = apps.get_model("portal_api", "ImportacaoPlanoSaudeArquivoOperadora") + for importacao in ImportacaoPlanoSaude.objects.exclude(arquivo_operadora=""): + ImportacaoPlanoSaudeArquivoOperadora.objects.create( + importacao=importacao, arquivo=importacao.arquivo_operadora.name, ordem=0 + ) + + +class Migration(migrations.Migration): + + dependencies = [ + ('portal_api', '0048_arquivo_operadora_multiplo_passo1'), + ] + + operations = [ + migrations.RunPython(backfill_arquivos_operadora, reverse_code=migrations.RunPython.noop), + ] diff --git a/portal_api/migrations/0050_arquivo_operadora_multiplo_passo3.py b/portal_api/migrations/0050_arquivo_operadora_multiplo_passo3.py new file mode 100644 index 0000000..e44faf2 --- /dev/null +++ b/portal_api/migrations/0050_arquivo_operadora_multiplo_passo3.py @@ -0,0 +1,17 @@ +# Generated by Django 6.0.7 on 2026-08-24 14:46 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('portal_api', '0049_arquivo_operadora_multiplo_passo2_backfill'), + ] + + operations = [ + migrations.RemoveField( + model_name='importacaoplanosaude', + name='arquivo_operadora', + ), + ] diff --git a/portal_api/models.py b/portal_api/models.py index 973cdec..e9e8328 100644 --- a/portal_api/models.py +++ b/portal_api/models.py @@ -570,12 +570,15 @@ class WidgetUsuario(models.Model): class ImportacaoPlanoSaude(models.Model): """Uma execução da ferramenta "Importação de Plano de Saúde" (Utilitários): - o colaborador anexa a planilha padrão do Questor + o relatório de faturamento - de uma operadora, escolhe os tipos de lançamento (mensalidade/coparticipação) - e, para cada um, se é custeado pela empresa ou descontado do empregado — com - uma regra própria para titular e outra para dependente (`custeio_por_tipo`, - ver abaixo). O processamento em si (extração + casamento com a planilha) roda - uma única vez, na criação (ver ImportacaoPlanoSaudeViewSet.create em views.py, que usa + o colaborador anexa a planilha padrão do Questor + um ou mais relatórios de + faturamento da operadora (`ImportacaoPlanoSaudeArquivoOperadora`, ver abaixo + — a maioria das operadoras manda só um arquivo, mas algumas mandam + mensalidade e coparticipação em arquivos separados), escolhe os tipos de + lançamento (mensalidade/coparticipação) e, para cada um, se é custeado pela + empresa ou descontado do empregado — com uma regra própria para titular e + outra para dependente (`custeio_por_tipo`, ver abaixo). O processamento em + si (extração + casamento com a planilha) roda uma única vez, na criação (ver + ImportacaoPlanoSaudeViewSet.create em views.py, que usa portal_api.planos_saude.pipeline) — as `linhas` resultantes ficam salvas aqui pra serem revisadas/editadas antes de gerar o CSV final (ver `gerar()`, que não reprocessa nada, só formata o que já está no banco).""" @@ -623,12 +626,6 @@ class ImportacaoPlanoSaude(models.Model): # data indica a origem alternativa. Fica em branco pra toda importação # que veio por upload. competencia = models.DateField("Competência (Questor)", null=True, blank=True) - arquivo_operadora = models.FileField( - "Arquivo da operadora", - upload_to="planos_saude/operadora/", - max_length=255, - validators=[validar_tamanho_arquivo_plano_saude], - ) status = models.CharField("Status", max_length=20, choices=STATUS_CHOICES, default=STATUS_REVISAO) criado_por = models.ForeignKey( Usuario, on_delete=models.SET_NULL, null=True, related_name="importacoes_plano_saude" @@ -645,6 +642,38 @@ class ImportacaoPlanoSaude(models.Model): return f"{self.nome_operadora} ({self.criado_em:%d/%m/%Y})" +class ImportacaoPlanoSaudeArquivoOperadora(models.Model): + """Um dos relatórios da operadora anexados a uma importação — a maioria + das operadoras manda só um, mas algumas (ex.: Unimed Saúde, quando manda + PDF em vez do CSV único) mandam mensalidade e coparticipação em arquivos + separados. O parser da operadora (`OperadoraParser.extrai()`) é chamado + uma vez por arquivo, sem precisar que o usuário diga qual é qual — cada + parser detecta o tipo de relatório pelo próprio conteúdo (ver + `operadoras/unimed/saude.py`). `ordem` só reflete a ordem de upload, sem + efeito no processamento (a soma dos indivíduos de todos os arquivos é o + que importa, não a ordem entre eles).""" + + importacao = models.ForeignKey( + ImportacaoPlanoSaude, on_delete=models.CASCADE, related_name="arquivos_operadora" + ) + arquivo = models.FileField( + "Arquivo", + upload_to="planos_saude/operadora/", + max_length=255, + validators=[validar_tamanho_arquivo_plano_saude], + ) + ordem = models.PositiveIntegerField("Ordem", default=0) + criado_em = models.DateTimeField(auto_now_add=True) + + class Meta: + verbose_name = "Arquivo da operadora (importação de plano de saúde)" + verbose_name_plural = "Arquivos da operadora (importação de plano de saúde)" + ordering = ["ordem", "id"] + + def __str__(self) -> str: + return f"{self.importacao} — {self.arquivo.name}" + + class ImportacaoPlanoSaudeLinha(models.Model): """Uma linha da planilha padrão (leiaute do sistema) dentro de uma ImportacaoPlanoSaude, já com o valor do mês casado pelo pipeline — diff --git a/portal_api/planos_saude/operadoras/base.py b/portal_api/planos_saude/operadoras/base.py index 094bd91..86f2614 100644 --- a/portal_api/planos_saude/operadoras/base.py +++ b/portal_api/planos_saude/operadoras/base.py @@ -25,11 +25,23 @@ class OperadoraParser(ABC): operadora não informa CPF nenhum (ex: Unimed). Nesse modo, nome que não bate EXATO vai para auditoria — nunca é resolvido por aproximação/fuzzy automática. + + `chave_casamento_para_tipo(tipo_lancamento)` existe pro caso raro de uma + MESMA operadora precisar de estratégias diferentes por tipo de + lançamento dependendo do FORMATO do arquivo recebido (ex.: Unimed Saúde + em PDF — a mensalidade nunca traz CPF, mas o analítico de coparticipação + traz, e o nome do beneficiário nesse relatório vem truncado por largura + de coluna, inviabilizando casamento por nome ali). Default: devolve + `chave_casamento` (mesmo valor pra todo tipo) — só precisa ser + sobrescrito por quem tiver essa necessidade. """ nome_operadora: str chave_casamento: str = "cpf" + def chave_casamento_para_tipo(self, tipo_lancamento: str) -> str: + return self.chave_casamento + @abstractmethod def extrai(self, caminho_arquivo: str) -> Tuple[List[Individuo], List[ItemAuditoria]]: """ diff --git a/portal_api/planos_saude/operadoras/unimed/saude.py b/portal_api/planos_saude/operadoras/unimed/saude.py index 37aedf9..401960a 100644 --- a/portal_api/planos_saude/operadoras/unimed/saude.py +++ b/portal_api/planos_saude/operadoras/unimed/saude.py @@ -2,24 +2,73 @@ Unimed (do Estado do Paraná) - Saúde. Mensalidade + Coparticipação. Porta de projects/project/operadoras/unimed/saude.py. -Diferente da Amil, esta operadora manda os dois tipos de lançamento no -MESMO arquivo — cada linha tem uma coluna "Tipo" dizendo se é -"Mensalidade" ou "Serviços" (= coparticipação). Por isso este parser -devolve indivíduos já separados por tipo. +Diferente da Amil, esta operadora manda os dois tipos de lançamento em +arquivos independentes um do outro — seja no CSV único de exemplo (uma +coluna "Tipo" dizendo se é "Mensalidade" ou "Serviços" = coparticipação +dentro do mesmo arquivo) seja em PDF (dois relatórios separados, um de +mensalidade e outro de coparticipação analítico — ver abaixo). Por isso +este parser sempre devolve indivíduos já separados por tipo, e o pipeline +(`processa_importacao`) já sabe somar os indivíduos de vários arquivos da +mesma importação (ver "Importação de Plano de Saúde" no CLAUDE.md, seção +sobre múltiplos arquivos de operadora). -Formato de entrada: o cliente normalmente manda PDF, mas até hoje só -validamos com o CSV de exemplo (mesmas colunas). A extração de PDF -(`_extrai_pdf`) fica como TODO explícito — não dá pra confiar em um -layout de colunas que a gente nunca viu; precisa de um PDF real da -Unimed pra validar o parsing, do mesmo jeito que foi feito com a Amil. +Formato de entrada — dois casos, detectados automaticamente pelo conteúdo +do próprio arquivo (nunca pelo usuário escolhendo um "tipo de documento"): -Particularidades identificadas no CSV de exemplo: +1. CSV de exemplo já validado (colunas Id. Titular, Nome Beneficiário, + Tipo Benef., Valor, Tipo, ...) — comportamento original, inalterado. + +2. Dois relatórios em PDF, um por tipo de lançamento: + - "BENEFICIARIOS COM FATURAMENTO NO MES" = relatório de mensalidade, + uma linha por beneficiário (`_extrai_pdf_mensalidade`). + - Um relatório "... EMITE SERVIÇOS PRESTADOS ... ANALITICO" (ex.: + "Relação de Serviços Prestados em Custo Emitido") = coparticipação + analítica, várias linhas de serviço por beneficiário, que precisam + ser somadas (`_extrai_pdf_coparticipacao`). + + **Validado contra os dois arquivos reais** (cliente Fallkner Ribeiro + Borges, competência 08/2026 — não só texto colado numa conversa, o + `pdfplumber` rodou de fato contra os PDFs de verdade). A primeira versão + escrita só a partir de texto/imagem colados errou a estrutura real em + dois pontos, só descobertos ao processar o arquivo de verdade (o texto + copiado de um PDF numa conversa **não é** o que `pdfplumber.extract_text()` + produz — não dá pra confiar nisso pra desenhar regex, só o arquivo real + confirma): + - **Mensalidade**: `extract_text()` simples (sem `layout=True`) já + devolve linhas bem formadas, espaço-separadas — nenhuma técnica + especial necessária, ao contrário do que se imaginava. + - **Coparticipação analítica**: `benef`+`nome`+`grau` vêm **colados sem + nenhum espaço** (ex.: "0975.0167003824292ANDREIA STORMTITULAR") — e o + nome do beneficiário sai **truncado em ~13 caracteres** por largura de + coluna ("ANDREIA STORMOSKI LARA" → "ANDREIA STORM"), inviabilizando + casamento por nome pra esse relatório. Por isso a coparticipação em + PDF usa **CPF** (que vem completo e confiável) em vez de nome — + `chave_casamento_para_tipo()` (ver `OperadoraParser`) devolve "cpf" só + pra `tipo_lancamento="coparticipacao"` quando a origem foi este PDF; + mensalidade (sem CPF, em nenhum dos dois formatos) continua em "nome". + Linhas "Pct:MED"/"Pct:HOS"/"Pct:MAT" (detalhamento informativo de um + item, cuja soma já está no valor do item principal) são ignoradas — + senão duplicariam o valor, já que contêm um código de tipo (MED/HOS) + como palavra isolada, colidindo com a mesma regex que identifica um + item de serviço de verdade. + Validado batendo exatamente com o "Total da Familia"/"Total da + Sequencia" impresso no próprio relatório (1.372,08 de coparticipação, + 6.061,74 de mensalidade) e com o casamento contra a planilha padrão real + da empresa 1123 — cada família presente na planilha bateu centavo a + centavo; a única divergência observada (uma família ausente da planilha + de teste) foi corretamente pra auditoria, não silenciosamente ignorada. + +Particularidades identificadas no CSV de exemplo (caso 1, inalteradas): 1. NÃO HÁ CPF NESTE ARQUIVO. O casamento com a planilha padrão do sistema é feito por NOME (chave_casamento = "nome"), usando o "Id. Titular" do próprio arquivo para saber quem é titular de quem (evita ambiguidade quando o mesmo nome de dependente aparece em mais - de uma família na planilha do sistema). + de uma família na planilha do sistema). O PDF de mensalidade também não + traz CPF nenhum, então casamento por nome vale pros dois — **mas** o + PDF de coparticipação analítica traz CPF completo e usa "cpf" em vez de + "nome" (ver `chave_casamento_para_tipo()` mais abaixo e a nota no bloco + "Validado contra os dois arquivos reais" acima). 2. "Tipo Benef." = '1' é Titular; QUALQUER outro valor (normalmente '2') é tratado como Dependente — conforme especificado. @@ -32,14 +81,72 @@ Particularidades identificadas no CSV de exemplo: 4. Uma mesma pessoa pode ter várias linhas de "Serviços" (uma por atendimento/exame) no mês — todas são somadas para chegar no total de coparticipação do mês daquela pessoa. + +Particularidades identificadas no PDF de coparticipação analítico (caso 2): + +5. O relatório tem uma coluna "Tt Copar" que mostra o MESMO valor fixo + repetido em toda linha de todo o documento — confirmado com o usuário + que essa coluna **não** é usada; a coparticipação devida por + beneficiário é a soma do "Vl Total" de cada linha de serviço daquele + beneficiário (mesma soma que já gera "Total da Família" no próprio + relatório, só por pessoa em vez de por família). + +6. O nome/código do beneficiário e a coluna "Grau Dep." (TITULAR, + CONJUGE, FILHO(A), ...) só aparecem na primeira linha de cada bloco de + atendimento ("Cartao") daquela pessoa — as linhas de serviço seguintes, + até o próximo bloco ou "Total da Familia:", pertencem à mesma pessoa + (parsing com estado, mesmo padrão já usado em `ItamedSaude`). """ import csv +import re import unicodedata -from typing import Dict, List, Tuple +from typing import Dict, List, Optional, Tuple + +import pdfplumber from portal_api.planos_saude.modelos import Individuo, ItemAuditoria, Lancamento from portal_api.planos_saude.operadoras.base import OperadoraParser +_MARCADOR_MENSALIDADE = "BENEFICIARIOS COM FATURAMENTO NO MES" +_MARCADORES_COPARTICIPACAO = ("SERVIÇOS PRESTADOS", "SERVICOS PRESTADOS", "ANALITICO") + +_GRAUS_DEPENDENCIA = ("TITULAR", "CONJUGE", "CÔNJUGE", r"FILHO\(A\)", r"PAI/M[ÃA]E", "AGREGADO") + +_LINHA_MENSALIDADE_RE = re.compile( + r"^\s*(?P\d{5,8})\s+(?P[TD])\s+(?P\d+)\s+" + r"(?P\D+?)\s+(?:Sem|\d+)\s+\d{2}/\d{2}/\d{2,4}\s+[\d.,]+\s+\d+\s+" + r"(?P[\d.,]+)\s+(?P[\d.,]+)\s+\S+\s+\S+" +) + +_PESSOA_COPARTICIPACAO_RE = re.compile( + r"^\s*(?P\d+\.\d+)(?P.+?)" + r"(?P" + "|".join(_GRAUS_DEPENDENCIA) + r")" + r"\s+(?P\d{3}\.\d{3}\.\d{3}-\d{2})" + # Confirmado contra o arquivo real: `benef`+`nome`+`grau` vêm colados, + # SEM espaço nenhum entre eles (ex.: "0975.0167003824292ANDREIA + # STORMTITULAR") — só depois do grau é que vem um espaço, antes do CPF. + # O nome sai truncado por largura de coluna (13 caracteres) — por isso + # o casamento deste relatório usa CPF, não nome (ver + # `chave_casamento_para_tipo`). +) +_ITEM_COPARTICIPACAO_RE = re.compile(r"\b(?:EXA|CON|HOS|CLI|ODO|MED)\b") +# Linhas "Pct:MED"/"Pct:HOS"/"Pct:MAT" (detalhamento do valor de um item HOS +# em Medicamento/Material/Soma de Outras Taxas, cuja soma já está no valor +# do item principal — confirmado contra o arquivo real batendo com "Total +# da Familia") também contêm um desses códigos como palavra isolada (ex.: +# "Pct:MED"), o que faria `_ITEM_COPARTICIPACAO_RE` casar por engano e somar +# esse valor de novo, duplicando-o — por isso são explicitamente ignoradas. +_PCT_RE = re.compile(r"^\s*Pct:") +# Diferente do resto do pipeline (BR: vírgula decimal, ponto de milhar), os +# dois relatórios em PDF da Unimed usam formato americano — ponto decimal, +# vírgula de milhar (ex.: "Total por Contratante: 0.00 6,061.74", no +# relatório de mensalidade) — daí este regex e `_valor_pdf_para_float` +# separados de `_VALOR_MONETARIO_RE`/`_valor_para_float` (BR, usados só +# pelo CSV). +_VALOR_MONETARIO_RE = re.compile(r"(\d{1,3}(?:,\d{3})*\.\d{2})") +_FAMILIA_RE = re.compile(r"^\s*Familia:\s*(?P\d+)") +_FIM_FAMILIA_RE = re.compile(r"^\s*Total (?:da Familia|da Sequencia|do Titulo)") + def _normaliza_tipo_despesa(tipo_bruto: str) -> str: """'Mensalidade' -> 'mensalidade' 'Serviços ' -> 'coparticipacao' outro -> ''""" @@ -53,14 +160,43 @@ def _normaliza_tipo_despesa(tipo_bruto: str) -> str: def _valor_para_float(texto: str) -> float: - """'257,09' -> 257.09 '1.234,56' -> 1234.56""" + """'257,09' -> 257.09 '1.234,56' -> 1234.56 (formato BR, usado só pelo CSV)""" texto = texto.strip().replace(".", "").replace(",", ".") return float(texto) if texto else 0.0 +def _valor_pdf_para_float(texto: str) -> float: + """'257.09' -> 257.09 '1,234.56' -> 1234.56 (formato americano dos + relatórios em PDF da Unimed — ver nota em _VALOR_MONETARIO_RE acima).""" + texto = texto.strip().replace(",", "") + return float(texto) if texto else 0.0 + + class UnimedSaude(OperadoraParser): nome_operadora = "UNIMED" - chave_casamento = "nome" # sem CPF no arquivo da operadora + chave_casamento = "nome" # sem CPF confiável no CSV nem no PDF de mensalidade + + def __init__(self) -> None: + # Rastreia, por tipo_lancamento, se o(s) arquivo(s) já processados + # nesta importação vieram do PDF de coparticipação — usado por + # `chave_casamento_para_tipo()` abaixo. Uma mesma instância é + # reaproveitada por `pipeline.processa_importacao` pra todos os + # arquivos de uma importação (ver `extrai()` chamado uma vez por + # arquivo), então essa marcação persiste até o momento em que o + # pipeline lê `chave_casamento_para_tipo()`, depois de todo `extrai()` + # já ter rodado. + self._veio_de_pdf_coparticipacao = False + + def chave_casamento_para_tipo(self, tipo_lancamento: str) -> str: + """O CSV e o PDF de mensalidade nunca trazem CPF — só o nome serve. + Já o PDF de coparticipação analítico traz CPF completo e confiável, + e é indispensável usá-lo ali: o nome do beneficiário nesse relatório + vem truncado por largura de coluna (ex.: "ANDREIA STORMOSKI LARA" + sai como "ANDREIA STORM"), o que faria o casamento por nome falhar + sistematicamente para qualquer nome mais longo que a coluna.""" + if tipo_lancamento == "coparticipacao" and self._veio_de_pdf_coparticipacao: + return "cpf" + return self.chave_casamento # ------------------------------------------------------------------ # Extração @@ -68,30 +204,131 @@ class UnimedSaude(OperadoraParser): def extrai(self, caminho_arquivo: str) -> Tuple[List[Individuo], List[ItemAuditoria]]: if caminho_arquivo.lower().endswith(".pdf"): - linhas_dict = self._extrai_pdf(caminho_arquivo) + lancamentos, auditoria = self._extrai_pdf(caminho_arquivo) else: linhas_dict = self._extrai_csv(caminho_arquivo) - - lancamentos, auditoria_extracao = self._parseia_lancamentos(linhas_dict) + lancamentos, auditoria = self._parseia_lancamentos(linhas_dict) individuos = self._agrega_por_individuo_e_tipo(lancamentos) - return individuos, auditoria_extracao + return individuos, auditoria def _extrai_csv(self, caminho_csv: str) -> List[Dict[str, str]]: # O export da Unimed vem em Latin-1 (ISO-8859-1), não UTF-8. with open(caminho_csv, encoding="latin-1", newline="") as f: return list(csv.DictReader(f, delimiter=";")) - def _extrai_pdf(self, caminho_pdf: str) -> List[Dict[str, str]]: - raise NotImplementedError( - "Extração de PDF da Unimed ainda não implementada: preciso de um " - "PDF real da Unimed (com o layout de colunas de verdade) para " - "validar o parsing, como foi feito com a Amil. Por ora, use o " - "export em CSV com as mesmas colunas (Id. Titular, Nome " - "Beneficiário, Tipo Benef., Valor, Tipo, ...)." + def _extrai_pdf(self, caminho_pdf: str) -> Tuple[List[Lancamento], List[ItemAuditoria]]: + with pdfplumber.open(caminho_pdf) as pdf: + primeira_pagina = (pdf.pages[0].extract_text() or "").upper() + if _MARCADOR_MENSALIDADE in primeira_pagina: + return self._extrai_pdf_mensalidade(pdf), [] + if any(marcador in primeira_pagina for marcador in _MARCADORES_COPARTICIPACAO): + self._veio_de_pdf_coparticipacao = True + return self._extrai_pdf_coparticipacao(pdf), [] + raise ValueError( + "Layout de PDF da Unimed não reconhecido — não é nem o relatório de " + "mensalidade ('BENEFICIARIOS COM FATURAMENTO NO MES') nem o analítico " + "de coparticipação ('... SERVIÇOS PRESTADOS ... ANALITICO')." ) + def _linhas_pdf(self, pdf: "pdfplumber.PDF") -> List[str]: + linhas: List[str] = [] + for page in pdf.pages: + texto = page.extract_text(layout=True, x_density=6, y_density=10) or "" + linhas.extend(texto.splitlines()) + return linhas + + def _extrai_pdf_mensalidade(self, pdf: "pdfplumber.PDF") -> List[Lancamento]: + # `numero_titular` de um dependente precisa ser o próprio + # `numero_beneficiario` do titular (não o código da família) — é + # essa a chave que `nomes_titular_por_numero`/`_casa_por_nome` + # (pipeline.py/matcher.py) usam pra resolver quem é titular de quem. + # Mapeia código de família -> numero_beneficiario do titular visto + # mais recentemente naquela família (as linhas de uma família são + # sempre contíguas no relatório: titular primeiro, dependentes + # depois). + lancamentos: List[Lancamento] = [] + titular_por_familia: Dict[str, str] = {} + for linha in self._linhas_pdf(pdf): + m = _LINHA_MENSALIDADE_RE.match(linha) + if not m: + continue + tipo = m.group("tipo") + familia = m.group("familia") + benef = m.group("benef") + if tipo == "T": + titular_por_familia[familia] = benef + lancamentos.append(Lancamento( + numero_beneficiario=benef, + nome=m.group("nome").strip(), + cpf="", + tipo=tipo, + rubrica="Mensalidade", + valor=_valor_pdf_para_float(m.group("valor_mensalidade")), + tipo_lancamento="mensalidade", + numero_titular=None if tipo == "T" else titular_por_familia.get(familia), + )) + return lancamentos + + def _extrai_pdf_coparticipacao(self, pdf: "pdfplumber.PDF") -> List[Lancamento]: + # Mesmo cuidado do `_extrai_pdf_mensalidade`: `numero_titular` de um + # dependente precisa ser o `numero_beneficiario` do titular, não o + # código da família. + lancamentos: List[Lancamento] = [] + titular_benef_familia: Optional[str] = None + pessoa_atual: Optional[dict] = None + + for linha in self._linhas_pdf(pdf): + m_familia = _FAMILIA_RE.match(linha) + if m_familia: + titular_benef_familia = None + pessoa_atual = None + continue + + if _FIM_FAMILIA_RE.match(linha): + pessoa_atual = None + continue + + if _PCT_RE.match(linha): + continue + + m_pessoa = _PESSOA_COPARTICIPACAO_RE.match(linha) + if m_pessoa: + tipo = "T" if m_pessoa.group("grau").upper() == "TITULAR" else "D" + benef = m_pessoa.group("benef") + if tipo == "T": + titular_benef_familia = benef + pessoa_atual = { + "numero_beneficiario": benef, + "nome": m_pessoa.group("nome").strip(), + "cpf": m_pessoa.group("cpf"), + "tipo": tipo, + "numero_titular": None if tipo == "T" else titular_benef_familia, + } + # a própria linha da pessoa já traz o primeiro item de + # serviço — não usa "continue", cai no bloco de item abaixo. + + if pessoa_atual is None or not _ITEM_COPARTICIPACAO_RE.search(linha): + continue + + valores = _VALOR_MONETARIO_RE.findall(linha) + if not valores: + continue + valor_total = _valor_pdf_para_float(valores[-1]) # "Vl Total" é a última coluna monetária da linha + + lancamentos.append(Lancamento( + numero_beneficiario=pessoa_atual["numero_beneficiario"], + nome=pessoa_atual["nome"], + cpf=pessoa_atual["cpf"], + tipo=pessoa_atual["tipo"], + rubrica="Serviço", + valor=valor_total, + tipo_lancamento="coparticipacao", + numero_titular=pessoa_atual["numero_titular"], + )) + return lancamentos + # ------------------------------------------------------------------ - # Normalização + # Normalização (CSV) # ------------------------------------------------------------------ def _parseia_lancamentos( @@ -143,6 +380,10 @@ class UnimedSaude(OperadoraParser): )) return lancamentos, auditoria + # ------------------------------------------------------------------ + # Agregação (comum aos dois formatos) + # ------------------------------------------------------------------ + def _agrega_por_individuo_e_tipo(self, lancamentos: List[Lancamento]) -> List[Individuo]: """ Agrupa por (indivíduo, tipo_lancamento): uma pessoa pode aparecer diff --git a/portal_api/planos_saude/pipeline.py b/portal_api/planos_saude/pipeline.py index e7dd155..8fb691b 100644 --- a/portal_api/planos_saude/pipeline.py +++ b/portal_api/planos_saude/pipeline.py @@ -9,10 +9,10 @@ implementando OperadoraParser (ver operadoras/base.py) e registre-a em OPERADORAS abaixo. Nada mais precisa mudar. """ from dataclasses import dataclass, field -from typing import Dict, List, Optional +from typing import Dict, List, Optional, Tuple from portal_api.planos_saude.matcher import casa_individuos_com_planilha -from portal_api.planos_saude.modelos import ItemAuditoria, LinhaSistema +from portal_api.planos_saude.modelos import Individuo, ItemAuditoria, LinhaSistema from portal_api.planos_saude.regras_empresa import valida_regra_empresa from portal_api.planos_saude.operadoras.amil.odonto_mensalidade import AmilOdontoMensalidade from portal_api.planos_saude.operadoras.bradesco.odonto_mensalidade import BradescoDentalOdontoMensalidade @@ -87,18 +87,51 @@ class ResultadoProcessamento: auditoria: List[ItemAuditoria] = field(default_factory=list) +def _agrega_individuos_entre_arquivos(individuos: List[Individuo]) -> List[Individuo]: + """Some os `Individuo` da MESMA pessoa e do MESMO `tipo_lancamento` que + vieram de arquivos diferentes (ex.: duas coparticipações separadas por + período) — sem isso, `casa_individuos_com_planilha`/`_aplica_regra_ + custeio` (matcher.py) *grava* o valor por linha em vez de acumular, então + o segundo arquivo simplesmente sobrescreveria o valor do primeiro. Cada + `OperadoraParser.extrai()` já faz esse mesmo tipo de agregação dentro de + UM arquivo (ver `_agrega_por_individuo_e_tipo` nos parsers) — esta função + é o equivalente entre arquivos, chamada uma vez por importação depois de + somar os indivíduos de todos eles.""" + agregados: Dict[Tuple[str, str], Individuo] = {} + ordem = [] + for ind in individuos: + chave = (ind.numero_beneficiario, ind.tipo_lancamento) + if chave not in agregados: + agregados[chave] = Individuo( + numero_beneficiario=ind.numero_beneficiario, + nome=ind.nome, + cpf=ind.cpf, + tipo=ind.tipo, + tipo_lancamento=ind.tipo_lancamento, + numero_titular=ind.numero_titular, + ) + ordem.append(chave) + agregados[chave].valor_total += ind.valor_total + agregados[chave].rubricas.extend(ind.rubricas) + return [agregados[chave] for chave in ordem] + + def processa_importacao( operadora_key: str, - caminho_arquivo_operadora: str, + caminhos_arquivo_operadora: List[str], linhas_sistema_template: List[LinhaSistema], tipos_selecionados: List[str], custeio_por_tipo: Dict[str, dict], regra_empresa_key: Optional[str] = None, ) -> ResultadoProcessamento: """ - Extrai o arquivo da operadora, filtra pelos tipos de lançamento que o - usuário selecionou na tela (ignora qualquer outro tipo presente no - arquivo) e casa cada tipo com uma cópia própria da planilha padrão — + Extrai um ou mais arquivos da operadora (a maioria manda só um, mas + algumas — ex.: Unimed Saúde em PDF — mandam mensalidade e coparticipação + em arquivos separados; `OperadoraParser.extrai()` é chamado uma vez por + arquivo e os indivíduos/itens de auditoria resultantes são somados antes + de seguir), filtra pelos tipos de lançamento que o usuário selecionou na + tela (ignora qualquer outro tipo presente no arquivo) e casa cada tipo + com uma cópia própria da planilha padrão — cada tipo divide o valor do mês entre `valor_empresa`/`valor` conforme a regra de custeio escolhida para ele, uma para titular e outra para dependente (ver `matcher._regra_para_pessoa`/`_calcula_valores` pro @@ -123,12 +156,20 @@ def processa_importacao( operadora_info = OPERADORAS[operadora_key] parser_operadora = operadora_info["parser"]() - individuos, auditoria_extracao = parser_operadora.extrai(caminho_arquivo_operadora) + individuos: List[Individuo] = [] + auditoria_extracao: List[ItemAuditoria] = [] + for caminho in caminhos_arquivo_operadora: + individuos_arquivo, auditoria_arquivo = parser_operadora.extrai(caminho) + individuos.extend(individuos_arquivo) + auditoria_extracao.extend(auditoria_arquivo) + individuos = _agrega_individuos_entre_arquivos(individuos) regra_empresa_fn = None if regra_empresa_key: + # regra_empresa só se aplica a "mensalidade" (ver mais abaixo e em + # ImportacaoPlanoSaudeCreateSerializer.validate()). regra_empresa_fn = valida_regra_empresa( - regra_empresa_key, parser_operadora.chave_casamento, linhas_sistema_template + regra_empresa_key, parser_operadora.chave_casamento_para_tipo("mensalidade"), linhas_sistema_template ) individuos_por_tipo: Dict[str, list] = {} @@ -155,7 +196,7 @@ def processa_importacao( linhas_atualizadas, itens_auditoria = casa_individuos_com_planilha( individuos_do_tipo, linhas_copia, - parser_operadora.chave_casamento, + parser_operadora.chave_casamento_para_tipo(tipo_lancamento), regra_custeio=custeio_por_tipo[tipo_lancamento], nomes_titular_por_numero=nomes_titular_por_numero, regra_empresa_fn=regra_empresa_fn if tipo_lancamento == "mensalidade" else None, diff --git a/portal_api/serializers.py b/portal_api/serializers.py index 4ad30df..c9828d1 100644 --- a/portal_api/serializers.py +++ b/portal_api/serializers.py @@ -539,7 +539,13 @@ class ImportacaoPlanoSaudeCreateSerializer(serializers.Serializer): # frontend converte a máscara "MM/AAAA" pro ISO "AAAA-MM-01" antes de # enviar (ver pidIpsCompetenciaParaIso em importacao-plano-saude.js). competencia = serializers.DateField(required=False, allow_null=True) - arquivo_operadora = serializers.FileField() + # Lista porque algumas operadoras mandam mensalidade e coparticipação em + # arquivos separados (ex.: Unimed Saúde em PDF) — a maioria manda só um, + # mas o campo sempre aceita 1 ou mais. `ListField` já lê múltiplos + # arquivos do mesmo nome de campo em multipart/form-data (via + # `request.data.getlist(...)`, mesma semântica do QueryDict do Django), + # sem precisar de nenhum tratamento manual na view. + arquivo_operadora = serializers.ListField(child=serializers.FileField(), allow_empty=False) tipos_lancamento = serializers.CharField() # Chave de REGRAS_EMPRESA (portal_api.planos_saude.regras_empresa) — ver # validate(): quando preenchida, substitui o custeio manual de diff --git a/portal_api/views.py b/portal_api/views.py index 540e02c..2c37902 100644 --- a/portal_api/views.py +++ b/portal_api/views.py @@ -39,6 +39,7 @@ from .models import ( FuncaoTelefonia, ImportacaoPlanoSaude, ImportacaoPlanoSaudeAlteracao, + ImportacaoPlanoSaudeArquivoOperadora, ImportacaoPlanoSaudeAuditoria, ImportacaoPlanoSaudeLinha, IndicadorApuracao, @@ -795,7 +796,8 @@ class ImportacaoPlanoSaudeViewSet(viewsets.ModelViewSet): linhas/auditoria persistidas; `gerar()` só formata o que já está salvo (isto é, já reflete qualquer edição feita na revisão), não reprocessa os arquivos originais. `destroy()` remove a importação do histórico (botão de excluir na - listagem) — apaga os dois arquivos anexados de MEDIA_ROOT antes de excluir o + listagem) — apaga a planilha padrão e todos os arquivos da operadora + (`arquivos_operadora`, um ou mais) de MEDIA_ROOT antes de excluir o registro (as linhas/itens de auditoria somem sozinhos via CASCADE).""" http_method_names = ["get", "post", "delete", "head", "options"] @@ -805,7 +807,8 @@ class ImportacaoPlanoSaudeViewSet(viewsets.ModelViewSet): return [PermissaoApp("utilitarios", "importacao-plano-saude")] def perform_destroy(self, instance: ImportacaoPlanoSaude) -> None: - instance.arquivo_operadora.delete(save=False) + for arquivo in instance.arquivos_operadora.all(): + arquivo.arquivo.delete(save=False) instance.planilha_padrao.delete(save=False) instance.delete() @@ -913,15 +916,24 @@ class ImportacaoPlanoSaudeViewSet(viewsets.ModelViewSet): criado_por=request.user, competencia=competencia, planilha_padrao=planilha_padrao_arquivo or planilha_padrao_gerada, - arquivo_operadora=dados["arquivo_operadora"], ) + arquivos_operadora = [ + ImportacaoPlanoSaudeArquivoOperadora.objects.create(importacao=importacao, arquivo=arquivo, ordem=ordem) + for ordem, arquivo in enumerate(dados["arquivo_operadora"]) + ] + + def _limpa_arquivos_orfaos() -> None: + for arquivo in arquivos_operadora: + arquivo.arquivo.delete(save=False) + importacao.planilha_padrao.delete(save=False) + importacao.delete() try: if planilha_padrao_arquivo: linhas_sistema_template = le_planilha_padrao(importacao.planilha_padrao.path) resultado = planos_saude_pipeline.processa_importacao( operadora_key=operadora_key, - caminho_arquivo_operadora=importacao.arquivo_operadora.path, + caminhos_arquivo_operadora=[arquivo.arquivo.path for arquivo in arquivos_operadora], linhas_sistema_template=linhas_sistema_template, tipos_selecionados=tipos, custeio_por_tipo=custeio_por_tipo, @@ -931,22 +943,18 @@ class ImportacaoPlanoSaudeViewSet(viewsets.ModelViewSet): # Diferente do genérico abaixo: aqui o problema não é o arquivo em # si, é a combinação operadora/planilha × regra empresa escolhida # — vale a pena mostrar a mensagem específica pro usuário. - importacao.arquivo_operadora.delete(save=False) - importacao.planilha_padrao.delete(save=False) - importacao.delete() + _limpa_arquivos_orfaos() return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST) except Exception as exc: # Arquivo ilegível (PDF num layout desconhecido, planilha padrão fora do # leiaute esperado etc.) — não deixa órfão nem a importação nem os # arquivos já salvos em MEDIA_ROOT. - importacao.arquivo_operadora.delete(save=False) - importacao.planilha_padrao.delete(save=False) - importacao.delete() + _limpa_arquivos_orfaos() return Response( { "detail": ( "O formato de um dos arquivos não está conforme o esperado. " - "Contate a Integração e Inovação." + "Contate a Inovação." ) }, status=status.HTTP_400_BAD_REQUEST, @@ -972,9 +980,7 @@ class ImportacaoPlanoSaudeViewSet(viewsets.ModelViewSet): # correta só por essa diferença de formatação. codigo_esperado = normalizar_codigo_empresa(regra_custeio_obj.codigo_empresa) if not any(normalizar_codigo_empresa(linha.codigo_empresa) == codigo_esperado for linha in todas_linhas): - importacao.arquivo_operadora.delete(save=False) - importacao.planilha_padrao.delete(save=False) - importacao.delete() + _limpa_arquivos_orfaos() return Response( { "detail": ( diff --git a/static/css/importacao-plano-saude.css b/static/css/importacao-plano-saude.css index d54b0e2..cf0c50a 100644 --- a/static/css/importacao-plano-saude.css +++ b/static/css/importacao-plano-saude.css @@ -307,6 +307,64 @@ color: var(--danger); } +/* Lista de arquivos anexados em "2. Arquivo da operadora" — várias + operadoras (ex.: Unimed em PDF) mandam mensalidade e coparticipação em + arquivos separados, então o campo aceita 1+ arquivos. Cada item tem seu + próprio status de validação (mesmas cores de .ips-file-field__status + acima) e um botão de remover individual. */ +.ips-arquivo-list { + display: flex; + flex-direction: column; + gap: var(--space-2); + margin-top: var(--space-3); +} + +.ips-arquivo-list__item { + display: flex; + align-items: center; + gap: var(--space-3); + padding: var(--space-2) var(--space-3); + border-radius: var(--radius-sm); + background: var(--bg-canvas); + border: 1px solid var(--border-subtle); +} + +.ips-arquivo-list__info { + flex: 1; + min-width: 0; +} + +.ips-arquivo-list__name { + display: block; + font-size: 0.85rem; + color: var(--text-primary); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.ips-arquivo-list__status { + display: block; + font-size: 0.78rem; + margin-top: 2px; +} + +.ips-arquivo-list__status--pendente { + color: var(--text-muted); +} + +.ips-arquivo-list__status--ok { + color: #2f9e6e; +} + +.ips-arquivo-list__status--erro { + color: var(--danger); +} + +.ips-arquivo-list__remove { + flex-shrink: 0; +} + /* "Tipo de importação" fica visualmente bem separado do quadro "2. Arquivo da operadora" logo acima — sem esse respiro extra, os dois blocos ficavam colados o bastante pra confundir onde termina um e começa o outro. */ diff --git a/static/js/importacao-plano-saude.js b/static/js/importacao-plano-saude.js index 7a65a20..34dc9aa 100644 --- a/static/js/importacao-plano-saude.js +++ b/static/js/importacao-plano-saude.js @@ -229,9 +229,7 @@ document.addEventListener("DOMContentLoaded", async () => { const planilhaUploadField = document.getElementById("ips-planilha-upload-field"); const formCompetencia = document.getElementById("ips-form-competencia"); const formArquivo = document.getElementById("ips-form-arquivo"); - const formArquivoName = document.getElementById("ips-form-arquivo-name"); - const formArquivoRemoveBtn = document.getElementById("ips-form-arquivo-remove"); - const formArquivoStatus = document.getElementById("ips-form-arquivo-status"); + const formArquivoList = document.getElementById("ips-form-arquivo-list"); const formTipoMensalidade = document.getElementById("ips-form-tipo-mensalidade"); const formTipoCoparticipacao = document.getElementById("ips-form-tipo-coparticipacao"); const formTipoRegraEmpresa = document.getElementById("ips-form-tipo-regra-empresa"); @@ -460,11 +458,97 @@ document.addEventListener("DOMContentLoaded", async () => { tipo: "planilha", }); - const validadorArquivo = criarValidadorArquivo({ + /* + * "2. Arquivo da operadora" aceita 1+ arquivos (algumas operadoras mandam + * mensalidade e coparticipação em arquivos separados) — cada arquivo + * anexado é validado individualmente (mesmo endpoint de sempre, + * pidValidarArquivoPlanoSaude, chamado uma vez por arquivo) e listado com + * seu próprio status + botão de remover. Diferente de + * criarValidadorArquivo() acima (um único arquivo, pensado pra planilha + * padrão), este mantém um array de {file, resultado} e re-renderiza a + * lista a cada mudança. + */ + function criarValidadorArquivoMultiplo({ input, listEl, tipo, getOperadoraKey }) { + let arquivos = []; + + function render() { + listEl.innerHTML = ""; + arquivos.forEach((item, index) => { + const li = document.createElement("li"); + li.className = "ips-arquivo-list__item"; + + const info = document.createElement("div"); + info.className = "ips-arquivo-list__info"; + const nameEl = document.createElement("span"); + nameEl.className = "ips-arquivo-list__name"; + nameEl.textContent = item.file.name; + const statusEl = document.createElement("span"); + if (item.resultado === null) { + statusEl.className = "ips-arquivo-list__status ips-arquivo-list__status--pendente"; + statusEl.textContent = "Validando arquivo..."; + } else { + statusEl.className = `ips-arquivo-list__status ${item.resultado.valido ? "ips-arquivo-list__status--ok" : "ips-arquivo-list__status--erro"}`; + statusEl.textContent = `${item.resultado.valido ? "✓" : "✗"} ${item.resultado.mensagem}`; + } + info.appendChild(nameEl); + info.appendChild(statusEl); + + const removeBtn = document.createElement("button"); + removeBtn.type = "button"; + removeBtn.className = "icon-btn ips-arquivo-list__remove"; + removeBtn.setAttribute("aria-label", "Remover arquivo"); + removeBtn.title = "Remover arquivo"; + removeBtn.innerHTML = + ''; + removeBtn.addEventListener("click", () => { + arquivos.splice(index, 1); + render(); + }); + + li.appendChild(info); + li.appendChild(removeBtn); + listEl.appendChild(li); + }); + } + + async function validarItem(item) { + item.resultado = null; + render(); + try { + const operadoraKey = getOperadoraKey ? getOperadoraKey() : null; + item.resultado = await pidValidarArquivoPlanoSaude(tipo, item.file, operadoraKey); + } catch (e) { + item.resultado = { valido: false, mensagem: e.message }; + } + render(); + } + + function limpar() { + input.value = ""; + arquivos = []; + render(); + } + + input.addEventListener("change", () => { + const novosArquivos = Array.from(input.files || []).map((file) => ({ file, resultado: null })); + input.value = ""; + arquivos = arquivos.concat(novosArquivos); + render(); + novosArquivos.forEach(validarItem); + }); + + return { + limpar, + revalidarSeAnexado: () => arquivos.forEach(validarItem), + ehVazio: () => arquivos.length === 0, + ehInvalido: () => arquivos.some((item) => item.resultado !== null && item.resultado.valido === false), + arquivosSelecionados: () => arquivos.map((item) => item.file), + }; + } + + const validadorArquivo = criarValidadorArquivoMultiplo({ input: formArquivo, - nameEl: formArquivoName, - removeBtn: formArquivoRemoveBtn, - statusEl: formArquivoStatus, + listEl: formArquivoList, tipo: "operadora", getOperadoraKey: () => formOperadora.value, }); @@ -2502,12 +2586,12 @@ document.addEventListener("DOMContentLoaded", async () => { return; } } - if (!formArquivo.files[0]) { - formError.textContent = "Anexe o arquivo da operadora."; + if (validadorArquivo.ehVazio()) { + formError.textContent = "Anexe ao menos um arquivo da operadora."; return; } if (validadorArquivo.ehInvalido()) { - formError.textContent = "Corrija o arquivo da operadora (veja a mensagem abaixo do campo) antes de processar."; + formError.textContent = "Corrija o(s) arquivo(s) da operadora (veja a mensagem abaixo de cada um) antes de processar."; return; } formError.textContent = ""; @@ -2518,7 +2602,7 @@ document.addEventListener("DOMContentLoaded", async () => { } else { formData.append("planilha_padrao", formPlanilha.files[0]); } - formData.append("arquivo_operadora", formArquivo.files[0]); + validadorArquivo.arquivosSelecionados().forEach((file) => formData.append("arquivo_operadora", file)); montarFormDataDeRegra(formData, regraResolvidaAtual); formSubmitBtn.disabled = true; diff --git a/templates/importacao-plano-saude.html b/templates/importacao-plano-saude.html index bd010f9..184da9c 100644 --- a/templates/importacao-plano-saude.html +++ b/templates/importacao-plano-saude.html @@ -427,19 +427,15 @@

2. Arquivo da operadora

-

Relatório de faturamento enviado pela operadora do plano (PDF ou CSV), com os valores do mês.

+

Relatório de faturamento enviado pela operadora do plano (PDF ou CSV), com os valores do mês. Algumas operadoras mandam mensalidade e coparticipação em arquivos separados — anexe quantos precisar, o tipo de cada um é identificado automaticamente.

- - Nenhum arquivo selecionado - +
- +