Optinomic / apps

Optinomic applications
1 stars 2 forks source link

HoNOS-Schnittstelle #169

Closed schoenenb closed 6 years ago

schoenenb commented 6 years ago

Von den 77 Austritten 2018 fehlen bei folgenden 6 Fällen die HoNOS-Angaben im PABS. Die Antworten sind in Optinomic vorhanden und ich habe soweit keine Auffälligkeiten feststellen können. Da ich mich mit der Schnittstelle nicht auskenne, gebe ich die Frage drum gleich weiter: @ottigerb könntest du dem bitte nachgehen?

http://optinomic.cust.local/client.new/#/patient/2862/stay/1800/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/1484/stay/1822/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3091/stay/1812/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3555/stay/1799/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3648/stay/5523/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3612/stay/1835/app/ch.suedhang.apps.honos.production/template/scores_table

ottigerb commented 6 years ago

Tom hat was gezaubert:

The actual problem was that IO exceptions thrown from a component would make the scheduler crash. This is fixed.

Ich werde nun die Schnittstelle nochmals zu einem Komplettexport forcieren.

schoenenb commented 6 years ago

Merci :) Kannst du Bescheid geben, wenn der Export durch ist, dass ich das an WS weiterleiten kann?

ottigerb commented 6 years ago

...der Gesamtexport 2018 liegt im Schnittstellenverzeichnis \\Wdp3270\optinomic$\honos_interface zum Import durch PABS bereit.

=> Ich beobachte nun dieses File: Bei Erfolg wandert dieses in Archive (close issue) ansonsten in Failed.

ottigerb commented 6 years ago

Hmm... => Failed => E-Mail:


Lieber Herr Graf, Herr Vögeli

Gemäss unserer Besprechung haben wir unsere Schnittstelle auf INCREMENT (Neue Einträge / Veränderungen) umgestellt. => Dies scheint auch gut zu funktionieren, was ich aus den Files \Wdp3270\optinomic$\honos_interface\Archive lesen kann.

Klinik Südhang hatte mir nun berichtet, dass einige 2018’er Messungen fehlen würden:

=> Darf ich Sie bitten, das folgende 2018’ er File zum „Import“ zu überreden. Danke!

Ich kann darin keine Fehler erkennen. Allenfalls CR/LF Thematik, da dieses File „manuell“ angestossen wurde?

Für Fragen sehe ich Ihnen gerne zur Verfügung.

Mit freundlichen Grüssen Beat Ottiger


ottigerb commented 6 years ago

Finally fixed!

Zudem wird ab sofort sichergestellt, dass es keine "leeren" datum_erhebung_honos mehr haben kann wenn das Austrittsdatum unbekannt ist. https://github.com/Optinomic/apps/commit/37313bcf2803605aad5a6017301bc4eba2b31ca5

schoenenb commented 6 years ago

Bei folgendem Fall wurden keine HoNOS-Daten ins Pabs übertragen (Austritt am 6.3.18): http://optinomic.cust.local/client.new/#/patient/1068/stay/1781/app/ch.suedhang.apps.honos.production/template/scores_table Findest du heraus, ob das ein anderer Sonderfall ist?

ottigerb commented 6 years ago

...ich habe die HoNOS von diesem PAT/FALL nochmals angestossen und hat perfekt funktioniert. Sollte nun somit eingelesen sein.

...was hier der Sonderfall ist - gute Frage: Was ich mir vorstelle könnte ist:

=> Beobachten wir mal weiter. Alle anderen wurden korrekt eingelesen? Or?

schoenenb commented 6 years ago

Hmm, sollte eigentlich nicht sein, da es ein regulärer Austritt war. Alle anderen wurden korrekt eingelesen (oder Wale hat es nicht bemerkt ;)). Habe jetzt aber gerade gesehen, dass bei einem anderen Austritt vom 6.3. der Austritts-HoNOS im Pabs noch fehlt, der Eintritt ist jedoch drin: http://optinomic.cust.local/client.new/#/patient/3660/stay/5537/app/ch.suedhang.apps.honos.production/template/scores_table

Bei beiden diesen Fällen ist im Psychologie-Doc der Austritt noch nicht abgeschlossen - kann es etwas damit zu tun haben? Oder liefert die Schnittstelle fortlaufend Daten ans Pabs?

ottigerb commented 6 years ago

Fehler erkannt!

Bsp.: http://optinomic.cust.local/client.new/#/patient/1068/stay/1781/app/ch.suedhang.apps.honos.production/template/scores_table

Hier ist das effektive Erfassungsdatum 2018-03-09 vs. dem angegebenen Datum 2018-03-06 => Exporte müssen auf das "Filled-Date" prüfen um die "heutigen" Erfassungen mitzubekommen.

Werde dies heute am späteren Nachmittag angehen. Fix des Exports und nochmaliger Komplettexport 2018 - damit allfällige "Missings" drin sind.

ottigerb commented 6 years ago

Fixed by https://github.com/Optinomic/apps/commit/52255a8167771d76c4dd0fafce153eaf854d99de => Fehler war die Rückdatierung.

Gesamtexport: Erfolgreich eingelesen => Sollten alle Daten drin sein!

schoenenb commented 6 years ago

Hmm, d.h. auch bei zukünftigen Rückdatierungen funktioniert die Schnittstellenübertragung, richtig? Andernfalls müssten wir die Therapeuten informieren, dass sie NICHT mehr rückdatieren sollen. Das war drum die bisherige Anleitung, damit das Datum dann stimmt, auch wenn sie's später ausfüllen oder es vom QM später eingegeben wird...

ottigerb commented 6 years ago

...ab sofort - alles GUT! :-)

schoenenb commented 6 years ago

Eine (kleine) Bitte: Könntest du bei folgenden 5 Personen den HoNOS nochmals anstossen?

http://optinomic.cust.local/client.new/#/patient/3115/stay/5611/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3594/stay/5502/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3693/stay/5612/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/3661/stay/5539/app/ch.suedhang.apps.honos.production/template/scores_table http://optinomic.cust.local/client.new/#/patient/1844/stay/5566/app/ch.suedhang.apps.honos.production/template/scores_table

Ich bin die Daten von Januar bis März mal durchgegangen und bei diesen Fällen musste ich eine bis 3 Variablen ändern und dachte, die werden einfach wieder überschrieben. Oder würde es funktionieren, wenn ich sie aus dem pabs rauslösche, dass es dann die neuen Zahlen reinspült, wenn im pabs noch nichts drin ist?

ottigerb commented 6 years ago

Folgendes Procedere habe ich soeben ausgeführt:

Download File

http://optinomic.cust.local/api/#/admin/tools/sql

Einstellungen: CSV, File-Download, No-Header, Comma(,)


SELECT

-- START:  Optinoimc Default |  Needed for Export-Toolbox
  survey_response_view.patient_id as optinomic_patient_id,
  survey_response_view.stay_id as optinomic_stay_id,
  survey_response_view.event_id as optinomic_event_id,
  survey_response_view.survey_response_id as optinomic_survey_response_id,
  survey_response_view.filled as optinomic_survey_filled,
  ((cast(response AS json))->>'id') as optinomic_limesurvey_id,
  -- END:  Optinoimc Default |  Needed for Export-Toolbox

  patient.cis_pid as cis_pid,
  CONCAT(patient.cis_pid, '00', RIGHT((stay.cis_fid/100)::text,2)) as medstatfid,
  stay.cis_fid/100 as fid,
  ((cast(response AS json))->>'FID') as fid_survey,

  'PH' as Rekordart,
  71286515 as betriebsnummer_bur,

  CASE WHEN ((cast(response AS json))->>'q401V04')~E'^\\d+$' THEN ((cast(response AS json))->>'q401V04')::integer ELSE 3 END as zeitpunkt_honos,
  ((cast(response AS json))->>'q401V05') as dropoutcode_honos,
  ((cast(response AS json))->>'q401V06') as spezifikation_dropout_honos_andere,

  CASE (CASE WHEN ((cast(response AS json))->>'q401V04')~E'^\\d+$' THEN ((cast(response AS json))->>'q401V04')::integer ELSE 3 END)
  WHEN 1 THEN to_char(stay.start, 'YYYYMMDD')
  WHEN 2 THEN 
    CASE (CASE WHEN (to_char(stay.stop, 'YYYYMMDD') IS NULL OR to_char(stay.stop, 'YYYYMMDD') = '') THEN 1 ELSE 2 END)
    WHEN 1 THEN TO_CHAR(TO_DATE(((cast(response AS json))->>'q402V00'), 'YYYY-MM-DD'), 'YYYYMMDD')
    WHEN 2 THEN to_char(stay.stop, 'YYYYMMDD')
    END
  ELSE TO_CHAR(TO_DATE(((cast(response AS json))->>'q402V00'), 'YYYY-MM-DD'), 'YYYYMMDD')
  END as datum_erhebung_honos,

  ((cast(response AS json))->>'H1[402V01]') as honos_h1,
  ((cast(response AS json))->>'H1[402V02]') as honos_h2,
  ((cast(response AS json))->>'H1[402V03]') as honos_h3,
  ((cast(response AS json))->>'H1[402V04]') as honos_h4,
  ((cast(response AS json))->>'H1[402V05]') as honos_h5,
  ((cast(response AS json))->>'H1[402V06]') as honos_h6,
  ((cast(response AS json))->>'H1[402V07]') as honos_h7,
  ((cast(response AS json))->>'H1[402V08]') as honos_h8,
  ((cast(response AS json))->>'q402V09') as honos_h8a,
  ((cast(response AS json))->>'q402V10') as honos_h8b,
  ((cast(response AS json))->>'H2[402V11]') as honos_h9,
  ((cast(response AS json))->>'H2[402V12]') as honos_h10,
  ((cast(response AS json))->>'H2[402V13]') as honos_h11,
  ((cast(response AS json))->>'H2[402V14]') as honos_h12
FROM "survey_response_view"
LEFT JOIN patient ON(survey_response_view.patient_id = patient.id)
LEFT JOIN stay ON(survey_response_view.stay_id = stay.id)
WHERE module = 'ch.suedhang.apps.honos.production'
AND ((cast(response AS json))->>'q401V04') != ''
AND stay.cis_fid is not null
AND survey_response_view.patient_id != '1169'
AND survey_response_view.patient_id != '387'
AND survey_response_view.patient_id != '1'
ORDER BY  patient.cis_pid, stay.cis_fid;

File Renaming

Example: 201803290816.csv => 201803290816_full
Extension .csv entfernen. Die Erweiterung _full dient lediglich als Zeichen, dass dieses File manuell angestossen wurde.

File in Schnittstellenordner verschieben

Copy File to \\Wdp3270\optinomic$\honos_interface. (Allenfalls Berechtigung bei Thömu anfragen für dieses Share.) Einige Minuten abwarten.

Erfolg kontrollieren

Bei Erfolg wird das File in \\Wdp3270\optinomic$\honos_interface\Archive verschoben. Allenfalls auch direkt in PABS kontrollieren.

schoenenb commented 6 years ago

Danke tuusig! Ganz so schnell wär's nicht nötig gewesen, aber bei Prio2 habe ich immer das Gefühl, dass es liegen bleibt... ;)

schoenenb commented 6 years ago

Bevor ich was kaputte: Die Schnittstelle hat am 14.5. letztmals HoNOS-Daten geliefert. Kann ich das nach deiner Anleitung von oben manuell anstossen, oder läuft da etwas nicht mehr?

ottigerb commented 6 years ago

...das oben beschriebene Szenario kann auf jeden Fall ausgelöst werden. Vielleicht sowieso gut vor der Server-Umstellerei. :-)

schoenenb commented 6 years ago

Voilà, wieder mal zu früh gestürmt: die seither herausgezogenen HoNOS-Daten sind im "failed" Ordner gelandet. Abgesehen von den Zahlen sehe ich aber keine Unterschiede zu den "archive"-Files. Liegt das Problem bei Pabs?

ottigerb commented 6 years ago

...hmm - alle im "failed"? Strange. Versuche mal das "_full" Szenario von Oben. Falls dies ebenfalls "failed" - dann muss PABS kontaktiert werden.

schoenenb commented 6 years ago

Kann ich mich da selber melden, oder brauchen die mehr Infos von der Schnittstelle?

ottigerb commented 6 years ago

Du kannst Dich selber melden. Joel.Voegeli@agb70.ch war nebst Daniel.Graf@agb70.ch daran beteiligt. Einfach die "Files" mitsenden mit dem Hinweis, dass diese in "Failed" landen. Was wie wo - müssten sie wissen.

Fehlen allenfalls "Datum" Angaben in den Files? War mal ein Thema.

schoenenb commented 6 years ago

Wie wäre die neue Adresse zur Pabs-Schnittstelle? Von AGB70 habe ich bisher noch keine Antwort erhalten.

ottigerb commented 6 years ago

\srv-appl-02\optinomic$

=> Ach ja... wie gewohnt kann die Reaktion dauern. Ist denn PABS schon auf dem neuen System?

schoenenb commented 6 years ago

Seit heute Mittag