Java Dynamische Datenbank für Fragebögen

LisaFCD

Cadet 2nd Year
Registriert
Aug. 2014
Beiträge
16
Guten Morgen :)

Ich stecke gerade mitten in meiner Bachelorarbeit, in der ich für einen Arzt eine Datenbank für Fragebögen erstellen soll.
Dabei werden Fragen und Antworten in der Datenbank gespeichert und sollen speziell für jeden Patienten angezeigt und beantwortet werden können.

Vorraussetzung: es soll in Java geschrieben werden (da in den Arztpraxen wohl vorwiegend Java installiert ist)
und möglichst wenig beim Arzt zusätzlich installiert werden.

Ich beschreibe mal in vereinfachter Form wie es aussehen soll:

Frage(Frage_ID, Frage)
Bsp: (1, Wie alt sind Sie?)

Antwortmöglichkeit(Antwort_ID, Frage_ID, Text)
Bsp: (1, 1, unter 10;
2, 1, 10-15;
3, 1, 16-25;
4, 1, über 25)

Antwort_Patient(Patient_ID, Frage_ID, Antwort_ID)
Bsp: (234, 1, 3)
--> also der Patient 234 ist zwischen 16 und 25Jahre alt.

Wenn also der Fragebogen erscheinen soll, soll die Frage da stehen und die Checkboxen (hier: 4) zum Auswählen.
Leider habe ich keine Ahnung wie ich das anstellen soll.

Ich habe mich gestern mit NetBeans (und SQLite) eingearbeitet und wüsste auch wie ich den Fragebogen statisch erstelle aber nicht ihn anhand der Daten in der DB zu erstellen. :(

Ich hoffe ihr könnt mir helfen.
Bin auch offen gegenüber anderen anderen Methoden (es muss nicht NetBeans sein) das alles umzusetzen, solange es die Voraussetzungen erfüllt.
In einem früheren Datenbankprojekt habe ich XAMPP benutzt, welches ich jetzt nicht benutzen soll (Da es zusätzlich auf den Artzrechner(n) installiert werden muss).

Freue mich über Tipps und Anregungen, damit ich mit meiner Arbeit voran komme :)

Lisa
 
Deine Problembeschreibung klingt für mich nach einem unausweichlichen Desaster. Warum hast du dieses Thema gewählt, wenn du weißt, dass es weit außerhalb deiner Fähigkeiten liegt? Niemand gibt dir Bonuspunkte, weil du es dir unnötig schwer gemacht hast, aber ein darin begründetes schwaches Ergebnis wird dir massiv zum Nachteil gereichen.

Hast du noch die Chance, das Thema zu wechseln und etwas zu wählen, das machbarer ist?
 
Naja manchmal fällt einem halt erst später auf was es für Probleme mit sich zieht ;)
Aber irgendwie muss es doch lösbar sein, und ich stelle mich gerne neuen Herausforderungen.

Zur Not muss es halt fest programmiert werden -Fragen sollten sich nicht zu oft ändern- aber wäre schon schön es hinzukriegen. Da hat man im Nachhinein nicht so viel Aufwand (da das Programm auch eingesetzt werden soll).
 
1. Welche Art von Programm soll es werden?
a) Lokal installiertes Programm, wo du Fragebögen ausdrucken kannst? Die Antworten werden dann vom Personal eingetippt?
b) Client-Server-Architektur: Es wird ein Webserver eingerichtet und alles läuft darüber, d. h. das Personal kann die Fragebögen/Patienten verwalten und Auswertungen machen. Die Patienten können über den Browser sich anmelden und Fragebögen ausfüllen
c) was anderes

2. Java ist also vorwiegend installiert? Ok, aber ein Webserver oder DB natürlich nicht. Du musst fast immer etwas installieren, d. h. XAMP wäre auch schnell installiert. Wenn alles Windowsrechner wären, dann käme natürlich auch eine exe-Datei in Frage bzw. ein fertiges Programm mit Installationsroutine (.net-Programm).

3. Ein wenig mehr über die Usecases und Rollen könntest du schon noch schreiben.
 
Zuletzt bearbeitet:
Ich habe mich gestern mit NetBeans (und SQLite) eingearbeitet und wüsste auch wie ich den Fragebogen statisch erstelle aber nicht ihn anhand der Daten in der DB zu erstellen.

Wie wird der Fragebogen bzw dessen Fragen erstellt. Laut diesem Text gibt es schon eine Datenbank die du "anzeigen" musst. Das kann aber irgendwie nicht stimmen wenn man den Rest deines Postings liest.
Entweder du hast eine Datenbank vorgegeben dann können wir nix sagen denn das Datenformat welches du anzeigen musst existiert schon, oder du jemand gibt die Fragen ein und du generierst eine Datenbank die du selber erstellst. Wenn Zweites, dann fang bei dem Programm an wo der Fragebogen erstellt wird, daraus ergibt sich die Datenbank dann "von alleine".
 
Es gibt für java kompakte lösungen wie spring-boot oder auch playframework.

Hier bei wird ein java programm erzeugt welches dann webserver mit dabei haben,
wahrscheinlich lässt sich auch eine db so integrieren.

Von daher reicht es wenn nur jvm auf dem pc vorhanden ist.
 
Also zu 1)
Es soll lokal sein, das Personal soll eintragen was die Patienten auf einem Fragebogen ausgefüllt haben, (später soll das Blatt auch noch eingescannt werden und automatisch die Anworten aufgenommen werden, aber das ist erstmal nicht relevant), Drucken ist auch nur Zusatz. Hauptsache: Fragebogen erscheint auf Rechner in Praxis, Personal trägt ein, Daten aufgenommen ^^

zu 2) Ja das dachte ich mir auch, dass es eigtl. kein Problem ist XAMPP zu installieren, läuft ja dann auch immer im Hintergrund. Ist nur das was ich gesagt bekommen habe von meinem Prof. :/
Soll auf Windows und Linux laufen (MAC erstmal hinten angestellt)

zu 3) Läuft im Prinzip so ab:
Patient bekommt Fragebogen (auf Papier) und füllt ihn aus
Programm bekommt Patienten_ID (durch Krankenkassenkarte - erstmal nicht mein Problem)
Programm öffnet Fragebogen von Patient (wahrscheinlich mit schon vom letzten Mal ausgefüllten Antworten)
Personal übernimmt oder überschreibt neue Antworten vom Patienten

Später kann sich das Personal Fragebögen nochmal angucken und mit alten vergleichen (hab ich jetzt hier nicht mit aufgeschrieben die Tables für alte Antworten um es zu vereinfachen)
Ergänzung ()

@HominiLupus:
Die Datenbank gibt es noch nicht. Habe nur bisher den Entwurf gemacht und bei NetBeans gestern ne kleine TestDB erstellt.

@AlbertLast: Danke, da werd' ich jetzt mal recherchieren.
 
Moin,

naja, klingt doch eigentlich ganz einfach. Du brauchst irgend eine Darstellung für die Fragen und dann eine Möglichkeit, die Antworten abzulegen.
Die Antworten haben immer das gleiche Schema:
Patienten_ID, Frage_ID, Antwort, daraus kannst du dann ja eine SQLite DB (oder derby) bauen. Derby ist im JDK/JRE dabei (als JavaDB)

Die Fragen würde ich in einem schönen Format wie zb JSON speichern, dann sind die auch recht gut editierbar. Ich habe vor kurzem eine Android-App gebaut, die sowas macht. Hierbei habe ich Fragen für den Sportbootführerschein im JSON Format, dazu Fragebögen, die aus beliebig vielen Fragen bestehen können und eine DB die das ganze dann speichert.
Den Code findest du hier:
https://github.com/deveth0/FuehrerscheinApp
Interessant dürfte für dich das hier (Fragen/Fragebögen): https://github.com/deveth0/FuehrerscheinApp/tree/master/app/src/debug/assets
und das hier (Datenobjekte/Datenbank):
https://github.com/deveth0/Fuehrers.../src/main/java/de/dev/eth0/fuehrerschein/data

sein.
 
Wüsste jetzt nicht was daran so schwer sein sollte.

Datenbank ggf. im Netz aufsetzen kleine Swing Applikation programmieren, die eine Verbindung mit der DB im Netz aufbaut.
Wenn nun das Personal die GUI ausfüllt und den Datensatz speichert, wird dieser in der DB abgelegt.

Dafür braucht er kein overpowered Framework, wo er sich erstmal Stunden einlesen muss usw.
 
nochmal @HominiLupus: Ja es soll eine fertige DB sein (mit Fragen und Antwortmöglichkeiten). Es ist bisher nicht vorgesehen, dass der Arzt selber die Fragen einträgt.

@AlrikvomFluss: Ich danke dir das geht in meine Richtung ^^
 
Ich seh keinen grund, die Fragen in die Datenbank zu packen, die können auch direkt aus dem Jar file oder sogar dem filesystem geladen werden. Das macht es dann einfacher, mal ein Update der Fragen zu erstellen oder da Typos zu fixen.

Andersrum gedacht: wäre das nicht genau der Einsatzzweck, für den Microsoft Access vorgesehen ist? Formulare definieren und die Ergebnisse speichern. Da braucht man dann nicht groß was neues zu "erfinden", was am Ende wahrscheinlich nur so von Bugs strotzt ;)
 
Zuletzt bearbeitet:
Zu dem restlichen hätte ich auch wenig input für dich.
Die egk sollte nach spontanen googlen nfc fähig sein,
sprich wenn ich kunden ein Tablet in die Handdrücke wo er sein egk kurz ranhalten kann,
könntest du viele probleme gelöst haben.

Zur Tabellen designe wenn es eine bachelor arbeit werden soll,
muss/solltest du das design in einer erd veranschlaulichen.
Des weiteren darf man nicht vergessen das es verschiedene arten von werten(skalen) gibt, http://www.statistik-und-beratung.de/2013/01/arten-von-skalen/ (hab ersten google link genommen)
je nach dem welche du davon abdecken willst,
muss das db designe diese auch abbilden können.
 
LisaFCD schrieb:
Naja manchmal fällt einem halt erst später auf was es für Probleme mit sich zieht ;)
Aber irgendwie muss es doch lösbar sein, und ich stelle mich gerne neuen Herausforderungen.

Zur Not muss es halt fest programmiert werden -Fragen sollten sich nicht zu oft ändern- aber wäre schon schön es hinzukriegen. Da hat man im Nachhinein nicht so viel Aufwand (da das Programm auch eingesetzt werden soll).

Mach es wie die Politiker, beauftrage jemanden der dir ein Plagiat macht ;)
 
Also ich würde dir auch dringend raten, das Thema zu wechseln, weil Du sehr wenig Ahnung von dem zu haben scheinst.

Aber wenn du das wirklich machen willst, entwickle bitte folgende Unterlagen und stelle sie hier zur Verfügung, damit wir Dir helfen können:

- ER-Modell
- Datenbanktabellen in 3. Normalform abgeleitet aus ER-Modell
- Use-Case Diagramm
- evtl. bereits an dieser Stelle ein ganz rudimentäres Sequenzdiagram, das dann als Grundlage für alle weitere konzeptionelle Arbeit dient.

Erst mit diesen Dokumenten können wir wissen, was die Anwendung wirklich tun soll und wo es an der Konzeption noch hapert.

zu 2) Ja das dachte ich mir auch, dass es eigtl. kein Problem ist XAMPP zu installieren, läuft ja dann auch immer im Hintergrund. Ist nur das was ich gesagt bekommen habe von meinem Prof. :/
Soll auf Windows und Linux laufen (MAC erstmal hinten angestellt)

XAMPP läuft dann ja auf einem Webserver und die Webanwendung funktioniert auf jedem Client-Rechner... Muss dann nur eben geschützt sein und könnte sehr gut mit Struts,Spring,Hibernate umgesetzt werden.

MfG,

Anon
 
Zuletzt bearbeitet:
Ein Hinweis, gerade bei sowas wie Patientendaten:
Achte auf Datensicherheit und vor allem auf Datenschutz. Eine ungesicherte Datenbank mit schlechter Sicherung vor Zugriffen von Außen dürfte für Ärzte, Patienten und auch für die Prüfer, die deine Arbeit bewerten ein Alptraum sein ...
 
Unter Netbeans kannst du eine Applikation mit JavaFX entwickeln. Als DB nimmst du Derby. Mehr brauchst du nicht.
Eclipse (anstatt Netbeans) ginge natürlich auch, aber dann musst du immer alles mögliche nachinstallieren. Wenn du dich damit nicht auskennst, solltest du bei Netbeans bleiben.

Achte aber auf die Versionen. Kontrolliere erst mal, welche JRE-Versionen auf den Rechner installiert sind und lege dann die Minimalversion fest.

Die Oberfläche kannst du zusammenklicken. Die Anbindung an die DB musst du halt hinbekommen. Die DB-Struktur hast du ja schon. Evtl. solltest du noch ein active-Flag einführen, damit alte Fragen nicht mehr angezeigt werden.

Mit JSON würde ich mich nicht herumschlagen. Das wäre erst notwendig, wenn du mit Datenaustausch bzw. Webapplikation zu tun hättest.

Evtl. kannst du die Architektur gleich so machen, dass du später auch eine Client-Server-Applikation draus machen kannst, d. h. Service-orientiert aufbauen.
 
Zuletzt bearbeitet:
Ich muss zugeben ich habe alles zwischen deiner Frage und meiner Antwort übersprungen. Aber ich nehme an dein Arzt wird Windows als Betriebssystem haben. Da bietet sich .NET doch an. Da Netwirfst du einfach eine WinForms oder WPF-Anwendung stellst eine Verbindung zu einer SQL- Datenbank her und benutzt LINQ um mit der Datenbank zu kommunizieren (wenn du möchtest).
 
@AnonStar: ER und 3.NF habe ich bereits. Dachte nur meine vereinfachte Form des Problem würde genügen, da ich ja nicht Hilfe bei dem kompletten Projekt brauch sondern nur Anstupser für das Lösen meines Problems.

@Zimon: Danke für den Hinweis. Hab ich schon berücksichtigt und werde es auch weiter tun :) Die Praxis besitzt bereits eine DB für die Patienten, mit der mein Programm verknüpft werden soll. Dabei wird lediglich eine ID übergeben (anhand von Krankenkassenkarte)

@Wahli: Mir wurde gesagt, dass immer die neuste Version vorhanden ist. "Oberfläche zusammenklicken" wäre ja schön, aber es muss ja anhand der Anzahl der Fragen und Antworten automatisch erstellt werden. Wenn das mit NetBeans funktioniert wäre das schön, finde ich bisher am besten.

@IKäsebrot: Soll auf Windows und Linux funktionieren.

Ich habe mich belesen zwecks Microsoft Access: Also besser (bzgl der Betriebssysteme) wäre vermutlich OpenOffice Base und anscheinend gibt es da auch eine Verknüpfung zu Java. Find ich auch ziemlich intuitiv.
 
Muss es sich unbedingt um eine Desktopanwendung handeln?

Mit PHP und MySQL könntest du eine Webanwendung entwickeln. Somit hättest du:

a) Das Problem der Plattformunabhängigkeit geklärt.

b) Da du ja dynamisch GUI's anhand der vorhandenen Fragen generieren möchtest, würde sich auch hier eine Webanwendung eher anbieten, imho.
 
@IKäsebrot: Habe ich auch schon überlegt - eine meiner ersten Überlegungen. Mich hat das PHP nur etwas abgeschreckt ^^. Ich weiß dass man PHP und Java verbinden kann aber hab mich da jetzt noch nicht so sehr informiert (wie "schwer" es ist ;)), weil ich noch auf der Suche nach Alternativen war. :D

Aber ich bin schon mal dankbar für all eure Antworten. Es ist schön mal einen Überblick zu haben, was ich alles für Möglichkeiten habe.
 
Zurück
Oben