E-Rezept ist verpflichtend seit dem 01.01.2024
Alle Hinweise und Informationen zur Nutzung finden Sie unter folgendem Link.

Liebe Kollegen, liebes Tomedo-Team,

ich suche eine Variable, um in einem Python-Skript eine Ziffer von Anfang des Quartals bis gestern suchen zu lassen (2. Chronikerziffer in Abhängigkeit der gesetzten 1. Chronikerziffer). Hierbei lasse ich zunächst nach der 1. Chronikerziffer (03220) im akutellen Quartal suchen:

array = select(kvleistungen,startQuartal=heuteQuartal-0,25,endQuartal=heuteQuartal)

anschließend, ob bereits die 2. Chronikerziffer (03221) von Anfang des Quartals bis gestern abgelegt wurde

arraybisgestern = select(kvleistungen,startQuartal=heuteQuartal-0,25,today-1)

Trotz langen Recherchen im Tomedo-Handbuch, im Markermodul und Internet, habe ich leider bislang die funktionierende Variable nicht  gefunden.

Weiß jemand Rat?

Gefragt von (1.2k Punkte)
0 Punkte
könnten Sie bitte den gesamten Code posten?

Sehr gerne:

#Parameter
referenz = '03320'
pruefziffer = '03221'

#Code
returnvalue = 0
gesetzt = False
ausschluss = False
array = select(kvleistungen,startQuartal=heuteQuartal-0,25,endQuartal=heuteQuartal)
arraybisgestern = select(kvleistungen,startQuartal=heuteQuartal-0,25,today-1)

#Wurde die 1. Chronikerziffer angesetzt?
for leistung in array:
  if leistung['code'] == referenz:
    gesetzt = True

#Wurde die 2. Chronikerziffer bereits angesetzt?
if gesetzt:
  for leistung in arraybisgestern:
    if leistung['code'] == pruefziffer
        ausschluss = True

if gesetzt and not ausschluss:
  returnvalue = 1
else:
  returnvalue = 0

1 Antwort

Sehr geehrter Herr Jörg,

die Variable today ist in Ihrem Code nicht definiert. Mit den Argumenten startQuartal und endQuartal können Sie mit der select-Funktion Listen quartalsweise beschneiden. 

Eine datumsabhängige Beschneidung ist jedoch auch möglich, dafür benötigen sie die Argumente startDatum und endDatum. Beachten Sie bitte, dass Sie die beiden Gruppen ([startQuartal, endQuartal] und [startDatum, endDatum]) nicht mischen können.

In Ihrem Fall lohnt es sich mit einzelnen Daten anstelle von Quartalen zu arbeiten. Dafür benötigen wir das heutige Datum als Datumsobjekt und können daraus gestern und den quartalsbeginn bestimmen, beides müssen wir für die select-Funktion wieder in Strings umwandeln.
In Code könnte dies so aussehen:

today = datetime.datetime.strptime(heuteDatum,'%d.%m.%Y')
gestern = (today + datetime.timedelta(days=-1)).strftime('%d.%m.%Y')
quartalsbeginn = datetime.date(today.year, (today.month - 1) // 3 * 3 + 1, 1).strftime('%d.%m.%Y')

Dann können Sie die select-Funktion mit

select(*, startDatum=quartalsbeginn, endDatum=gestern)

aufrufen.

Beantwortet von (3.9k Punkte)
0 Punkte
15,800 Beiträge
23,502 Antworten
41,197 Kommentare
10,982 Nutzer