diff --git a/assets/components/enotf/topbar.php b/assets/components/enotf/topbar.php index f6b54abb..1d942bc5 100644 --- a/assets/components/enotf/topbar.php +++ b/assets/components/enotf/topbar.php @@ -27,6 +27,11 @@ + +
+ Papieransicht +
+
diff --git a/assets/css/print.css b/assets/css/print.css new file mode 100644 index 00000000..7965beef --- /dev/null +++ b/assets/css/print.css @@ -0,0 +1,272 @@ +body { + --bs-body-bg: gray; +} + +.print__paper { + height: 297mm; + width: 210mm; + background-color: #fff; + margin: 0 auto; + padding: 1.27cm; +} + +h6.print__heading { + text-transform: uppercase; + font-size: 8pt; + margin-bottom: 0; +} + +h5.print__heading { + font-size: 8pt; + margin-bottom: 0; +} + +h1.print__heading-main { + font-size: 14pt; + text-transform: uppercase; + font-weight: bold; +} + +.print__divider { + margin-left: calc(var(--bs-gutter-x) * -0.5) !important; + margin-right: calc(var(--bs-gutter-x) * -0.5) !important; +} + +.print__text-small { + font-size: 6pt; +} + +p.print__text-small { + margin-bottom: 0; +} + +input[type=radio] { + appearance: none; + -webkit-appearance: none; + width: 6pt; + height: 6pt; + border: 1px solid #000; + border-radius: 50%; + display: inline-block; + position: relative; + cursor: pointer; + outline: none; + vertical-align: middle; + margin-right: 2px; + cursor: default; +} + +input[type=radio]:checked { + background-color: #000; + border-color: #000; +} + +.print__field-wrapper { + position: relative; + margin-bottom: 4pt; +} +.print__field-wrapper::after { + content: attr(data-field-name); + position: absolute; + right: 3pt; + bottom: 0; + font-size: 5pt; +} +.print__field-wrapper::before { + content: attr(data-vp-name); + position: absolute; + left: 3pt; + top: 0; + font-size: 5pt; +} +.print__field-wrapper .print__field { + font-size: 11pt; + font-weight: 600; + border: 1px solid #000; + border-top: 0; + padding-left: 0.35rem; + cursor: default; + pointer-events: none; + user-select: none; + caret-color: transparent; +} +.print__field-wrapper .print__field:focus { + outline: none; +} +.print__field-wrapper .print__field-vitals { + font-size: 11pt; + font-weight: 600; + border: 1px solid #000; + border-top: 0; + border-right: 0; + padding-left: 0.35rem; + cursor: default; + pointer-events: none; + user-select: none; + caret-color: transparent; + margin-top: 5pt; +} +.print__field-wrapper .print__field-vitals:focus { + outline: none; +} +.print__field-wrapper .print__textbox { + font-size: 7pt; + border: 0; + cursor: default; + pointer-events: none; + user-select: none; + caret-color: transparent; +} +.print__field-wrapper .print__textbox:focus { + outline: none; +} + +.print__full-height { + height: 100%; +} + +.print__vitals-table { + border-collapse: collapse; +} +.print__vitals-table th, +.print__vitals-table td { + border: 1px solid #000; + padding: 3pt !important; +} +.print__vitals-table th { + background-color: #f0f0f0; + font-weight: bold; +} +.print__vitals-table tbody tr:nth-child(even) { + background-color: #f9f9f9; +} +.print__vitals-table tbody tr:hover { + background-color: #f0f0f0; +} + +.topbar-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + border: 1px solid #ddd; + background: white; + color: #333; + text-decoration: none; + margin-left: 5px; + cursor: pointer; + transition: all 0.2s ease; + font-size: 20px; +} + +.topbar-btn:hover { + background: #f0f0f0; + border-color: #bbb; + color: #000; +} + +.topbar-btn:active { + background: #e0e0e0; +} + +body { + transform-origin: top center; + transition: transform 0.2s ease; +} + +@media print { + @page { + size: A4; + margin: 0; + } + * { + -webkit-print-color-adjust: exact !important; + print-color-adjust: exact !important; + color-adjust: exact !important; + } + + body { + margin: 0; + padding: 0; + background: white !important; + transform: none !important; + } + + .print__paper { + page-break-after: always; + page-break-inside: avoid; + margin: 0; + padding: 1.27cm; + width: 210mm; + height: 297mm; + box-sizing: border-box; + transform: none !important; + } + + .print__paper:last-child { + page-break-after: auto; + } + + .row { + page-break-inside: avoid; + display: flex !important; + flex-wrap: wrap !important; + } + + .col, +[class*=col-] { + flex-shrink: 0; + } + + canvas { + max-width: 100% !important; + height: auto !important; + display: block !important; + } + + .col:has(#vitalChart) { + border-left: 1px solid #000 !important; + border-bottom: 1px solid #000 !important; + } + + .border { + border-color: #000 !important; + } + + input[type=radio] { + -webkit-appearance: none; + appearance: none; + width: 6pt; + height: 6pt; + border: 1px solid #000 !important; + border-radius: 50%; + background: white; + } + + input[type=radio]:checked { + background-color: #000 !important; + } + + input[type=text], +textarea, +select { + border-color: #000 !important; + background: white !important; + color: black !important; + } + + * { + color: black !important; + } + + .print__heading, +.print__heading-main, +.print__text-small { + color: black !important; + } + + #topbar { + display: none !important; + } +} \ No newline at end of file diff --git a/assets/css/print.min.css b/assets/css/print.min.css new file mode 100644 index 00000000..4384f18f --- /dev/null +++ b/assets/css/print.min.css @@ -0,0 +1 @@ +h5.print__heading,h6.print__heading{font-size:8pt;margin-bottom:0}.print__paper{height:297mm;width:210mm;background-color:#fff;margin:0 auto;padding:1.27cm}h6.print__heading{text-transform:uppercase}h1.print__heading-main{font-size:14pt;text-transform:uppercase;font-weight:700}.print__divider{margin-left:calc(var(--bs-gutter-x) * -.5)!important;margin-right:calc(var(--bs-gutter-x) * -.5)!important}.print__text-small{font-size:6pt}p.print__text-small{margin-bottom:0}input[type=radio]{appearance:none;-webkit-appearance:none;width:6pt;height:6pt;border:1px solid #000;border-radius:50%;display:inline-block;position:relative;outline:0;vertical-align:middle;margin-right:2px;cursor:default}input[type=radio]:checked{background-color:#000;border-color:#000}.print__field-wrapper{position:relative;margin-bottom:4pt}.print__field-wrapper::after{content:attr(data-field-name);position:absolute;right:3pt;bottom:0;font-size:5pt}.print__field-wrapper::before{content:attr(data-vp-name);position:absolute;left:3pt;top:0;font-size:5pt}.print__field-wrapper .print__field,.print__field-wrapper .print__field-vitals{font-size:11pt;font-weight:600;padding-left:.35rem;pointer-events:none;caret-color:transparent}.print__field-wrapper .print__field{border:1px solid #000;border-top:0;cursor:default;user-select:none}.print__field-wrapper .print__field:focus{outline:0}.print__field-wrapper .print__field-vitals{border:1px solid #000;border-top:0;border-right:0;cursor:default;user-select:none;margin-top:5pt}.print__field-wrapper .print__field-vitals:focus{outline:0}.print__field-wrapper .print__textbox{font-size:7pt;border:0;cursor:default;pointer-events:none;user-select:none;caret-color:transparent}.print__field-wrapper .print__textbox:focus{outline:0}.print__full-height{height:100%}.print__vitals-table{border-collapse:collapse}.print__vitals-table td,.print__vitals-table th{border:1px solid #000;padding:3pt!important}.print__vitals-table th{background-color:#f0f0f0;font-weight:700}.print__vitals-table tbody tr:nth-child(even){background-color:#f9f9f9}.print__vitals-table tbody tr:hover{background-color:#f0f0f0}.topbar-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ddd;background:#fff;color:#333;text-decoration:none;margin-left:5px;cursor:pointer;transition:all .2s ease;font-size:20px}.topbar-btn:hover{background:#f0f0f0;border-color:#bbb;color:#000}.topbar-btn:active{background:#e0e0e0}body{--bs-body-bg:gray;transform-origin:top center;transition:transform .2s ease}@media print{.print__paper,.row{page-break-inside:avoid}.print__paper,body{margin:0;transform:none!important}@page{size:A4;margin:0}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body{padding:0;background:#fff!important}.print__paper{page-break-after:always;padding:1.27cm;width:210mm;height:297mm;box-sizing:border-box}.print__paper:last-child{page-break-after:auto}.row{display:flex!important;flex-wrap:wrap!important}.col,[class*=col-]{flex-shrink:0}canvas{max-width:100%!important;height:auto!important;display:block!important}.col:has(#vitalChart){border-left:1px solid #000!important;border-bottom:1px solid #000!important}.border{border-color:#000!important}input[type=radio]{-webkit-appearance:none;appearance:none;width:6pt;height:6pt;border:1px solid #000!important;border-radius:50%;background:#fff}input[type=radio]:checked{background-color:#000!important}input[type=text],select,textarea{border-color:#000!important;background:#fff!important;color:#000!important}*,.print__heading,.print__heading-main,.print__text-small{color:#000!important}#topbar{display:none!important}} \ No newline at end of file diff --git a/assets/css/print.scss b/assets/css/print.scss new file mode 100644 index 00000000..6afd7faa --- /dev/null +++ b/assets/css/print.scss @@ -0,0 +1,285 @@ +body { + --bs-body-bg: gray; +} + +.print__paper { + height: 297mm; + width: 210mm; + background-color: #fff; + margin: 0 auto; + padding: 1.27cm; +} + +h6.print__heading { + text-transform: uppercase; + font-size: 8pt; + margin-bottom: 0; +} + +h5.print__heading { + font-size: 8pt; + margin-bottom: 0; +} + +h1.print__heading-main { + font-size: 14pt; + text-transform: uppercase; + font-weight: bold; +} + +.print__divider { + margin-left: calc(var(--bs-gutter-x) * -0.5) !important; + margin-right: calc(var(--bs-gutter-x) * -0.5) !important; +} + +.print__text-small { + font-size: 6pt; +} + +p.print__text-small { + margin-bottom: 0; +} + +input[type="radio"] { + appearance: none; + -webkit-appearance: none; + width: 6pt; + height: 6pt; + border: 1px solid #000; + border-radius: 50%; + display: inline-block; + position: relative; + cursor: pointer; + outline: none; + vertical-align: middle; + margin-right: 2px; + cursor: default; +} + +input[type="radio"]:checked { + background-color: #000; + border-color: #000; +} + +.print__field-wrapper { + position: relative; + margin-bottom: 4pt; + + &::after { + content: attr(data-field-name); + position: absolute; + right: 3pt; + bottom: 0; + font-size: 5pt; + } + + &::before { + content: attr(data-vp-name); + position: absolute; + left: 3pt; + top: 0; + font-size: 5pt; + } + + .print__field { + font-size: 11pt; + font-weight: 600; + border: 1px solid #000; + border-top: 0; + padding-left: 0.35rem; + cursor: default; + pointer-events: none; + user-select: none; + caret-color: transparent; + + &:focus { + outline: none; + } + } + + .print__field-vitals { + font-size: 11pt; + font-weight: 600; + border: 1px solid #000; + border-top: 0; + border-right: 0; + padding-left: 0.35rem; + cursor: default; + pointer-events: none; + user-select: none; + caret-color: transparent; + margin-top: 5pt; + + &:focus { + outline: none; + } + } + + .print__textbox { + font-size: 7pt; + border: 0; + cursor: default; + pointer-events: none; + user-select: none; + caret-color: transparent; + + &:focus { + outline: none; + } + } +} + +.print__full-height { + height: 100%; +} + +.print__vitals-table { + border-collapse: collapse; + + th, + td { + border: 1px solid #000; + padding: 3pt !important; + } + + th { + background-color: #f0f0f0; + font-weight: bold; + } + + tbody tr:nth-child(even) { + background-color: #f9f9f9; + } + + tbody tr:hover { + background-color: #f0f0f0; + } +} + +.topbar-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + border: 1px solid #ddd; + background: white; + color: #333; + text-decoration: none; + margin-left: 5px; + cursor: pointer; + transition: all 0.2s ease; + font-size: 20px; +} + +.topbar-btn:hover { + background: #f0f0f0; + border-color: #bbb; + color: #000; +} + +.topbar-btn:active { + background: #e0e0e0; +} + +body { + transform-origin: top center; + transition: transform 0.2s ease; +} + +@media print { + @page { + size: A4; + margin: 0; + } + + * { + -webkit-print-color-adjust: exact !important; + print-color-adjust: exact !important; + color-adjust: exact !important; + } + + body { + margin: 0; + padding: 0; + background: white !important; + transform: none !important; + } + + .print__paper { + page-break-after: always; + page-break-inside: avoid; + margin: 0; + padding: 1.27cm; + width: 210mm; + height: 297mm; + box-sizing: border-box; + transform: none !important; + } + + .print__paper:last-child { + page-break-after: auto; + } + + .row { + page-break-inside: avoid; + display: flex !important; + flex-wrap: wrap !important; + } + + .col, + [class*="col-"] { + flex-shrink: 0; + } + + canvas { + max-width: 100% !important; + height: auto !important; + display: block !important; + } + + .col:has(#vitalChart) { + border-left: 1px solid #000 !important; + border-bottom: 1px solid #000 !important; + } + + .border { + border-color: #000 !important; + } + + input[type="radio"] { + -webkit-appearance: none; + appearance: none; + width: 6pt; + height: 6pt; + border: 1px solid #000 !important; + border-radius: 50%; + background: white; + } + + input[type="radio"]:checked { + background-color: #000 !important; + } + + input[type="text"], + textarea, + select { + border-color: #000 !important; + background: white !important; + color: black !important; + } + + * { + color: black !important; + } + + .print__heading, + .print__heading-main, + .print__text-small { + color: black !important; + } + + #topbar { + display: none !important; + } +} diff --git a/enotf/print/index.php b/enotf/print/index.php new file mode 100644 index 00000000..e7ba57c4 --- /dev/null +++ b/enotf/print/index.php @@ -0,0 +1,2379 @@ +prepare($queryget); + $stmt->execute(['enr' => $_GET['enr']]); + + $daten = $stmt->fetch(PDO::FETCH_ASSOC); + + if (count($daten) == 0) { + header("Location: " . BASE_PATH . "enotf/"); + exit(); + } +} else { + header("Location: " . BASE_PATH . "enotf/"); + exit(); +} + +$enr = $daten['enr']; + +$prot_url = "https://" . SYSTEM_URL . "/enotf/protokoll/index.php?enr=" . $enr; +$defaultUrl = $prot_url; + +date_default_timezone_set('Europe/Berlin'); +$currentTime = date('H:i'); +$currentDate = date('d.m.Y'); +?> + + + + + + + + + [#<?= $daten['enr'] ?>] › eNOTF › <?php echo SYSTEM_NAME ?> + + + + + + + + + + + + + + + + + + + + + + + + + " /> + + + +
+
+ +
+ + + +
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/enotf/protokoll/anamnese/1.php b/enotf/protokoll/anamnese/1.php index d8f335c4..149de8ed 100644 --- a/enotf/protokoll/anamnese/1.php +++ b/enotf/protokoll/anamnese/1.php @@ -94,13 +94,13 @@ Anamnese -
+
Notfallsituation, Anamnese, SAMPLER(+S), Bemerkungen
- +
diff --git a/enotf/protokoll/anamnese/index.php b/enotf/protokoll/anamnese/index.php index 9fd8b6b4..00d45dbc 100644 --- a/enotf/protokoll/anamnese/index.php +++ b/enotf/protokoll/anamnese/index.php @@ -101,7 +101,7 @@
- +
diff --git a/enotf/protokoll/diagnose/index.php b/enotf/protokoll/diagnose/index.php index b0805acc..3081535e 100644 --- a/enotf/protokoll/diagnose/index.php +++ b/enotf/protokoll/diagnose/index.php @@ -132,59 +132,59 @@ 99 => 'Keine Erkrankung / Verletzung feststellbar', // Trauma - Schädel-Hirn (101-104) - 101 => 'Trauma Schädel-Hirn (leicht)', - 102 => 'Trauma Schädel-Hirn (mittel)', - 103 => 'Trauma Schädel-Hirn (schwer)', - 104 => 'Trauma Schädel-Hirn (tödlich)', + 101 => 'Trauma Schädel-Hirn leicht', + 102 => 'Trauma Schädel-Hirn mittel', + 103 => 'Trauma Schädel-Hirn schwer', + 104 => 'Trauma Schädel-Hirn tödlich', // Trauma - Gesicht (111-114) - 111 => 'Trauma Gesicht (leicht)', - 112 => 'Trauma Gesicht (mittel)', - 113 => 'Trauma Gesicht (schwer)', - 114 => 'Trauma Gesicht (tödlich)', + 111 => 'Trauma Gesicht leicht', + 112 => 'Trauma Gesicht mittel', + 113 => 'Trauma Gesicht schwer', + 114 => 'Trauma Gesicht tödlich', // Trauma - HWS (121-124) - 121 => 'Trauma HWS (leicht)', - 122 => 'Trauma HWS (mittel)', - 123 => 'Trauma HWS (schwer)', - 124 => 'Trauma HWS (tödlich)', + 121 => 'Trauma HWS leicht', + 122 => 'Trauma HWS mittel', + 123 => 'Trauma HWS schwer', + 124 => 'Trauma HWS tödlich', // Trauma - Thorax (131-134) - 131 => 'Trauma Thorax (leicht)', - 132 => 'Trauma Thorax (mittel)', - 133 => 'Trauma Thorax (schwer)', - 134 => 'Trauma Thorax (tödlich)', + 131 => 'Trauma Thorax leicht', + 132 => 'Trauma Thorax mittel', + 133 => 'Trauma Thorax schwer', + 134 => 'Trauma Thorax tödlich', // Trauma - Abdomen (141-144) - 141 => 'Trauma Abdomen (leicht)', - 142 => 'Trauma Abdomen (mittel)', - 143 => 'Trauma Abdomen (schwer)', - 144 => 'Trauma Abdomen (tödlich)', + 141 => 'Trauma Abdomen leicht', + 142 => 'Trauma Abdomen mittel', + 143 => 'Trauma Abdomen schwer', + 144 => 'Trauma Abdomen tödlich', // Trauma - BWS / LWS (151-153) - 151 => 'Trauma BWS / LWS (leicht)', - 152 => 'Trauma BWS / LWS (mittel)', - 153 => 'Trauma BWS / LWS (schwer)', + 151 => 'Trauma BWS / LWS leicht', + 152 => 'Trauma BWS / LWS mittel', + 153 => 'Trauma BWS / LWS schwer', // Trauma - Becken (161-163) - 161 => 'Trauma Becken (leicht)', - 162 => 'Trauma Becken (mittel)', - 163 => 'Trauma Becken (schwer)', + 161 => 'Trauma Becken leicht', + 162 => 'Trauma Becken mittel', + 163 => 'Trauma Becken schwer', // Trauma - obere Extremitäten (171-173) - 171 => 'Trauma obere Extremitäten (leicht)', - 172 => 'Trauma obere Extremitäten (mittel)', - 173 => 'Trauma obere Extremitäten (schwer)', + 171 => 'Trauma obere Extremitäten leicht', + 172 => 'Trauma obere Extremitäten mittel', + 173 => 'Trauma obere Extremitäten schwer', // Trauma - untere Extremitäten (181-183) - 181 => 'Trauma untere Extremitäten (leicht)', - 182 => 'Trauma untere Extremitäten (mittel)', - 183 => 'Trauma untere Extremitäten (schwer)', + 181 => 'Trauma untere Extremitäten leicht', + 182 => 'Trauma untere Extremitäten mittel', + 183 => 'Trauma untere Extremitäten schwer', // Trauma - Weichteile (191-193) - 191 => 'Trauma Weichteile (leicht)', - 192 => 'Trauma Weichteile (mittel)', - 193 => 'Trauma Weichteile (schwer)', + 191 => 'Trauma Weichteile leicht', + 192 => 'Trauma Weichteile mittel', + 193 => 'Trauma Weichteile schwer', // Trauma - spezielle (201-209) 201 => 'Verbrennung / Verbrühung', diff --git a/enotf/protokoll/erstbefund/kreislauf/3.php b/enotf/protokoll/erstbefund/kreislauf/3.php index 7620cb8a..6d7f4d80 100644 --- a/enotf/protokoll/erstbefund/kreislauf/3.php +++ b/enotf/protokoll/erstbefund/kreislauf/3.php @@ -128,7 +128,7 @@ autocomplete="off"> - +
autocomplete="off"> diff --git a/enotf/protokoll/massnahmen/index.php b/enotf/protokoll/massnahmen/index.php index 26c64b06..c3088e82 100644 --- a/enotf/protokoll/massnahmen/index.php +++ b/enotf/protokoll/massnahmen/index.php @@ -330,7 +330,7 @@ function displayAllMedikamente($medikamenteJson) return ''; } - if ($medikamenteJson === '0') { + if ($medikamenteJson === '0' || $medikamenteJson == '1') { return 'Keine Medikamente'; }