update
This commit is contained in:
244
backup 24.2.26 - Kopie/aza_config.py
Normal file
244
backup 24.2.26 - Kopie/aza_config.py
Normal file
@@ -0,0 +1,244 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Konfigurationskonstanten und Prompt-Strings für KG-Diktat Desktop.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
_APPDATA_FOLDER_NAME = "AZA Desktop"
|
||||
|
||||
_writable_data_dir_cache = None
|
||||
|
||||
|
||||
def get_writable_data_dir() -> str:
|
||||
"""Writable directory for ALL user config/data files.
|
||||
|
||||
Frozen (installed to Program Files): %APPDATA%/AZA Desktop
|
||||
Dev (running from source): directory containing this file
|
||||
"""
|
||||
global _writable_data_dir_cache
|
||||
if _writable_data_dir_cache is not None:
|
||||
return _writable_data_dir_cache
|
||||
|
||||
if getattr(sys, "frozen", False):
|
||||
appdata = os.environ.get("APPDATA")
|
||||
if appdata:
|
||||
d = os.path.join(appdata, _APPDATA_FOLDER_NAME)
|
||||
else:
|
||||
d = os.path.join(str(Path.home()), "AppData", "Roaming", _APPDATA_FOLDER_NAME)
|
||||
os.makedirs(d, exist_ok=True)
|
||||
_writable_data_dir_cache = d
|
||||
else:
|
||||
_writable_data_dir_cache = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
return _writable_data_dir_cache
|
||||
|
||||
|
||||
# ─── Modelle ───
|
||||
TRANSCRIBE_MODEL = "gpt-4o-mini-transcribe"
|
||||
DEFAULT_SUMMARY_MODEL = "gpt-5.2"
|
||||
ALLOWED_SUMMARY_MODELS = ["gpt-5.2", "gpt-5-mini", "gpt-5-nano"]
|
||||
|
||||
MODEL_LABELS = {
|
||||
"gpt-5.2": 'schnell ("teures" KI)',
|
||||
"gpt-5-mini": "mittleres KI",
|
||||
"gpt-5-nano": "langsameres (günstigeres KI)",
|
||||
}
|
||||
|
||||
# ─── Config-Dateinamen ───
|
||||
CONFIG_FILENAME = "kg_diktat_config.txt"
|
||||
WINDOW_CONFIG_FILENAME = "kg_diktat_window.txt"
|
||||
SIGNATURE_CONFIG_FILENAME = "kg_diktat_signature.txt"
|
||||
KORREKTUREN_CONFIG_FILENAME = "kg_diktat_korrekturen.json"
|
||||
ABLAGE_BASE_DIR = "kg_diktat_ablage"
|
||||
ABLAGE_SUBFOLDERS = ("KG", "Briefe", "Rezepte", "Kostengutsprachen", "Diktat", "Transkript")
|
||||
ABLAGE_LABELS = {
|
||||
"KG": "KG",
|
||||
"Briefe": "Brief",
|
||||
"Rezepte": "Rezept",
|
||||
"Kostengutsprachen": "KOGU",
|
||||
"Diktat": "Diktat",
|
||||
"Transkript": "Transkript",
|
||||
}
|
||||
PRUEFEN_WINDOW_CONFIG_FILENAME = "kg_diktat_pruefen_window.txt"
|
||||
ORDNER_WINDOW_CONFIG_FILENAME = "kg_diktat_ordner_window.txt"
|
||||
TEXT_WINDOW_CONFIG_FILENAME = "kg_diktat_text_window.txt"
|
||||
DIKTAT_WINDOW_CONFIG_FILENAME = "kg_diktat_diktat_window.txt"
|
||||
DISKUSSION_WINDOW_CONFIG_FILENAME = "kg_diktat_diskussion_window.txt"
|
||||
SETTINGS_WINDOW_CONFIG_FILENAME = "kg_diktat_settings_window.txt"
|
||||
TEXTBLOECKE_CONFIG_FILENAME = "kg_diktat_textbloecke.json"
|
||||
TEMPLATES_CONFIG_FILENAME = "kg_diktat_templates.txt"
|
||||
OP_BERICHT_TEMPLATE_CONFIG_FILENAME = "kg_diktat_op_bericht_template.txt"
|
||||
ARZTBRIEF_VORLAGE_CONFIG_FILENAME = "kg_diktat_arztbrief_vorlage.txt"
|
||||
TODO_CONFIG_FILENAME = "kg_diktat_todos.json"
|
||||
TODO_WINDOW_CONFIG_FILENAME = "kg_diktat_todo_window.txt"
|
||||
TODO_INBOX_CONFIG_FILENAME = "kg_diktat_todo_inbox.json"
|
||||
TODO_SETTINGS_CONFIG_FILENAME = "kg_diktat_todo_settings.json"
|
||||
NOTES_CONFIG_FILENAME = "kg_diktat_notes.json"
|
||||
CHECKLIST_CONFIG_FILENAME = "kg_diktat_checklists.json"
|
||||
USER_PROFILE_CONFIG_FILENAME = "kg_diktat_user_profile.json"
|
||||
OPACITY_CONFIG_FILENAME = "kg_diktat_opacity.txt"
|
||||
AUTOTEXT_CONFIG_FILENAME = "kg_diktat_autotext.json"
|
||||
FONT_SCALE_CONFIG_FILENAME = "kg_diktat_font_scale.txt"
|
||||
BUTTON_SCALE_CONFIG_FILENAME = "kg_diktat_button_scale.txt"
|
||||
TOKEN_USAGE_CONFIG_FILENAME = "kg_diktat_token_usage.txt"
|
||||
KG_DETAIL_LEVEL_CONFIG_FILENAME = "kg_diktat_detail_level.txt"
|
||||
SOAP_SECTION_LEVELS_CONFIG_FILENAME = "kg_diktat_soap_section_levels.json"
|
||||
FONT_SIZES_CONFIG_FILENAME = "text_font_sizes.json"
|
||||
PANED_POSITIONS_CONFIG_FILENAME = "paned_positions.json"
|
||||
KOGU_GRUSS_CONFIG_FILENAME = "kg_diktat_kogu_gruss.txt"
|
||||
KOGU_TEMPLATES_CONFIG_FILENAME = "kg_diktat_kogu_templates.txt"
|
||||
DISKUSSION_VORLAGE_CONFIG_FILENAME = "kg_diktat_diskussion_vorlage.txt"
|
||||
BRIEF_STYLE_PROFILES_FILENAME = "kg_diktat_brief_style_profiles.json"
|
||||
|
||||
# ─── Opacity / Font / Button Scale Defaults ───
|
||||
DEFAULT_OPACITY = 1.0
|
||||
MIN_OPACITY = 0.4
|
||||
FIXED_FONT_SCALE = 0.6
|
||||
FIXED_BUTTON_SCALE = 1.4
|
||||
DEFAULT_FONT_SCALE = FIXED_FONT_SCALE
|
||||
MIN_FONT_SCALE = FIXED_FONT_SCALE
|
||||
MAX_FONT_SCALE = FIXED_FONT_SCALE
|
||||
DEFAULT_BUTTON_SCALE = FIXED_BUTTON_SCALE
|
||||
MIN_BUTTON_SCALE = FIXED_BUTTON_SCALE
|
||||
MAX_BUTTON_SCALE = FIXED_BUTTON_SCALE
|
||||
OPTIMAL_FONT_SCALE = FIXED_FONT_SCALE
|
||||
OPTIMAL_BUTTON_SCALE = FIXED_BUTTON_SCALE
|
||||
|
||||
# ─── Fenster-Defaults ───
|
||||
DEFAULT_WINDOW_WIDTH = 850
|
||||
DEFAULT_WINDOW_HEIGHT = 920
|
||||
|
||||
# ─── SOAP ───
|
||||
_SOAP_SECTIONS = ("A", "S", "O", "B", "D", "T", "P")
|
||||
_SOAP_LABELS = {"A": "Anamnese", "S": "Subjektiv", "O": "Objektiv", "B": "Beurteilung", "D": "Diagnose", "T": "Therapie", "P": "Procedere"}
|
||||
SOAP_ORDER_CONFIG_FILENAME = "kg_diktat_soap_order.json"
|
||||
SOAP_VISIBILITY_CONFIG_FILENAME = "kg_diktat_soap_visibility.json"
|
||||
SOAP_PRESETS_CONFIG_FILENAME = "kg_diktat_soap_presets.json"
|
||||
DEFAULT_SOAP_ORDER = ["A", "S", "O", "B", "D", "T", "P"]
|
||||
NUM_SOAP_PRESETS = 3
|
||||
|
||||
# ─── Brief-Abschnitts-Profile ───
|
||||
BRIEF_PRESETS_CONFIG_FILENAME = "kg_diktat_brief_presets.json"
|
||||
NUM_BRIEF_PRESETS = 3
|
||||
|
||||
BRIEF_PROFILE_DEFAULTS = [
|
||||
{
|
||||
"name": "Arztbrief",
|
||||
"order": ["DI", "AN", "BF", "BE", "TP"],
|
||||
"labels": {
|
||||
"DI": "Diagnosen",
|
||||
"AN": "Anamnese",
|
||||
"BF": "Befunde",
|
||||
"BE": "Beurteilung",
|
||||
"TP": "Therapie / Procedere",
|
||||
},
|
||||
"visibility": {"DI": True, "AN": True, "BF": True, "BE": True, "TP": True},
|
||||
},
|
||||
{
|
||||
"name": "Spitalarztbrief",
|
||||
"order": ["DI", "ZF", "EP", "AE", "BF", "VL", "TA", "MA", "PE"],
|
||||
"labels": {
|
||||
"DI": "Diagnosen",
|
||||
"ZF": "Zusammenfassung",
|
||||
"EP": "Epikrise",
|
||||
"AE": "Anamnese bei Eintritt",
|
||||
"BF": "Befunde",
|
||||
"VL": "Verlauf",
|
||||
"TA": "Therapie im Aufenthalt",
|
||||
"MA": "Medikation bei Austritt",
|
||||
"PE": "Procedere / Empfehlungen",
|
||||
},
|
||||
"visibility": {k: True for k in ["DI", "ZF", "EP", "AE", "BF", "VL", "TA", "MA", "PE"]},
|
||||
},
|
||||
{
|
||||
"name": "Einfach",
|
||||
"order": ["DI", "BF", "BE", "TH"],
|
||||
"labels": {
|
||||
"DI": "Diagnose",
|
||||
"BF": "Befund",
|
||||
"BE": "Beurteilung",
|
||||
"TH": "Therapie",
|
||||
},
|
||||
"visibility": {"DI": True, "BF": True, "BE": True, "TH": True},
|
||||
},
|
||||
]
|
||||
|
||||
# ─── KOGU Gruss ───
|
||||
KOGU_GRUSS_OPTIONS = [
|
||||
"Mit freundlichen Grüssen",
|
||||
"Freundliche Grüsse",
|
||||
"Mit freundlichen Grüssen und besten Wünschen",
|
||||
"Hochachtungsvoll",
|
||||
]
|
||||
|
||||
# ─── Korrekturen Defaults ───
|
||||
_DEFAULT_KORREKTUREN = {
|
||||
"diagnosen": {
|
||||
"gesamte lassen": "Xanthelasma",
|
||||
"Gesamtlassen": "Xanthelasma",
|
||||
"Xanthel Asma": "Xanthelasma",
|
||||
"Xantel Asma": "Xanthelasma",
|
||||
"gesamte Lasma": "Xanthelasma",
|
||||
"Aktin ische": "Aktinische",
|
||||
"Kerato Akanthom": "Keratoakanthom",
|
||||
"Basalzell Karzinom": "Basalzellkarzinom",
|
||||
"Platte Nepithel": "Plattenepithel",
|
||||
},
|
||||
"medikamente": {},
|
||||
}
|
||||
|
||||
# ─── Arztbrief Vorlage Default ───
|
||||
ARZTBRIEF_VORLAGE_DEFAULT = """Reihenfolge: 1. Diagnose, 2. Anlass, 3. Befunde, 4. Empfehlung, Therapie
|
||||
|
||||
Ordne den Arztbrief zwingend nach obiger Reihenfolge. Jeder Abschnitt mit eigener Überschrift (z. B. Diagnose:, Anlass:, Befunde:, Therapie:). Fehlende Abschnitte weglassen. Keine Sternchen (*). Diagnosen mit ICD-10-Code beibehalten."""
|
||||
|
||||
# ─── KG-Kommentar-Keywords ───
|
||||
COMMENT_KEYWORDS = (
|
||||
"ärztlich zu prüfen",
|
||||
"wirkstoff nicht genannt",
|
||||
"kontrolle",
|
||||
"vorsicht",
|
||||
"warnung",
|
||||
"weiterverordnung",
|
||||
"überprüfung",
|
||||
"blutkontrolle",
|
||||
"leberwerte",
|
||||
"red flag",
|
||||
"interaktion",
|
||||
"nebenwirkung",
|
||||
"kontraindikation",
|
||||
"aufklärung",
|
||||
)
|
||||
|
||||
# ─── Cloud-Sync ───
|
||||
_SUPABASE_URL = "https://cqbqkejdlxesxjdtkpfr.supabase.co"
|
||||
_SUPABASE_ANON_KEY = "sb_publishable_r8YMw01FF-fYD9vHLnz7FQ_d8mhpVVQ"
|
||||
|
||||
# ─── Aktivierung / Ablauf ───
|
||||
APP_HARD_EXPIRY = "2027-03-31"
|
||||
APP_TRIAL_DAYS = 21
|
||||
ACTIVATION_CONFIG_FILENAME = "kg_diktat_activation.json"
|
||||
ACTIVATION_HMAC_SECRET = "AZA-Praxis-2026-xK9mQ7"
|
||||
|
||||
# ─── Token-Guthaben / Kapazität ───
|
||||
DEFAULT_TOKEN_QUOTA = 500_000
|
||||
SOFT_LOCK_THRESHOLD = 5_000
|
||||
AVG_TOKENS_PER_REPORT = 3_000
|
||||
|
||||
# ─── Launcher ───
|
||||
LAUNCHER_CONFIG_FILENAME = "kg_diktat_launcher.json"
|
||||
LAUNCHER_MODULES = ["ki", "kg", "notizen", "translator", "medwork_chat", "praxis_chat"]
|
||||
LAUNCHER_MODULE_LABELS = {
|
||||
"ki": "KI-Assistent",
|
||||
"kg": "Krankengeschichte",
|
||||
"notizen": "Audio-Notizen",
|
||||
"translator": "Übersetzer",
|
||||
"medwork_chat": "Ärzte-Netzwerk",
|
||||
"praxis_chat": "Praxis-Intern",
|
||||
}
|
||||
|
||||
# ─── Globale Liste aller offenen Fenster für Skalierung ───
|
||||
_ALL_WINDOWS = []
|
||||
Reference in New Issue
Block a user