mirror of
https://github.com/complexcaresolutions/dak.c2s.git
synced 2026-03-17 19:33:41 +00:00
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""Mapping of CRM 'Modul' strings to internal fallgruppe codes."""
|
|
|
|
MODUL_TO_FALLGRUPPE: dict[str, str] = {
|
|
"Zweitmeinung Onkologie": "onko",
|
|
"Zweitmeinung Kardiologie": "kardio",
|
|
"Zweitmeinung Intensiv": "intensiv",
|
|
"Zweitmeinung Gallenblase": "galle",
|
|
"Zweitmeinung Schilddrüse": "sd",
|
|
}
|
|
|
|
VALID_FALLGRUPPEN = {"onko", "kardio", "intensiv", "galle", "sd"}
|
|
|
|
|
|
def map_modul_to_fallgruppe(modul: str) -> str:
|
|
"""Map CRM Modul string to fallgruppe code.
|
|
|
|
Handles exact matches and 'Begutachtung *' patterns.
|
|
Raises ValueError for unmappable modules.
|
|
"""
|
|
modul = modul.strip()
|
|
if modul in MODUL_TO_FALLGRUPPE:
|
|
return MODUL_TO_FALLGRUPPE[modul]
|
|
|
|
modul_lower = modul.lower()
|
|
# Handle "Begutachtung" variants — derive from keywords
|
|
if "begutachtung" in modul_lower:
|
|
keyword_map = [
|
|
("onko", "onko"),
|
|
("krebs", "onko"),
|
|
("tumor", "onko"),
|
|
("kardio", "kardio"),
|
|
("herz", "kardio"),
|
|
("intensiv", "intensiv"),
|
|
("galle", "galle"),
|
|
("schilddrüse", "sd"),
|
|
("schilddruese", "sd"),
|
|
]
|
|
for keyword, gruppe in keyword_map:
|
|
if keyword in modul_lower:
|
|
return gruppe
|
|
|
|
raise ValueError(f"Cannot map module to fallgruppe: '{modul}'")
|