HIGI · specyfikacja techniczna

Specyfikacja aplikacji HIGI (higi.com.pl)

25 czerwca 2026 · na potrzeby oceny prawnej (AI Act + RODO) i marketingu · dokument wewnętrzny

1. Streszczenie wykonawcze

HIGI to aplikacja w przeglądarce dla higienistek stomatologicznych. Na podstawie ankiety o stanie zębów i nawykach pacjenta generuje spersonalizowany plan higieny jamy ustnej (co kupić, czego używać, jak często, w jakiej kolejności). Plan powstaje po stronie higienistki, która prowadzi pacjenta przez ankietę, przegląda wynik i przekazuje go pacjentowi (wydruk / PDF).

Cztery fakty kluczowe dla oceny prawnej:

2. Czym jest HIGI (opis funkcjonalny)

Dla kogo: higienistka stomatologiczna prowadząca własną praktykę lub pracująca w gabinecie. Pacjent nie jest użytkownikiem konta — jest osobą, dla której higienistka generuje plan.

Przepływ działania:

  1. Higienistka loguje się do aplikacji (konto przez Clerk).
  2. Prowadzi pacjenta przez ankietę: ~50 pytań warunkowych (kolejne pytanie zależnie od wcześniejszej odpowiedzi).
  3. Silnik mechanicznie mapuje odpowiedzi na bloki treści i składa plan w 10 sekcjach: Wstęp, 13 Zasad, Diagnoza, Styl życia, Higiena poranna, Higiena wieczorna, Produkty, Lista zakupów, Wizyty, Kontakt.
  4. Higienistka przegląda plan i przekazuje pacjentowi: kopiuje tekst, drukuje lub zapisuje PDF (wszystko po stronie przeglądarki).

Stan produkcyjny: na produkcji higienistka NIE edytuje treści wygenerowanych bloków planu — zakładka „Edytor” informuje, że funkcja edycji pojawi się w kolejnej iteracji. Higienistka steruje przepływem, przegląda wynik, ustawia dane gabinetu i drukuje. Edytor treści jest w przygotowaniu (środowisko dev).

Role w systemie

RolaOpis
Higienistka soloSamodzielna praktyka; własne konto, własny dostęp.
Gabinet (organizacja)Właściciel + zaproszeni członkowie; dostęp dziedziczony. Funkcja w przygotowaniu (dev).
Super-admin4 adresy e-mail z listy (twardo w kodzie) + ewentualnie nadani przez panel; zarządzają treścią, dostępem, mailami.

3. Status: produkcja vs środowisko deweloperskie

Rozdzielamy, co działa na produkcji (higi.com.pl), a co jest w przygotowaniu na dev i jeszcze nie zostało wdrożone na produkcję.

FunkcjaStatus
Pacjencki silnik ankieta→plan (deterministyczny, w przeglądarce)PRODUKCJA
Logowanie higienistki + konto + brama dostępuPRODUKCJA
Konta gabinetów (organizacje Clerk, zaproszenia, dziedziczenie dostępu)DEV
Edytor treści ankiety/planu zapisywany na serwer (szablony)DEV
System maili transakcyjnych (Resend) + przypomnieniaDEV (tryb próbny)
NIP gabinetu jako kotwica + dane do fakturyDEV
Weryfikacja telefonu higienistki solo (Clerk SMS) jako kotwica anty-abuseDEV — przygotowane, NIEAKTYWNE (czeka na konfigurację Clerk SMS)
Płatności kartą (Stripe)przygotowane, nieaktywne

Specyfikacja opisuje cały system (produkcja + bliski roadmap), aby prawnik mógł ocenić także funkcje wchodzące (zwłaszcza przechowywanie NIP i maile), będące przedmiotem przygotowywanej klauzuli RODO.

4. Architektura techniczna

Komponenty

WarstwaTechnologiaRola
Front pacjenta (legacy)Czysty JavaScript/HTML + SheetJS (xlsx) + html2pdfAnkieta i generowanie planu w przeglądarce. Bez komunikacji z serwerem poza pobraniem pliku reguł.
Front higienistki/adminaReact + TypeScript + ViteLogowanie, konto, panel gabinetu/admina. Wysyła dane konta do serwera.
Serwer (API)Cloudflare Workers (Hono)~40 endpointów: konto, autoryzacja, szablony, organizacje, maile, billing. Każdy wymaga JWT Clerk.
Baza danychCloudflare D1 (SQLite) — region Europa Wschodnia (EEUR)Dane konta/gabinetu, szablony treści, konfiguracja, logi maili, audyt. Bez danych pacjenta. Szczegóły rezydencji: sekcja 6.6.
Sesje / cacheCloudflare KVDane techniczne sesji/cache.
Tożsamość/logowanieClerk (zewn.)Hasła, 2FA, sesje, organizacje. JWT RS256/JWKS, weryfikowany offline na Workerze.
PłatnościStripe (zewn.)Billing, webhooki (nieaktywne na produkcji).
MaileResend (zewn.)Maile transakcyjne (tryb próbny na dev).

Granica danych (kluczowa)

PRZEGLĄDARKA PACJENTA → [ankieta + plan: pamięć lokalna, wydruk/PDF]  ✗ nie wychodzi na serwer

PRZEGLĄDARKA HIGIENISTKI → [dane konta, NIP, szablony] → SERWER (Worker → D1, region Europa Wschodnia) + Clerk (USA) / Stripe / Resend

5. Silnik planu — analiza pod AI Act

Jak działa silnik (fakty z kodu)

Analiza pomocnicza pod AI Act (do potwierdzenia przez prawnika)

Rozporządzenie (UE) 2024/1689 (AI Act), art. 3 ust. 1, definiuje „system AI” jako system maszynowy, który WNIOSKUJE (infers) na podstawie danych wejściowych, jak generować wyniki, i może wykazywać zdolność adaptacji. Motyw 12 oraz wytyczne Komisji (luty 2025) wyłączają z tej definicji systemy oparte wyłącznie na regułach zdefiniowanych przez człowieka — klasyczne systemy regułowe bez „wnioskowania” w sensie uczenia maszynowego.

Wniosek pomocniczy: silnik HIGI NIE spełnia definicji „systemu AI” i pozostaje poza zakresem AI Act — nie wymaga klasyfikacji ryzyka ani obowiązków z AI Act. Reguły napisane przez człowieka, brak wnioskowania ML, brak adaptacji, brak autonomii (higienistka steruje całym przepływem). Decyzja ostateczna należy do prawnika.

Co mogłoby to zmienić: dodanie modelu ML/LLM do generowania lub personalizacji planu, automatyczna ocena ryzyka choroby, albo element uczący się na danych. Dopóki silnik pozostaje deterministycznym drzewem reguł — analiza się nie zmienia.

6. Dane osobowe — analiza pod RODO

Mapa danych

Kategoria danychGdzieNa serwerze?Podstawa (wstępnie)
Odpowiedzi pacjenta + plan (dane o zdrowiu, art. 9)Wyłącznie przeglądarkaNIENie dotyczy serwera — nie przetwarzamy serwerowo
Imię pacjenta + data wizyty (wpisane przez higienistkę)Wyłącznie przeglądarkaNIEPozostają u higienistki (administrator: gabinet)
Konto higienistki: imię, e-mailSerwer (D1) + ClerkTAKart. 6 ust. 1 lit. b (umowa)
Gabinet: nazwa, adres, NIPSerwer (D1)TAK (dev)art. 6 ust. 1 lit. c (podatki) + lit. f (anty-abuse)
Telefon higienistki solo (weryfikacja + anty-abuse)Clerk (SMS/OTP) + serwer (D1: numer E.164)TAK (dev, planowane)art. 6 ust. 1 lit. b (dostęp do usługi) + lit. f (anty-abuse)
Treść szablonów ankiet/planów (higienistki)Serwer (D1)TAK (dev)art. 6 ust. 1 lit. b
Dane techniczne: identyfikatory Clerk/Stripe, sesje, audytSerwer + Clerk/StripeTAKart. 6 ust. 1 lit. b/f
Logi maili (do higienistek, nie pacjentów)Serwer (D1) + ResendTAK (dev)art. 6 ust. 1 lit. b/f

Dane szczególnej kategorii (art. 9 — zdrowie)

Najtrudniejsza część RODO — dane o zdrowiu pacjenta — NIE jest przetwarzana po stronie serwera HIGI. Odpowiedzi ankiety i plan żyją tylko w przeglądarce higienistki. Żadna z 8 tabel bazy nie przechowuje danych pacjenta (zweryfikowano w migracjach schematu). To architektonicznie wycina obowiązki z art. 9 po stronie operatora (brak rejestru czynności na danych zdrowotnych, brak DPIA dla danych pacjenta, brak powierzenia danych zdrowotnych pacjenta podprocesorom).

Administratorem danych pacjenta (trzymanych lokalnie przez higienistkę) jest higienistka/gabinet w ramach własnej praktyki, nie HIGI — do potwierdzenia w regulaminie przez prawnika.

Podprocesorzy

PodprocesorFunkcjaJakie dane widziTransfer / lokalizacja
CloudflareHosting, Workers, D1, KV, PagesDane konta/gabinetu, szablony, logiD1: region Europa Wschodnia (bez twardej blokady UE); KV: globalny; firma USA — DPA + SCC (patrz 6.6)
ClerkLogowanie, tożsamość, organizacje, weryfikacja telefonu (SMS/OTP)E-mail, imię, identyfikator, rola, struktura gabinetu, numer telefonu (przy weryfikacji solo)USA — DPF/SCC + DPA
StripePłatności (nieaktywne na prod)Dane rozliczeniowe, identyfikator klientaUSA — DPF/SCC + DPA
ResendMaile transakcyjne (dev, próbny)E-mail higienistki/gabinetu + treść mailaUSA — DPF/SCC + DPA

Do potwierdzenia z prawnikiem

Weryfikacja tożsamości i przeciwdziałanie nadużyciom (telefon + NIP)

Aby jeden podmiot nie zakładał wielu kont w celu wielokrotnego wykorzystania darmowego okresu, HIGI stosuje model „jednej kotwicy” — różny dla dwóch typów klienta. To świadoma decyzja o przetwarzaniu danych, istotna dla oceny RODO.

Higienistka solo — kotwica = numer telefonu:

Gabinet — kotwica = NIP: NIP identyfikuje gabinet i służy jako kotwica „jeden NIP = jeden darmowy okres” (unikalny indeks) oraz dana do faktury. Podstawa: art. 6 ust. 1 lit. c (podatki) + lit. f (anty-abuse). Projekt klauzuli informacyjnej dla NIP — osobny dokument KLAUZULA-RODO-NIP.

Telefon (solo) i NIP (gabinet) to dwie kotwice tego samego mechanizmu anty-abuse. Oba to dane osobowe / identyfikujące i wymagają podstawy prawnej oraz klauzuli informacyjnej — do potwierdzenia przez prawnika.

Rezydencja danych — gdzie fizycznie leżą dane (zweryfikowane 25.06.2026)

Zweryfikowaliśmy region przechowywania każdego systemu — z konfiguracji (nasza baza) i z aktualnej dokumentacji dostawców.

Najważniejsze: żaden system nie przechowuje danych „tylko w Polsce”. Dane konta są dziś w regionie Cloudflare „Europa Wschodnia” (UE), logowanie (Clerk) fizycznie w USA, a dane pacjenta — nigdzie na serwerze (tylko w przeglądarce).

SystemJakie daneGdzie fizycznieW UE?Jak wymusić UE / uwaga
Cloudflare D1Konto, NIP, kotwica-telefon, szablonyRegion „Europa Wschodnia” (EEUR)Dziś TAK, bez twardej blokadyOdtworzyć bazę z jurisdiction='eu' (tylko przy tworzeniu, nieodwracalne) — twarda gwarancja UE
Cloudflare KVSnapshot treści, cacheGlobalnie (cały świat)NIEBrak opcji UE — nie trzymać tam danych osobowych (trzymać w D1)
Cloudflare WorkersPrzetwarzanie przejściowe (nic nie składuje)Brzeg sieci najbliżej użytkownikaZALEŻY — dla PL w UERegional Services (Enterprise) — dotyczy ruchu, nie składowania
Cloudflare PagesStatyczny front (bez danych osobowych)Globalny CDNbez znaczenian/d — brak danych osobowych
ClerkLogowanie: e-mail, imię, hasło, telefonUSA (San Francisco; GCP w USA)NIE — USABrak opcji UE na żadnym planie; transfer na DPF + SCC + DPA
Stripe (nieaktywne)Dane rozliczeniowe (gdy włączone)USA (rdzeń); kontrakt przez IrlandięNIEBrak opcji UE; nadzór: irlandzki DPC; DPF + SCC
Resend (nieaktywne)E-mail higienistki + treść maila (gdy włączone)USA (AWS w USA)NIERegion wysyłki ≠ składowanie; brak rezydencji UE; DPF + SCC

Wnioski i rekomendacje (do decyzji prawnika / Bartosza)

Źródła (zweryfikowane 25.06.2026): Cloudflare D1 Data location + changelog jurisdykcji (2025-11-05), Workers KV (how-kv-works/FAQ), Cloudflare Trust Hub; Clerk GDPR/DPA/Subprocessors; Stripe Privacy Center/DPA/DPF; Resend Regions/DPA/Subprocessors.

7. Bezpieczeństwo i dostęp

8. Aplikacja a wyrób medyczny (skrót)

Osobna kwestia od AI Act. Wstępna analiza (osobny dokument — research wejścia na rynki): przy pozycjonowaniu EDUKACYJNO-PROFILAKTYCZNYM, z higienistką jako profesjonalistą prowadzącym proces i bez treści diagnostycznych, HIGI najprawdopodobniej pozostaje POZA definicją wyrobu medycznego. W UE (MDR) jest to jednak „szare pole” — zalecana pisemna opinia prawnika MedTech przed marketingiem o charakterze klinicznym. Co przesuwa w stronę wyrobu: claimy diagnozy/leczenia, ocena ryzyka jako wynik kliniczny, albo plan trafiający do pacjenta bez udziału higienistki.

9. Wskazówki dla marketingu

Sposób komunikacji wpływa na kwalifikację prawną (wyrób medyczny) i na uczciwość przekazu. Zasada: pozycjonujemy HIGI jako narzędzie EDUKACYJNO-PROFILAKTYCZNE i organizacyjne dla higienistki, nie diagnostyczne/lecznicze.

Co MOŻNA mówić

Czego UNIKAĆ

10. Wykaz źródeł (pliki kodu)

Dokument oparto na odczycie m.in.: apps/legacy/lib/app.js, apps/legacy/lib/excel-parser.js, apps/legacy/ankieta/, apps/workers/migrations/0001–0008 (pełny schemat D1 — zweryfikowano brak danych pacjenta), apps/workers/src/features/ (account, auth, admin, billing, content, email, org, templates), apps/web/src, wrangler.toml. Stan na 25 czerwca 2026.