Afsprakenkalender
ik wil graag een afsprakenkalender gebaseerd deze hier: http://www.huisartsenpraktijkmontaigne-vromman.be/nl/stap-2?personid=3
Alleen krijg ik kop noch staart aan de opbouw van de database.
- welke tabellen heb ik nodig?
- hoe bepaal ik op welke tijdstippen (dag/uur) de dokterspraktijk open is (verschil tussen unavailable en normal)?
- hoe schrijf ik dan een afspraak weg?
Iemand die me op weg kan/wil helpen?
thx
Dit is niet 'even' gemaakt en vaardigd een redelijk begrip van deze twee. Misschien is een Google agenda een optie? Of misschien Dailypilot?
ik weet dat dit inderdaad wat werk zal vergen. De PHP en MySQL heb ik wel ervaring mee, ik heb al websites gemaakt maar steeds met vrij eenvoudige database-structuur met weinig relaties en koppeltabellen.
Het principe van de kalender vind ik prachtig en daarom wil ik daarop verder bouwen of beter gezegd, zelf maken. Het is voor een vriend die dokter is en ik beschouw het dan ook als een persoonlijk project met een leuke uitdaging.
Ik ben begin dit jaar begonnen aan een programma in C#. Tot daarvoor had ik geen enkele notie ervan en nu heb ik een programma gemaakt met kalender om reservaties in te voeren voor scholen die bij ons educatieve activiteiten volgen met gidsen. Dus als ik iets wil...dan ga ik ervoor! Maar mijn collega van de IT-dienst heeft me ook op weg geholpen met de database :-)
grtz
Gewijzigd op 17/11/2012 10:28:14 door Bart C
Stap 1. Bepaal wat je wil op slaan.
In jouw geval willen we datums, tijd en informatie van 'gebruikers' op slaan.
We hebben dus bijvoorbeeld:
Datum (dd-mm-jjjj)
Tijd (hh:mm)
Naam
Achternaam
Adres
Telefoonnummer
Straat (en straat nummer)
Rede van bezoek
Stap 2, Waar je wel wat aandacht aan moet besteden is Databasenormalisatie, voor een zo efficiënt mogelijke database. Dit is over het algemeen gewoon logisch nadenken!
Stap 3. Realiseren.
Waar begin je mee? Obviously de database, maar daarna.
Nu is dit antwoord in jouw geval heel simpel, want het is geen complete website, maar 1 module.
Hoe schrijf ik dan een afspraak weg?
Nou.. met sql :)
Succes! Als je meer vragen hebt horen we dat wel :)
ik besteed inderdaad aandacht aan Databasenormalisatie. Werkt veel makkelijker.
Het wegschrijven van een datum-tijd-persoonsgegevens is niet het probleem.
Waar ik wel mee zit is de database-opbouw van de kalender zelf.
De daguren lopen van 8u tot en met 21u. Dan ga ik er van uit dat de dokterspraktijk altijd gesloten is.
De eerste opdracht voor de dokter is het invoeren van zijn openingsuren. Welke momenten is de dokter beschikbaar (wordt per kwartier gerekend). Je kan niet verwachten dat hij z'n tijd moet besteden door elke dag alle vakjes aan te klikken waarop z'n praktijk open is. Er moet dus een soort standaardschema worden opgebouwd.
Dit heb ik zo proberen op te lossen: tbl_praktijkopen(ID, Weekdag, Moment_ID, Dokter_ID)
Ik werk niet met datums maar met de weekdag (maandag=1 tot...). De dokter krijgt een weekschema voor zich en kan daarop aanklikken welke dagen/momenten van de week hij werkt. Op die manier kan ik simpelweg de kalender week na week opbouwen vanuit die ene tabel. De query kijkt welke weekdag het die dag is en via een loop controleert hij dan welke dagmomenten (8-8:14, 8:15-8:30,..) er in de tabel staan. Als dat zo is, dan wordt dat vakje beschikbaar om een afspraak te maken.
Dit werkt goed.
Stel dat een dokter een half dagje sluit, dan kan ik nog een extra column in m'n tabel laten voorzien die het verschil laat zien tussen 'bezet door afspraak' of gewoon 'uitzonderlijk gesloten'. De dokter kan dat via eenzelfde kalender als de cliënten invoeren. Dit kan ook geen probleem opleveren.
Maar nu komt mijn probleem: stel, die dokter gaat in verlof voor een week of zelfs veel langer. Dat kan hij natuurlijk via bovenstaande methode aanvinken maar dat gaat lang duren. Zeker als het bvb een maand is. Dan dacht ik om te werken met periodes. Dit schema geldt van dag A tot dag B. Dat zou werken maar dat wil zeggen dat hij na een verlofperiode opnieuw een schema met de normale uren moet invullen van dag B tot ...
Hier zit ik een beetje vast. Je zou een systeem moeten hebben waarbij uitzonderlijk schema's het standaardschema overruled. Tips?