Online Bestellwesen

CT9288

Mitglied
Hallöchen. Ich habe mal wieder ein Anliegen. Ich arbeite in einem größeren Krankenhaus und wir müssen viele Bestellungen nach wie vor auf Papier erledigen, was ich persönlich sehr veraltet finde und auf meiner alten Arbeitsstätte gab es diese Dinge bereits online. Speisebestellungen, Wäschebestellungen, etc.

Ich habe mir als persönliche Challenge vorgenommen, dieses veraltete System zu digitalisieren und zu vereinfachen. Mein Problem ist, ich habe enorme Wissenslücken.

Was ich soweit kann oder mir zur Not selbst aneignen kann:

Html, Css, Javascript, ich kann ein Formular erstellen in dem man die einzelnen Speisen und Lebensmittel angeben kann.

Ich weiß, dass man diese Daten absenden, sammeln und auslesen lassen muss, und dass eine bestimmte Person / Gruppe diese Ergebnisse auslesen können soll. Vielleicht auch pro neuem Tag eine neue Datei anlegen, bestellhistorie, etc.

Meine Bitte: könnt Ihr mir ein paar Fachbegriffe um die Ohren knallen, Dinge, die ich noch benötige um dieses Projekt zu verwirklichen, Dinge, die ich selbst dann vertieft googeln kann um mir das anzulernen.

Und ja! Ich bin nicht aus der IT, ich bin kein guter Programmierer, und ich erwarte keinen großartigen Erfolg. Aber, ich erwarte eine Herausforderung und persönliches Wachstum. Ich bin mir durchaus bewusst, dass ich daran scheitern könnte.

Dennoch, vielen Dank und mit freundlichsten Grüßen.
 

LimDul

Top Contributor
Kurzfassung: Lass es. Klingt hart, aber ist das einzig realistische.

Es sei denn, du willst nur zum Spaß privat machen und nicht produktiv einsetzen.
 

Robert Zenz

Top Contributor
Und ja! Ich bin nicht aus der IT, ich bin kein guter Programmierer, und ich erwarte keinen großartigen Erfolg. Aber, ich erwarte eine Herausforderung und persönliches Wachstum. Ich bin mir durchaus bewusst, dass ich daran scheitern könnte.

Sehr, sehr schwierig. Mein erster Gedanke war dass du alle Formulare die du da hast einscannst, und dann einfach mit so etwas wie iText oder PDFBox bearbeitest und dann eben die richtigen Daten einfuegst. Das ist aber sehr viel Aufwand.

So, ich bitte um Entschuldigung, aber ich muss kurz zur Werbung greifen fuer ein Projekt an dem ich mitgearbeitet habe, und zwar VisionX, mit dem muesste so etwas sogar relativ leicht gehen. Also es ist eine Low-Code-Plattform, du machst alles in einem grafischen Editor. Dort kannst du dir Tabellen und Datenstrukturen genauso wie zugehoerige Oberflaechen bauen um diese zu verarbeiten. Du klickst dir also eine gesamte ERP-Loesung zusammen. Was aber in diesem Fall am interessantesten ist, ist dass VisionX bereits mit einer Reporting-Loesung kommt die genau das kann was ich beschrieben habe, naemlich PDF-Formulare ausfuellen. Es ist nicht so 100% komfortabel, aber relativ einfach machbar im Vergleich zum selbst bauen. Ich glaube es muesste auch noch immer ein Beispiel-Projekt in VisionX selbst geben zu dem Thema, oder zumindest erinnere ich mich daran es erstellt zu haben. Sprich du baust dir in VisionX eine Oberflaeche mit Daten dahinter wo du alles eingeben kannst was du brauchst, und kannst das dann auf ein gescanntes Formular oder PDF uebertragen, automatisch als Bericht. Das dann ausdrucken oder versenden, und fertig.

Ist natuerlich nicht ganz einfach, man braucht ein biszchen Einarbeitung, und VisionX ist ein kommerzielles Produkt, aber vielleicht doch einen Blick wert.
 

CT9288

Mitglied
Vielen Dank erstmal für die Anteilnahme, aber ich betone jetzt noch mal explizit:

Ich mache das in meinem eigenen Auftrag, aus purem Spaß an der Freude und der Herausforderung, niemand weiß, dass ich das mache und mein Arbeitgeber hat mich auch nicht darum gebeten.

Auch wenn ich dankbar bin für jeden Kommentar finde ich doch eine Antwort wie „Lass es einfach“ schade. Das ist nicht die Art Rat, die ich meinem Kind geben würde. Ja Klar ist das eine große Herausforderung, aber deswegen muss man nicht aufgeben =)
 

LimDul

Top Contributor
Vielen Dank erstmal für die Anteilnahme, aber ich betone jetzt noch mal explizit:

Ich mache das in meinem eigenen Auftrag, aus purem Spaß an der Freude und der Herausforderung, niemand weiß, dass ich das mache und mein Arbeitgeber hat mich auch nicht darum gebeten.

Auch wenn ich dankbar bin für jeden Kommentar finde ich doch eine Antwort wie „Lass es einfach“ schade. Das ist nicht die Art Rat, die ich meinem Kind geben würde. Ja Klar ist das eine große Herausforderung, aber deswegen muss man nicht aufgeben =)
Sorry - man sollte nicht nebenher auf der Arbeit so kurze Kommentare abgeben.

Deswegen vielleicht noch mal was ausführlicher. Wenn du mit der Erwartungshaltung ran gehst, dass es Ende bei dir produktiv eingesetzt wird - dann bleibe ich bei meinen "lass es". Denn du wirst entweder frustriert scheitern oder es wird am Ende nicht funktionieren und mehr Probleme machen als lösen.

Wenn es dich aber interessiert wie man sowas lösen kann und dich damit selber fortbilden willst und nicht den Anspruch hast, dass es bei dir eingesetzt wird - Nur zu.

In dem Fall wäre die erste Überlegung mal, wie soll das System aussehen, so wie @Robert Zenz geschrieben hat, rein PDFs befüllen, die man dann drucken/versenden kann? Oder wirklich eine Verwaltung wo man Daten strukturiert erfassen kann, sie archiviert werden, etc?
 

KonradN

Super-Moderator
Mitarbeiter
VisionX fängt nur sehr teuer an - da wäre es günstiger, z.B. zu Livecode zu greifen. Da wäre dann aber mein Ratschlag: für Newsletter anmelden und dann mal par Wochen warten. Da kommt regelmäßig ein Sonderangebot, über das man deutlich preiswerter alles bekommt. Aber da hast Du dann dennoch mehrere hundert Euro im Jahr. (Das Pro Angebot mit 4 Plattformen war 999€ Euro, so ein Starter Paket mit 2 Plattformen war auch noch 299€ oder so... )

Hier einfach mal generell nach LowCode und NoCode suchen. Das könnten die Plattformen sein, mit denen man sowas auch ohne zu tiefe Kenntnisse umsetzen kann. (Ein großer Kunde vonuns setzt da massiv drauf, um Mitarbeitern die Chance zu geben, Daten selbst verwalten zu können und so. Also extrem stark vereinfacht: Excel Ersatz :)

Aber ja, das wäre eine Idee.

Alles andere ist tatsächlich so schwierig. Du willst ja auch ein Backend haben. Wenn Du Java könntest, dann hätte man Richtung Vaadin gehen können und dann hätte Java erst einmal ausgereicht. Aber selbst da ist die Komplexität sehr hoch, denn man will ja nicht nur sowas irgendwie zum laufen kriegen sondern es muss stabil und sicher laufen. Und dann sind viele Dinge wie Spring Security nicht unwichtig.

Aber auch da kannst Du einiges machen. Wenn JavaScript die Sprache Deiner Wahl ist, dann kann man mittels Node.js schauen, wie man da WebServices erstellen kann, Daten verwalten und all sowas. Das wäre also auch durchaus eine Idee. Der Anfang kann dann tatsächlich sein, dass man erst einmal spielt um starre Daten vom Server in den Browser zu bekommen um da etwas auszuwählen um es dann zurück zu schicken. Stichwort hier wäre (REST) Webservice.

Dann wäre der zweite Punkt, dass Du die starren Daten, die man einmal hinterlegt hat zu Auswahl, aus einer Datenbank kommen und Bestellungen ebenfalls in die Datenbank geschrieben werden.

Als Drittes wären dann erst die Frontends ... danach Security ... ggf. ein Framework um das alles in einer App laufen zu lassen....
 

mihe7

Top Contributor
Grundsätzlich schließe ich mich meinen Vorschreibern an: wichtig wäre, erstmal zu wissen, was Du genau vorhast. Wenn Du z. B. fürs Essen ein richtiges Bestellsystem bauen willst, kommt da ja schon einiges zusammen, wie die Verwaltung von wechselnden Speiseplänen.
 

Robert Zenz

Top Contributor
Auch wenn ich dankbar bin für jeden Kommentar finde ich doch eine Antwort wie „Lass es einfach“ schade. Das ist nicht die Art Rat, die ich meinem Kind geben würde.

Schau, das ist ein sehr komplexes Thema welches du da angehen willst. Wenn du eine halbwegs gute Loesung erstellen willst, wirst du wahrscheinlich Kenntnisse im Bereich Java+PDF+Datenbank+GUI ansammeln muessen. Wenn du das in HTML mit JavaScript machen willst, wird die Sache nochmal um einiges steiler meiner Meinung nach, weil das Oekosystem von JavaScript (und die Sprache selbst) einfach unter aller Sau ist. Da bist du die meiste Zeit damit beschaeftigt um die Unzulaenglichkeiten von dem Ding herum zu arbeiten (und die erzwungene Client/Server Struktur macht es nicht besser fuer einen Anfaenger).

Wenn du da jetzt nicht bereit bist, ich ziehe mir jetzt kurz eine Zahl aus dem Hintern, 100+ Stunden zu investieren, wirst du auf keinen gruenen Zweig kommen, und da bsit du noch lange nicht fertig. Deswegen hat @LimDul auch gesagt du solltest es vielleicht eher lassen, weil ohne Vorkenntnisse ist das ein sehr komplexes und schwieriges Thema, nicht nur von der reinen Umsetzung, sondern auch von der Konzeptionierung und wie man es machen muss. Selbst mit VisionX, wenn man die Anforderungen genau kennt, wuerde ich 24-36+ Stunden schaetzen fuer eine solche Applikation, und da ist in VisionX bereits alles "schwierige" geloest.

Ich mache das in meinem eigenen Auftrag, aus purem Spaß an der Freude und der Herausforderung, niemand weiß, dass ich das mache und mein Arbeitgeber hat mich auch nicht darum gebeten.

Dann wuerde ich dir raten dich mit Java und Swing als Oberflaeche zu beschaeftigen (viele wuerden jetzt "JavaFX" schreien, aber Swing ist echt einfacher fuer den Anfang), dir da eine einfache Eingabemaske zusammen bauen und dann baust du dir ein PDF Toolkit dazu mit welchem du das eingegebene auf das PDF uebertragen kannst. Wenn du das hast, hast du einen recht guten Prototypen und du kannst ueber das persistieren von Daten nachdenken. Ich kann die H2 Datenbank fuer Java nur waermstens empfehlen, tolles Ding, komplett in Java geschrieben und damit direkt einbaubar. Und wenn du das hast, kannst du das ganze aufpolieren auf das was du brauchst.
 

KonradN

Super-Moderator
Mitarbeiter
Dann wuerde ich dir raten dich mit Java und Swing als Oberflaeche zu beschaeftigen (viele wuerden jetzt "JavaFX" schreien, aber Swing ist echt einfacher fuer den Anfang), dir da eine einfache Eingabemaske zusammen bauen und dann baust du dir ein PDF Toolkit dazu mit welchem du das eingegebene auf das PDF uebertragen kannst. Wenn du das hast, hast du einen recht guten Prototypen und du kannst ueber das persistieren von Daten nachdenken. Ich kann die H2 Datenbank fuer Java nur waermstens empfehlen, tolles Ding, komplett in Java geschrieben und damit direkt einbaubar. Und wenn du das hast, kannst du das ganze aufpolieren auf das was du brauchst.
Wenn man das Ziel eines solchen Client-/Server Systems vor Augen hat: Was spricht eigentlich dagegen, direkt auch Richtung Vaadin zu gehen?

Man bekommt einen Rahmen mit dem man etwas spielen kann und hat dann nach und nach viele Baustellen, die man mehr mehr für sich entdecken kann (und natürlich auch sollte!)

Die Desktop Technologien bei Java sehe ich schon als recht kritisch an. Da ist eine reduzierte Komplexität aber nur weil ein Totes Pferd womöglich leichter zu satteln ist und einen auch nicht abwirft, wäre es nicht das Pferd, das ich zum reiten empfehlen würde :)
 

KonradN

Super-Moderator
Mitarbeiter
(Das Pro Angebot mit 4 Plattformen war 999€ Euro, so ein Starter Paket mit 2 Plattformen war auch noch 299€ oder so... )
Ich sehe gerade: Die Angebote laufen derzeit noch und ich habe mich da etwas geirrt:
Das "Gold Bundle" ist 499$
Das "Platinum Bundle" ist aber bei den 999$

Direkt Anfangen kann man da aber mit 1 Plattform für 8.99€/Monat + USt. Das ist aber dann nur eine Starter Edition und Programme, die Du erstellt hast, laufen nur, so lange Du eine Subscription hast und so ... Aber zum Starten und ansehen wäre das der günstigste Anfang.

Wenn Java, dann kann man auch openXava anschauen oder so. Evtl. ist das etwas, das Du erkunden willst.
 

Robert Zenz

Top Contributor
Wenn man das Ziel eines solchen Client-/Server Systems vor Augen hat: Was spricht eigentlich dagegen, direkt auch Richtung Vaadin zu gehen?

Die Lernkurve, die finde ich in dem Fall dann doch um einiges steiler, insbesondere fuer einen (kompletten) Anfaenger. Da wuerde ich mal mit einer einfachen lokalen Appliaktion anfangen, insbesondere fuer einen Prototypen, und die Logik kann man dann immer noch recht gut uebertragen wenn man feststellt das es geht.

Die Desktop Technologien bei Java sehe ich schon als recht kritisch an. Da ist eine reduzierte Komplexität aber nur weil ein Totes Pferd womöglich leichter zu satteln ist und einen auch nicht abwirft, wäre es nicht das Pferd, das ich zum reiten empfehlen würde :)

Ja aber wenn du erstmal lernen musst was ein Pferd ist, und wie man einen Sattel auf ein Pferd bekommt, ist eines welches einen nicht tritt schon besser. ;) Man muss es dann ja nicht zum Wettkampfreiten nehmen, aber davon sind wir hier ja ohnehin weit entfernt.

Ja, ich weisz, ich will das nicht wahrhaben, aber ich finde insbesondere fuer soetwas bietet sich eine Desktop-Applikation wirklich an, weil weniger komplex und weniger bewegliche Teile.
 

KonradN

Super-Moderator
Mitarbeiter
Die Lernkurve, die finde ich in dem Fall dann doch um einiges steiler, insbesondere fuer einen (kompletten) Anfaenger.
Hmm, müssen wir vielleicht in einem separaten Thread vertiefen. Ich überlege gerade, einen zweiten Anlauf mit YouTube Videos zu nehmen und meine Idee ist dabei, dass Videos für Anfänger machen will, aber halt von Anfang an auch direkt mit Technologien, die "üblich" sind.

Also das "Hello World" Programm ist dann direkt kein Programm sondern ein Unit Test. Was sollen die Leute ständig mit main Methoden rumhantieren?

IntelliJ bietet da direkt viel Unterstützung für Anfänger und das kann man direkt nutzen. (Muss ich selbst im Detail noch ausloten, aber JUnit wird z.B. auch automatisch in die Dependencies gepackt und so.) Daher muss man das nicht direkt alles können da die IDE es einem abnimmt aber man lernt es kennen ....

Damit die Pferde-Vergleich einen ebenso schlechten Ruf bekommen wie Auto Vergleiche: Man muss ein Pferd ja nicht sofort satteln können. Der Papa kann das Kind ja auch einfach mal auf ein Pferd heben, das schon jemand anderes gesattelt hat ...

Das einfach nur als Hintergrund, wieso mich das gerade etwas interessiert.
 

Robert Zenz

Top Contributor
Also das "Hello World" Programm ist dann direkt kein Programm sondern ein Unit Test. Was sollen die Leute ständig mit main Methoden rumhantieren?

Das ist eine gute Idee! Das ist eine wirklich gute Idee.

IntelliJ bietet da direkt viel Unterstützung für Anfänger und das kann man direkt nutzen. (Muss ich selbst im Detail noch ausloten, aber JUnit wird z.B. auch automatisch in die Dependencies gepackt und so.) Daher muss man das nicht direkt alles können da die IDE es einem abnimmt aber man lernt es kennen ....

Ja, klingt auch gut. Ein groszer Teil wieso ich Maven und Spring nicht leiden kann, ist der Frachtkult. "Kopier das, das, dieses, jenes, und das noch, dann machst du noch das, hier eine Klasse, da eine Klasse, dann hier noch etwas einrichten, da etwas machen, vier Docker-Contaienr starten, TADA, du hast eine Applikation", aber was man da jetzt eigentlich gemacht hat, weisz man nicht. So etwas fuehrt, meiner Meinung nach, nur zu einem Frachtkult wo jeder irgendwas kopiert ohne verstanden zu haben wieso. Da waere es besser wenn es ein Paket gibt welches das alles hat oder beinhaltet, dann bringt man den Leuten zumindest nicht "du musst all das kopieren wenn du eine Applikation willst" bei, weil meistens stimmt das ja auch nicht und hat vielleicht noch irgendwelche Seiteneffekte.

Damit die Pferde-Vergleich einen ebenso schlechten Ruf bekommen wie Auto Vergleiche: Man muss ein Pferd ja nicht sofort satteln können. Der Papa kann das Kind ja auch einfach mal auf ein Pferd heben, das schon jemand anderes gesattelt hat ...

Ja, das stimmt schon, aber dann sollte das Pferd auch mit Sattel ankommen, und nicht in Einzelteilen die man dann noch "blind" zusammen steckt, um auf meinen vorherigen Punkt zurueck zu kommen. Zumindest meine Erfahrung ist da halt eher das man ein Pferd in Einzelteilen bekommt, einen Sattel dazu, dann kann man die ganz einfach zusammen stecken, und beim ersten aufsitzen klappen zwei der Beine ein ohne ersichtlichen Grund (wie sich dann herausstellt hat der Hersteller des Pferdes die Nummern an den Beinen geaendert, und Vorder- und Hinterbeine muessen vertauscht werden, auszerdem muss man seit Version 4 erstmal Kraftfutter einfuellen und den Schwanz sollte man seit Version 3 nicht mehr vor dem Sattel anbringen)...ich glaube ich habe bei dem Thema etwas aufgestauten Frust, stelle ich gerade fest...vielleicht sollte ich mir doch noch ein anderes Berufsfeld suchen...
 

KonradN

Super-Moderator
Mitarbeiter
Ein groszer Teil wieso ich Maven und Spring nicht leiden kann, ist der Frachtkult

Ich mache eigentlich immer regelmäßig für duale Studenten und auch neue Junior Entwickler eine Trainingsreihe, bei denen ich diverse Themen behandle. Also Agiles Arbeiten (Kanban, SCRUM, SAFe), Clean Code, Unit Testing / TDD, ... Ein Thema für Java Entwickler ist auch immer eine Einführung in Maven. Und da ist dann meine Kernaussage: Das ist alles nur geklaut:


Das sehe ich aber eher als Vorteil. Das müssen Entwickler nicht wirklich tief können. Man braucht nur ein grobes Verständnis, muss die "Conventions" kennen und dann kann man alles zusammen klauen. Es geht etwas nicht? Google -> SO -> Copy&Paste -> done :)
 

mihe7

Top Contributor
"Kopier das, das, dieses, jenes, und das noch, dann machst du noch das, hier eine Klasse, da eine Klasse, dann hier noch etwas einrichten, da etwas machen, vier Docker-Contaienr starten, TADA, du hast eine Applikation"
Den Vorwurf an die Entwickler, heutzutage nur noch irgendwas zusammen zu kopieren, lese ich immer wieder - aber stimmt der? Ich kann mir das irgendwie nicht vorstellen, dass da irgendwas sinnvolles dabei entstehen kann.

Gut, bei Maven "kopiert" man ständig irgendwelche Vorlagen, wenn das die IDE nicht für einen übernimmt. Die Frage ist aber doch auch, ob man als Entwickler wirklich wissen muss, wie genau Maven funktioniert.

Jetzt wurde ich beim Schreiben unterbrochen und @KonradN hat schon kommentiert... Hau ichs trotzdem raus :)
 

temi

Top Contributor
Ich arbeite in einem größeren Krankenhaus und wir müssen viele Bestellungen nach wie vor auf Papier erledigen
Eine wichtige Frage dazu wäre noch: Sind das sozusagen interne Bestellungen, also bei der internen Kantine oder Wäscherei (es würde sich dann eher um eine Art "Nachricht" handeln)? Oder schwebt dir vor, das die in deinem System erstellten Bestellungen an das System von externen Lieferanten übergeben wird? Oder an ein hauseigenes System. Bestellungen muss ja am Ende auch jemand bezahlen.
 

KonradN

Super-Moderator
Mitarbeiter
Den Vorwurf an die Entwickler, heutzutage nur noch irgendwas zusammen zu kopieren, lese ich immer wieder - aber stimmt der? Ich kann mir das irgendwie nicht vorstellen, dass da irgendwas sinnvolles dabei entstehen kann.
Bei der eigentlichen Entwicklung bestimmt nicht. So extreme Fälle mag es geben, aber da bekommt man ja nur Anregungen oder Lösungen zu kleinen Problemen.

Nur eben muss man vieles nicht können. Maven sollte man grob kennen, aber ansonsten reichen einzelne Entwickler aus, die das Detailwissen haben. CI/CD Pipeline: Muss ein Entwickler nicht im Detail kennen. Ich checke ein und dann passiert da was und ich kriege Emails von dem Typen, der den ganzen Tag nur Emails schickt ... Das sind immer die gleichen Typen und die Typen kennt wohl jeder :)

Wie oft macht man etwas am Projekt? Und was sind das für Veränderungen? Neue Version eintragen mag das sein, was "öfter" vorkommt. aber sonst?

Und das mit Maven würde ich eher so sehen wie was am Auto machen. Dann nehme ich mal das Hanbuch raus und schaue da nach, wo überall Sicherungen sind und welche Sicherung für was da ist um dann die Sicherung zu tauschen. (Wie oft macht man sowas? Hatte ich neulich mal ... aber sonst?)

Bin da also ganz bei Dir.
 

AndiE

Top Contributor
Im übertragenen Sinne sehe eich das so. dass der TE versucht, einen Elefanten, ein Gnu und ein Nilpferd gleichzeitig zu essen. Ich würde daher die Anforderungen trennen, Wenn Patienten Essen bestellen und es geliefert bekommen, ist es doch etwas andres. als wenn die Stationen Reinwäsche geliefert bekommen und Schmutzwäsche abgeben.

Ich würde jetzt mehrere Ansätze sehen:
1. Wie sieht der Verlauf der Tätigkeiten für die Software aus? Das wäre praktisch die Modellierung- entweder mit UML oder BPMN.
2. Kann man das Verhalten nach 1. GUI-los abbilden, und dazu die internen Dinge wie Serialisierung nutzen. Die Idee dahinter ist ähnlich wie bei der testgetriebenen Entwicklung, dass m an in der main-Methode die Funktionen direkt aufruft und sich dann die Ergebnisse ausgeben läßt.
3. Man könnte universelle Frameworks nutzen, die zwar kostenlos sind, aber nicht ohne. So wie Spring. Da müsste man dann von Grundauf anfangen, die Webseiten mit XHTM aufzubauen und auch die Eingabefelder und Kontrollelemente( Button) zu nutzen. Diese app-Server laufen dann aber local.
4. Man müsste in 2. die Serialisierung durch eine Datenbanklösung ersetzen.
5. Man müsste nun aus 1. und 3. die Benutzeroberfläche zusammenstellen.
6. Man müsste nun die Ergebnisse aus 4. und 5. zur Anwendung zusammenstellen.

Der Vorgang ist aber recht langwierig und steinig, da sich Spring mit frei zugänglicher Hilfe schwer tut.
 

mihe7

Top Contributor
Das sind immer die gleichen Typen und die Typen kennt wohl jeder :)
Dieser Herr Jenkins müllt mich auch immer zu.

Ich würde daher die Anforderungen trennen,
Das sehe ich auch so.

Allein das Essensthema ist alles andere als trivial. Ich kenne das z. B. so, dass es Speisepläne gibt und für jeden Tag verschiedene "Menüs" zur Auswahl stehen. Bis dahin ginge es ja noch: Anwender A wählt für Patient P in Raum R, Tag T, Tageszeit Z das Menü M.

Ganz so einfach ist es dann nicht, schon weil es zusätzliche Wahlmöglichkeiten innerhalb eines Menüs gibt. Will man zum Frühstück Kaffee oder Tee? Welchen Tee? Außerdem gibt es natürlich Sonderwünsche: ich bräuchte bitte 2 x Butter.

Das sind Dinge, die es auch im Restaurant gibt. Wir reden hier aber von einem Krankenhaus. Neben den Sonderwünschen gibt es also auch verordnete Diäten, wobei wiederum unterschieden werden muss, ob es sich um Dinge handelt, die eingehalten werden müssen oder nur sollten. Hinzu kommen Unverträglichkeiten oder Grunderkrankungen, die bestimmte Lebensmittel "ausschließen" unabhängig von der akuten Erkrankung. Der Diabetiker erhält ggf. zusätzliche Zwischenmahlzeiten, der es auf der Galle hat, braucht lipidarme Kost etc. etc.

Wie soll das erfasst werden? Wie ist zu verfahren, wenn der Wunsch des Patienten mit den medizinischen Empfehlungen kollidiert? Wie braucht die Küche den Spaß angezeigt? Wie wird der Plan erstellt? Wie sehen die Anforderungen an die (Daten-)Sicherheit aus?

Und jetzt habe ich nur einmal als Außenstehender an der Oberfläche gekratzt mit Dingen, die mir ad hoc eingefallen sind. Der Teufel steckt bekanntermaßen im Detail und da werden noch viele weitere Fragen auftauchen. Das heißt nicht, dass man das alles strukturiert umsetzen muss, aber das Projekt muss vorab abgesteckt werden.

Die technische Umsetzung kommt da ziemlich lange gar nicht vor, schließlich gibt es zig Möglichkeiten und bevor man nicht weiß, was man braucht, kann man schlecht sagen: nimm Spring.
 

M.L.

Top Contributor
Weiterhin sollte man bei "U-Boot-Projekten" (wenn es gut geht: schön. Wenn nicht: auch kein Problem) beachten, dass die dahinterliegenden analogen Prozesse auch verändert (und miteinbezogen) werden wollen. Einfach eine (optisch schicke und technisch ausgefeilte) Weboberfläche anbieten (und sonst nichts) kann aus mehreren (psychologischen) Gründen problematisch werden (ohne Anspruch auf Vollständigkeit):
-die potentiellen Benutzer akzeptieren "nur" die alte analoge Vorgehensweise
-das neue System funktioniert nur mit speziellen Browsern, speziellen Endgeräten oder nur mit schneller Verbindung
-die Bedienung ist (subjektiv) zu umständlich
-das neue System leistet weniger als erwartet (womit die "alte" Lösung mit allen bisher bekannten Vor- und Nachteilen weiterverwendet wird)
-...

Grundsätzlich sollte man aber auf Änderungen oder Erweiterungen aller Art (rechtlich, programmiertechnisch, Gruppenzusammensetzung...) gefasst sein.
 

mihe7

Top Contributor
beachten, dass die dahinterliegenden analogen Prozesse auch verändert (und miteinbezogen) werden wollen.
Das ist ein ganz wichtiger Punkt.

Man möchte es nicht glauben, aber für manche ist allein die Tatsache, dass sie nicht mehr das gewohnte Papierformular in der Hand haben, eine echte Herausforderung, selbst wenn die Feldbezeichnung identisch sind.

Kleinste Änderungen im Workflow werden dramatisiert. Das muss keine böse Absicht sein (solche User gibt es ja auch), sondern die Leute verwenden Software wie sie es halt vom analogen Prozess gewohnt sind und plötzlich stellt sich heraus, dass es so nicht funktioniert.

Beispiel: jeder Patient bekommt den Speiseplan auf den Tisch gelegt, der kreuzt an, was er haben will, der Pfleger schreibt ggf. noch Sonderwünsche drauf, das Zeug wird eingesammelt, er gibt den Spaß im Stationszimmer ab. Wenn das Essen geholt wird, gehen die "Bestellungen" gleich mit in die Küche.

Wenn man da nicht aufpasst, muss in der digitalen Version der Spaß am PC eingetippt werden. Der Pfleger gibt also den Speiseplan im Stationszimmer ab und plötzlich muss es da jemanden geben, der den Spaß in den PC klopft. Echt jetzt?

Oder der Pfleger bekommt ein Tablet in die Hand gedrückt. Jetzt soll der am Tablet in ein Freitextfeld Sonderwünsche eintippen?!?

Das schwierige an der Digitalisierung: es muss flutschen, sonst hält es nur auf und wird abgelehnt.
 

AndiE

Top Contributor
Obwohl es hier schon fast nicht mehr hergehört, würde ich auf keinen Fall versuchen, das analoge Formular zu simulieren und dann verarbeiten zu wollen.

Praktisch haben wir z.B. für die Essenbestellung ein Blatt mit ca. 20 Produkten bekommen, die wir ankreuzen oder für die wir auch die Anzahl angeben konnten. Programmiertechnisch ist es ein enormer Aufwand, diese 20 Textfelder abzufragen, und je nach Eintrag einen Datensatz zu erstellen, der dann einer Liste hinzugefügt wird. Man schreibt ca. 20 Mal den selben Code, weil man ihn nicht vereinfachen kann.

Es mag da Tricks geben, dass man das doch vereinfachen kann. Mir hat so eine Aufgabe bei meiner Abschlussarbeit das Genick gebrochen.
 

mihe7

Top Contributor
würde ich auf keinen Fall versuchen, das analoge Formular zu simulieren und dann verarbeiten zu wollen.
Das würde ich pauschal nicht so sagen. Letztlich geht es um Akzeptanz und Usability und wenn man den Leuten ein völlig anderes Erfassungssystem aufs Auge drückt, kann das schnell nach hinten losgehen. Man darf nicht vergessen, dass sich die Formulare meist in der Praxis etabliert haben.

Oft muss man also gerade versuchen, dem bisherigen Formular recht nah zu kommen, wobei Ein- und Ausgabe naturgemäß ein wenig anders laufen (z. B. Doppelklick, Autocomplete, Drop-Downs, Checkboxen, etc.) D. h. im Stationszimmer könnte die Erfassung/Änderung durchaus ähnlich wie auf dem Papierformular laufen.

Allerdings kommen wir wieder zum Hauptproblem zurück: gerade bei solchen Dingen wie Speiseplänen im Krankenhaus ist der Aufwand auf Papier für viele minimal. Das zu übertreffen, ist nicht einfach.

Programmiertechnisch ist es ein enormer Aufwand, diese 20 Textfelder abzufragen, und je nach Eintrag einen Datensatz zu erstellen, der dann einer Liste hinzugefügt wird. Man schreibt ca. 20 Mal den selben Code, weil man ihn nicht vereinfachen kann.
Wie meinst Du das bzw. wo liegt das Problem?
 

AndiE

Top Contributor
Das Eingabefeld sieht etwa so aus:(ist nicht 100% richtig
HTML:
<form action="controller.abfrage">
    <table>
        <tr>
            <edit name="mischbrot" />Mischbrot
        </tr>
        <tr>
            <edit name="weizenbrot"/>Weizenbrot
        </tr>
        <!-- usw. ca. 20 Eingabefeder -->
    </table>
    <button action"submit"/>
</form>

Daraus wird eine Liste von Zutaten(FoodItem)mit

Java:
class Fooditem{
   
    private int count; //Anzahl
    private int foodindex //Schlüssel des Lebensmittels
       
}

Im wahrscheinlich einfachsten Fall wäre das nun so, dass der Controller eine Hashmap übergeben bekommt.

Java:
class controller{
   
    public void abfrage(){
    int count;
    // Die Hashmap form[] wird vom Framework erstellt
        if( count=form["mischbrot"]>0{
            fooditem= new Fooditem();
            fooditem.setIndex(MISCHBROT);
            foodim.setCount(count);
            lunch.itemadd(fooditem);
        }
        if( count=form["weizenbrot"]>0{
            fooditem= new Fooditem();
            fooditem.setIndex(WEIZENBROT);
            foodim.setCount(count);
            lunch.itemadd(fooditem);
        }

// usw.                  
}

Das ist also schon recht monoton, schlecht wartbar, und man benötigt noch die Zutatenschlüssel als Datei.

Ich bin mir jetzt aber nicht sicher, wie z.B. Spring diese Daten an den Controler bereitstellt.
 

mihe7

Top Contributor
Das ist also schon recht monoton, schlecht wartbar, und man benötigt noch die Zutatenschlüssel als Datei.
Das liegt aber schlicht am Code.

Die View soll einfach das darstellen, was das Model liefert. Erster Fehler ist also schon einmal, dass das HTML statisch ist. Wenn das HTML dynamisch erzeugt wird, erledigt sich auch der Rest.
 

mihe7

Top Contributor
Mal ein Beispiel, wie es mit JSF/Primefaces aussehen könnte (die DataView-Komponente kenne ich nicht, daher mit Vorsicht zu genießen; würde aber in jedem Fall mit einer DataTable und inline-Editing funktionieren, also grobe Skizze):
HTML:
<p:dataView id="speiseplan" value="#{backingBean.getEntries()" var="entry">
  <p:dataViewGridItem>
    <div class="entry-label">#{enty.label}</div>
    <div class="entry-amount">
      <p:inputNumber value="#{entry.amount}" />
    </div>
  </p:dataViewGridItem>
</p:dataView>
<p:commandButton action="#{backingBean.submit}" process="@this speiseplan" />
Der Code fügt der Seite eine Primefaces DataView-Komponente hinzu. Die bekommt ihre Werte von einer Methode getEntries(), die in einer Backing Bean namens backingBean zur Verfügung gestellt wird.

Java:
@Named
@ViewScoped
public class BackingBean implements Serializable {
    private List<Enty> entries;

    @PostConstruct
    protected void init() {
        initEntries(); // entries irgendwie initialisieren.
    }

    public List<Entry> getEntries() { return entries; }

Entry hat einfach einen Getter für das Label sowie Getter und Setter für die Menge.

Der Button sorgt dafür, dass beim Klick die DataView-Komponente verarbeitet wird. Dabei werden die Texte in die Entry-Objekte übernommen. Anschließend wird die submit()-Methode aufgerufen. Dort stehen dann die Werte zur Verfügung:
Java:
    public void submit() {
        for (Entry entry : entries) {
            System.out.println(entry.getLabel() + ": " + entry.getAmount());
        }
    }
 

AndiE

Top Contributor
@mihe7

Ich habe mal aufgezeichnet, wie sich das real für den Patienten darstellt. Wahrscheinlich war es mein Problem, dass die View das Model nicht einfach abbildet. Die von dir gezeigte Art kenne ich auch, aber eher als Darstellung einer Tabelle, also eines Datensatzes mit seinen Feldern in einer Zeile.
Dass dabei die Anzahl der Datensätze variabel ist, aolso der Listengröße entspricht, in diesem Fall aber immer gleich ist, ist wahrscheinlich eine Nebenwirkung, die man aber leicht beheben kann.
20220703_192832.jpg
 

java-starter

Mitglied
Vielen Dank erstmal für die Anteilnahme, aber ich betone jetzt noch mal explizit:

Ich mache das in meinem eigenen Auftrag, aus purem Spaß an der Freude und der Herausforderung, niemand weiß, dass ich das mache und mein Arbeitgeber hat mich auch nicht darum gebeten.

Auch wenn ich dankbar bin für jeden Kommentar finde ich doch eine Antwort wie „Lass es einfach“ schade. Das ist nicht die Art Rat, die ich meinem Kind geben würde. Ja Klar ist das eine große Herausforderung, aber deswegen muss man nicht aufgeben =)

Also ich habe mit Excel angefangen. Das ist wirklich leicht und geht auch recht schnell... Man findet wirklich viel dazu.

Dann wurde ich neugieriger und bin nun Java Anfänger, weil ich das Thema Datenbanken sehr interessant finde und hoffe da mal hin zu kommen.

Viel Erfolg
 

mihe7

Top Contributor
Die von dir gezeigte Art kenne ich auch, aber eher als Darstellung einer Tabelle, also eines Datensatzes mit seinen Feldern in einer Zeile.
Ja, wie gesagt: das funktioniert auch mit einer Tabelle und inline Editor (da weiß ich 100 %-ig, dass es geht). Aber das sind alles nur Darstellungs"probleme". Dein Diagramm ist hoffentlich kein Klassendiagramm gewesen.

Wahrscheinlich war es mein Problem, dass die View das Model nicht einfach abbildet.
Vermutlich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kartenspiel online auslesen HTML / CSS 7

Ähnliche Java Themen

Neue Themen


Oben