#!/usr/bin/env python3
"""IT-Hilfe-Sofort.de — Flask-Webapp fuer IT-Dienstleistungen im Gesundheitswesen."""
import os
import re
from pathlib import Path
from flask import Flask
BASE_DIR = Path(__file__).parent
ARTIKEL_DIR = BASE_DIR
PORT = int(os.environ.get("PORT", "5003"))
app = Flask(__name__)
def _base_template(title: str, content: str, active: str = "") -> str:
"""Wrapper fuer einheitliches Seitenlayout.
Args:
title: Seitentitel als String.
content: HTML-Inhalt der Seite.
active: Aktiver Navigationspunkt.
Returns:
Vollstaendiges HTML-Dokument als String.
"""
# Kontakt-Banner (auf jeder Seite)
kontakt_banner = """
"""
# Footer mit §400-Hinweis
footer_vermittlung = """
* Wir vermitteln IT-Dienstleistungen und -Produkte. Es faellt eine Vermittlungsgebuehr
gemaess § 400 BGB an — diese fuehrt nicht zu hoeheren Preisen fuer Sie.
"""
return f"""
Impressum
Daniel Krause
Musterstraße 1
12345 Musterstadt
E-Mail: info@it-hilfe-sofort.de
'
return _base_template("Impressum", content)
@app.route("/datenschutz")
def datenschutz() -> str:
"""Datenschutzerklaerung."""
content = 'Datenschutzerklaerung
Platzhalter — vollstaendige Datenschutzerklaerung folgt.
'
return _base_template("Datenschutz", content)
# ── Blog-Artikel-Datenbank ───────────────────────────────
_ARTIKEL = [
("/blog/telematik-vorschriften", "TI-Anschlusspflicht 2025", "artikel-01-ti-anschlusspflicht.html", "ti-anschlusspflicht-2025"),
("/blog/telematik-vorschriften", "Elektronische Abrechnung ab 12/2026", "artikel-02-elektronische-abrechnung.html", "elektronische-abrechnung-2026"),
("/blog/telematik-vorschriften", "SMC-B-Karte — 33% Abdeckung", "artikel-03-smc-b-karte.html", "smc-b-karte-pflege"),
("/blog/dsgvo-it-sicherheit", "46,9 Mio. EUR DSGVO-Bussgelder", "artikel-04-dsgvo-bussgelder.html", "dsgvo-bussgelder-gesundheitswesen"),
("/blog/dsgvo-it-sicherheit", "BSI: 16 Schwachstellen Pflegesoftware", "artikel-05-bsi-schwachstellen.html", "bsi-schwachstellen-pflegesoftware"),
("/blog/dsgvo-it-sicherheit", "138 Sicherheitsvorfaelle Gesundheitswesen", "artikel-06-sicherheitsvorfaelle.html", "sicherheitsvorfaelle-gesundheitswesen"),
("/blog/telematik-vorschriften", "NIS-2 Registrierungsfrist", "artikel-07-nis2.html", "nis2-registrierungsfrist"),
("/blog/fachkraeftemangel", "200.000 unbesetzte Pflegestellen", "artikel-08-fachkraeftemangel.html", "fachkraeftemangel-pflege"),
("/blog/fachkraeftemangel", "62% Altenpflege — Personalplanung", "artikel-09-personalplanung.html", "personalplanung-altenpflege"),
("/blog/fachkraeftemangel", "KI-Sprachassistent spart 27% Zeit", "artikel-10-ki-sprachassistent.html", "ki-sprachassistent-pflege"),
("/blog/foerderung-finanzierung", "Bis 12.000 EUR Digitalisierungszuschuss", "artikel-11-digitalisierungszuschuss.html", "digitalisierungszuschuss-pflege"),
("/blog/foerderung-finanzierung", "DiPA — 70 EUR monatlich ab 2026", "artikel-12-dipa.html", "dipa-digitale-pflegeanwendungen"),
("/blog/foerderung-finanzierung", "Pflegeversicherung 1 Mrd. Defizit", "artikel-13-pflegeversicherung.html", "pflegeversicherung-defizit"),
("/blog/qualitaet-pruefung", "QPR ambulant ab Juli 2026", "artikel-14-qpr-ambulant.html", "qpr-ambulant-2026"),
("/blog/qualitaet-pruefung", "PeBeM verpflichtend ab 2026", "artikel-15-pebem.html", "pebem-2026"),
("/blog/qualitaet-pruefung", "MDK-Pruefung digital bestehen", "artikel-16-mdk-pruefung.html", "mdk-pruefung-digital"),
("/blog/telematik-vorschriften", "ePA fuer alle — Opt-out", "artikel-17-epa.html", "epa-opt-out"),
("/blog/dsgvo-it-sicherheit", "Cloud-Hosting Deutschland", "artikel-18-cloud-hosting.html", "cloud-hosting-deutschland"),
("/blog/praxis-tipps", "Tablets fuer die Pflege — Top 5", "artikel-19-tablets.html", "tablets-pflege-top5"),
("/blog/praxis-tipps", "WLAN im Pflegeheim", "artikel-20-wlan.html", "wlan-pflegeheim"),
("/blog/praxis-tipps", "Offline-Dokumentation", "artikel-21-offline.html", "offline-dokumentation-pflege"),
("/blog/dsgvo-it-sicherheit", "E-Mail-Verschluesselung", "artikel-22-email-verschluesselung.html", "email-verschluesselung-pflege"),
("/blog/praxis-tipps", "Medikationsplan digital", "artikel-23-medikationsplan.html", "medikationsplan-digital"),
("/blog/praxis-tipps", "IT-Notfallplan 10-Punkte", "artikel-24-it-notfallplan.html", "it-notfallplan-pflege"),
]
# ── Leistungen-Daten ─────────────────────────────────────
_LEISTUNGEN = {
"pflegedienste": {
"titel": "IT-Loesungen fuer ambulante Pflegedienste",
"cards": [
("Tourenplanung", "Digitale Tourenplanung und mobile Datenerfassung vor Ort. Effizientere Routen und Dokumentation auf dem Tablet."),
("Mobile Dokumentation", "Echtzeit-Dokumentation von Pflegemassnahmen direkt im Einsatz. Synchronisiert mit der zentralen Verwaltung."),
("Abrechnung und Reporting", "Automatisierte Abrechnung und Auswertungen. Weniger Verwaltungszeit, mehr Zeit fuer Patienten."),
],
},
"pflegeheime": {
"titel": "IT-Loesungen fuer stationaere Pflegeheime",
"cards": [
("Heimverwaltung", "Digitale Heimpleitung: Dienstplanung, Raummanagement, Budget-Controller. Alles in einer Plattform."),
("Biometrie und Zutrittssysteme", "Fingerabdruck- und Gesichtserkennung fuer sicheren Zutritt. DSGVO-konform und benutzerfreundlich."),
("Dokumentationssysteme", "Komplette digitale Dokumentation von Pflegeplanung bis Medikationsueberwachung. Vollstaendig auditfaehig."),
],
},
"tagespflegen": {
"titel": "IT-Loesungen fuer Tagespflegen",
"cards": [
("Terminbuchung", "Online-Terminbuchung mit Kalendersynchronisation. Patienten koennen Termine direkt vereinbaren."),
("Fahrdienstverwaltung", "Organisation von Fahrdiensten und Kurieren. Automatische Zuweisung und Echtzeit-Tracking."),
("Aktivierungsangebote", "Digitales Planungs- und Monitoring-System fuer Aktivitaeten und Therapie-Programme im Tagesverlauf."),
],
},
}
# ── IT-Service-Daten ─────────────────────────────────────
_IT_SERVICE = {
"hardware": {
"titel": "IT-Hardware fuer das Gesundheitswesen",
"cards": [
("Server und Workstations", "Auswahl, Installation und Wartung von Servern und Workstations. DSGVO-konform und skalierbar."),
("Thin Clients und Endgeraete", "Kosteneffiziente Thin Clients mit zentralem Management. Einfache Administration, hohe Sicherheit."),
("Drucker und Peripherie", "Medizinische Geraete und Drucker mit Spezialtreibern. Integration in bestehende Netzwerke."),
("Beschaffung und Consulting", "Unabhaengige Beratung zur Hardware-Auswahl. Gutes Preis-Leistungs-Verhaeltnis garantiert."),
],
},
"netzwerk": {
"titel": "IT-Netzwerk fuer Pflegeeinrichtungen",
"cards": [
("WLAN-Ausleuchtung", "Professionelle WLAN-Planung und -Implementierung fuer komplette Einrichtungen. Lueckenlose Abdeckung."),
("VPN und Remote-Zugang", "Verschluesselte Verbindung fuer mobiles Arbeiten. Sichere Fernwartung und Fernadministration."),
("Firewall und Segmentierung", "Zwei-Wege-Firewall mit medizinischen Geraete-Portabilitaet. Trennung von Betriebs- und Pflegedaten."),
("Netzwerkmonitoring", "24/7 Ueberwachung aller Netzwerk-Komponenten. Proaktive Stoerungserkennung und automatische Eskalation."),
],
},
"email-kommunikation": {
"titel": "E-Mail und Kommunikation",
"cards": [
("Microsoft 365", "Vollstaendige Implementierung und Verwaltung von Microsoft 365. Cloud-Hosting in Deutschland verfuegbar."),
("Exchange und VoIP", "E-Mail-Server mit Exchange-Integration und VoIP-Telefonie. Nahtlose Kommunikation aller Abteilungen."),
("Spam-Schutz und Archivierung", "Mehrschichtiger Spam-Schutz und automatische Archivierung fuer Compliance und Aufbewahrungspflichten."),
],
},
"support-wartung": {
"titel": "IT-Support und Wartung",
"cards": [
("SLA-Stufen", "Flexible Service-Level-Agreements: von Standard bis Mission-Critical. Garantierte Reaktionszeiten fuer alle Stoerungen."),
("Reaktionszeiten", "Erste Antwort innerhalb von 30 Minuten. Vollstaendige Loesung innerhalb von 4 Stunden bei schwerwiegenden Problemen."),
("Fernwartung und Hosting", "Sichere Fernwartung mit Echtzeit-Desktop-Zugriff. DSGVO-konforme Hostung aller Systeme."),
("Monitoring und Wartung", "Automatisiertes Monitoring aller IT-Komponenten. Regelmaessige Sicherheitsupdates und Wartung in Einweisungszeiten."),
],
},
}
# ── Helper: Seitenleiste ──────────────────────────────────
def _sidebar(routes: list[tuple[str, str, str, str]]) -> str:
"""Erstelle Seitenleiste mit Artikel-Links.
Args:
routes: Liste von (Sektion, Titel, Datei, Slug)-Tupeln.
"""
links: list[str] = []
for _sektion, titel, _datei, slug in routes:
links.append('")
return (
"