AttendanceTerminal (rejestrator czasu pracy)
AttendanceTerminal (rejestrator, terminal) to zasób reprezentujący urządzenie rejestrujące zdarzenia czasu pracy: czytnik przy wejściu, panel na hali, aplikację mobilną vendora. Pełni rolę słownika rejestratorów – każde zdarzenie AttendanceRecord musi wskazywać rejestrator, na którym nastąpiło. Rozszerza DomainResource.
1. Zakres i zastosowanie
AttendanceTerminal = jeden rejestrator: identifier (id w KS-ZZL i id u vendora), name, capability (typy zdarzeń obsługiwane przez urządzenie), status.
- Rejestracja terminala – vendor rejestruje rejestrator (
POST) przed wysłaniem pierwszego zdarzenia z tego urządzenia; zdarzenie z nieznanym terminalem jest odrzucane. - Słownik terminali – pobierany przez vendora przy synchronizacji master data.
Poza zakresem: konfiguracja techniczna urządzenia (adres IP, firmware, harmonogram synchronizacji) oraz jego lokalizacja – należą do systemu vendora.
2. Zawartość (struktura)
Oprócz elementów DomainResource (id, resourceType, meta, owner, comment, category, status, type, contained, attribute):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| identifier | 1..* | Identifier | Id rejestratora w KS-ZZL i id u vendora – przestrzenie w §2b |
| name | 0..1 | string | Nazwa czytelna dla człowieka (np. „Wejście główne A”) |
| capability | 0..* | CodeableConcept | Typy zdarzeń obsługiwane przez rejestrator – słownik hr/attendance-terminal-capability: kody jak w AttendanceRecord.type, bez unknown |
Uwaga: status (z DomainResource) – słownik hr/attendance-terminal-status: active, inactive. Przy zapisie opcjonalny. Wiązanie pola status nie jest zapisane w JSON Schema (pole pochodzi z DomainResource); walidacja należy do warstwy API.
Uwaga: pole id nie jest wypełniane – id rejestratora w KS-ZZL zwracane jest w identifier (przestrzeń AttendanceTerminal.Id). System źródłowy nie jest polem zasobu – instalację wyznacza przestrzeń identyfikatora.
2a. Operacje
GET /v1/attendance-terminals?status=https://api-erp.kamsoft.pl/vs/hr/attendance-terminal-status|active&count=20&offset=0
| Parametr | Opis |
|---|---|
identifier |
Jedna para system\|wartość w przestrzeni AttendanceTerminal.Id |
status |
system\|kod ze słownika hr/attendance-terminal-status |
count, offset |
Paginacja (domyślnie 20 / 0) |
| Metoda | Ścieżka | Opis |
|---|---|---|
POST |
/v1/attendance-terminals |
Rejestracja rejestratora. Wymagany identyfikator w przestrzeni AttendanceTerminal.ExternalId – sam AttendanceTerminal.Id nie wystarcza. |
Rejestratora nie można zmienić przez API (brak PATCH). Odpowiedź zapisu: HTTP 200 z { "items": [ <AttendanceTerminal> ] }. Odczyt: { "items": [...], "nextToken": null }.
2b. Identyfikatory
Przestrzenie wdrożeniowe urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz> publikowane jako NamingSystem – zob. Identyfikacja i parametry wdrożenia.
| Przestrzeń (klucz) | Znaczenie | Klucz referencyjny | Skąd system |
|---|---|---|---|
AttendanceTerminal.Id |
Id rejestratora w KS-ZZL; nadaje system prowadzący | tak | NamingSystem |
AttendanceTerminal.ExternalId |
Id rejestratora u vendora RCP – wymagany przy POST; w tej przestrzeni zdarzenie wskazuje rejestrator przy imporcie |
nie | NamingSystem |
3. Relacje
- AttendanceRecord.terminal wskazuje ten zasób – w zapisie zdarzenia w przestrzeni
AttendanceTerminal.ExternalId, w odpowiedzi w przestrzeniAttendanceTerminal.Id. - capability używa tych samych kodów co AttendanceRecord.type (bez
unknown). - Nośnik identyfikacji pracownika to AttendanceCredential – rejestrator odczytuje jego numer, ale nie łączy go z kartą referencją; wiąże je dopiero AttendanceRecord.