scieee Science in your language
[en] (orig)
Universität Ulm | 89069 Ulm | Germany Fakultät für
Ingenieurwissenschaften,
Informatik und
Psychologie
Institut für Datenbanken
und Informationssysteme
Entwicklung und Konzeption einer mo-
dernen und feedbackgestützten iOS-
Anwendung für das KINDEX-Instrument
Bachelorarbeit an der Universität Ulm
Vorgelegt von:
Lina Xu
Gutachter:
Prof. Dr. Manfred Reichert
Betreuer:
Prof. Dr. Rüdiger Pryss
2019
Fassung 10. Dezember 2019
c
2019 Lina Xu
This work is licensed under the Creative Commons. Attribution-NonCommercial-ShareAlike 3.0
License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/de/
or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California,
94105, USA.
Satz: PDF-L
A
TEX2ε
Kurzfassung
"Gesundheit ist die erste Pflicht im Leben"[
1
]. Ein Zitat von Oscar Wilde macht uns klar
wie wichtig die Gesundheit in unserem Leben ist. Besonders im Leben einer Frau stellt die
Schwangerschaft einen neuen Lebensabschnitt dar. Um die Gesundheit der Mutter und
die des Kindes entsprechend zu gewährleisten, gibt es den evidenzbasierten Fragebogen
KINDEX
1
. In diesem werden die psychosozialen Risikofaktoren der Schwangeren, von
Gynäkologen 2erkannt und frühzeitig behandelt [2].
Um diesen Schritt in der Phase der Schwangerschaft zu erleichtern, gibt es für die
Schwangere die Möglichkeit den papierbasierten KINDEX Fragebogen online am Tablet
auszufüllen. Dadurch ist es der Schwangeren möglich den Fragebogen überall und jeder-
zeit auszufüllen. Ziel dieser Abschlussarbeit ist die Umsetzung und Realisierung einer
iPad-gestützten Anwendung. Diese speichert und wertet die Antworten der Schwange-
ren aus und übermittelt dies den betreuenden Gynäkologen. In der selben Anwendung
ist es dem Gynäkologen möglich die Auswertung des Fragebogens einzusehen, um eine
ggf. entsprechende Behandlung vorzuschlagen.
1Konstanzer Index
2
In dieser Arbeit wird auf Grund der besseren Lesbarkeit die Formulierung Gynäkologe oder Arzt verwern-
det. Dies schließt die Hebammen und Geburtshelfer mit ein.
iii
Inhaltsverzeichnis
1 Einleitung 1
1.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Struktur der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Verwandte Arbeiten 3
2.1 Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Good Night Medical - Sleep Apnea . . . . . . . . . . . . . . . . . . . . . . 4
3 Anforderungen 5
3.1 Anwendungsszenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.1 Rollenunabhängige Anforderungen . . . . . . . . . . . . . . . . . . 7
3.2.2 Anforderungen an die Rolle als Schwangere . . . . . . . . . . . . 8
3.2.3 Anforderungen an die Rolle als Gynäkologe . . . . . . . . . . . . . 9
3.3 Nicht-Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . 9
4 Architektur 11
4.1 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3.1 SubscribeStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.2 Questionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3.3 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4.1 Pregnant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4.2 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5 Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6 CardParts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
v
Inhaltsverzeichnis
5 Implementierung 33
5.1 Fragebogen anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 Vorstellung der Anwendung 39
6.1 Anmeldung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2 Schwangere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2.1 Studie einschreiben . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.2 Eingereichte Fragebögen . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.3 Abgebrochener Fragebogen . . . . . . . . . . . . . . . . . . . . . 45
6.2.4 Fragebogen ausfüllen . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.2.5 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.3 Gynäkologe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.3.1 Feedback schicken . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.3.2 Fragebögen exportieren . . . . . . . . . . . . . . . . . . . . . . . . 60
6.3.3 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7 Abgleich der Anforderungen 63
7.1 Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.1.1 Rollenunabhängige Anforderungen . . . . . . . . . . . . . . . . . . 63
7.1.2 Anforderungen an die Rolle als Schwangere . . . . . . . . . . . . 64
7.1.3 Anforderungen an die Rolle als Gynäkologe . . . . . . . . . . . . . 64
7.2 Nicht-Funktionale Anforderungen . . . . . . . . . . . . . . . . . . . . . . . 64
8 Fazit 65
8.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
vi
1
Einleitung
1.1 Problemstellung
In einer Schwangerschaft gibt es viele Faktoren auf die die Schwangere achten muss.
Unter anderem die Ernährung, ausreichend Bewegung und die Teilnahme an regelmä-
ßigen Vorsorgeuntersuchungen. Somit ist die Schwangere zusätzlich zu ihrer eigenen
Gesundheit ebenfalls für die Gesundheit des ungeborenen Kindes zuständig. Für viele
Frauen bedeutet das Stress, Angst, Verzweiflung oder Überforderung. Dies kann sich
ebenfalls negativ auf die Gesundheit des Kindes auswirken [
3
]. Um der Schwangeren
und ihrem Kind eine bestmögliche Betreuung zu bieten, ist es wichtig alle Risikofaktoren
zu erkennen. Sowohl für die Schwangere, als auch für den betreuenden Gynäkologen
[2].
1.2 Zielsetzung
Ein Instrument zur Erfassung der Risikofaktoren ist der Konstanzer Index (KINDEX) [
4
].
Dieser beinhaltet 23 Fragen
1
, unter anderem zur aktuellen Situation der Schwange-
ren, dem Vater des ungeborenen Kindes und relevante Erkrankungen. Mithilfe diesem
Fragebogen ist eine unmittelbare Auswertung durch den Gynäkologen möglich, damit
die Schwangere ein zielgerichtetes Feedback erhält [
5
]. Das Ziel dieser Arbeit ist die
Entlastung der Gynäkologen und Schwangeren bei der Erkennung von Risikofaktoren
während einer Schwangerschaft [
6
]. Zudem die komfortable Handlung und unmittelbare
Auswertung von Fragebögen der Schwangeren [7].
1einsehbar unter: http://www.babyforum-landkreis-konstanz.de/de/aktuelles/KINDEX-Interview.pdf
1
1 Einleitung
1.3 Struktur der Arbeit
Die Arbeit gibt zunächst einen kurzen Einblick in ähnliche Arbeiten. Anschließend werden
die Anforderungen an die Anwendung, unter anderem durch ein Anwendungsszenario,
beschrieben. Danach wird die Architektur der Anwendung erläutert und ausgewählte
Implementierungsdetails näher erklärt. Das Endergebnis der Anwendung wird mithilfe
von Bildern beschrieben. Nachfolgend werden die zuvor beschriebenen Anforderungen
an die Anwendung mit dem Endergebnis abgeglichen. Zuletzt wird eine Zusammenfas-
sung der Arbeit mit einem Ausblick auf Verbesserungs- und Erweiterungsmöglichkeiten
gegeben.
2
2
Verwandte Arbeiten
In diesem Abschnitt werden ähnliche Arbeiten zur Erkennung von Risikofaktoren bezie-
hungsweise Krankheiten vorgestellt.
2.1 Ada
Ada wurde 2011 gegründet und 2016 gelauncht. Durch die Zusammenarbeit von Soft-
wareentwicklern, Ärzten und Wissenschaftlern ist es ihnen möglich eine Gesundheits-
plattform zu erstellen, die den Menschen hilft ihre Gesundheit besser zu verstehen und
zu unterstützen.
Die KI-gestützte iOS App Ada [
8
] stellt in einem Chat
1
einfache und relevante Fragen,
die der Nutzer schnell und einfach beantworten kann. Anhand der gegebenen Antworten
führt die App eine Analyse durch, indem sie die Antworten mit ähnlichen Fällen ver-
gleicht, und einen entsprechenden Behandlungsvorschlag empfiehlt. Zusätzlich erhält
man weitere vertrauenswürdige Informationen zur möglichen Erkrankung durch eine
medizinische Bibliothek. Es ist ebenfalls möglich, die eigenen Berichte zu teilen oder zu
drucken. Somit ist es für jeden jederzeit und überall möglich die App zu nutzen.
Seitdem erhielt Ada einige Auszeichnungen, Zulassungen und Prüfzeichen.
Die App ist kostenlos und kann aus dem Apple App Store oder Google Play Store
heruntergeladen werden.
1elektronische Kommunikation mittels geschriebenem Text
3
2 Verwandte Arbeiten
2.2 Good Night Medical - Sleep Apnea
Eine kleine Gruppe von Fachleuten aus den Bereichen Gesundheitswesen, Finanzen
und Versicherungen gründeten eine Organisation die Menschen mit Schlafstörungen
hilft. Mittlerweile sind viele Standorte der Firma in den USA vertreten.
Die App Good Night Medical - Sleep Apnea [
9
] sammelt Informationen über den Nutzer,
durch Fragen die der Nutzer Schritt für Schritt beantworten kann. Dadurch werden
mögliche Risiken zur Schlafstörung erkannt. Wurde eine Schlafstörung diagnostiziert,
bietet Good Night Medical weitere Behandlungen an, darunter eine CPAP - Behandlung
2.
2
das Tragen einer Schlafmaske während des gesamten Schlafes um einen Überdruck auf die Atemwege
auszuüben
4
3
Anforderungen
Um den kompletten Funktionsumfang der Anwendung zu verdeutlichen, wird zunächst
ein Anwendungsszenario erläutert. Zusätzlich zu dieser werden die Funktionalen und
Nicht-Funktionalen Anforderungen beleuchtet.
3.1 Anwendungsszenario
Dieser Abschnitt beschreibt einen typischen Ablauf der Anwendung, siehe Abbildung
3.1. Die Anwendung unterscheidet zwischen zwei Rollen, die Rolle der Schwangeren
und die Rolle der Gynäkologen.
Eine Schwangere will einen Fragebogen ausfüllen. Dafür öffnet sie die Anwendung und
beantwortet die Fragen des Fragebogens. Nach dem Ausfüllen des Fragebogens reicht
sie die Antworten ein und wartet auf das Feedback des behandelnden Gynäkologen.
Daraufhin ist es dem behandelnden Gynäkologen möglich das Feedback des eingereich-
ten Fragebogens einzusehen. Stimmt er dem Feedback zu, kann er das Feedback an die
Schwangere verschicken. Infolgedessen kann die Schwangere das Feedback ebenfalls
einsehen und sowohl die Schwangere als auch der Gynäkologe können entsprechende
Gegenmaßnahmen einleiten.
5
3 Anforderungen
Fragebogen ausfüllen Fragebogen einreichen Feedback einsehen
Feedback verschickenFeedback einsehen
Gegenmaßnahmen
einleiten
Schwangere Schwangere Gynäkologe
GynäkologeSchwangereSchwangere, Gynäkologe
Abbildung 3.1: Typischer Ablauf
3.2 Funktionale Anforderungen
Da nicht jede Nutzung der Anwendung wie diese abläuft, gibt es weitere Anforderungen
an die Anwendung. Diese Anforderungen werden in Funktionale und Nicht-Funktionale
Anforderungen unterteilt. Funktionale Anforderungen beschreiben gewünschte Funk-
tionalitäten an die Anwendung. Die Nicht-Funktionalen Anforderungen beschreiben die
"Qualität"der gewünschten Funktionalität.
Die Funktionalen Anforderungen der Anwendung sind in drei Abschnitten aufgeteilt, da es
Funktionalitäten gibt die nur für eine bestimmte Rolle vorgesehen sind, beziehungsweise
Funktionalitäten die rollenunabhängig sind.
6
3.2 Funktionale Anforderungen
3.2.1 Rollenunabhängige Anforderungen
Die rollenunabhängige Anforderungen sind sowohl für die Schwangere, als auch für den
Gynäkologen vorhanden.
Anforderung Beschreibung
Login
Hat der Nutzer einen Account, soll es ihm möglich sein
sich in der App anzumelden. Sind die Anmeldedaten
nicht valide, soll der Nutzer eine entsprechende Meldung
erhalten.
Passwort vergessen
Kann sich der Nutzer nicht mehr an sein Passwort erin-
nern, soll er sein Passwort zurücksetzen können, indem
er seine E-Mail Adresse angibt. Daraufhin erhält er eine
E-Mail mit weiteren Anweisungen.
Rolle
Die App soll zwischen zwei verschiedenen Rollen unter-
scheiden: einen Arzt oder eine Schwangere. Für jede
Rolle gibt es unterschiedliche Funktionalitäten.
Internetverbindung
Die App soll nur mit einer Internetverbindung funktionie-
ren.
Account ansehen
Dem Nutzer soll es möglich sein, seine Accountdaten
einzusehen.
Passwort ändern
Es soll dem Nutzer möglich sein, sein Passwort zu än-
dern.
Abmelden
Der Nutzer hat die Möglichkeit sich in der App abzumel-
den.
Entwickler kontaktieren
Mithilfe eines Kontaktformulars ist es dem Nutzer möglich,
die Entwickler per E-Mail zu kontaktieren.
Sprache
Die App soll in den Sprachen Deutsch, Englisch und
Türkisch verfügbar sein.
Impressum Das Impressum soll für den Nutzer einsehbar sein.
7
3 Anforderungen
3.2.2 Anforderungen an die Rolle als Schwangere
Anforderung Beschreibung
Registrierung
Ist kein Account vorhanden, soll sich die Schwangere in der
App registrieren können.
Studie einschreiben
Ist die Schwangere angemeldet und nicht Teil der Studie,
soll sie sich mit einem Zugangspasswort in die Studie ein-
schreiben können.
Übersicht Fragebö-
gen
Auf der Startseite soll sich eine Übersicht aller eingereichter
Fragebögen der Schwangeren befinden. Ist ein Feedback
zu einem Antwortbogen vorhanden, soll dies entsprechend
gekennzeichnet sein.
Feedback einsehen
Ist ein Feedback zu einem Antwortbogen verfügbar, soll die
Schwangere dies einsehen können.
Fragebogen ausfül-
len
Für die Schwangere soll es eine Möglichkeit geben, einen
Fragebogen auszufüllen. Der Fortschritt soll anhand eines
Fortschrittsbalken und einer Prozentzahl ersichtlich sein.
Fragebogen abbre-
chen
Der Schwangeren soll es jederzeit möglich sein, beim Aus-
füllen eines Fragebogens, diesen abzubrechen. Entweder
soll sie den Fragebogen verwerfen oder den aktuellen Stand
mit bisher beantworteten Fragen speichern und zu einem
späteren Zeitpunkt fortsetzen können.
Abgebrochener Fra-
gebogen fortsetzen
Ist ein abgebrochener Fragebogen vorhanden, soll die
Schwangere diesen fortfahren können.
Alle benötigten Fra-
gen ausgefüllt
Fragen die unbedingt ausgefüllt werden müssen, sollen bei
jedem Block des Fragebogens überprüft werden. Sind die
entsprechenden Fragen nicht ausgefüllt, soll es der Schwan-
geren nicht möglich sein den Fragebogen weiter fortzuset-
zen.
Behandlung been-
den
Es soll der Schwangeren möglich sein, die Behandlung zu
beenden und sich von der Studie abzumelden.
8
3.3 Nicht-Funktionale Anforderungen
3.2.3 Anforderungen an die Rolle als Gynäkologe
Die folgenden Funktionalen Anforderungen beziehen sich auf die Rolle als Gynäkologe.
Anforderung Beschreibung
Übersicht Schwangere
Auf der Startseite soll sich eine Übersicht aller
Schwangeren des behandelnden Arztes befinden.
Detailansicht Schwangere
Eine Liste aller eingereichten Fragebögen einer
Schwangeren soll für den behandelnden Arzt einseh-
bar sein. Außerdem soll erkenntlich sein, zu welchen
Fragebögen bereits ein Feedback zurückgeschickt
wurde.
Feedback schicken
Hat der Arzt ein Feedback noch nicht zurückgeschickt,
soll es ihm möglich sein das Feedback einzusehen
und zu schicken.
Export als CSV Datei
Es ist dem Gynäkologen möglich, die Fragebögen aller
teilnehmenden Schwangeren inklusive Feedback als
CSV Datei zu exportieren.
3.3 Nicht-Funktionale Anforderungen
Zu den Funktionalen Anforderungen gibt es die folgenden Nicht-Funktionalen Anforde-
rungen.
Anforderung Beschreibung
iOS/iPadOS Anwendung
Die Anwendung soll auf dem mobilen Betriebssystem
iOS 12.2 oder neuer und iPadOS 13 oder neuer funk-
tionieren.
Bedienbarkeit
Die Anwendung soll einfach und intuitiv zu bedienen
sein.
Robustheit
Die Anwendung soll zuverlässig und fehlerfrei ablau-
fen.
9
4
Architektur
In diesem Kapitel werden die Prozesse der Anwendung mithilfe von Flussdiagrammen
realisiert [10].
Da die Anwendung zwischen zwei Rollen unterscheidet, ist die Architektur der Anwen-
dung ebenfalls in zwei Teilen aufgeteilt, siehe Abbildung 4.1. Zusätzlich gibt es einen
dritten Teil
Auth
zur Authentisierung des Anwenders der App. Bei der Authentisierung
wird anhand der eingegebenen Daten entschieden, welche Rolle der Anwender hat.
Gehören die eingegebenen Daten zu einer Schwangeren, folgt der Teil
User
. Ansonsten
gehören die Daten einem Gynäkologen, das heißt der Teil
Editor
folgt. Nach der
Rollenvergabe der Authentisierung ist es beiden Parteien möglich sich abzumelden und
somit wieder zur Authentisierung zurück zu kehren.
Außerdem gibt es ein Teil
API
in der die Requests mit der REST API, siehe 4.1, im-
plementiert wurden. In
Utilities
befinden sich die restlichen Komponenten die zur
Implementierung beigetragen haben.
11
4 Architektur
User Editor Utilities
API Auth
KINDEX
Abbildung 4.1: Allgemeine Architektur
4.1 REST API
Mithilfe der REST API
1
lassen sich Informationen zwischen Client und Server austau-
schen bzw. verändern [
11
]. In der Anwendung werden die folgenden HTTP-Methoden
verwendet:
GET fordert Daten an
POST übermittelt Daten
PUT/PATCH ändert bestehende Daten
DELETE löscht die angegebenen Daten
4.2 Auth
Beim Öffnen der App ist eine Anmeldung nötig. Dies setzt einen bereits vorhandenen
Account voraus. Hat sich der Nutzer jedoch bereits vorher auf dem Gerät angemeldet,
werden die Anmeldedaten aus der Datenbank geholt. Weshalb der Nutzer es nicht
nötig hat, seine Anmeldedaten bei jedem Öffnen der App einzugeben. Das bedeutet,
1Representational State Transfer Application Programming Interface
12
4.2 Auth
die Anmeldedaten müssen beim erstmaligen Benutzen nach der Installation der App
und nach dem Ausloggen der Nutzer eingegeben werden. Sind keine Anmeldedaten
vorhanden, holt die Anwendung die Anmeldedaten aus der Eingabe des Nutzers und
schreibt sie in die Datenbank.
Prozessstart
janein Anmeldedaten
vorhanden?
UserDefaults
Login
Editor User
Rolle überprüfen
Editor
bereits in Studie?
User
UserDefaults
Anmeldedaten aus
Eingabe des Nutzers Anmeldedaten
Abbildung 4.2: Anmeldeprozess
Es werden die folgenden Requests benötigt:
POST Login
GET Rolle überprüfen, bereits in Studie
Ist noch kein Account des Anwenders der App vorhanden, ist es dem Nutzer möglich
sich zu registrieren und sich somit einen Account anzulegen (siehe Abbildung 4.3). Eine
Registrierung ist nicht für einen Gynäkologen möglich.
13
4 Architektur
Prozessstart
Anmeldedaten
Registrieren
Prozessende
Abbildung 4.3: Registrierungsprozess
Es wird folgender Request benötigt:
POST Registrieren
14
4.3 User
Hat der Nutzer sein Passwort vergessen, wird ihm nach Eingabe seiner E-Mail Adresse
eine E-Mail mit weiteren Instruktionen gesendet. Dazu wird ein POST Request mit der
E-Mail Adresse des Nutzers gemacht (siehe Abbildung 4.4).
Prozessstart
E-Mail Adresse
E-Mail zur
Passwortrücksetzung
Prozessende
Abbildung 4.4: Prozess zum Zurücksetzen des Passwortes
Es wird folgender Request benötigt:
POST E-Mail zur Passwortrücksetzung
4.3 User
Nachdem die Anmeldedaten und Rolle der Studie überprüft wurden, unterteilt sich die
Ansicht der Schwangeren in drei Teilen, die im Laufenden näher beschrieben werden.
Einen
Questionnaire
Teil, einen
Profil
Teil und einen
SubscribeStudy
Teil (siehe
Abbildung 4.5).
15
4 Architektur
User
Questionnaire SubscribeStudyProfil
Abbildung 4.5: Allgemeine Struktur von User
4.3.1 SubscribeStudy
Nach dem Anmelden entscheidet die Anwendung mithilfe der API, um welche Rolle
es sich handelt. Handelt es sich um den Account einer Schwangeren, wird zusätzlich
überprüft ob sich die Schwangere bereits in der Studie befindet. Falls sie sich nicht in
der Studie befindet, kann sie sich durch Eingabe eines Zugangspasswortes in die Studie
einschreiben. Falls sie bereits in die Studie eingeschrieben ist, wird dieser Prozess nicht
durchgeführt.
Prozessstart
Studie einschreiben
Zugangspasswort
holen
Prozessende
Abbildung 4.6: Prozess zum Einschreiben in die Studie
16
4.3 User
Es werden die folgenden Requests benötigt:
POST Studie einschreiben
GET Zugangspasswort holen
4.3.2 Questionnaire
Beim Anzeigen der Antwortbögen der angemeldeten Schwangeren, wird mithilfe eines
GET Requests alle Antwortbögen angefordert. Danach werden alle Antwortbögen durch-
gegangen um mithilfe eines GET Requests festzustellen, ob ein Feedback vorhanden ist
oder nicht. Falls kein Feedback vorhanden ist, erscheint ein enstprechender Hinweis-
dialog für die Schwangere. Wurde der Antwortbogen vom Arzt eingesehen, werden alle
Feedbacks von der API mithilfe eines GET Requests geladen und mit den Antworten
des Antwortbogens verglichen. Treffen die Feedback Regeln zu, wird das Feedback
angezeigt.
17
4 Architektur
Antwortbögen
Antwortbogen
Details
ja
nein
Feedback
vorhanden?
Feedback
Antworten evaluieren
Feedback anzeigen
Prozessstart
Prozessende
Abbildung 4.7: Prozess zum Anzeigen der Antwortbögen und Feedback
Es werden die folgenden Requests benötigt:
GET Antwortbögen, Antwortbogen Details, Feedback
Beim Anzeigen des abgebrochenen Fragebogens wird zunächst überprüft, ob ein abge-
brochener Fragebogen vorhanden ist. Ist kein abgebrochener Fragebogen vorhanden,
wird nichts angezeigt. Ansonsten wird der Fragebogen von der JSON
2
Datei geladen.
Nachfolgend ist es der Schwangeren möglich, den Fragebogen fortzusetzen.
2JavaScript Object Notation
18
4.3 User
Prozessstart
Abgebrochener
Fragebogen
ja
abgebrochener
Fragebogen
vorhanden?
JSON Datei
Fragebogen fortsetzen
Abbildung 4.8: Prozess für abgebrochener Fragebogen
Um einen Fragebogen auszufüllen, wird zunächst die Struktur des Fragebogens verar-
beitet. Als nächstes wird der Fragebogen in einzelne Blöcke unterteilt. Es wird immer ein
Fragebogenblock angezeigt, bis das Ende des Fragebogens erreicht ist. Währenddessen
ist es der Schwangeren jederzeit möglich den Fragebogen abzubrechen und zu spei-
chern oder zu verwerfen. Ist das Ende des Fragebogens erreicht, ist eine Einreichung
des Fragebogens möglich.
19
4 Architektur
Abbildung 4.9: Prozess zum Ausfüllen eines Fragebogens
Es werden die folgenden Requests benötigt:
GET Struktur
POST Fragebogen einreichen
20
4.3 User
4.3.3 Profil
Unter
Profil
kann sich die Schwangere ihre Profildaten anzeigen lassen (siehe Abbil-
dung 4.10). Weiterhin kann sie ihr Passwort ändern (siehe Abbildung 4.11), ihre aktuelle
Behandlung beenden (siehe Abbildung 4.12) oder sich von der App abmelden (siehe
Abbildung 4.13).
Prozessstart
Account
Prozessende
Abbildung 4.10: Prozess zum Anzeigen der Account Daten des Benutzer
Es wird der folgende Request benötigt:
GET Account
21
4 Architektur
Prozessstart
neues Passwort aus
Eingabe des Nutzers
Passwort ändern
Prozessende
Abbildung 4.11: Prozess zum Ändern des Passwortes
Es wird der folgende Request benötigt:
PATCH Passwort ändern
Möchte die Schwangere die Behandlung beenden, werden zunächst die Daten der Studie
angezeigt. Ist eine Ausschreibung aus der Studie nicht möglich, wird der Schwangeren
ein entsprechender Hinweisdialog angezeigt. Ist die Schwangere nicht mehr Teil der
Studie, kann sie sich wieder einschreiben.
22
4.3 User
Prozessstart
Daten der Studie
Behandlung beenden
Studie einschreiben
ja
nein
Ausschreibung
möglich? Hinweis anzeigen
Abbildung 4.12: Prozess zur Beenden der Behandlung
Es werden die folgenden Requests benötigt:
GET Daten der Studie
DELETE Behandlung beenden
Beim Abmelden des Nutzers werden die Anmeldedaten aus der Datenbank entfernt und
man gelangt wieder zur Auth, siehe 4.2.
23
4 Architektur
Prozessstart
Anmeldedaten
entfernen
UserDefaults
Auth
Abbildung 4.13: Abmeldeprozess
4.4 Editor
Der
Editor
ist in die Teile
Pregnant
und
Profil
aufgeteilt. In
Pregnant
befinden
sich alle Implementierungen, die zwischen dem Arzt und seinen teilnehmenden Schwan-
geren stattfinden. Seine Accountdaten und alles was seinem Profil betreffen, befinden
sich in Profil.
Editor
Pregnant Profil
Abbildung 4.14: Allgemeine Struktur von Editor
24
4.4 Editor
4.4.1 Pregnant
Wird beim Anmelden des Nutzers die Rolle
Editor
festgelegt, ist es ihm möglich, aus
der Liste der teilnehmenden Schwangeren (siehe Abbildung 4.15) eine Schwangere
auszuwählen und die dazugehörigen eingereichten Fragebögen einzusehen (siehe
Abbildung 4.16).
Prozessstart
Studien-
teilnehmer
Details der
Studien-
teilnehmer
Prozessende
Abbildung 4.15: Pozess zum Anzeigen der teilnehmenden Schwangeren
Folgender Request wird benötigt.
GET Studienteilnehmer
Für eine teilnehmende Schwangere werden alle eingereichten Fragebögen mit Details
angezeigt. Ist noch kein Feedback zu einem Fragebogen versendet worden, werden die
Antworten des Fragebogens eingeholt und anhand der Feedback Regeln evaluiert.
25
4 Architektur
Prozessstart
Fragebogen
Fragebogen
Details
Prozessende
nein
ja
Feedback
vorhanden?
Antworten
Feedback
Feedback evaluieren
Abbildung 4.16:
Pozess zum Anzeigen der eingereichten Fragebögen einer
Schwangeren
26
4.4 Editor
Folgender Request wird benötigt.
GET Fragebogen, Antworten, Feedback
Ist noch kein Feedback an die Schwangere zurück geschickt worden, ist es dem behan-
delnden Arzt möglich, das Feedback anzusehen und zurückzuschicken.
Prozessstart
Feedback anzeigen
nein
ja Feedback
senden?
ProzessendeFeedback senden
Abbildung 4.17: Pozess zum Anzeigen und Versenden des Feedbacks
Folgender Request wird benötigt.
PATCH Feedback senden
Zuätzlich ist es dem Gynäkologen möglich, die Fragebögen der teilnehmenden Schwan-
geren als CSV
3
Datei zu exportieren. Für jede Schwangere und für jeden ihrer einge-
reichten Fragebögen werden die Antworten mit dem Feedback evaluiert. Anschließend
wird die CSV Datei mit den vorherigen Informationen erstellt.
3Comma-separated values
27
4 Architektur
Prozessstart
Fragebogen
Antworten
Feedback
CSV Datei erstellen
Prozessende
Feedback evaluieren
Studien-
teilnehmer
Abbildung 4.18: Pozess zum Exportieren der Fragebögen als CSV Datei
28
4.5 Utilities
Folgender Request wird benötigt.
GET Studienteilnehmer, Fragebogen, Feedback
4.4.2 Profil
Die Pozesse des behandelnden Arztes sind beinahe identisch mit der einer Schwange-
ren, siehe 4.3.3. Es ist dem Arzt lediglich nicht möglich, die Behandlung seinerseits zu
beenden.
4.5 Utilities
In
Utilities
befinden sich die Enumerationen
4
, Structure
5
und ein JSON
6
Umwand-
ler. Die Architektur wird anhand von Klassendiagrammen dargestellt (siehe Abbildung
4.19).
Role eine Enumeration zur Festlegung der Rolle des Nutzers
Questiontype
eine Enumeration für die verschiedene Arten von Fragetypen des Frage-
bogens
JSONConverter eine Klasse zur Erstellung und Auslesung einer JSON Datei
Question eine Struktur zur Beschreibung einer Frage des Fragebogens
Answer eine Struktur zur Beschreibung einer Antwort einer Schwangeren
Pregnant eine Struktur zur Beschreibung einer Schwangeren
4definiert einen gemeinsamen Typ für eine Gruppe von zugehörigen Werten
5mithilfe von Structure lassen sich eigene Typen definieren
6JavaScript Object Notation
29
4 Architektur
Utilities
<<enumeration>>
Role
user
editor
<<enumeration>>
Questiontype
freetextNumberOnly
singleChoice
freetext
slider
multipleChoice
newPage
<<structure>>
Question
questiontype : Questiontype
label : String
requierd : Int
question: String
values : [String]
sliderValues : [Any]
sliderSteps : [String:Int]
multipleChoice : [String]
<<structure>>
Answer
label : String
value : Any
collected_at : Int
dictionary ([String:Any]) : [collected_at, label, value]
<<structure>>
Pregnant
userID : String
userName : String
firstName : String
lastName : String
email : String
<<class>>
JSONConverter
saveAsJSONFile([String:Any])
readJSONFromFile() : [String:Any]
getDocumentsDirectory() : URL
Abbildung 4.19: Klassendiagramm Utilities
30
4.6 CardParts
4.6 CardParts
Die Anwendung verwendet ein reaktives, kartenbasiertes UI-Framework [
12
]. Das Frame-
work wird, zum Beispiel, zum Anzeigen der eingereichten Fragebögen (siehe Abbildung
4.7) einer Schwangeren verwendet. In der wird jeder Fragebogen durch eine eigene
Card
dargestellt. Jede
Card
besteht aus mehreren
CardParts
Elementen. Es ist
möglich das Aussehen der
Cards
selbst zu konfigurieren, aber auch die einzelnen
CardParts Elemente. CardParts Elemente können sein:
CardPartTextView zum Anzeigen eines Textes
CardPartSeparatorView eine einzelne horizontale Linie
CardPartSpacerView fügt einen Abstand zwischen CardParts Elementen hinzu
31
5
Implementierung
In diesem Abschnitt werden einige ausgewählte Implementierungsdetails vorgestellt und
näher erläutert.
5.1 Fragebogen anzeigen
Eine wichtige Funktionalität für die Schwangere ist die Möglichkeit den Fragebogen
auszufüllen und einzureichen. Diese Funktionalität ist in
Questionnaire
unter
User
zu finden (siehe Abbildung 4.5). Um einen Fragebogen auszufüllen wird zunächst in
Zeile 3 die Struktur des Fragebogens mithilfe eines GET Requests angefordert. Die
erhaltene Daten werden ab Zeile 6 gefiltert und je nach Art der Frage dementsprechend
dem Array
1questions
hinzugefügt. Handelt es sich um eine neue Seite wird dem
Array
questions
ein neues
Question
Element hinzugefügt. Handelt es sich nicht um
eine neue Seite wird überprüft um welchen folgenden Fragetyp es sich handelt:
Freetext-NumberOnly als Antwort werden Zahlen erwartet
SingleChoice es gibt zwei Antwortmöglichkeiten, in der eines ausgewählt werden soll
Freetext ein Freitext wird erwartet
Slider es gibt mehrere Antwortmöglichkeiten
MultipleChoice es gibt mehrere Antwortmöglichkeiten
Nachdem alle Fragen durchgegangen sind, enthält das Array
questions
mehrere
Question Elemente mit den benötigten Informationen.
1Liste von Werten
33
5 Implementierung
1func prepareStructur(){
2//get structure of questionnaire
3URLRequests.getRequest(url: "/api/v1/questionnaires/
4\(URLRequests.questionnaireID)/structure")
5
6let data = URLRequests.dataDictionary["data"] as! [Any]
7for attribute in data {
8let att = attribute as! [String:Any]
9let a = att["attributes"] as! [String:Any]
10 let content = a["content"] as! [String:Any]
11 //check if actual one is page element
12 let elementtype = a["elementtype"] as! String
13 if(elementtype == "elements/pages"){
14 //new page
15 questions.append(Question(questiontype: Questiontype.newPage))
16 }else {
17 let q = content["question"] as! String
18 let qt = content["questiontype"] as! String
19 let required = content["required"] as! Int
20 let label = content["label"] as! String
21 //convert questiontype to enum
22 switch qt {
23 case "Freetext-NumberOnly":
24 questions.append(Question(questiontype:
25 Questiontype.freetextNumberOnly, label:label, required:
26 required, question: q))
27 case "SingleChoice":
28 let v = content["answers"] as! [String]
29 questions.append(Question(questiontype:
30 Questiontype.singleChoice, label:label, required: required,
31 question: q, values: v))
34
5.1 Fragebogen anzeigen
32 case "Freetext":
33 questions.append(Question(questiontype:
34 Questiontype.freetext, label:label, required: required,
35 question: q))
36 case "Slider":
37 let answers = content["answers"] as! [Any]
38 let values = content["values"] as! [String:Int]
39 var sliderValues = [Any]()
40 for value in answers {
41 let l = value as! [String:Any]
42 sliderValues.append(l)
43 }
44 questions.append(Question(questiontype:
45 Questiontype.slider, label:label, required: required,
46 question: q, sliderValues: sliderValues, sliderSteps: values))
47 case "MultipleChoice":
48 let answers = content["answers"] as! [String]
49 questions.append(Question(questiontype:
50 Questiontype.multipleChoice, label:label, required: required,
51 question: q, multipleChoice: answers))
52 default:
53 print("questiontype missing: "+qt)
54 }
55 }
56 }
57 }
Listing 5.1: Fragebogen Struktur
Da der Fragebogen aus mehreren Fragebogenblocks besteht, kennzeichnet der Fragetyp
newPage
den Zeitpunkt, wann ein neuer Fragebogenblock beginnt. Es wird immer nur
ein Fragebogenblock auf einmal angezeigt.
35
5 Implementierung
Nachdem die Struktur des Fragebogens verarbeitet wurde, wird das Array
questions
durchgegangen und dem Nutzer dargestellt. In Zeile 4 wird in einer Schleife die Elemente
im Array
questions
durchgegangen und für jeden Frage wird eine neue View
2
erzeugt.
Dadurch wird jede Frage untereinander angezeigt, bis es sich um den Fragetyp
newPage
handelt. In dem Fall, endet der Frageblock und die nächsten Fragen werden nicht mehr
angezeigt.
1func iterateThroughQuestionnaires(){
2//yPos of the adding views
3var yPos = 0
4for current in questions {
5//add view to scrollview with current question element
6addViews(xPos: 0, yPos: yPos, q: current)
7//next view y position
8yPos+=200
9//up to which index i have to delete
10 index+=1
11 if(current.questiontype == Questiontype.newPage){
12 //range to delete
13 range = 0...index
14 break
15 }
16 displayedNumberOfQuestions += 1
17 }
18 }
Listing 5.2: Fragen durchgehen
Wenn die Schwangere beim Ausfüllen des aktuellen Fragebogenblocks auf "Weiter"tippt,
soll der nächste Fragebogenblock angezeigt werden. Zuvor wird jedoch in Zeile 4
überprüft, ob sie alle benötigten Fragen des aktuellen Fragebogenblocks ausgefüllt hat.
Wurden alle benötigten Fragen beantwortet, werden die Antworten der Schwangeren in
2UIView, verwaltet einen rechteckigen Bereich auf dem Bildschirm
36
5.1 Fragebogen anzeigen
Zeile 6 gespeichert. Die ScrollView zum Anzeigen der Fragen wird in Zeile 9 nach oben
gescrollt. Der Fortschritt des Fragebogens wird in Zeile 16 aktualisiert. Dann werden die
aktuellen Fragen aus dem Array
questions
und alle Views, die zur Anzeige der Fragen
erzeugt wurden, entfernt. Ist das Array
questions
nach der Entfernung der aktuellen
Fragen leer, ist das Ende des Fragebogens erreicht.
1@objc func buttonAction(_ sender:UIButton!)
2{
3//check if all required fields are set
4if(checkRequiredFields()){
5//save users answers
6saveUsersAnswers()
7
8//shows top part of content view
9scrollView.setContentOffset(CGPoint(x: 0, y:
10 self.scrollView.contentInset.top), animated: true)
11
12 //set progress bar and label
13 var parentResponder: UIResponder? = self
14 while parentResponder != nil {
15 parentResponder = parentResponder!.next
16 if let addQuestionView = parentResponder as? AddQuestionnaireVC{
17 var _ = addQuestionView.updateProgressBarAndLabel()
18 }
19 }
20
21 displayedNumberOfQuestions = 0
22 //delete previous, AFTER tapped on next
23 questions.removeSubrange(range)
24 //delete previous views
25 for view in scrollView.subviews {
26 view.removeFromSuperview()
37
5 Implementierung
27 }
28 //set new index after removing elements
29 index = -1
30
31 //check if there are any questions elements left
32 if(questions.isEmpty){
33 //end of questionnaire
34 questionnaireEnd()
35 }else {
36 //new iteration
37 iterateThroughQuestionnaires()
38 }
39 }//do nothing if not all fields are set
40
41 }
Listing 5.3: Nächster Fragebogenblock anzeigen
38
6
Vorstellung der Anwendung
Das Endergebnis der Anwendung wird in diesem Kapitel beschrieben. Anhand von
Bildern werden die Funktionalitäten der Anwendung erläutert. Das Kapitel unterteilt sich,
mit Ausnahme vom Anmelden, in den rollenabhängigen Funktionalitäten.
6.1 Anmeldung
Die Anmeldung in die App ist sowohl für die Schwangere als auch für den Gynäkologen
gleich, da die Anwendung in diesem Fall noch nicht weiß welche Rolle der Nutzer hat.
Findet die Anwendung keine Anmeldedaten in der Datenbank, muss der Nutzer seine
Anmeldedaten in den Textfeldern eingeben. In dem oberen Textfeld den Benutzernamen
oder die E-Mail Adresse und im unteren Textfeld das zugehörige Passwort. Durch Tippen
auf „Anmelden“ startet der Anmeldeprozess und die Anmeldedaten werden überprüft.
39
6 Vorstellung der Anwendung
Abbildung 6.1: Anmeldung
Durch Tippen auf „Passwort vergessen“ erscheint eine neue Ansicht mit einem Textfeld in
der der Nutzer seine E-Mail Adresse eingeben kann. Nach Tippen auf „Senden“ werden
dem Nutzer weitere Instruktionen per E-Mail geschickt.
40
6.1 Anmeldung
Abbildung 6.2: Passwort vergessen
Ist noch kein Account für die Schwangere vorhanden, ist es der Schwangeren möglich
sich durch Tippen auf „Registrieren“ einen Account anzulegen. Dadurch erscheint eine
neue Ansicht, in der die Schwangere folgende Textfelder ausfüllen muss.
Benutzername darf maximal 255 Zeichen enthalten
E-Mail Adresse
Passwort muss mindestens acht Zeichen enthalten
Passwort wiederholen das Passwort und die Wiederholung muss identisch sein
Nachdem der Nutzer alle Textfelder ausgefüllt hat und die Passwörter übereinstimmen,
wird der Schwangeren einen Account durch Tippen auf „Registrieren“ erstellt.
41
6 Vorstellung der Anwendung
Abbildung 6.3: Registrierung
6.2 Schwangere
Die Ansicht der Schwangeren unterteilt sich in zwei große Bereiche die durch die untere
Main Tab Bar 1dargestellt wird. Dadurch ist es der Schwangeren möglich zwischen der
Ansicht von Fragebogen und Profil zu wechseln.
1siehe https://developer.apple.com/documentation/uikit/uitabbarcontroller
42
6.2 Schwangere
6.2.1 Studie einschreiben
Ist die Schwangere noch nicht Teil der Studie wird zunächst ein Zugangspasswort
gefordert. Erst durch das Eingeben des richtigen Zugangspasswortes ist sie in die Studie
eingeschrieben. Das Zugangspasswort erhält die Schwangere vom behandelnden Arzt.
Diese Ansicht wird der Schwangeren nur angezeigt, wenn sie nicht Teil der Studie ist.
6.2.2 Eingereichte Fragebögen
Nachdem die Anwendung die Rolle des Nutzers als Schwangere festgestellt hat und sie
Teil der Studie ist, erscheint der Schwangeren eine Übersicht über alle eingereichten
Fragebögen. Jeder dieser Fragebögen wird durch eine „Karte“
2
dargestellt. In der
werden der Schwangeren folgende Informationen bereitgestellt.
Titel
Zeitpunkt der Einreichung
wann der Fragebogen von der Schwangeren eingereicht
wurde
Feedback ob bereits ein Feedback vorhanden ist
2Card Parts, siehe https://github.com/intuit/CardParts
43
6 Vorstellung der Anwendung
Abbildung 6.4: Übersicht eingereichter Fragebögen
Ist ein Feedback vorhanden, ist es der Schwangeren möglich, durch Tippen auf den
entsprechenden Fragebogen das Feedback angezeigt zu bekommen. In diesem wird
angezeigt von welchem Fragebogen das Feedback stammt und von welcher Frage das
Feedback stammt. Für den Fall das ein Fragebogen zwar eingereicht wurde aber noch
kein Feedback vorhanden ist, wird ein entsprechender Dialog angezeigt.
44
6.2 Schwangere
Abbildung 6.5: Feedback
6.2.3 Abgebrochener Fragebogen
Die Ansicht lässt sich durch Tippen auf „Abgebrochen“ zu dem Fragebogen wechseln,
in der der Schwangeren den Fragebogen angezeigt wird der unterbrochen wurde. Gibt
es keinen abgebrochenen Fragebogen wird dies entsprechend angezeigt. Ist jedoch ein
abgebrochener Fragebogen vorhanden, wird dies mit Zeitpunkt des Abbruchs und den
Prozentsatzes des ausgefüllten Fragebogens angezeigt. Durch Tippen auf den abgebro-
chenen Fragebogen ist es der Schwangeren möglich, den Fragebogen fortzusetzen.
45
6 Vorstellung der Anwendung
Abbildung 6.6: Abgebrochener Fragebogen
6.2.4 Fragebogen ausfüllen
Um einen Fragebogen auszufüllen, tippt die Schwangere auf das „+“. Dadurch erscheint
der Schwangeren zunächst ein Hinweisdialog, in der ihr deutlich gemacht wird, dass die
Fragen die mit einem * gekennzeichnet sind, ausgefüllt werden müssen.
46
6.2 Schwangere
Abbildung 6.7: Hinweisdialog
Anschließend ist es der Schwangeren jederzeit während dem Ausfüllen des Fragebogens
möglich, den Fragebogen abzubrechen (ohne zu speichern) oder abzubrechen und zu
speichern. Ebenfalls wird während dem Ausfüllen der Fortschritt des Fragebogens durch
einen Fortschrittsbalken und eine Prozentzahl deutlich gemacht. Dadurch ist erkenntlich,
wieviel die Schwangere bereits ausgefüllt hat bzw. wieviel ihr noch bevor steht.
Der Fragebogen wird in mehreren Frageblöcken unterteilt. Es wird immer nur ein Block
auf einmal angezeigt. Am Ende jeden Frageblocks gibt es einen Button „Weiter“. Durch
Tippen auf „Weiter“ wird der nächste Block angezeigt, bis man das Ende des Fragebo-
gens erreicht. In jedem Block befinden sich eine oder mehrere Fragen.
47
6 Vorstellung der Anwendung
Jede Frage gliedert sich in Fragetext und Antworttyp auf. Im Fragebogen gibt es die
folgenden Antworttypen.
Freitext
der Schwangeren ist es möglich durch einen Textfeld mit einem Freitext zu
antworten
Zahleneingabe
durch Eingabe in das Textfeld ist es der Schwangeren möglich eine
Zahl einzugeben
Ja/Nein Auswahl
durch eine Switch
3
ist es der Schwangeren möglich, die Frage mit
Ja oder Nein zu beantworten
Likert Auswahl
auf einer abgestuften Antwortskala den Sachverhalt zustimmen bzw.
ablehnen
Auswahl aus mehreren Antwortmöglichkeiten
durch Vorgabe von mehreren Antwort-
möglichkeiten kann die Schwangere eine Antwort auswählen
3siehe https://developer.apple.com/documentation/uikit/uiswitch
48
6.2 Schwangere
Abbildung 6.8: Ausfüllen des Fragebogens
49
6 Vorstellung der Anwendung
Abbildung 6.9: Ausfüllen des Fragebogens
Wurden Fragen die beantwortet werden müssen, nicht beantwortet, wird ein entspre-
chender Hinweis angezeigt und es ist der Schwangeren nicht möglich den nächsten
Frageblock anzuzeigen, bis sie die Frage(n) ausgefüllt hat.
Erreicht die Schwangere das Ende des Fragebogens, kann sie den Fragebogen durch
Tippen auf „Einreichen“ einreichen.
Will die Schwangere einen abgebrochenen Fragebogen fortsetzen, wird der Stand des
Fragebogens beim Zeitpunkt des Abbruchs geladen. Dann ist es der Schwangeren
möglich den Fragebogen weiter auszufüllen.
50
6.2 Schwangere
Abbildung 6.10: Fragebogen einreichen
51
6 Vorstellung der Anwendung
6.2.5 Profil
Durch Tippen auf „Profil“ in der unteren Main Tab Bar wechselt die Schwangere zwischen
„Fragebogen“ und „Profil“. Diese Ansicht teilt sich in den Bereich „Profil“ und „Sonstiges“
ein. Unter „Profil“ befinden sich alle Funktionalitäten und Informationen die mit dem
Account des Nutzers zu tun haben. Die Accountdaten werden unter „Account“ dargestellt.
Abbildung 6.11: Accountdaten des Nutzers
52
6.2 Schwangere
Es gibt außerdem die Möglichkeit sein Passwort zu ändern, indem man das neue
Passwort eingibt und durch Tippen auf „Ändern“ bestätigt. Das neue Passwort muss
mindestens acht Zeichen lang sein.
Abbildung 6.12: Passwort ändern
Zusätzlich werden der Schwangeren die eingeschriebene Studie und das Beitrittsdatum
angezeigt. Durch Tippen auf „Behandlung beenden“ ist es der Schwangeren jederzeit
möglich, die Behandlung zu beenden und sich aus der Studie auszuschreiben.
Unter „Sonstiges“ kann die Schwangere die Entwickler kontaktieren oder das Impressum
einsehen. Durch Tippen auf „Senden"wird das E-Mail Programm des Geräts geöffnet
und die eingegebenen Texte übertragen.
53
6 Vorstellung der Anwendung
Abbildung 6.13: Behandlung beenden
54
6.2 Schwangere
Abbildung 6.14: Entwickler kontaktieren
55
6 Vorstellung der Anwendung
Eine weitere Funktionalität ist das Abmelden des angemeldeten Nutzers. Dies ist durch
das Tippen auf „Logout“ möglich. Nach dem Ausloggen des Nutzers wird dem Nutzer
die Login Ansicht (siehe 6.1) angezeigt.
Abbildung 6.15: Profil
6.3 Gynäkologe
Die Ansicht des Gynäkologen ist analog zu der der Schwangeren. Seine Ansicht un-
terteilt sich in den zwei Bereichen „Schwangere“ und „Profil“, die mittels Main Tab Bar
gewechselt werden kann.
56
6.3 Gynäkologe
6.3.1 Feedback schicken
Nach Festlegung der Rolle als Gynäkologe erscheint dem Gynäkologen eine Ansicht
über die der Studie teilnehmenden Schwangeren. Jede Schwangere erhält eine separate
„Karte“ 4. In der werden die folgenden Informationen der Schwangeren dargestellt.
Vorname
falls der Vorname von der Schwangeren nicht angegeben wurde, wird dies
durch „n.a.“ deutlich gemacht
Nachname
falls der Nachname von der Schwangeren nicht angegeben wurde, wird
dies durch „n.a.“ deutlich gemacht
Benutzername
der Benutzername der Schwangeren die sie in der Registration ange-
geben hat
E-Mail Adresse
die E-Mail Adresse der Schwangeren die sie in der Registration ange-
geben hat
4Card Parts, siehe https://github.com/intuit/CardParts
57
6 Vorstellung der Anwendung
Abbildung 6.16: Übersicht über alle teilnehmenden Schwangeren
Durch Tippen auf eine Schwangere, erhält der Gynäkologe eine Übersicht über die
eingereichten Fragebögen der Schwangeren. Die Fragebögen sind folgendermaßen
aufgebaut:
Titel
Datum der Zeitpunkt der Einreichung des Fragebogens durch die Schwangere
Feedback ob bereits ein Feedback gesendet wurde
Hat der Gynäkologe noch kein Feedback gesendet, kann er das durch Tippen auf den
entsprechenden Fragebogen tun. Es wird ihm das Feedback angezeigt. Durch Tippen
auf „Senden“ kann er das Feedback an die Schwangere schicken. Wurde bereits ein
Feedback gesendet, wird der Gynäkologe darauf hingewiesen.
58
6.3 Gynäkologe
Abbildung 6.17: Übersicht über die eingereichten Fragebögen einer Schwangeren
59
6 Vorstellung der Anwendung
Abbildung 6.18: Feedback versenden
6.3.2 Fragebögen exportieren
Auf der Übersichtsseite der Schwangeren hat der Gynäkologe unter anderem die Möglich-
keit Fragebögen zu exportieren. Dadurch werden von allen teilnehmenden Schwangeren
die eingereichten Fragebögen inklusive Feedback als CSV
5
Datei umgewandelt. Diese
Datei kann er, unter anderem, als Anhang in einer E-Mail versenden, mit AirDrop teilen
oder in Dateien abspeichern.
5Comma-seperated values
60
6.3 Gynäkologe
Abbildung 6.19: Exportieren als CSV Datei
61
6 Vorstellung der Anwendung
6.3.3 Profil
Analog zum Profil der Schwangeren (siehe 4.2.5) hat der Gynäkologe beinahe die
gleichen Funktionalitäten wie die Schwangere. Die Funktionalität die Behandlung zu
beenden ist dem Gynäkologen nicht möglich.
Abbildung 6.20: Profil
62
7
Abgleich der Anforderungen
Die Funktionalen (siehe Abschnitt 3.2) und Nicht-Funktionalen Anforderungen (siehe
Abschnitt 3.3) werden in diesem Kapitel mit dem Endergebnis verglichen.
7.1 Funktionale Anforderungen
7.1.1 Rollenunabhängige Anforderungen
Anforderung Beschreibung
Login Anforderung erfüllt.
Passwort vergessen Anforderung erfüllt.
Rolle Anforderung erfüllt.
Internetverbindung Anforderung erfüllt.
Account ansehen Anforderung erfüllt.
Passwort ändern Anforderung erfüllt.
Abmelden Anforderung erfüllt.
Entwickler kontaktieren Anforderung erfüllt.
Sprache Anforderung erfüllt.
Impressum Anforderung erfüllt.
63
7 Abgleich der Anforderungen
7.1.2 Anforderungen an die Rolle als Schwangere
Anforderung Beschreibung
Registrierung Anforderung erfüllt.
Studie einschreiben Anforderung erfüllt.
Übersicht Fragebögen Anforderung erfüllt.
Feedback einsehen Anforderung erfüllt.
Fragebogen ausfüllen Anforderung erfüllt.
Fragebogen abbrechen Anforderung erfüllt.
Abgebrochener Fragebo-
gen fortsetzen Anforderung erfüllt.
Alle benötigten Fragen aus-
gefüllt Anforderung erfüllt.
Behandlung beenden Anforderung erfüllt.
7.1.3 Anforderungen an die Rolle als Gynäkologe
Anforderung Beschreibung
Übersicht Schwangere Anforderung erfüllt.
Detailansicht Schwangere Anforderung erfüllt.
Feedback schicken Anforderung erfüllt.
Export als CSV Datei Anforderung erfüllt.
7.2 Nicht-Funktionale Anforderungen
Anforderung Beschreibung
iOS/iPadOS Anwendung Anforderung erfüllt.
Bedienbarkeit Anforderung erfüllt.
Robustheit Anforderung erfüllt.
64
8
Fazit
Mithilfe einer App soll es Schwangeren möglich sein, einfach und überall einen Fra-
gebogen auszufüllen. Dies soll die Kommunikation zwischen Schwangeren und dem
behandelnden Arzt erleichtern und unterstützen. Die Anwendung erfüllt sowohl die
Funktionalen, als auch die Nicht-Funktionalen Anforderungen. Insgesamt enstand eine
lauffähige App, in der Schwangere und Ärzte Risikofaktoren während der Schwanger-
schaft erkennen und demenstprechend behandeln können.
8.1 Ausblick
Eine Möglichkeit die Anwendung zu verbessern ist eine Offline Funktionalität hinzuzufü-
gen. Denn es kann sein, dass der Nutzer unterwegs ist und in einer Gegend ist in der
keine ausreichende Internetverbindung zur Verfügung steht. Nichtsdestotrotz möchte
der Nutzer die Anwendung verwenden können.
Desweiteren könnte man eine Funktion hinzufügen, in der die Schwangere einen Termin
mit dem Arzt vereinbaren kann. Dadurch ist es der Schwangeren möglich, das Feedback
des behandelnden Arztes mit dem Arzt zu besprechen, falls sie zusätzliche Fragen hat.
Zusätzlich wäre eine Erweiterung der Sprachen möglich, sodass die App nicht nur in
Deutsch, Englisch und Türkisch verfügbar ist. Somit könnte man eine breitere Masse
ansprechen.
Um die Zufriedenheit der Nutzer zu gewährleisten ist es jedoch nötig, die App unter
realen Bedingungen zu nutzen und stetig zu verbessern.
65
Literaturverzeichnis
[1]
Wilde, O.F.O.W.: Ernst sein ist alles oder Bunbury (The Importance of Being
Earnest). (1895)
[2]
Ruf-Leuschner, M., Pryss, R., Liebrecht, M., Schobel, J., Spyridou, A., Reichert,
M., Schauer, M.: Preventing further trauma: Kindex mum screen-assessing and
reacting towards psychosocial risk factors in pregnant women with the help of
smartphone technologies. (2013)
[3]
Fiala, C.: Stress in der Schwangerschaft.
https://www.9monate.de/schwang
erschaft-geburt/schwangerschaft/Stress-in-der-Schwangersch
aft-erhoeht-Depressionsrisiko-beim-Kind-id117033.html
(2018)
abgerufen am 18.11.2019.
[4]
Ruf-Leuschner, M., Brunnemann, N., Schauer, M., Pryss, R., Barnewitz, E., Lieb-
recht, M., Kratzer, W., Reichert, M., Elbert, T.: Die kindex-app-ein instrument
zur erfassung und unmittelbaren auswertung von psychosozialen belastungen
bei schwangeren in der täglichen praxis bei gynäkologinnen, hebammen und in
frauenkliniken. Verhaltenstherapie 26 (2016) 171–181
[5]
Pryss, R., Schlee, W., Langguth, B., Reichert, M.: Mobile crowdsensing services for
tinnitus assessment and patient feedback. In: 2017 IEEE International Conference
on AI & Mobile Services (AIMS), IEEE (2017) 22–29
[6]
Schobel, J., Probst, T., Reichert, M., Schickler, M., Pryss, R.: Enabling sophisticated
lifecycle support for mobile healthcare data collection applications. IEEE Access
7
(2019) 61204–61217
[7]
Schickler, M., Reichert, M., Pryss, R., Schobel, J., Schlee, W., Langguth, B.: Entwick-
lung mobiler Apps: Konzepte, Anwendungsbausteine und Werkzeuge im Business
und E-Health. Springer-Verlag (2015)
[8] Ada: ada. (https://ada.com/de/) zuletzt abgerufen am 03.12.2019.
67
Literaturverzeichnis
[9]
Medical, G.N.: Good night medical. (
https://www.goodnightmedical.com
)
zuletzt abgerufen am 03.12.2019.
[10]
Bundesministerium des Innern, f.B.u.H.: Prozessmodelle. (
https://www.or
ghandbuch.de/OHB/DE/Organisationshandbuch/6_MethodenTechnike
n/62_Dokumentationstechniken/624_Prozessmodelle/prozessmode
lle-node.html;jsessionid=4F0032CD7D494C1D62A1D5EABE8DCDA6.2_
cid340#doc4392442bodyText2) zuletzt abgerufen am 03.12.2019.
[11]
Pryss, R., Schobel, J., Reichert, M.: Requirements for a flexible and generic
api enabling mobile crowdsensing mhealth applications. In: 2018 4th International
Workshop on Requirements Engineering for Self-Adaptive, Collaborative, and Cyber
Physical Systems (RESACS), IEEE (2018) 24–31
[12]
Intuit: CardParts.
https://github.com/intuit/CardParts
(2018) zuletzt
abgerufen am 03.12.2019.
68
Abbildungsverzeichnis
3.1 Typischer Ablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1 Allgemeine Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Anmeldeprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Registrierungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.4 Prozess zum Zurücksetzen des Passwortes . . . . . . . . . . . . . . . . . 15
4.5 Allgemeine Struktur von User . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.6 Prozess zum Einschreiben in die Studie . . . . . . . . . . . . . . . . . . . 16
4.7 Prozess zum Anzeigen der Antwortbögen und Feedback . . . . . . . . . . 18
4.8 Prozess für abgebrochener Fragebogen . . . . . . . . . . . . . . . . . . . 19
4.9 Prozess zum Ausfüllen eines Fragebogens . . . . . . . . . . . . . . . . . 20
4.10 Prozess zum Anzeigen der Account Daten des Benutzer . . . . . . . . . . 21
4.11 Prozess zum Ändern des Passwortes . . . . . . . . . . . . . . . . . . . . 22
4.12 Prozess zur Beenden der Behandlung . . . . . . . . . . . . . . . . . . . . 23
4.13 Abmeldeprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.14 Allgemeine Struktur von Editor . . . . . . . . . . . . . . . . . . . . . . . . 24
4.15 Pozess zum Anzeigen der teilnehmenden Schwangeren . . . . . . . . . . 25
4.16 Pozess zum Anzeigen der eingereichten Fragebögen einer Schwangeren 26
4.17 Pozess zum Anzeigen und Versenden des Feedbacks . . . . . . . . . . . 27
4.18 Pozess zum Exportieren der Fragebögen als CSV Datei . . . . . . . . . . 28
4.19 Klassendiagramm Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.1 Anmeldung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.2 Passwort vergessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.3 Registrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.4 Übersicht eingereichter Fragebögen . . . . . . . . . . . . . . . . . . . . . 44
6.5 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.6 Abgebrochener Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.7 Hinweisdialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
69
Abbildungsverzeichnis
6.8 Ausfüllen des Fragebogens . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.9 Ausfüllen des Fragebogens . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.10 Fragebogen einreichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.11 Accountdaten des Nutzers . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.12 Passwort ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.13 Behandlung beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.14 Entwickler kontaktieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.15 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.16 Übersicht über alle teilnehmenden Schwangeren . . . . . . . . . . . . . . 58
6.17 Übersicht über die eingereichten Fragebögen einer Schwangeren . . . . 59
6.18 Feedback versenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.19 Exportieren als CSV Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.20 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
70
Name: Lina Xu Matrikelnummer: 909568
Erklärung
Ich erkläre, dass ich die Arbeit selbstständig verfasst und keine anderen als die angege-
benen Quellen und Hilfsmittel verwendet habe.
Ulm, den .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Lina Xu