# Baltique OS Core 0.4 — TheatreFlow Scheduler: testy akceptacyjne

## Cel
Core 0.4 dodaje operacyjny plan bloku i sal zabiegowych. OpenCare pozostaje systemem formalno-medycznym; Baltique OS jest źródłem prawdy dla organizacji terminu operacji, listy rezerwowej, przyjęcia pacjenta i planu bloku.

## Przed testem
- Zrób backup plików i bazy.
- Wgraj upgrade Core 0.4.
- Zaloguj się jako superadmin/admin.
- Wejdź na `/upgrade_0_4.php` i uruchom upgrade.

## Testy

1. **TheatreFlow otwiera się**
   - Wejdź: `/index.php?page=theatreflow`.
   - Oczekiwane: widok TheatreFlow Scheduler bez błędu 500.

2. **Widok roku**
   - Kliknij `Rok`.
   - Oczekiwane: heatmapa 12 miesięcy, dni zielone/żółte/pomarańczowe/czerwone/szare.

3. **Widok miesiąca**
   - Kliknij `Miesiąc`.
   - Oczekiwane: kafelki dni z liczbą operacji i wolnym czasem.

4. **Widok tygodnia**
   - Kliknij `Tydzień`.
   - Oczekiwane: sale jako rzędy, dni tygodnia jako kolumny.

5. **Widok dnia**
   - Kliknij `Dzień`.
   - Oczekiwane: sale operacyjne/zabiegowe i kafle operacji.

6. **Sale startowe**
   - Oczekiwane: aktywne są Luxmed Gdańsk — sala operacyjna i sala zabiegowa.
   - Sale Sopot są widoczne jako przyszłe/future.

7. **Dni pracy**
   - Oczekiwane: wtorek, środa, czwartek 07:00–19:00 aktywne dla sal Luxmed.
   - Niedziela domyślnie wyłączona, ale możliwa do włączenia w konfiguracji.

8. **Zapis pacjenta do slotu**
   - Wybierz pacjenta i procedurę.
   - Kliknij jeden z wolnych slotów.
   - Oczekiwane: powstaje operacja, pojawia się na planie tygodnia/dnia i w Paszporcie Opieki pacjenta.

9. **Pacjent nie widzi szczegółów bloku**
   - W Paszporcie pacjenta powinny być widoczne data i godzina przyjęcia.
   - Dokładna godzina wejścia na salę, sala i personel nie są przeznaczone dla pacjenta.

10. **Kolizja sali**
   - Spróbuj zapisać drugiego pacjenta na ten sam slot i tę samą salę.
   - Oczekiwane: system odmówi z powodu kolizji.

11. **Lista rezerwowa tygodnia**
   - Dodaj pacjenta do listy rezerwowej tygodniowej.
   - Oczekiwane: wpis pojawia się w TheatreFlow z priorytetem, tygodniem i gotowością.

12. **Zmiana statusu listy rezerwowej**
   - Zmień status: aktywne → kontakt → akceptuje.
   - Oczekiwane: status się zapisuje, Sentinel rejestruje akcję.

13. **Konfiguracja niedzieli**
   - Jako admin włącz niedzielę dla jednej sali testowo.
   - Oczekiwane: niedziela przestaje być szara w heatmapie i przyjmuje sloty.
   - Po teście możesz ją wyłączyć.

14. **Sentinel**
   - Sprawdź audyt.
   - Oczekiwane akcje: `surgery_case_create`, `surgery_waitlist_create`, `surgery_waitlist_status_update`, `theatreflow_room_rule_update`.
