# Baltique OS Core 2.7.0
## Enterprise Clinical Function Unification & Canonical Site Consolidation

Wydanie 2.7.0 zostało przygotowane na podstawie pełnego pakietu przekazanego jako `2026.07.11 BaltiqueOS v.2.6.1.zip`.

## Cel

- jedna pozycja głównego menu odpowiada jednej rzeczywistej funkcji klinicznej lub operacyjnej;
- widoki specjalistyczne pozostają narzędziami wewnątrz funkcji, zamiast konkurować w głównej nawigacji;
- moduły historyczne i dublujące są ukrywane z normalnego menu, ale zachowywane dla kompatybilności i audytu;
- powielone rekordy bieżącego gabinetu w Sopocie są scalane do jednej kanonicznej lokalizacji `Baltique Sopot, Gabinet`;
- synchronizacja źródeł jest kanonizowana, aby kolejny refresh nie odtworzył duplikatów.

## Model docelowy — 13 funkcji

| Klucz | Funkcja | Trasa kanoniczna | Role |
|---|---|---|---|
| `workspace` | Mój pulpit | `/workspace.php` | * |
| `hospital` | Centrum szpitala | `/system_hospital_command_center.php` | superadmin, admin, management, reception, coordinator, surgeon, anesthesiologist, nurse, block, ward, supply |
| `patients` | Pacjenci i sprawy | `/system_clinical_function.php?function=patients` | superadmin, admin, management, reception, coordinator, surgeon, anesthesiologist, nurse, ward |
| `scheduling` | Rejestracja i harmonogram | `/system_clinical_function.php?function=scheduling` | superadmin, admin, management, reception, coordinator |
| `qualification` | Kwalifikacja kliniczna | `/system_clinical_function.php?function=qualification` | superadmin, admin, management, coordinator, surgeon, anesthesiologist, nurse |
| `documents` | Dokumenty i zgody | `/system_clinical_function.php?function=documents` | superadmin, admin, management, reception, coordinator, surgeon, anesthesiologist, nurse |
| `communication` | Komunikacja | `/system_clinical_function.php?function=communication` | superadmin, admin, management, reception, coordinator, surgeon, nurse, ward |
| `or` | Blok operacyjny | `/system_clinical_function.php?function=or` | superadmin, admin, management, surgeon, anesthesiologist, nurse, block |
| `aftercare` | PACU, wypis i opieka | `/system_clinical_function.php?function=aftercare` | superadmin, admin, management, coordinator, surgeon, anesthesiologist, nurse, ward |
| `supply` | Farmacja i zaopatrzenie | `/system_perioperative_supply_chain.php` | superadmin, admin, management, supply, block, nurse |
| `finance` | Finanse i płatności | `/system_clinical_function.php?function=finance` | superadmin, admin, management, reception, coordinator |
| `management` | Zarządzanie i analityka | `/system_clinical_function.php?function=management` | superadmin, admin, management, surgeon |
| `system` | Administracja systemu | `/system_clinical_function.php?function=system` | superadmin, admin |

## Wynik pełnego skanu

- przeskanowane pliki PHP: **859**;
- historyczne instalatory: **262**;
- serwisy aplikacyjne/internal: **217**;
- specjalistyczne widoki kliniczne: **178**;
- panele techniczne: **153**;
- zidentyfikowane powielone UI: **25**;
- endpointy API: **15**;
- kanoniczne punkty wejścia: **9**.

Pełna lista decyzji znajduje się w `docs/MODULE_INVENTORY_2_7_0.csv`.

## Konsolidacja lokalizacji Sopot

Kanoniczny rekord:

```text
site_key: sopot_current
location slug: sopot-gabinet
label: Baltique Sopot, Gabinet
adres: al. Niepodległości 761 lok. 1.3, 81-838 Sopot
```

Historyczne aliasy pozostają obsługiwane, między innymi:

```text
default
sopot-obecny
sopot-niepodleglosci
sopot-gabinet
```

Planowane lokalizacje Gdańsk Hallera i Sopot Poniatowskiego nie są scalane.

## Bezpieczeństwo wdrożenia

- pełny backup jest wymagany przed upgrade;
- konsolidacja używa blokady MySQL;
- powiązania są przepinane przed próbą usunięcia duplikatu;
- rekord z nierozwiązanymi referencjami jest archiwizowany, nie kasowany;
- synchronizator źródeł jest uruchamiany dwukrotnie;
- instalator wymaga dokładnie jednego kanonicznego rekordu i zera widocznych duplikatów;
- nie są usuwane dane kliniczne ani historyczne instalatory.

## Instalacja

1. Wykonaj pełny dump MySQL, backup aplikacji i `storage`.
2. Wdróż paczkę najpierw na staging.
3. Wypakuj overlay do katalogu głównego Baltique OS.
4. Zaloguj się jako `admin` lub `superadmin`.
5. Otwórz `/upgrade_2_7_0.php`.
6. Uruchom instalację jeden raz.
7. Sprawdź `/system_site_consolidation_270.php` i `/system_module_unification_270.php`.
8. Uruchom jeden Runtime Preflight.
9. Przetestuj menu i dostęp dla wszystkich ról.

## Granica wydania

2.7.0 porządkuje kod, nawigację i lifecycle modułów. Nie kasuje automatycznie historycznych plików, ponieważ część może być nadal zależnością runtime lub śladem audytowym. Po pomyślnym UAT można je przenieść do oddzielnego archiwum w kolejnym kontrolowanym release.
