@extends('impressoes.layout-receita-especial.impressao', [ 'paraAssinar' => !$exibirAssinatura, 'receita' => collect($receitas)->first() ?? [] ]) @section('conteudo') @php function countRecomendacoes($html) { $lines = 0; if (empty($html)) { return $lines; } $dom = new \DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTML($html); libxml_clear_errors(); $tags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p']; foreach ($tags as $tag) { $elements = $dom->getElementsByTagName($tag); foreach ($elements as $el) { $lines += ceil(mb_strlen($el->textContent) / 90); } } return (int) $lines; } @endphp @foreach($receitas as $receita) @php $medicamentosSeparados = $receita['medicamentos']->filter(fn ($m) => $m['imprimirSeparado'])->values(); $medicamentosUsoContinuo = $receita['medicamentos']->filter(fn ($m) => !$m['imprimirSeparado'] && $m['usoContinuo'])->values(); $demaisMedicamentos = $receita['medicamentos']->filter(fn ($m) => !$m['imprimirSeparado'] && !$m['usoContinuo'])->values(); $hasMedicamentosSeparados = $medicamentosSeparados->isNotEmpty(); $hasMedicamentosUsoContinuo = $medicamentosUsoContinuo->isNotEmpty(); $hasDemaisMedicamentos = $demaisMedicamentos->isNotEmpty(); @endphp @foreach($medicamentosSeparados as $medicamento)
@for($via = 1; $via <= 2; $via++)
@if($medicamento['usoContinuo'] || $medicamento['doseUnica']) @endif
{{ sprintf('%02d', 1) }} - {{ $medicamento['nome'] }} @if($medicamento['usoContinuo']) uso contínuo @elseif($medicamento['doseUnica']) dose única @endif
{{ $medicamento['posologia'] }} @if($medicamento['duracao']) durante {{ $medicamento['duracao'] }} {{ $medicamento['duracaoMedida'] }} @endif Via: {{ $medicamento['viaAdministracao'] }}
@if(!$medicamento['livre']) Recomendações: {!! $medicamento['recomendacoes'] !!} @endif
@endfor
@endforeach @php $medicamentosImpressos = 0; $quantidadesLinhasRecomendacoesAnterior = 0; @endphp @foreach($medicamentosUsoContinuo as $i => $medicamento) @php $quantidadeLinhasRecomendacoes = countRecomendacoes($medicamento['recomendacoes']); $pageBreakBefore = false; if ($i === 0) { if ($hasMedicamentosSeparados) { $pageBreakBefore = true; } } else { if ($medicamentosImpressos === 2 || ($quantidadesLinhasRecomendacoesAnterior + $quantidadeLinhasRecomendacoes) > 5 ) { $pageBreakBefore = true; $medicamentosImpressos = 0; } } $medicamentosImpressos++; $quantidadesLinhasRecomendacoesAnterior = $quantidadeLinhasRecomendacoes; @endphp
@for($via = 1; $via <= 2; $via++)
{{ sprintf('%02d', $i + 1) }} - {{ $medicamento['nome'] }} uso contínuo
{{ $medicamento['posologia'] }} @if($medicamento['duracao']) durante {{ $medicamento['duracao'] }} {{ $medicamento['duracaoMedida'] }} @endif Via: {{ $medicamento['viaAdministracao'] }}
@if(!$medicamento['livre']) Recomendações: {!! $medicamento['recomendacoes'] !!} @endif
@endfor
@endforeach @php $medicamentosImpressos = 0; $quantidadesLinhasRecomendacoesAnterior = 0; @endphp @foreach($demaisMedicamentos as $i => $medicamento) @php $quantidadeLinhasRecomendacoes = countRecomendacoes($medicamento['recomendacoes']); $pageBreakBefore = false; if ($i === 0) { if ($hasMedicamentosSeparados || $hasMedicamentosUsoContinuo) { $pageBreakBefore = true; } } else { if ($medicamentosImpressos === 2 || ($quantidadesLinhasRecomendacoesAnterior + $quantidadeLinhasRecomendacoes) > 5 ) { $pageBreakBefore = true; $medicamentosImpressos = 0; } } $medicamentosImpressos++; $quantidadesLinhasRecomendacoesAnterior = $quantidadeLinhasRecomendacoes; @endphp
@for($via = 1; $via <= 2; $via++)
@if($medicamento['doseUnica']) @endif
{{ sprintf('%02d', $i + 1) }} - {{ $medicamento['nome'] }} dose única
{{ $medicamento['posologia'] }} @if($medicamento['duracao']) durante {{ $medicamento['duracao'] }} {{ $medicamento['duracaoMedida'] }} @endif Via: {{ $medicamento['viaAdministracao'] }}
@if(!$medicamento['livre']) Recomendações: {!! $medicamento['recomendacoes'] !!} @endif
@endfor
@endforeach @endforeach @endsection