KReM, format pliku z danymi o szkołach Michał Kurzydłowski (konsultacje ze strony CKE: Wojtek Śpionek) wersja 1.2, 23.04.2008 1. Do systemu KReM będzie przekazywany przez odpowiednią dla danego maturzysty OKE identyfikator szkoły (według słownika przekazanego przez CKE; nazwijmy go kodem szkoły ), do której chodził tenże maturzysta. Identyfikatory szkół będą przekazywane w oddzielnym pliku, analogicznym do tych, które już istnieją w systemie. Dzięki temu możliwe jest dodanie informacji o szkole maturzysty niezależnie od pozostałych informacji o maturzyście (jak oceny, osiągnięcia i dokumenty). Jako, że plik z dokumentami zawiera w założeniach pełną informację o dokumentach maturzysty i np. w razie dodania aneksu musi zostać wysłany w całości wraz z poprzednimi dokumentami, więc dodanie do niego pola o szkole maturzysty oznaczałoby wysyłanie dodatkowo informacji o szkole (która rzadko będzie ulegać zmianie jedynie w przypadku poprawiania błędu). Takie rozwiązanie uzależniłoby także zmianę lub usunięcie listy dokumentów od zmiany lub usunięcia kodu szkoły i na odwrót, co nie byłoby dobrym rozwiązaniem. 2. Pliki z danymi dla maturzystów wysyłane przez OKE powinny być jak najmniejsze i najprostsze, by mogły być szybko przetworzone przez system. W tym celu OKE będzie do systemu wysyłało jedynie plik, w których jeden wiersz zawiera numer PESEL maturzysty oraz przyporządkowany do niego kod szkoły. 3. Nowy format pliku, zawierającego szkoły maturzystów, będzie miał, analogicznie do poprzednich formatów, postać: Pesel1;Kod_szkoły1 Pesel2;Kod_szkoły2 Zatem wiersz ma budowę: PESEL(;KOD_SZKOŁY)? PESEL CHAR(11), np. 86012590104 KOD_SZKOŁY CHAR(12), np. 1620825AK3C Pesele w wierszach będą mogły się powtarzać, lecz w takim przypadku każdy następny wiersz z powtarzającym się peselem będzie oznaczał nadpisanie poprzedniego przypisania maturzysty do szkoły, co będzie skutkować wprowadzeniem poprzednich szkół do historii szkół dla danego maturzysty. Tym samym można traktować każdy wiersz tak jakby pochodził z innego pliku z uwzględnieniem kolejności występowania wierszy. Jednocześnie zapamiętany zostanie identyfikator pliku, w którym maturzysta otrzymał kod swojej szkoły, tak jak to się dzieje w przypadku ocen, olimpiad, dokumentów i wycofań. Również fakt posiadania szkoły zostanie zapamiętany w rekordzie maturzysty. 1
W przypadku, gdy przy peselu nie występuje kod szkoły, dotychczasowy kod szkoły zostaje usunięty (przeniesiony do historii szkół dla maturzysty) oraz zaznaczony będzie fakt nie posiadania przez maturzysty kodu szkoły. 4. W przypadku, gdy informacja o szkole maturzysty przyjdzie z dwóch różnych OKE, zgłoszony zostanie konflikt. Administrator systemu będzie mógł rozwiązać konflikt, a informacje o wprowadzonych przez oba OKE kodach szkół zostaną zachowane. 5. Aby przetłumaczyć kod szkoły na dane o szkole (takie jak jej nazwa) oraz publiczny kod szkoły (kod używany przez system KReM i przekazywany uczelniom), należy dodać do bazy danych słownik szkół. Słownik ten będzie wysyłany do systemu w postaci pliku z interfejsu administratora oraz eksportowany do pliku (bez kolumny zawierającej kod) i wysyłany uczelniom poprzez ich interfejs. W tym celu interfejs administratora zostanie wzbogacony o nową zakładkę Słownik szkół. Będzie ona umożliwiała wysłanie pliku zawierającego aktualizację do słownika szkół znajdującego się w systemie. Najlepszym rozwiązaniem wydaje się w obu przypadkach przyjęcie formatu CSV (ze średnikiem jako separatorem kolejnych pól w wierszu), gdyż w przypadku importu kodów do KReM można by użyć do tego celu zmodyfikowany parser, który obsługuje już wszystkie pliki wprowadzające dane do systemu. Z drugiej zaś strony format ten łatwo przekształcić z i do arkuszy kalkulacyjnych. Podczas importu do systemu kodów szkół wygenerowany zostanie publiczny kod szkoły odpowiadający kodowi przekazanemu przez OKE. Nie będzie istniała w systemie funkcja odwrotna, gdyż istotne jest by publiczny kod nie umożliwiał odnalezienie kodu stosowanego przez OKE. 6. Słownik będzie zawierał następujące pola: kod szkoły, nazwa szkoły, miejscowość, ulica, numer budynku, kod pocztowy, kod publiczny szkoły. W pliku wysyłanym przez administratora nie będzie jedynie widniał kod publiczny szkoły (zostanie wygenerowany przez system), zaś w pliku pobieranym przez uczelnię nie będzie widniał kod szkoły. Unikatowym polem w słowniku będzie kod szkoły, względem którego będą wykonywane aktualizacje pozostałych pól (unikatowy będzie zatem także publiczny kod szkoły wygenerowany przez funkcję przyjmującą jako parametr kod szkoły). 7. Plik w formacie CSV zawierający nowe kody i aktualizacje starych kodów będzie się składał z wierszy postaci: Kod_szkoły;Nazwa_szkoły;Miejscowość;Ulica;Budynek_nr;Poczta;Kod_pocztowy Kod_szkoły CHAR(12), np. 1620825AK3C Nazwa_szkoły VARCHAR(200) Miejscowość VARCHAR(50) Ulica VARCHAR(50) Budynek_nr VARCHAR(20) Poczta VARCHAR(50) Kod_pocztowy CHAR(6), np. 05077 2
W przypadku, gdy dla pewnego wiersza w pliku, kod szkoły już istnieje w bazie następuje aktualizacja pozostałych pól przez nadpisanie tych pól nowymi wartościami (prócz pola z kodem publicznym, które nie musi być zmieniane). Zatem gdyby w pliku wystąpiło kilka wierszy z tym samym kodem, nastąpi nadpisanie danych o szkole informacjami z kolejnych wierszy, tak, iż pozostanie jedynie informacja zawarta w ostatnim wierszu opisującym tę szkołę, a pozostałe informacje przepadną. Jeśli nie ma jeszcze w bazie szkoły o danych kodzie, to dany kod i informacja o szkole zostaną dodane do systemu oraz wyliczony zostanie publiczny kod odpowiadający danej szkole, a wyliczony na podstawie kodu. Informacja o zaimportowanym do systemu pliku zostanie zapisana w tablicy plików otrzymanych, tak jak to się dzieje w przypadku wszystkich innych plików otrzymanych od administratorów. Wszystkie uczelnie zostaną poinformowane o aktualizacji słownika i potrzebie jego ponownego pobrania poprzez zmianę pola w rekordzie jednostki, informującego o tym, że pobrany wcześniej słownik jest nieaktualny. 8. Uczelnie będą mogły składać zapytanie o publiczne kody szkół maturzystów poprzez wysłanie pliku z peselami maturzystów z interfejsu uczelni. Są to zapytania o wszystkie dane o maturzyście, a więc w tym przypadku zapytanie będzie obejmować również kody szkół. Uczelnie będą informowane o możliwości pobrania kodów szkół maturzystów, o których wcześniej zapytały, gdy poszukiwane osoby otrzymają kody szkół od OKE. Opcja ta będzie dostępna w zakładce pobierania wyników (tak jak opcje pobierania ocen, olimpiad, dokumentów i wycofań). Analogicznie do pozostałych informacji, podana będzie: liczba osób z nowo przypisanymi szkołami, liczba wszystkich osób z przypisanymi szkołami, liczba osób bez przypisanych szkół, liczba osób, których szkoły uległy zmianie oraz dla każdej z tych list osób będzie możliwe pobranie pliku z peselami i kodami szkół danych maturzystów. Poniżej pojawi się także opcja pobrania aktualnego słownika z informacją czy dana uczelnia musi pobrać aktualizację słownika (czy został on zmieniony po ostatnim jego pobraniu). Informacja o ewentualnym pobraniu słownika zostanie zapamiętany (tak jak w przypadku wszystkich pobieranych z systemu plików) w tabeli pobrań. 3
9. Nowy format pliku pobieranego przez uczelnie, zawierający szkoły maturzystów, będzie miał, analogicznie do poprzednich formatów, postać: Pesel1;Publiczny_kod_szkoły1 Pesel2;Publiczny_kod_szkoły2 Zatem wiersz ma budowę: PESEL;PUBLICZNY_KOD_SZKOŁY PESEL CHAR(11), np. 86012590104 PUBLICZNY_KOD_SZKOŁY CHAR(14), np. 01EAC2434EC948 4
10. W przypadku wycofania przez kandydata zgody na przekazywanie wyników uczelni, podobnie jak to się dzieje z ocenami, dokumentami i osiągnięciami maturzysty, także publiczny kod szkoły nie będzie przekazywany uczelni (plik z aktualnym kodem szkoły będzie zachowany, ale zaznaczone zostanie w odpowiednim polu rekordu maturzysty, iż nie posiada on szkoły, zaś szkoła zostanie przeniesiona do historii szkół). Maturzysta będzie nie posiadał szkoły także wtedy, kiedy szkoła zostanie usunięta z rekordu maturzysty, zaś będzie spowrotem posiadał szkołę, kiedy szkoła zostanie dodana lub zmieniona na inną. 11. Warto zauważyć, że scenariusz działań OKE oraz uczelni nie ulegnie zmianie. OKE będą dodatkowo wysyłały pliki z kodami szkół, ale czynią to tak samo jak w przypadku innych informacji o maturzyście. Uczelnie zaś tak jak wcześniej wysyłają zapytania o wszystkie dane o maturzystach, tylko tym razem mogą dodatkowo pobrać informacje o kodach szkół, jak również, kiedy zachodzi taka potrzeba, mogą pobrać słownik tłumaczący te kody na dane o szkołach, tak jak to jest opisane w punkcie 6. 12. Zachowana jest także zgodność wsteczna danych, gdyż nowe pola oraz tablice można zainicjalizować jak podano w nawiasach utrzymując spójność systemu: Maturzysta szkoła (null), plik ze szkołą (null), posiadanie szkoły (false) Jednostka nowy słownik do pobrania (false) Słownik pusty Historia szkół pusta 13. Możliwe scenariusze dla plików z kodami szkół wysyłanych przez OKE: Opis sytuacji Przykład Komentarz Dwa wiersze z tym samym numerem PESEL, opatrzone w kody szkół P; S1 P; S2 Dwa wiersze z tym samym numerem PESEL, drugi wiersz zawiera tylko PESEL Dwa wiersza z tym samym numerem PESEL, ale każdy od innej OKE Oznaczenia: P numer PESEL, S1,S2,.. szkoły, OKE1,OKE2,.. komisje okręgowe. P; S1 P OKE1: P; S1 OKE2: P; S2 Drugi wiersz traktujemy jako nowy kod szkoły dla maturzysty P, czyli jako aktualizację wcześniejszego wiersza Drugi wiersz traktujemy jako nowy kod szkoły dla maturzysty P, czyli szkoła z wcześniejszego wiersza zostanie usunięta Konflikt, ręcznie należy wybrać, która szkoła obowiązuje 5