Hilfe bei App-Projekt für Doktorarbeit

Startseite Foren Deutsches LiveCode-Forum Hilfe bei App-Projekt für Doktorarbeit

Ansicht von 5 Antwort-Themen
  • Autor
    Beiträge
    • #1392
      Flo92
      Teilnehmer

        Erstmal Hallo!
        Ich habe vor kurzem mein Zahnmedizinstudium abgeschlossen und sitze jetzt momentan an meiner Doktorarbeit. Das Thema lautet in etwa “Effektivität von smartphone-basierter Nachsorge nach zahnärztlicher Behandlung”. Ich hatte schon immer eine gewisse Affinität zum Programmieren, auch wenn ich jetzt nie allzu tief eingestiegen bin. Nachdem ich zunächst mit Müh und Not meine Java-Kenntnisse versucht habe aufzufrischen, habe ich dann durch Zufall LiveCode entdeckt und dachte mir, dass das doch wesentlich eleganter und auch leichter zum Ziel führen sollte. Das Buch fand ich wirklich Klasse zum Einstieg, jedoch bleiben jetzt speziell für mein Projekt einige offene Fragen, die ich auch so auf die schnelle nicht rausgefunden habe. Deswegen dachte ich mir, vielleicht findet sich ja hier der ein oder andere Tipp 😛 Vielen Dank jetzt schon mal im Voraus!!

        Ziel der Arbeit ist es einen app-gestützten Nachsorge-Fragebogen zu erstellen – dabei gibt es aber ein paar Extras die zu beachten sind:

        – Einerseits – und das ist das “Besondere” an der Arbeit – soll es den Patienten selbstständig in vorgegebenen Abständen an das Ausfüllen erinnern – sprich eine Art Pushup-Notification. Dann aber im selben Zuge soll es nur für 2 Stunden möglich sein, den Fragebogen auszufüllen und danach soll es nicht mehr möglich sein bis zum nächsten vorgegebenen Zeitrahmen. Dadurch soll sicher gestellt werden, dass anders als bei handschriftlich zu Hause ausgefüllten Fragebögen, die Antworten auch wirklich zu dem jeweils relevanten Zeitpunkt ausgefüllt werden und nicht etwa mehrere Tage später aus dem Gedächtnis heraus. Sprich wenn der Patient zwischendurch die App öffnet sollte ihm idealerweise ein Countdown angezeigt werden, wann die nächste Abfrage stattfindet, aber weitere Möglichkeiten sollte er dann nicht haben.
        – Die Antworten sollen idealerweise in eine beliebige Datei geschrieben werden und dann auf einen Server oder aber mir per Mail zugeschickt werden. Ganz ideal wäre natürlich ein direktes Einfügen in eine Datenbank, aber da die Probandenzahl jetzt nicht astronomisch hoch sein muss, da es sich hierbei um eine Pilotstudie handelt, ist es auch nicht allzu schlimm, wenn ich es selber noch eintragen muss. Dabei aber wichtig: Der Patient muss sich beim Installieren registrieren und dann daraufhin auch angemeldet bleiben, sodass ich die Antworten auch einem Patienten zuordnen kann, wenn sie mich erreichen.
        Wenn möglich soll die App dabei auch überprüfen, ob gerade eine Internetverbindung besteht, und wenn nicht, dann den Upload durchführen, sobald wieder eine Internetverbindung besteht.

        Damit man sich das ganze etwas besser vorstellen kann, habe ich mal Screenshots der jeweiligen Cards gemacht – Design natürlich bis jetzt komplett vernachlässigt. Ein paar Sachen funktionieren schon ganz gut, aber vor allem die oben genannten Punkte bin ich bisher nicht dahinter gekommen, wie ich das am besten lösen kann.
        Weil leider die Verlinkung der Bilder bzw. das Einfügen hier nicht so ganz geklappt hat hier ein Link zum zugehörigen OneDrive-Ordner, hoffe das klappt 😀
        Link zu den Bildern

        Sprich noch einmal in der Kürze die Dinge, bei denen ich nicht weiß, wie man sie überhaupt/elegant löst:
        1) Festgelegtes Zeitfenster in welchem man den Fragebogen ausfüllen kann, inklusive Popup-Benachrichtigung
        2) Registrierung der Nutzer mit darauffolgender Anmeldung (idealerweise auch mit der Möglichkeit von “Angemeldet bleiben” und “Passwort vergessen”)
        3) Übermittlung der Daten per Mail/an einen Server, welche beinhalten, von welchem Nutzer die Daten kommen
        4) Bei der Übermittlung: Überprüfen ob Internetverbindung besteht und wenn nicht zu einem späteren Zeitpunkt abschicken.

        Ich weiß, dass das sehr viel aufeinmal ist und ich weiß nicht, inwiefern das hier in Ordnung ist, wenn man gleich soviel fragt, aber ich dachte ich versuchs einfach mal! Jetzt schonmal tausend Dank für jegliche Hilfe!

      • #1394
        Torsten
        Teilnehmer

          Hi Flo92!

          1. Das Selbststarten der Anwendung ist ein Thema, zu dem ich leider noch nichts sagen kann, aber ich finde es sehr interessant und bin auch daran interessiert. Im Prinzip ist es eine Wecker- / Kalender-Erinnerungs-Funktion. Vielleicht ein OS-spezifischer Dienst, bei dem man sich anmelden kann? Wer weiss mehr?

          2. Wie ist das Szenario, kennen die Versuchspersonen dich persönlich, oder sind es Fremde, d.h. Du musst dich auf deren Angaben verlassen?

          Falls die Personen von vorneherein bekannt sind, kann man es sich einfach machen und jedem eine ID zuteilen, die dann als Identifikation benutzt wird. Vorteil: ales ist komplett anonym und niemand ausser Dir weiss, welche Daten zu wem gehören.

          Falls es alles online sein soll, kann man die Daten bei jeder Übertragung einfach wieder mitschicken.

          3. Das Einfachste wäre eine Übermittlung der Daten mittels FTP:

          	put myPatientData into url "ftp://ftp_user_name:ftp_user_password@ftp.meinFTPserver.de/www/Patient_Nr_XXX_Data.txt"
          

          Dieser Weg setzt voraus, dass Du Zugang zu einem FTP-Server hast (z.B. wenn Du eine eigene Domain bei einem Webhoster wie web.de etc besitzt). Dann würde die App die Daten als Textfile auf Deinem FTP-Server ablegen und du kannst sie dann weiterverarbeiten. Dazu wäre noch sinnvoll, den Dateinamen mit einem Zeitstempel zu versehen oder die Datei immer wieder mit einem vollständigen Datensatz aus der App zu überschreiben.

          4. Im FTP-Fall könnte man einfach versuchen, eine bestimmte Datei auf dem FTP-Server laden und sehen, was ankommt.

          Wenn man eine generische Lösung ohne FTP will, kann man auch das hier einsetzen (Link: http://forums.livecode.com/viewtopic.php?f=49&t=10484# ):

          on openStack
             if environment() = "mobile" then
                put "http://www.google.com" into theURL
                put URL theURL into connCheck
               
                if connCheck is empty then
                   answer "There seems to be no connection to the internet"
                   exit openStack
                else
                   answer "We are connected to millions of people"
                end if
             end if
          end openStack
          

          Das Verhalten, wenn keine Internet-Verbindung da ist, entsprechend später wieder zu starten, würde wieder erfordern, dass eine Möglichkeit gefunden wird, eine App später von selbst zu starten.

          Soweit erstmal meine Ideen.

          Beste Grüße
          Torsten

        • #1401
          Flo92
          Teilnehmer

            Erstmal vielen Dank für die schnelle Antwort! Habe damit schon ein bisschen probiert und bin auch schon ein gutes Stück weitergekommen.
            Jedoch haben sich im Umkehrschluss auch wieder neue Fragen ergeben 😀
            – das mit der ID ist eine super Idee! Denn ja ich kenne die Probanden vorher alle und installiere mit ihnen gemeinsam dann die App und erkläre ihnen den Ablauf des ganzen. Sprich dann würde ich Ihnen einfach zum Appstart eine ID zuweisen, die dann in der App hinterlegt ist und mit angehängt ist an die Textdatei bei jedem Upload
            – der FTP-Server ist soweit eingerichtet und der Upload klappt mit dem Code auch. Jetzt geht es mir dabei aber um die Benennung der Datei: Gibt es eine Möglichkeit a) eine Art “fortlaufende Benennung” zu haben – sprich beim ersten Mal ausfüllen des Fragebogens eine 1 am Ende, beim zweiten mal eine 2, etc. – weil bisher überschreibt die neue Datei quasi die alte, wenn ich nicht manuell vorgebe, dass die zweite Datei anders heißen soll.
            – Weiter zum Abspeichern/Uploaden der Datei: Gibt es eine Möglichkeit, dass die App automatisch die ID erkennt und dementsprechend die Datei z.B. in einem der ID zugeordnetem Ordner abspeichert? Sprich z.B. ID 27 im Ordner 27? Also von Hand krieg ich das schon hin mit if-Abfragen, aber dachte es muss ja eigentlich einfacher gehen 😀 Am Ende bei 100 Patienten 100 ID-Abfragen zu haben dachte ich mir ist doch etwas umständlich ^^
            – weiterhin bestehen bleibt noch das Timerproblem und das zugehörige “Sperren” der App – aber das hab ich auch noch nicht weiter probiert 😛 sitze momentan noch an den oben genannten Dingen.

            Nochmal lieben Dank!

          • #1403
            Torsten
            Teilnehmer

              Hi,

              das mit der ID habe ich mir doch gedacht 🙂

              Die Benennung der Dateien und Unterverzeichnisse ist ganz einfach, ich habe ein ähnliches Problem auch schon mal gehabt: eine Datei mit Zeitstempel im Namen abspeichern. Meine Lösung:

              
                 put the long system time into tFileTime
                 replace ":" with "_" in tFileTime
                 put the system date into tSystemDate
                 
                 if "." is in tSystemDate then
                    replace "." with "_" in tSystemDate
                 else if "/" is in tSystemDate then
                    replace "/" with "_" in tSystemDate
                 end if  	   
                 
                 put MyUserID & "_DAY_" & tSystemDate & "_TIME_" & tFileTime & ".txt" into tFileName
                 put myData into url "ftp://ftp_user_name:ftp_user_password@ftp.meinFTPserver.de/www/" & MyUserID & "/" & tFileName
              

              Beste Grüße
              Torsten

            • #1405
              Klaus Major
              Administrator

                Da du ja enen FTP Server benutzt, und keinen HTML Server, der wenigstens etwas Intelligenz zeigen kann, sofern einprogrammiert, würde ich einfach jedem User eine UUID zuweisen und die Daten dann zusammen mit “the seconds” als Dateinamen auf den Server laden.

                Somit ist sie eindeutig einem User zuzuordnen und das exakte Datum steht auch drin.

                Denn Deine App kennt ja nur das jeweilige Smartphone und Du müsstest jeden Upload lokal notieren, um die richtige nächste Nummer zu vergeben, denn mal eben auf dem Server nachsehen geht ja nicht.

                put MyUserID & “-” & the seconds into tFileName
                put myData into url(“ftp://ftp_user_name:ftp_user_password@ftp.meinFTPserver.de/www/” & “/” & tFileName)
                ## Zusammengesetzten Datei- und Objektnamen IMMER in Klammern setzen, um Probleme von vornherein auszuschliessen!

              • #1411
                Flo92
                Teilnehmer

                  Wahnsinn! Das mit dem Upload im richtigen Verzeichnis mit dem richtigen Namen hat perfekt geklappt! Vielen, vielen Dank!
                  Und Klaus – habe soeben deine Antwort im englischen Forum gelesen 😀 Jaaa hatte den Text schon vorbereitet und dann nur noch abgeschickt bevor ich hier geschaut habe, lustiger Zufall ^^

                  Dann mal schauen woran es als nächstes hakt, werde mich sicher nochmal melden 😛

              Ansicht von 5 Antwort-Themen
              • Du musst angemeldet sein, um auf dieses Thema antworten zu können.