Optinomic / apps

Optinomic applications
1 stars 2 forks source link

TMT ergänzen #188

Closed schoenenb closed 5 years ago

schoenenb commented 6 years ago

Ist es möglich, den ng-survey vom TMT um eine Eingabe des Erhebungsdatums zu ergänzen? Beim Limesurvey geht das ja nicht ohne dass man die Umfrage schliesst und wieder eröffnet...

Es gab drum eine Änderung in der Erfassung - neu machen das die FF - und die sind nicht so zuverlässig mit der Eingabe am Tag der Erhebung. So wie's jetzt ist, müssen die Assistentinnen die Daten per SQL ändern, was ich etwas unsinnig finde.

ottigerb commented 6 years ago

Klar! Sorry - dieses Issue ging irgendwie unter.

Das Survey muss lediglich mit einem HTML-Block ergänzt werden - analog z.B. zu Messzeitpunkt:

<p class="md-headline">Messzeitpunkt</p>
                            <md-input-container class="md-block">
                                <label>Assessment (Erhebung)</label>
                                <md-select name="mz" ng-model="result.Messzeitpunkt" required>
                                    <md-option value="1">Eintritt</md-option>
                                    <md-option value="2">Austritt</md-option>
                                    <md-option value="3">Anderer Messzeitpunkt</md-option>
                                </md-select>
                                <div ng-messages="surveyForm.mz.$error" multiple md-auto-hide="false">
                                    <div ng-message="required">
                                        Bei welchem Messzeitpunkt wurde die Erhebung ausgeführt?
                                    </div>
                                </div>
                            </md-input-container>

Als Date-Picker kann z.B. folgender dienen: https://material.angularjs.org/latest/demo/datepicker => Hier ist es immer so ein "Ding" bis das Datumsformat dann wirklich CH-Format ist. Kann da aber gerne mal kuck machen - falls Du möchtest.

Natürlich haben dann "alte Erfassungen" kein result.Messzeitpunkt_Datum oder wie die Variable dann getauft wird. Doch dies liesse sich leicht lösen - wenn leer => filled ansonsten given_date.

schoenenb commented 6 years ago

Wenn ich das hinkriegen würde, kann ich das wie bisher committen + im Optinomic den App-Fetcher starten oder brauchts mit der neuen Umgebung mehr? Seit ihr da mit den Umbauten zu 1 Repo pro App und so begonnen habt, habe ich nichts mehr angefasst, damit ich nichts schrotte...

ottigerb commented 6 years ago

...ich kann diese Änderung / Ergänzung am Freitag vornehmen. Wie soll diese neue Variable benannt werden? Nur Datum?

...ah genau - ich muss Dich mal "einführen" in die neue 1 REPO pro App Umgebung. Allenfalls am Freitag per SKYPE erreichbar?

schoenenb commented 6 years ago

Morgen bin ich nicht da, aber nächsten Freitag (21.9.) und am 28.9. bin ich ausnahmsweise am schaffen, weil IT-Helpdesk.

Für mich müsste die Variable «Erhebungsdatum» heissen, damit es hoffentlich klar ist. Von den vorgeschlagenen Optionen von Material würde ich folgenden wählen:

<md-content` ng-controller="AppCtrl as ctrl" layout-padding="" ng-cloak="" class="datepickerdemoBasicUsage" ng-app="MyApp">
  <div layout-gt-xs="row">
    <div flex-gt-xs="">
      <h4>Opening the calendar when the input is focused</h4>
      <md-datepicker ng-model="ctrl.myDate" md-placeholder="Enter date" md-open-on-focus=""></md-datepicker>
    </div>
  </div>
</md-content>

Könntest du bei der Gelegenheit auch im ZüPAZ die Fragebogen-Zuständigkeit von Admin auf Patient_via_Assessment ändern? Der wird drum demnächst wieder ein Thema (3-Monats-Erhebung) und ich hatte Wale erzählt, dass das bereits so eingestellt sei. oops

ottigerb commented 5 years ago

...Done! Calculation https://github.com/Optinomic/ch.suedhang.apps.tmt_V3/commit/e122339f50add53a343870fe4e68db63a3284798 & Fragebogen https://github.com/Optinomic/ch.suedhang.apps.tmt.production/commit/887529f774b08bb9937f8240d4ca01b2c09ea651

Beim Date-Picker bitte ich um etwas "Nachsicht" bzgl. dem Datumsformat. Ich kann leider noch keine Extrascripts laufen lassen bis https://github.com/ottigerb/therapy-server/issues/511 erledigt ist. Dann können wir auch sehr hübsche NG-Fragebögen ganz einfach definieren - alles was dann benötigt wird kann in einem JSON konfiguriert werden - z.B.:

{
  "tmt_example": {
    "survey": {
      "survey_id": "tmt_example",
      "version": "1.0",
      "welcome_title": "TMT",
      "welcome_subtitle": "Trail Making Test (TMT)",
      "welcome_text": [
        "Mit dem TMT wird die Fähigkeit zum visuellen Scannen, die psychomotorische Geschwindigkeit (TMT A) sowie die Leistungen der exekutiven Funktionen, insbesondere kognitive Flexibilität und Switching (TMT B) erfasst."
      ],
      "show_welcome_page": true,
      "show_question_groups_numbers": false,
      "show_question_numbers": false,
      "result_store_survey_markup": false,
      "result_store_timings": true,
      "empty_vars": ""
    },
    "question_groups": [{
        "group_title": "Allgemeine Angaben",
        "group_subtitle": "Angaben zum Messzeitpunkt",
        "group_id": "allgemeine_angaben",
        "questions": [{
          "type": "questionSelect",
          "var": "Messzeitpunkt",
          "title": "Messzeitpunkt",
          "help": "Bei welchem Messzeitpunkt wurde die Erhebung ausgeführt?",
          "label": "Assessment (Erhebung)",
          "val": {
            "required": true
          },
          "options": [{
              "value": "1",
              "label": "Eintritt"
            },
            {
              "value": "2",
              "label": "Austritt"
            },
            {
              "value": "3",
              "label": "Anderer Messzeitpunkt"
            }
          ]
        }]
      },
      {
        "group_title": "Patientenangaben",
        "group_subtitle": "Angaben über den Patienten",
        "group_id": "weitere_angaben",
        "questions": [{
          "type": "questionNumber",
          "var": "Ausbildungsjahre",
          "title": "Ausbildungsjahre",
          "help": "Ausbildungsjahre meint Schuljahre und Jahre der ersten Berufsausbildung, z.B. 9 Jahre Schule + 3 Jahre Berufslehre gibt 12 Ausbildungsjahre, oder 12 Jahre Schule (z.B. Matur) + 5 Jahre Studium gibt 17 Ausbildungsjahre.",
          "label": "Bis 12 Jahre vs. mehr als 12 Jahre Ausbildung",
          "val": {
            "required": true,
            "min": 6,
            "max": 40
          }
        }]
      },
      {
        "group_title": "TMT A",
        "group_subtitle": "Psychomotorische Geschwindigkeit (TMT A)",
        "group_id": "tmt",
        "questions": [{
            "type": "questionNumber",
            "var": "TMTATime",
            "title": "Zeit",
            "help": "Zeit in Sekunden.",
            "label": "TMT A (Zeit in Sekunden)",
            "val": {
              "required": true,
              "min": 10,
              "max": 180
            }
          },
          {
            "type": "questionNumber",
            "var": "TMTAError",
            "title": "Fehler",
            "help": "Anzahl der Fehler bei der Ausführung des TMT A.",
            "label": "TMT A (Anzahl Fehler)",
            "val": {
              "required": true,
              "min": 0,
              "max": 999
            }
          }
        ]
      },
      {
        "group_title": "TMT B",
        "group_subtitle": "Die Leistungen der exekutiven Funktionen, insbesondere kognitive Flexibilität und Switching (TMT B)",
        "group_id": "tmt",
        "questions": [{
            "type": "questionNumber",
            "var": "TMTBTime",
            "title": "Zeit",
            "help": "Zeit in Sekunden.",
            "label": "TMT B (Zeit in Sekunden)",
            "val": {
              "required": true,
              "min": 10,
              "max": 180
            }
          },
          {
            "type": "questionNumber",
            "var": "TMTBError",
            "title": "Fehler",
            "help": "Anzahl der Fehler bei der Ausführung des TMT B.",
            "label": "TMT B (Anzahl Fehler)",
            "val": {
              "required": true,
              "min": 0,
              "max": 999
            }
          }
        ]
      }
    ]
  },
  "another_survey": {
    "survey": {
      "survey_id": "another_survey",
      "version": "1.0",
      "welcome_title": "Testsurvey",
      "welcome_subtitle": "Question-Type-Explorer",
      "welcome_text": [
        "Ziel: Vermittlung und Darstellung aller möglichen Fragetypen und deren Funktionen.",
        "Have a nice day! :-)"
      ],
      "show_welcome_page": false,
      "show_question_groups_numbers": true,
      "show_question_numbers": false,
      "result_store_survey_markup": false,
      "result_store_timings": true,
      "empty_vars": ""
    },
    "question_groups": [{
        "group_title": "Eine Zahl erfassen",
        "group_subtitle": "Example (questionNumber)",
        "group_id": "questionNumber",
        "questions": [{
          "type": "questionNumber",
          "var": "Ausbildungsjahre",
          "title": "Ausbildungsjahre",
          "help": "Ausbildungsjahre meint Schuljahre und Jahre der ersten Berufsausbildung, z.B. 9 JaSchule + 3 Jahre Berufslehre gibt 12 Ausbildungsjahre, oder 12 Jahre Schule (z.B. Matur) Jahre Studium gibt 17 Ausbildungsjahre.",
          "label": "Bis 12 Jahre vs. mehr als 12 Jahre Ausbildung",
          "if": "",
          "val": {
            "required": true,
            "min": 6,
            "max": 40
          }
        }]
      },
      {
        "group_title": "Stimmung erfassen",
        "group_subtitle": "Example (questionEmotion)",
        "group_id": "questionEmotion",
        "questions": [{
          "type": "questionEmotion",
          "var": "emotion",
          "title": "Aktuelle Stimmung",
          "help": "Wie ist Ihre aktuelle Stimmung?",
          "if": "Ausbildungsjahre > 12",
          "val": {
            "required": true
          }
        }]
      },
      {
        "group_title": "Ein Text erfassen",
        "group_subtitle": "Example (questionText)",
        "group_id": "questionText",
        "questions": [{
          "type": "questionText",
          "var": "email",
          "title": "Wie lautet Ihre Email Adresse?",
          "help": "",
          "label": "Email",
          "if": "Ausbildungsjahre > 12",
          "val": {
            "required": true,
            "pattern": "/^.+@.+\\..+$/"
          }
        }]
      },
      {
        "group_title": "Ein längerer Text erfassen",
        "group_subtitle": "Example (questionTextarea)",
        "group_id": "questionTextarea",
        "questions": [{
          "type": "questionTextarea",
          "var": "panik_ursache",
          "title": "Panikattacke",
          "help": "Beschreiben Sie die möglichen Ursachen, der aktuellen Panikattacke.",
          "label": "Panikattacke: Mögliche Ursache",
          "if": "Ausbildungsjahre > 12",
          "val": {
            "required": true,
            "maxlength": 150,
            "rows": 3
          }
        }]
      },
      {
        "group_title": "Eine Datum erfassen",
        "group_subtitle": "Example (questionDate)",
        "group_id": "questionDate",
        "questions": [{
          "type": "questionDate",
          "var": "birthday",
          "title": "Wann sind Sie geboren?",
          "help": "Selektieren Sie ihren Geburtstag.",
          "label": "Geburtstag",
          "if": "Ausbildungsjahre > 12",
          "val": {
            "required": true
          }
        }]
      },
      {
        "group_title": "Eine Selektion vornehmen",
        "group_subtitle": "Example (questionSelect)",
        "group_id": "questionSelect",
        "questions": [{
          "type": "questionSelect",
          "var": "Messzeitpunkt",
          "title": "Messzeitpunkt",
          "help": "Bei welchem Messzeitpunkt wurde die Erhebung ausgeführt?",
          "label": "Assessment (Erhebung)",
          "if": "Ausbildungsjahre > 12",
          "val": {
            "required": true
          },
          "options": [{
              "value": "1",
              "label": "Eintritt"
            },
            {
              "value": "2",
              "label": "Austritt"
            },
            {
              "value": "3",
              "label": "Anderer Messzeitpunkt"
            }
          ]
        }]
      },
      {
        "group_title": "Eine oder mehrere Möglichkeiten selektieren.",
        "group_subtitle": "Example (questionMultiSelect)",
        "group_id": "questionMultiSelect",
        "questions": [{
          "type": "questionMultiSelect",
          "var": "messzeitpunkte",
          "var_prefix": "[",
          "var_suffix": "]",
          "title": "Messzeitpunkte",
          "help": "Bei welchen Messzeitpunkten wurde eine Erhebung ausgeführt?",
          "label": "Erhebungen",
          "true_value": 1,
          "false_value": 0,
          "if": "Ausbildungsjahre > 12",
          "val": {
            "required": true
          },
          "options": [{
              "value": "1",
              "var": "eintritt",
              "label": "Eintritt"
            },
            {
              "value": "2",
              "var": "austritt",
              "label": "Austritt"
            },
            {
              "value": "3",
              "var": "anderer",
              "label": "Anderer Messzeitpunkt"
            }
          ]
        }]
      }
    ]
  }
}