Guten Tag,

folgendes Skript sollte eigentlich einen automatischen Marker bei Vorliegen der DDI Z92.1 Antikoagulantientherapie gesetzt werden. Leider macht das Skript das nicht!?

diagnosen = kvdiagnosen + hzvdiagnosen + karteidiagnosen
icdCode = 'Z92.1'

for diag in diagnosen:
  if diag['code'] == icdCode:
    returnvalue = 1

Woran kann es liegen?

Vielen Dank für die Lösung, Stefan Zutz
Gefragt in Frage von (970 Punkte)
0 Punkte

5 Antworten

Sie müssen de ICD Code auch in der 5. Zeile einsetzen
Beantwortet von (9.9k Punkte)
0 Punkte
jetzt habe ich das so konfiguriert, klappt aber auch nicht!?

diagnosen = kvdiagnosen + hzvdiagnosen + karteidiagnosen
icdCode = 'Z92.1'

for diag in diagnosen:
  if diag['code'] == icdCode: 'Z92.1'
    returnvalue = 1

Muss ich die ' ' weglassen? Wann müsste denn der Marker gesetzt werden? Beim Öffnen der Karteikarte?
if diag['code'] ==  'Z92.1'
jetzt so:

diagnosen = kvdiagnosen + hzvdiagnosen + karteidiagnosen
icdCode = 'Z92.1'

for diag in diagnosen:
  if diag['code'] == 'Z92.1'
    returnvalue = 1

klappt aber leider immer noch nicht!?
wenn man bei der if-Abfrage die Ziffer direkt einsetzt, warum muß man dann oben den icdCode definieren?
ich weiß das nicht, bin noch Anfänger. Wie müsste denn das korrekte Skript lauten?
Das war eine echte Frage, ich kann diese Skript-Sprache leider nicht.

Wie schon von Herrn Wüllner geschrieben sollte es eigentlich klappen, wenn Sie Returnvalue = 0 voranstellen.

 

returnvalue = 0

diagnosen = kvdiagnosen + hzvdiagnosen + karteidiagnosen

icdCode = 'Z92.1'

for diag in diagnosen:

if diag['code'] == icdCode:

returnvalue = 1

 

Aber funktioniert leider auch nicht. Ich finde die Syntax schwer verständlich und  würde das über Aktionsketten lösen. Das bietet daneben auch Vorteile. 

Mein Vorschlag wäre, beim Setzen des Kontrollkästchens automatisch die Diagnose zu vergeben - das geht über Aktionskettenauslöser - mit der Bedingung Marker entfernen. Gleichzeitig kann man auch gleich andere Aktionen gleichzeitig damit auslösen, wenn man z.B. ein Merkblatt mitgeben möchte etc.

Hier am Beispiel für das Screening auf ein Aortenaneurysma.

 Alternativ, sobald die Diagnose vergeben wird, das Häkchen setzen - das bewerkstelligt man über Aktionskettenbedingungen. 

Das ist unser Marker:

"returnvalue = 0" fehlt bei Ihnen als Abfrage ob der Marker bereits gesetzt wurde

 

diagnosen = karteidiagnosen
icdCode = 'Z92.1'
returnvalue = 0

for diag in diagnosen:
 if diag['code'] == icdCode:
  returnvalue = 1 

 

Siehe auch das erklärte Beispielskript im Handbuch:

https://hilfe.tomedo.de/handbuch/patientenmarker/#beispielskripte

Beantwortet von (1.4k Punkte)
0 Punkte

Guten Tag Herr Zutz,

probieren Sie doch mal den modularen Modus in der Markerverwaltung aus. Da können Sie die Markerbedingungen ganz einfach im Baukastenprinzip zusammen klicken (https://hilfe.tomedo.de/handbuch/patientenmarker/ 4.5 Der modulare Modus).

In Ihrem Fall brauchen Sie drei Elemente: KV-Diagnose, HZV-Diagnose und Karteidiagnose. Als Datentyp wählen Sie bei allen dreien Code, als Relation ist und als Wert Z92.1. In der logischen Verknüpfung muss dann A+B+C stehen.

Viele Grüße

Katharina Laaß

Beantwortet von (1k Punkte)
0 Punkte

Also "returnvalue = 0" war immer dabei. Hatte ich nur nicht kopiert.

Leider funktioniert der automatische Marker auch nicht, nachdem ich ihn modular gebaut habe. Und ich würde gerne den automatischen Marker nutzen. Wäre doch eigentlich das Einfachste!? Kann es sein, dass eine Aktionskette das Prüfen auf Setzen des Markers verhindert?

In der logischen Verknüpfung muss dann A+B+C stehen.

Hallo Herr Zutz

Auch bei mir schlägt es fehl, auch wenn man nur die ScheinDiagnosen nimmt und sich die Synatx mit dem Modularen Modus erstellt.

Eigentlich ist der Marker überflüssig, wenn Sie die Antikoagulanzientherapie bereits als Diagnose vergeben haben, oder wollen Sie über den Marker sonst irgendetwas steuern?

Sie könnten aber durch Setzen des Markers gleich diemDiagnose vergeben, das ginge dann über einen Aktiosnkettenauslöser, wie oben beschrieben und hätte die Möglichkeit gleich nebenbei weitere Aktionen auszulösen.
Hallo, lieber Kollege, manchmal treiben einen diese eigentlich einfachen Dinge, die dann entgegen aller Logik nicht funktionieren zur Verzweiflung. Ich habe einen automatischen Marker definiert, der funktioniert und Ihnen vielleicht helfen kann. Von der Medikamentenseite aufgezogen funktioniert bei mir folgendes:

returnvalue = 0
for medikament in medikamentenplan:
  #Phenprocomon Marcumar
  if 'B01AA04' in medikament['atc']:
    returnvalue = 1
  #Eliquis
  if 'B01AF02' in medikament['atc']:
    returnvalue = 1
  #Rivaroxaban/xarelto
  if 'B01AF01' in medikament['atc']:
    returnvalue = 1

Das Schöne ist: simpel aufgebaut und es wird geschaut, wer tatsächlich ein Antikoagulanz bekommt. Das hat man ja nicht immer im Kopf oder in der Diagnose belegt. Vielleicht hilft es weiter.

Gruß Ihr Ralf Kampmann
Beantwortet von (5k Punkte)
+1 Punkt

Hallo Herr Zutz ich hab ein wenig gebastelt und bin zu einem ganz einfachen Ergebnis gekommen:

1. Definition eines automatischen Markers der per atc code erkennt ob ein Anitkoagulanz jeglicher Kolleur im Mediplan steht , oder verordnet wurde .

Damit lassen sich dann alle ihre Wünsch erfüllen hoffe ich:

Beantwortet von (5k Punkte)
0 Punkte

https://forum.tomedo.de/?qa=blob&qa_blobid=4402587830572807599

Hier die ATC Codes der ntithrombotischen Mittel

16,087 Beiträge
23,860 Antworten
41,988 Kommentare
11,689 Nutzer