https://www.gravatar.com/avatar/306d401b2a8c0efe0996fec60e0c90aa?s=240&d=mp

My coding journey

Dzień dobry!

Mam na imię Kamila. Witam Cię serdecznie na stronie kamilachyla.com.

Znajdziesz tu garść moich notatek.

Piszę głównie o programowaniu (EN/PL): (Java, Python, Go, JavaScript), w wolnych chwilach bawię się sztuką generatywną (p5js) oraz piszę i ilustruję książeczki dla swoich dzieci.

Zapraszam!

Gabinet dentystyczny - przygotowania do rysowania diagramu

Przymierzam się powoli do narysowania diagramu zębów. Założenia Na początku przygotuję bazę - dodam potrzebne tabele - i zastanowię się nad API, jakie może mi się przydać podczas rysowania. Później zamierzam napisać kawałek kodu w JavaScript, który ściągnie z serwera listę zmian (operacji, jakie były wykonywane na poszczególnych zębach) i wyrysuje je na diagramie widocznym w widoku wizyty. Docelowo diagram będzie interaktywny - klikanie w zęby będzie generować po stronie serwera “zmiany stanu uzębienia”.

Gabinet dentystyczny - usuwanie pacjentów i wizyt

Nadszedł czas na implementację usuwania pacjentów oraz wizyt. Usuwanie nie będzie tak naprawdę usuwaniem, lecz ukrywaniem - dodatkowa, boolowska kolumna deleted w tabelach patient oraz visit będzie flagą oznaczającą “usunięty” rekord w bazie. Dzięki temu omyłkowe usunięcie będzie “odwracalne”. Zmiany w SQL Zmiana schematu bazy Konieczna będzie mała zmiana schematu: każdaą encję poszerzam o pole deleted: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 create table if not exists patient ( id integer primary key, name string not null, surname string not null, birthdate date not null, note_id integer, deleted boolean default false, foreign key(note_id) references note(id) ); create table if not exists note ( id integer primary key, deleted boolean default false, text string not null ); create table if not exists visit ( id integer primary key, vdatetime datetime not null default CURRENT_TIMESTAMP, patient_id integer not null, note_id integer, deleted boolean default false, foreign key(patient_id) references patient(id), foreign key(note_id) references note(id) ); Zmiana zapytań pobierających pacjentów Zapytanie o listę pacjentów uwzględnia tylko te wiersze, dla których deleted=false:

Gabinet dentystyczny - dodanie wizyt

Ostatnie dwie drzemki mojej córki spędziłam na “rozszerzaniu”  prorgamu “Gabinet”. W “Gabinecie” można już dodawać pacjentom wizyty. Oprócz notatki związanej z wizytą oraz daty i godziny nic więcej na temat wizyt nie zapisuję. Programik posiada więc podstawową funkcjonalność biednego, CRUD-owego prototypu. Rzeczy do zrobienia (TODO) Aby był on choć trochę używalny, koniecznie trzeba jeszcze dodać: stronicowanie (w sensie: paginację) dla tabel wyszukiwanie pacjentów pokazywanie wizyt: dzisiejszych, w tym ygodniu, wszystkich schemat zębowy dla pacjenta (to pewnie byłaby bardziej interaktywna część) Ciekawe, czy starczy mi motywacji, żeby zaimplementować choć część z powyższych funkcji.