not-a-feature/impfWidget

Fehler bei Prüfung

Opened this issue · 14 comments

Kolbi commented

Die aktuelle Version zeigt mir verfügbare Termine an, obwohl keine Verfügbar sind.

Kolbi commented

Okay Fehler gefunden:
https://005-iz.impfterminservice.de/rest/suche/termincheck?plz=[PLZ]&leistungsmerkmale=L920
{"termineVorhanden":false}
https://005-iz.impfterminservice.de/rest/suche/termincheck?plz=[PLZ]&leistungsmerkmale=L921
{"termineVorhanden":false}
https://005-iz.impfterminservice.de/rest/suche/termincheck?plz=[PLZ]&leistungsmerkmale=L922
=> {"termineVorhanden":true}

Aber die Prüfung mit dem zugeschickten Link per E-Mail ergibt keine freien Termine... hast du eine Idee warum?

Liegt daran, dass die die Impfstoffe nach Alter vergeben werden.
Im JS der Seite impfterminservice.de ist zu finden:

e.prototype.qualificationsForAge = function (e) {
        var t = null;
        return e >= 65 && (t = 'Moderna'),
        e >= 18 && e < 65 && (t = 'AstraZeneca'),
        e >= 16 && e < 18 && (t = 'BioNTech'),
        t ? this.vaccineList.filter((function (e) {
          return - 1 !== e.name.indexOf(t)
        })).map((function (e) {
          return e.qualification
        })) : null
      },

==> 16-17 BioNTech, 18-64 AstraZenenca, 65+ Moderna (Bzw Moderna und BioNTech)

Genau dafür gibt es die "Advaced Settings":

const VACCINES = [{"name": "BioNTech",    "ID": "L920", "allowed": true},
                  {"name": "Moderna",     "ID": "L921", "allowed": true},
                  {"name": "AstraZeneca", "ID": "L922", "allowed": true}]

Hier kannst du die Einzelnen Impfstoffe auf false setzten falls dieser Status nicht überprüft werden soll.

Kolbi commented

Danke für die Erklärung, ich frage mich aber wieso ich keinen Termin angezeigt bekommen habe, obwohl mein Impfstoff auf true war laut API.... muss wohl doch buggy sein deren System.

Edit: Biontech nur 16-18? Macht das Sinn oder auch Bug auf deren Seite?

Ok das ist Komisch. Die Vermittlungscodes werden aber auch sehr schnell vergeben.

Edit: Biontech nur 16-18? Macht das Sinn oder auch Bug auf deren Seite?

Ne, das ist kein Bug. Moderna ist erst ab 18 zugelassen, BioNTech ab 16 und das Leistungsmerkmal L921 (Moderna) schließt L920 (BioNTech) auch ein.

Kolbi commented

Komisch, laut API sind nämlich sehr oft Termine frei, aber via Webseite nicht... Auch wenn ich "gleichzeitig" beides ausführe...

Die Frage ist, was zeigt die API an, wenn Termine frei sind, aber von anderen bereits zeitlich reserviert sind? True oder False?

Sicher dass die selbe PLZ ausgewählt ist? Ich kann das nämlich nicht reproduzieren.

Außerdem muss zwischen freien Vermittlungscodes und freien Terminen unterschieden werden.

Kolbi commented

PLZ war korrekt ja.

Kannst du mir den Unterschied erklären?

Die URL gibt was genau aus?

Edit: Hatten nun auch schon zwei mal einen Termin für 10min "reserviert" aber beim Buchen steht dann nicht mehr zu Verfügung.

Edit2: Vermittlungscodes haben wir zwei pro Person einen.

Es gibt zwei, teilweise gekoppelte, Systeme:
Allgemein: Vermittlungscodes werden gebraucht um Termine buchen zu können.

Vermittlungscodes
Desc Hat es im lokalen Impfzentrum Vermittlungscodes frei?
Rem Loadbalancer Cookie (LT=ca. 100 req)
URL /termincheck
Req ?plz= + PLZ + &leistungsmerkmale= + LID,LID
Resp {"termineVorhanden":false}
EResp {"error":"Postleitzahl ungueltig"}
Termine
Desc Hat es im lokalen Impfzentrum Termine für den Vermittlungscode frei?
Rem Benötigt Cookies durch vorherige Request mit VCode. Antwort an Zentrum und Impfstoff des VCodes gebunden. Response reserviert 2x5 Termine
URL /terminpaare
Req ?plz= + PLZ
Resp see below
EResp 401 Unauthorized

Resp

{
    "gesuchteLeistungsmerkmale": [
        "LID",
        "LID2"
    ],
    "terminpaare": [
        [...],
        [...],
        ...
    ],
    "praxen": {
        "ID-INT": {...},
        "ID-INT": {...},
    }
}

Achtung

Da die Resquest der Terminverfügbarkeit gleich 10 Termine (für 10 Minuten) reserviert, ist es fahrlässig diese Request zu machen. Dies würde tatsächlich die Impfterminvergabe unnötig verzögern, besonders wenn ein Crawler/Widget genutzt wird der alle n Minuten diese Request macht

Selbes Verhalten hier. Widget sagt AstraZeneca und Moderna verfügbar, Website sagt: "Derzeit stehen leider keine freien Termine zur Verfügung."
Tag und Nacht.
(Vermittlungscode mit Alter 34)

Hi,

Danke für das Feedback!

ich lasse zurzeit ein System laufen welches alle paar Sekunden den Status überprüft. (Mittel der API (verschiedene loadbalancer) und mittels Virtuellem Browser)
Ich melde mich in einem / zwei Tagen wieder.

Bis jetzt scheint es so zu sein, dass die Vermittlungscodes i.d.R nur wenige Minuten online sind und die refresh Rate des Widgets zu niedrig ist. Leider kann die Refreh Rate nicht eingestellt werden.

Ist es ein Problem, einen Vermittlungscode zu bekommen? Ich dachte den bekommt jeder der sich zur Prioritätsgruppe zählt?
Aber Terminfenster habe ich bisher noch keines gesehen (seit ca. 1 Woche, mehrmals täglich).

Der unterschied zwischen Terminen und Vermittlungscodes wurde oben beschrieben. Dieses Widget ist nur für letzteres und hat nichts mit der Terminvergabe zu tun

Aber in welchem Fall werden denn Vermittlungscodes limitiert?
Das Widget sagt "Freie Termine", müsste dann aber sagen "Freie Vermittlungscodes".

Wontfix due to EOL of project