Optinomic / apps

Optinomic applications
1 stars 2 forks source link

PDF :: Textblöcke & Z-Score-Grafik #127

Closed ottigerb closed 7 years ago

ottigerb commented 7 years ago

Hintergrund

Dynamische PDF's erstellen ist nicht ganz so einfach, wie man vielleicht denken könnte.

Erkannte Herausforderungen der bisherigen Druckvorlagen App:

  1. Performance: Warten auf das Erstellen wurde als "zu langsam" bewertet.
  2. Störanfällig: In Sonderfällen gar mit Error abgebrochen bei z.B. 4 von 8.
  3. Redundanz: Jede Logik musste im PDF erneut durchgeführt / berechnet werden.

Gelöst

Yes! Diese Problemfelder sind gelöst: In Zukunft werden / müssen wir unsere calculations mehr forcieren. D.h. die calculations dienen als eine Art single source of truth. Die Logik (Problemsubstanzen, Z-Score Grafiken etc.) soll nur da gelöst sein. Templates oder das PDF kann dann nur noch "dumm konsumieren". Genannte Herausforderungen sollten damit gelöst sein. Yes.

Grund dieses Issues

Da calculations über alle vorhanden Patienten/Fälle/Messungen berechnet werden müssen gilt es darauf zu achten, dass wir unseren Server nicht unnötig belasten. Dies hauptsächlich indem wir 1000 Anpassungen immer und immer wieder vornehmen müssen.

=> Entsprechend möchte ich hier Charts resp. andere PDF "Blöcke" zur Diskussion vorstellen. Sobald Ihr die jeweiligen "Blöcke" freigebt - werde ich die Änderungen in den calculations freigeben. Natürlich wird es immer Anpassungen geben - anyway, Danke fürs genaue Hinschauen und "grünes Licht" erteilen. 👍

Offene Punkte

Ich werde folgende Liste zur Übersichtlichkeit pflegen:

1. BSCL  |  Z-Score-Grafik

ToDos:

ottigerb commented 7 years ago

Um dieses Issue bereits mit Inhalt zu befeuern:

BSCL: Z-Score-Grafik

1.) bscl_chart_v1.pdf 2.) bscl_chart_v2.pdf - Messungen korrekt sortiert.

Meines Erachtens konnte das Look & Feel der Templates/Apps sehr gut übernommen werden. Die Grafik wirkt für mich "klar und aufgeräumt". Hoffe es gefällt auch Euch!

Options

Die Grafik kann durch folgende Options angepasst werden:

{
  "options": {
    "min": "auto",
    "max": "auto",
    "item_height": 48,
    "item_text_left": 68,
    "item_text_right": 173,
    "color_grid": "#E0E0E0",
    "color_clinic_sample": "#888888",
    "color_skin": "indigo_grey_pink",
    "show_baseline": false,
    "show_scale_text": true,
    "show_score_vertical_line": false,
    "show_score_profile_line": true,
    "show_score_circles": true,
    "range_alpha": 0.1,
    "vertical_grid_every_x": 1,
    "response_title_path": "info.mz.mz_typ",
    "response_date_path": "info.mz.mz_datum",
    "norm_sample": "Z-Werte wurden aufgrund der Normstichprobe nach Franke (2000) berechnet (N=300)."
  },
  "scales": [
    {
      "left_title": "Somatisierung",
      "left_text": "",
      "right_title": "",
      "right_text": "Kopfschmerzen, Herzbeschwerden, Atemprobleme, Magenbeschwerden, Muskelschmerzen, Schwächegefühl, Schweregefühl, Unwohlsein usw.",
      "score_path": "all_results.somatisierung_z_score",
      "clinic_sample_var": "somatisierung_z_score",
      "items": 7
    },
    {
      "left_title": "Zwanghaftigkeit",
      "left_text": "",
      "right_title": "",
      "right_text": "Gedanken, Impulse und Handlungen, die konstant vorhanden und nicht änderbar und ich-fremd oder ungewollt erlebt werden, Kognitive Leistungsstörungen.",
      "score_path": "all_results.zwanghaftigkeit_z_score",
      "clinic_sample_var": "zwanghaftigkeit_z_score",
      "items": 6
    },
    {
      "left_title": "Unsicherheit im Sozialkontakt",
      "left_text": "",
      "right_title": "",
      "right_text": "Minderwertigkeit, Selbstabwertungen, Selbstzweifel, Selbstunsicherheit und negative Erwartungen bzgl. dem eigenen zwischenmenschlichen Verhalten.",
      "score_path": "all_results.unsicherheit_im_sozialkontakt_z_score",
      "clinic_sample_var": "unsicherheit_im_sozialkontakt_z_score",
      "items": 4
    },
    {
      "left_title": "Depressivität",
      "left_text": "",
      "right_title": "",
      "right_text": "Gedrückte Stimmung, Verringerte Motivation und Antrieb, Hoffnungslosigkeit, bis hin zu Suizidgedanken.",
      "score_path": "all_results.depressivit__t_z_score",
      "clinic_sample_var": "depressivit__t_z_score",
      "items": 6
    },
    {
      "left_title": "Ängstlichkeit",
      "left_text": "",
      "right_title": "",
      "right_text": "Angst mit Nervosität, Spannungen und Zittern, Panikattacken und Schreckgefühlen, Gefühle von Besorgnis und Furcht.",
      "score_path": "all_results.__ngstlichkeit_z_score",
      "clinic_sample_var": "__ngstlichkeit_z_score",
      "items": 6
    },
    {
      "left_title": "Aggressivität / Feindseligkeit",
      "left_text": "",
      "right_title": "",
      "right_text": "Reizbarkeit und Unausgeglichenheit bis hin zu starker Aggressivität. Ärger, Aggression, Irritierbarkeit, Zorn und Verstimmung.",
      "score_path": "all_results.aggressivit__t___feindseligkeit_z_score",
      "clinic_sample_var": "aggressivit__t___feindseligkeit_z_score",
      "items": 5
    },
    {
      "left_title": "Phobische Angst",
      "left_text": "",
      "right_title": "",
      "right_text": "Andauernde und unangemessene Furcht als Reaktion auf eine Person, einen Platz, ein Objekt oder eine Situation, die zu Vermeidungs- oder Fluchtverhalten führt.",
      "score_path": "all_results.phobische_angst_z_score",
      "clinic_sample_var": "phobische_angst_z_score",
      "items": 5
    },
    {
      "left_title": "Paranoides Denken",
      "left_text": "",
      "right_title": "",
      "right_text": "Misstrauen, Minderwertigkeitsgefühle, Gedankenprojektion, Feindseligkeit, Einengung, Angst vor Autonomieverlust und wahnhafte Täuschung.",
      "score_path": "all_results.paranoides_denken_z_score",
      "clinic_sample_var": "paranoides_denken_z_score",
      "items": 5
    },
    {
      "left_title": "Psychotizismus",
      "left_text": "",
      "right_title": "",
      "right_text": "Gefühl der Isolation und zwischenmenschlichen Entfremdung. Verzerrter, isolierter Lebensstil bis zu Halluzination und Gedankenzerfall.",
      "score_path": "all_results.psychotizismus_z_score",
      "clinic_sample_var": "psychotizismus_z_score",
      "items": 5
    },
    {
      "left_title": "GSI",
      "left_text": "Global Severity Index",
      "right_title": "GSI",
      "right_text": "Durchschnittliche Belastung in allen Bereichen",
      "score_path": "all_results.gsi_global_severity_index_z_score",
      "clinic_sample_var": "gsi_global_severity_index_z_score",
      "items": 53
    }
  ],
  "ranges": [
    {
      "range_start": -999,
      "range_stop": 1,
      "text": "Gesunde Ausprägung",
      "color": "#2E7D32"
    },
    {
      "range_start": 1,
      "range_stop": 2,
      "text": "Normale Ausprägung",
      "color": "#FFFFFF"
    },
    {
      "range_start": 2,
      "range_stop": 999,
      "text": "Starke Ausprägung",
      "color": "#C62828"
    }
  ]
}

Hinweis: Ich habe mir erlaubt die right_text der Skalen leicht zu kürzen. Bitte prüft und korrigiert diese Texte / Ranges / Farben nochmals genau. Bei einer Änderung: Text oder ganzer Teil { .. } vom obigen JSON kopieren und anpassen und hier abspeichern. Erspart uns unnötiges hin & her.

Übrigens: Die ganze Grafik - inklusive Messungen, Interpretation etc. wird zusammengehalten - muss also auf einer A4 Seite Platz finden.

ottigerb commented 7 years ago

Info :: BSCL-Grafik ist nun korrekt sortiert.

schoenenb commented 7 years ago
{
  "options": {
    "min": "-2",
    "max": "16.5",
    "item_height": 48,
    "item_text_left": 68,
    "item_text_right": 173,
    "color_grid": "#E0E0E0",
    "color_clinic_sample": "#888888",
    "color_skin": "grey_dark_to_light",
    "show_baseline": false,
    "show_scale_text": true,
    "show_score_vertical_line": false,
    "show_score_profile_line": true,
    "show_score_circles": true,
    "range_alpha": 0.1,
    "vertical_grid_every_x": 1,
    "response_title_path": "info.mz.mz_typ",
    "response_date_path": "info.mz.mz_datum",
    "norm_sample": "Z-Werte wurden aufgrund der Normstichprobe nach Franke (2000) berechnet (N=300)."
  },
  "scales": [
    {
      "left_title": "Somatisierung",
      "left_text": "",
      "right_title": "",
      "right_text": "Kopfschmerzen, Herzbeschwerden, Atemprobleme, Magenbeschwerden, Muskelschmerzen, Schwächegefühl, Schweregefühl, Unwohlsein usw.",
      "score_path": "all_results.somatisierung_z_score",
      "clinic_sample_var": "somatisierung_z_score",
      "items": 7
    },
    {
      "left_title": "Zwanghaftigkeit",
      "left_text": "",
      "right_title": "",
      "right_text": "Gedanken, Impulse und Handlungen, die konstant vorhanden und nicht änderbar und ich-fremd oder ungewollt erlebt werden, Kognitive Leistungsstörungen.",
      "score_path": "all_results.zwanghaftigkeit_z_score",
      "clinic_sample_var": "zwanghaftigkeit_z_score",
      "items": 6
    },
    {
      "left_title": "Unsicherheit im Sozialkontakt",
      "left_text": "",
      "right_title": "",
      "right_text": "Unzulänglichkeits- und Minderwertigkeitsgefühle, Selbstabwertungen im sozialen Kontakt, Selbstzweifel, Selbstunsicherheit und negative Erwartungen bzgl. dem eigenen zwischenmenschlichen Verhalten.",
      "score_path": "all_results.unsicherheit_im_sozialkontakt_z_score",
      "clinic_sample_var": "unsicherheit_im_sozialkontakt_z_score",
      "items": 4
    },
    {
      "left_title": "Depressivität",
      "left_text": "",
      "right_title": "",
      "right_text": "Gedrückte Stimmung, Gesunkenes Interesse am Leben, Verringerte Motivation und Energie, Hoffnungslosigkeit, bis hin zu Suizidgedanken.",
      "score_path": "all_results.depressivit__t_z_score",
      "clinic_sample_var": "depressivit__t_z_score",
      "items": 6
    },
    {
      "left_title": "Ängstlichkeit",
      "left_text": "",
      "right_title": "",
      "right_text": "Angst mit Nervosität, Spannungen und Zittern, Panikattacken und Schreckgefühlen, Gefühle von Besorgnis und Furcht.",
      "score_path": "all_results.__ngstlichkeit_z_score",
      "clinic_sample_var": "__ngstlichkeit_z_score",
      "items": 6
    },
    {
      "left_title": "Aggressivität / Feindseligkeit",
      "left_text": "",
      "right_title": "",
      "right_text": "Reizbarkeit und Unausgeglichenheit bis hin zu starker Aggressivität. Ärger, Aggression, Irritierbarkeit, Zorn und Verstimmung.",
      "score_path": "all_results.aggressivit__t___feindseligkeit_z_score",
      "clinic_sample_var": "aggressivit__t___feindseligkeit_z_score",
      "items": 5
    },
    {
      "left_title": "Phobische Angst",
      "left_text": "",
      "right_title": "",
      "right_text": "Andauernde und unangemessene Furcht als Reaktion auf eine bestimmte Person, einen Platz, ein Objekt oder eine charakteristische Situation, die zu Vermeidungs- oder Fluchtverhalten führt.",
      "score_path": "all_results.phobische_angst_z_score",
      "clinic_sample_var": "phobische_angst_z_score",
      "items": 5
    },
    {
      "left_title": "Paranoides Denken",
      "left_text": "",
      "right_title": "",
      "right_text": "Misstrauen, Minderwertigkeitsgefühle, paranoides Denken: Gedankenprojektion, Feindseligkeit, Argwohn, Grandiosität, Einengung, Angst vor Autonomieverlust und wahnhafte Täuschung.",
      "score_path": "all_results.paranoides_denken_z_score",
      "clinic_sample_var": "paranoides_denken_z_score",
      "items": 5
    },
    {
      "left_title": "Psychotizismus",
      "left_text": "",
      "right_title": "",
      "right_text": "Gefühl der Isolation und zwischenmenschlichen Entfremdung. Verzerrter, isolierter Lebensstil bis zu Halluzination und Gedankenzerfall.",
      "score_path": "all_results.psychotizismus_z_score",
      "clinic_sample_var": "psychotizismus_z_score",
      "items": 5
    },
    {
      "left_title": "GSI",
      "left_text": "Global Severity Index",
      "right_title": "GSI",
      "right_text": "Durchschnittliche Belastung in allen Bereichen",
      "score_path": "all_results.gsi_global_severity_index_z_score",
      "clinic_sample_var": "gsi_global_severity_index_z_score",
      "items": 53
    }
  ],
  "ranges": [
    {
      "range_start": -999,
      "range_stop": 1,
      "text": "Gesunde Ausprägung",
      "color": "#2E7D32"
    },
    {
      "range_start": 1,
      "range_stop": 2,
      "text": "Normale Ausprägung",
      "color": "#FFFFFF"
    },
    {
      "range_start": 2,
      "range_stop": 999,
      "text": "Starke Ausprägung",
      "color": "#C62828"
    }
  ]
}
schoenenb commented 7 years ago

Änderungen: min, max, color_skin, Beschreibung wie bis anhin Wunsch:

ottigerb commented 7 years ago

Texte: left_text ist gleich wie right_text. Dann mache ich die *_title Texte in der selben Grösse wie die *_text. *_title bleiben jedoch bold.

Beschreibung: Schade, dann muss die Breite der Grafik doch ordentlich gestaucht werden - wird dann hald sehr schmal. Ausser ich mache alle texte noch kleiner.

Zusatzangaben: Oberhalb - Wirklich? Wäre dann m.E. doch sehr unterschiedlich zur App. Na ja.

=> Ich mach mal eine Version.

ottigerb commented 7 years ago

Interpretation: Auf der höhe der Zahlenbeschriftung anschreiben ist nicht möglich, da wir ev. sehr viele Range-Schritte hätten.

Vorschlag: Wie klingt Norm- & Klinikstichprobe überhalb der Grafik und Messung & Interpretation darunter?

schoenenb commented 7 years ago

Texte: Dann ist das eine optische Täuschung, dass der Text rechts grösser ist (gleich gross wie der Titel) im Vergleich zu links? ;) grafik

ottigerb commented 7 years ago

Öhhhm : Ja! ;)

ottigerb commented 7 years ago

Close because of: https://github.com/Optinomic/apps/issues/129