Optinomic / apps

Optinomic applications
1 stars 2 forks source link

Optionmic-App :: Abbrecher | Abbrecherprotokoll #103

Open ottigerb opened 7 years ago

ottigerb commented 7 years ago

Ich eröffne hierfür ein eigenes Issue - um den Stand nicht zu verlieren.

Mailauszug | Beantwortung

Dazu haben sie zwei Anliegen. Zum einen sollen zu jedem Abbruch Informationen gesammelt werden, quasi ein Abbruchprotokoll, welches der Therapeut bei einem Abbruch ausfüllen muss. Ich habe dafür Optinomic vorgeschlagen, obwohl es eher auf Polypointebene gewünscht wurde.

Abbruchprotokoll

Aktuell werden das Abbruchprotokoll in den 0x-Dokumenten unter Verlauf erfasst. Vgl.: bildschirmfoto 2017-03-17 um 15 44 28

Diese Lösung ist "hart verdrahtet" => Änderungen daran sind mit viel Aufwand verbunden! Zudem wüsste ich nicht wie wir einen "schicken Counter" darstellen könnten - irgendwie mit Druckvorlagen und diese im Dokument darstellen. Viel Aufwand! Da hat Optionomic sicherlich klare Vorteile.

Kantonsstatistik

Zudem haben wir noch die Kantonsstatistik, welche im Tab Austitt erfasst wird: bildschirmfoto 2017-03-17 um 14 42 13

Denn auf diesem Dokument sollen Informationen drauf sein, die wir zum einen schon im Polypoint erfassen (z.B. Diagnosen und Abbruchkategorie die auch zur Med.Stat gehört, ob AG oder nicht, Aufenthaltsdauer bis zum Abbruch) und zum anderen Dinge die wir schon im Optinomic erfassen, wie z.B. konsumierte Substanzen und Substitution.

Ja, es gilt wohl Daten aus verschiedenen Systemen zu sammeln.

Datenzugriff

Vielleicht könntest Du mir erstmal sagen, ob und an welche Rückfalldaten Du herankommst. Bzgl. der Rückfälle wäre eigentlich der Wunsch, das man irgendwie am Ende des Falls und während des Verlaufs irgendwo sehen könnte, wie der Stand gerade ist, also eine Art Zähler und am liebsten hätten sie ihn in Polypoint.

Abbruchprotokoll

Die Daten können mittels grundsätzlich mit folgendem Befehl eingesehen, exportiert werden:

SELECT ELDAT_CUSTTIME_1173.EINTRAG_KONSUM_BESPRECHUNG, ELDAT_CUSTTIME_1173.VERSION_ID, ELDAT_CUSTTIME_1173.DOKUMENT_ID, ELDAT_CUSTTIME_1173.DETAIL_ID, ELDAT_CUSTTIME_1173.GUELTIG_AB, ELDAT_CUSTTIME_1173.STRUKTUR_ELEMENT_ID, ELDAT_CUSTTIME_1173.KATALOGFELD2, ELDAT_CUSTTIME_1173.EINGETRAGEN_DURCH, ELDAT_CUSTTIME_1173.EINTRAG, ELDAT_CUSTTIME_1173.EINTRAG_MEDIUM, ELDAT_CUSTTIME_1173.SUCHTMITTEL_FUND, ELDAT_CUSTTIME_1173.RADIO_KONSUMORT, ELDAT_CUSTTIME_1173.EINTRAG_KONSUM_BESPRECHUNG, ELDAT_CUSTTIME_1173.COMBO_KONSUM_MELDUNG, ELDAT_CUSTTIME_1173.GESAMT_SUMME_TEST, ELDAT_CUSTTIME_1173.BDI_II_TESTAUSWERTUNG, ELDAT_CUSTTIME_1173.KS_NAME, ELDAT_CUSTTIME_1173.KS_ORGEINHEIT, ELDAT_CUSTTIME_1173.KS_SUCHTMITTELFREI_SEIT, ELDAT_CUSTTIME_1173.KS_MUTTERSPRACHE, ELDAT_CUSTTIME_1173.KS_BERUF, ELDAT_CUSTTIME_1173.KS_DB_MUTTERSPRACHE, ELDAT_CUSTTIME_1173.KS_DB_BERUF, ELDAT_CUSTTIME_1173.KS_EINTRITT, ELDAT_CUSTTIME_1173.KS_ERGAENZUNG, ELDAT_CUSTTIME_1173.KS_TESTLEITUNG, ELDAT_CUSTTIME_1173.KS_DB_TESTLEITUNG, ELDAT_CUSTTIME_1173.KS_UEBERWEISUNGSGRUND, ELDAT_CUSTTIME_1173.KS_KLINISCHE_BEOBACHTUNGEN, ELDAT_CUSTTIME_1173.KS_SUBJ_KOGN_SCHWIERIGKEIT, ELDAT_CUSTTIME_1173.KS_SCHLUSSFOLGERUNG, ELDAT_CUSTTIME_1173.KS_KONZEPTWISSEN_1, ELDAT_CUSTTIME_1173.KS_LERNEN_WORTLISTE, ELDAT_CUSTTIME_1173.KS_LERNEN_FIGUREN, ELDAT_CUSTTIME_1173.KS_LERNEN_TEXTGED, ELDAT_CUSTTIME_1173.KS_REKOG_WORTLISTE, ELDAT_CUSTTIME_1173.KS_REKOG_FIGUREN, ELDAT_CUSTTIME_1173.KS_REKOG_TEXTGED, ELDAT_CUSTTIME_1173.KS_VERARBEITUNGSGESCHW, ELDAT_CUSTTIME_1173.KS_EXEKUTIV_1, ELDAT_CUSTTIME_1173.KS_EXEKUTIV_2, ELDAT_CUSTTIME_1173.KS_EXEKUTIV_3, ELDAT_CUSTTIME_1173.KS_EXEKUTIV_4, ELDAT_CUSTTIME_1173.PAT_INFO_1, ELDAT_CUSTTIME_1173.KS_SMK_SEIT, ELDAT_CUSTTIME_1173.MASSNAHME_VERWARNUNGSART, ELDAT_CUSTTIME_1173.MASSNAHME_GRUND, ELDAT_CUSTTIME_1173.MASSNAHME_GUELTIGKEIT, ELDAT_CUSTTIME_1173.MASSNAHME_GRUND_ANDERER, ELDAT_CUSTTIME_1173.MASSNAHME_GRUND_TXT, ELDAT_CUSTTIME_1173.MASSNAHME_WORTLAUT_TXT, ELDAT_CUSTTIME_1173.RADIO_KONSUM_DEKLARATION, ELDAT_CUSTTIME_1173.KONSUM_DEKLARATION_WEITERES, ELDAT_CUSTTIME_1173.CHECKLIST_KONTROLLART, ELDAT_CUSTTIME_1173.DATUM_KONTROLLE, ELDAT_CUSTTIME_1173.KONTROLLE_GRUND_ANDERE, ELDAT_CUSTTIME_1173.KONTROLLE_GRUND_VERDACHT, ELDAT_CUSTTIME_1173.KONTROLLE_GRUND, ELDAT_CUSTTIME_1173.EINTRAG_KONSUM_KONSEQUENZ, ELDAT_CUSTTIME_1173.KONTROLLE_ALT, ELDAT_CUSTTIME_1173.SUCHTMITTEL_FUND_WEITERES, ELDAT_CUSTTIME_1173.PAT_NAME, ELDAT_CUSTTIME_1173.PAT_TEL, ELDAT_CUSTTIME_1173.VISUM_URLAUB_BEWILLIGUNG, ELDAT_CUSTTIME_1173.DATUM_URLAUB_BEWILLIGUNG, ELDAT_CUSTTIME_1173.URLAUB_DATUM_VON, ELDAT_CUSTTIME_1173.URLAUB_DATUM_BIS, ELDAT_CUSTTIME_1173.URLAUB_ZEIT_BIS, ELDAT_CUSTTIME_1173.URLAUB_ZEIT_VON, ELDAT_CUSTTIME_1173.PAT_TELEFON, ELDAT_CUSTTIME_1173.URLAUB_GRUND, ELDAT_CUSTTIME_1173.URLAUB_STATUS, ELDAT_CUSTTIME_1173.DATUM_URLAUB_ABMELDUNG, ELDAT_CUSTTIME_1173.DATUM_URLAUB_RUECKMELDUNG, ELDAT_CUSTTIME_1173.ZEIT_URLAUB_ABMELDUNG, ELDAT_CUSTTIME_1173.ZEIT_URLAUB_RUECKMELDUNG, ELDAT_CUSTTIME_1173.BEMERKUNG_RUECKMELDUNG, ELDAT_CUSTTIME_1173.VISUM_S_URLAUB_RUECKMELDUNG, ELDAT_CUSTTIME_1173.VISUM_S_URLAUB_ABMELDUNG, ELDAT_CUSTTIME_1173.URLAUB_HINWEIS, ELDAT_CUSTTIME_1173.PICTURE_MAIL, ELDAT_CUSTTIME_1173.KATALOGFELD_EINGETRAGEN_DURCH, ELDAT_CUSTTIME_1173.ERSTELLER_KUERZEL, ELDAT_CUSTTIME_1173.ERSTELLER_TEL, ELDAT_CUSTTIME_1173.BILD_MAIL, ELDAT_CUSTTIME_1173.FRAGEN_AN, ELDAT_CUSTTIME_1173.FRAGEN_VON, ELDAT_CUSTTIME_1173.FRAGEN_FRAGE, ELDAT_CUSTTIME_1173.FRAGEN_STATUS, ELDAT_CUSTTIME_1173.FRAGEN_ANTWORT, ELDAT_CUSTTIME_1173.PICTURE1, ELDAT_CUSTTIME_1173.RAPPORT_UEBERGABE, ELDAT_CUSTTIME_1173.RAPPORT_STATUS, ELDAT_CUSTTIME_1173.SOM_UNTERSUCH_ANGABEN, ELDAT_CUSTTIME_1173.SOM_UNTERSUCH_BEFUND, ELDAT_CUSTTIME_1173.SOM_UNTERSUCH_BEURTEILUNG, ELDAT_CUSTTIME_1173.SOM_UNTERSUCH_PROCEDERE, ELDAT_CUSTTIME_1173.ABGABE_VON, ELDAT_CUSTTIME_1173.ABGABE_AM, ELDAT_CUSTTIME_1173.ABGABE_BEMERKUNG_ABGABE, ELDAT_CUSTTIME_1173.ABGABE_ZURUECK_AM, ELDAT_CUSTTIME_1173.ABGABE_ZURUECK_BEMERKUNG, ELDAT_CUSTTIME_1173.ENTZUGSERSCH_KOERPER, ELDAT_CUSTTIME_1173.ENTZUGSERSCH_PSYCHE, ELDAT_CUSTTIME_1173.ENTZUGSERSCH_KOERPER_WEITERE, ELDAT_CUSTTIME_1173.ENTZUGSERSCH_PSYCHE_WEITERE, ELDAT_CUSTTIME_1173.AMPELTXT_ENTZUGSERSCH_PSYCHE, ELDAT_CUSTTIME_1173.AMPELTXT_ENTZUGSERSCH_KOERPE, ELDAT_CUSTTIME_1173.CHECKLIST_NACHTWACHE, ELDAT_CUSTTIME_1173.AMPEL_NACHTWACHE, ELDAT_CUSTTIME_1173.NACHTWACHE_PROSA, ELDAT_CUSTTIME_1173.RAPPORT_UEBERGABE_ANZEIGE, ELDAT_CUSTTIME_1173.RAPPORT_WICHTIGKEIT, ELDAT_CUSTTIME_1173.HYGIENE_CHECKLISTE, ELDAT_CUSTTIME_1173.HYGIENE_PROSA, ELDAT_CUSTTIME_1173.HYGIENE_AMPELTXT, ELDAT_CUSTTIME_1173.ENTZUG_KOMPL_CHECKLISTE, ELDAT_CUSTTIME_1173.THERAPIEZEIT_CHECKLISTE, ELDAT_CUSTTIME_1173.ENTZUG_KOMPL_PROSA, ELDAT_CUSTTIME_1173.THERAPIEZEIT_PROSA, ELDAT_CUSTTIME_1173.ENTZUG_KOMPL_AMPELTXT, ELDAT_CUSTTIME_1173.THERAPIEZEIT_AMPELTXT, ELDAT_CUSTTIME_1173.ENTZUG_KOMPL_DAUER, ELDAT_CUSTTIME_1173.EIGENSCHAFT_DRINGLICHKEIT, ELDAT_CUSTTIME_1173.EIGENSCHAFT_HINTERGRUNDFARBE, ELDAT_CUSTTIME_1173.LOGO_SUEDHANG, ELDAT_CUSTTIME_1173.AB_ENTZUGSVERLAUF, ELDAT_CUSTTIME_1173.ES_BEMERKUNGEN, ELDAT_CUSTTIME_1173.FIRST_DETAIL_ID, ELDAT_CUSTTIME_1173.FIRST_VERSION_ID
FROM DOCADMIN.ELDAT_CUSTTIME_1173 ELDAT_CUSTTIME_1173

Jedoch: Da die Einträge weitgehend "Richtext" (Mit Formatierungen etc.) können diese Felder nicht so einfach exportiert werden, da von Polypoint nur ein PK Ascii zurückgegeben wird - vgl. Bild unten. Hier müsste Erne Consulting "eingreifen", um an diese Daten zu kommen.

bildschirmfoto 2017-03-17 um 15 55 27

Kantonsstatistik

Die Kantonsstatistik wiederum kann relativ problemlos "bezogen" werden: bildschirmfoto 2017-03-17 um 15 33 32

ODBC:

SELECT
     DocDBA.Dokument.FaId,
     DocADMIN.ELDAT_CUST_1151.*
   FROM
     DocAdmin.ELDAT_CUST_1151, DocDba.Dokument, DocDba.Dokument_Version
   WHERE
     ELDAT_CUST_1151.Dokument_Id = Dokument_Version.Dokument_Id AND
     ELDAT_CUST_1151.Version_Id = Dokument_Version.Version_Id AND
     ELDAT_CUST_1151.Struktur_Element_Id = 1115 AND
     Dokument.Dokument_Id = Dokument_Version.Dokument_Id AND
     Dokument_Version.Dokument_Id = Dokument.Dokument_Id AND
     Dokument_Version.Dokument_Id = ELDAT_CUST_1151.Dokument_Id AND
     Dokument_Version.Ist_Aktuell = 'T'

Vorgeschlagenes Procedere

  1. Eine Abbrecher-Protokoll App in Optinomic erstellen. Diese soll prinzipiell den Verlaufseintrag ersetzen. Innerhalb von Polypoint könnte ab Stichtag dieses "SMK-Element" angepasst werden -> Link auf Polypoint.

Funktionsweise der Abbrecher-Protokoll App

  1. Die Optinomic-App liest jede Nacht die Kantonsstatistik aus und speichert diese in Optinomic. Allenfalls können wir gleich auch weitere benötigten Daten mitsenden.
  2. Optionmic teilt die Patienten aufgrund dem Feld Austrittsart in eine passende Patientengruppe ein.
  3. Wenn ein Patient in die Patientengruppe "Abbrecher" fällt, wird automatisch die Abbrecher-Protokoll App beim entsprechenden Patienten aktiviert. Dies löst dann ein Event aus, welcher dann an den Therapeuten ein Mail zur Erfassung des Protokolls versenden kann.
  4. Auswertungen etc. innerhalb von Optinomic vornehmen.

Aufwand | Abgrenzung

ToDo's

SonjaKaufmann commented 7 years ago

Bin etwas verwirrt, da wir eine unterschiedliche Terminologie verwenden. Aber erstmal herzlichen Dank für die Erklärungen und Aufwandseinschätzungen. Ich fasse erstmal zusammen, was ich verstanden habe.

Habe ich die Sachen soweit verstanden?

Habe ich die Sachen soweit richtig verstanden?

ottigerb commented 7 years ago

Beantwortung der Fragen:

Aktuelles Protokoll in Polypoint für Suchtmittelkonsum SKM-Blatt: Dies wäre schwierig mit einem Counter auszustatten. Dies wäre möglich, wenn man den Suchtmittelkonsum im Optinomic erfassen würde, aber so sehr sehr aufwendig. Für einen Export der Daten bräuchten wir Erne Consulting.

Ein Counter - im Sinne von: "Der Patient hatte 2 SMK's im aktuellen Aufenthalt" ist tatsächlich nicht ganz einfach. Wäre mittels FastReports schon realisierbar - analog den Polypoint-Ampeln. M.E. jedoch nicht ein wirklich praktikabler Weg. Wenn die SMK's in Optinomic erfasst würden, wäre dies einfach solche Auswertungen als Grafik oder Text innerhalb von Optinomic darzustellen. Export: Bei einer "laufenden" Schnittstelle wäre Erne auf jeden Fall gefragt. Falls wir einmalig ausdrucken wollen - schaffen wir dies: Ein [Verlauf drucken] nur mit den SMK Angaben wäre hier denkbar.

Abbruch erfassen wir schon mit der Kantonsstatistik, könnte man ggf. um weitere Kategorien ergänzen und kann man auch exportieren (kann ich ja auch aus PABS mit Query). Würde man allerdings noch weitere Fragen erheben wollen, so müssten wir eine Optinomic-App programmieren oder Programmieren lassen und das wäre ungefähr ein Aufwand von Arbeitstagen. Wenn die App ohne Schnittstelle zum Pabs erstellt würde, dann wäre es noch einfacher. Die Therapeuten müssten dies dann selbstständig ausfüllen und dran denken und es würde einige Doppeleingaben erfordern (Infos die an anderer Stelle schon ausgefüllt wurden), aber dann wäre es ca. 1 Tag Programmierarbeit.

In Polypoint befindet sich ja das Feld Kantonsstatistik (vgl. obige Grafik - Kantonsstatistik). Diese Daten kann Optinomic abgreifen und als "Auslöser" resp. "Zuteilung" zu Patientengruppen verwenden. PABS könnte allenfalls auch direkt via ODBC Query abgegriffen werden - wohl ähnlicher Aufwand. Eine Optinomic-App ohne jegliche Polypoint oder PABS Verwendung ist natürlich deutlich leichter umzusetzen.

Was mir noch nicht klar ist, ist die Frage wie aufwendig er wäre nur die Abbruchinformation der med. Stat. in Optinomic zu überführen, denn das wäre ja für die ganze Fallgruppenerstellung auch spannend und wenn im Optinomic abgebrochene Fälle mit dem Abbruchgrund markierte werden könnten, dann wäre das sehr spannend. z.B. von Patient abgebrochene Fälle lila und von Klinik abgebrochene Fälle mit einem roten Falldatum oder so irgendwas. Würde wieder viele Punkte für Optinomic sammeln ;-)

Wie gesagt, die Kantonsstatistik in Polypoint (vgl. obige Grafik - Kantonsstatistik) kann von Optionmic abgegriffen werden und für Fallgruppen verwendet werden. Der Aufwand wäre hier ca. 1 Arbeitstag. Farbige Markierungen der Fälle: Die Hauptapplikation Optinomic soll nicht "Abhängigkeiten" zu ev. installierten Optinomic-Apps aufweisen. Eine Sammlung aller Abbrecher-Fälle wäre ja dann via den Fallgruppen sichergestellt.

schoenenb commented 7 years ago

Ich nehme mich hier mal raus, weil ich keinen Auftrag für mich sehe - bitte wieder anpassen, wenn sich was geändert hat.

ottigerb commented 7 years ago

Der Ball liegt hier beim "Südhang" => Ich nehme mich hier mal raus, weil ich keinen Auftrag für mich sehe - bitte wieder anpassen, wenn sich was geändert hat.

schoenenb commented 6 years ago

Ist da mal was passiert? Braucht es dieses Issue noch? Weil Prio1...

SonjaKaufmann commented 6 years ago

Ändere Mal die Prio, da im Moment on hold. Wären neue Apps, quasi nach Fertigstellung New Client. Das muss erst über die Therapieleitung. Aber Anliegen besteht weiterhin.

ottigerb commented 6 years ago

Erste Ergebnisse:

http://optinomic.cust.local/client.new/#/user/app/com.optinomic.user.apps.poly_ks/template/KANTONSSTATISTIK => Daten sind hier!

Note to myself :: ToDo - vgl.: https://github.com/ottigerb/therapy-server/issues/473#issuecomment-345824308

SonjaKaufmann commented 6 years ago

Mhhh, dachte das sei noch on hold, denn ich habe noch nicht weiter mit den betreffenden geschaut, ob der Bedarf da ist. Dennoch schön kannst du die Daten reinholen. Wenn wir damit weiterfahren, müssen wir bedenken, dass die Gruppe der Abbrecher erst beim Fallabschluss gebildet werden kann. Solange ein Patient noch in Behandlung ist steht dort immer regulärer Austritt. Von daher sollten Gruppenbildungen immer nur auf abgeschlossenen Fällen beruhen. Vielleicht ist das für Dich eh klar, aber ich dachte ich sage es nochmal. Das müsste man dann auch bei den klinischen Normen bedenken, wenn man nur mit regulären Patienten vergleichen möchte.

ottigerb commented 6 years ago

BOT - Funktionalität seht!

Daten können ab sofort aus Polypoint ausgelesen werden und als eigenständige Tabelle in Optinomic zwischengespeichert werden. Z.B.:

[data_source_query kantonsstatistik Polypoint 0 */12 *]
__opapp_include(includes/odbc_kantonsstatistik_typ.sql)

=> Aktualisiert alle 12 Stunden.

Tabelle wird dargestellt und kann als CSV heruntergeladen werden: http://optinomic.cust.local/client.new/#/user/app/ch.suedhang.bot.poly_ks/template/KANTONSSTATISTIK

=> Dient als Basis für eine Fallgruppe.