Hallo,
aber selbstverständlich. Kurze Information vorab. Aufgabe von diesen Markern ist anzuzeigen, ob der Patient die Voraussetzungen für einen Selektivvertrag erfüllt. Marker 2 überprüft, ob die Teilnahmeerklärung fehlt oder nicht. Selbstverständlich sollte die Teilnahmeerklärung erst dann überprüft werden, wenn eiine von untersuchungen möglich ist und nicht bei jedem. Die Anzahl an möglichen Untersuchungen kann variieren.
Marker zu der Untersuchung (wird positiv, wenn Einschlussdiagnose, Ausschlussdiagnose, ggf. HZV-Vertrag und alter Stimmen) trägt den Namen 'pAVK-V':
Dee = ('I73.9','I70.0','I70.1','I70.8','I70.9')
Deb = ('I25.0','I25.1','I25.3','I25.4','I25.6','I25.8','I25.9','E10','E11','E12','E13','E14','I10')
Da = ('I70.2',)
markerr = ('Raucher',)
markerh = ('HZV-TK','HZV-GWQ')
def kk():
hkk = ['101386805','101586807','101786809','103086806','103170002','103486800','104086808','105186802',
'106286805','106386806','106486807','106586808','106786800','107386808','107886803','108086807',
'108386800','109386802','109586804','109786806']
ikk = ['107202793','107902723']
big = ['103501080']
hek = ['101570104','101571003']
kkh = ['101775500','102171012']
tk = ['101575519','101577500']
alle_kassen = set(hkk + ikk + big + hek + kkh + tk)
return norm(gk_ik) in alle_kassen
def norm(s):
return '' if s is None else str(s).upper().strip()
def diagn(DS):
prefixes = tuple(DS) # akzeptiert list/set/tuple
for lst in (kvdiagnosen, hzvdiagnosen, karteidiagnosen):
for d in (lst or ()):
if not isinstance(d, dict):
continue
if norm(d.get('typ')) != 'G':
continue
code = norm(d.get('code'))
if code.startswith(prefixes):
return True
return False
def marker(Liste):
MARKERS = frozenset(norm(m) for m in (markerliste or []))
GESUCHT = frozenset(norm(x) for x in Liste)
return not GESUCHT.isdisjoint(MARKERS)
# Wenn HZV-Marker (TK/GWQ) vorhanden, andere De/Da-Logik aktivieren
if marker(markerh):
Dee = ('I10','I11','I12','I13','E10','E11','E12','E13','E14')
Da = ('I70',) # alle I70.* ausschließen
age = jahre(p_geburt)
returnvalue = (
kk()
and (not diagn(Da))
and (
(diagn(Dee) and (not marker(markerh)))
or (diagn(Deb) and age >= 50 and (not marker(markerh)))
or (marker(markerr) and age >= 60 and (not marker(markerh)))
or (diagn(Dee) and marker(markerh)) # redundant, kann weg
)
)
Marker zur Teilnahmeerklärung (wird positiv, wenn fehlt) + ein von Untersuchungsmarkern gesetzt (wie von obern 'pAVK-V':
typk = 'Teilnahmeerklärung-VorsorgePlus'
markern = ('Demenzscreening-V','Arthrose-V','Eisenmangel-V','Resp.Insuff-V','pAVK-V','COPD_bei_Asthma-V')
def norm(s):
return '' if s is None else str(s).strip().upper()
def vrtr(S):
for karteieintrag in (karteieintraege or []):
if not isinstance(karteieintrag, dict):
continue
typ = norm(karteieintrag.get('typ'))
if norm(S) in typ:
return False
return True
def mrkr(L):
markers = {norm(m) for m in (markerliste or [])}
lookup = {norm(x) for x in (L or [])}
return bool(markers & lookup)
returnvalue = vrtr(typk) and mrkr(markern)
Das sind die Coden vom Vertrag VorsorgePlus in KVWL. Wenn die Untersuchungen möglich und Teilnahme noch nicht unterschrieben ist wird nur der Marker angezeigt, aber in dem Früherkennungsradar wird nur Teilnahmeerklärung sichtbar. Nur nach dem Anlegen (und Unterschreiben) werden die Untersuchungne freigegeben und Abrechnung und Dokumentation durch Früherkennungsradar möglich wird.
Aktuell habe ich Markeraktualisierung gestartet. Aber, das ist irgendwie sinnlos in meinen Augen...es sollte doch schnell funktionieren und vor allem Automatisch.
Mit freundlicen Grüßen
Ravil