Employment
Employment (zatrudnienie) to zasób reprezentujący stosunek pracy w kontekście kadrowym: pracodawca i pracownik są wskazani jako referencje do PartyRole (employer, employee). Okres zatrudnienia (period), stanowiska (Position), typ i rodzaj umowy. Wzorowany na SAP (PA infotype 0001), Oracle HCM (PER_ALL_ASSIGNMENTS_M), Workday (Employment).
Rozszerza DomainResource.
1. Zakres i zastosowanie
Employment = kadrowy kontekst relacji employer–employee: employer (Reference PartyRole) i employee (Reference PartyRole); dane podmiotu (nazwa, NIP, adres) w PartyRole.party → Party. Ponadto period, opcjonalnie position[] (0..N – tablica przypisań stanowisk z okresami, jedno zatrudnienie może obejmować wiele stanowisk jednocześnie lub kolejno w czasie), type (typ umowy) i kind (rodzaj umowy).
- Rejestr zatrudnień – lista Employment po stronie pracodawcy lub pracownika (identifier, employer, employee, period, position[]); employer i employee to referencje do PartyRole.
- Dokumenty HR – DocumentReference w domenie kadr może referować Employment (valueReference); pracownik = Employment.employee (PartyRole).
2. Zawartość (struktura)
Oprócz elementów DomainResource (id, resourceType, meta, owner, comment, category, status, type, contained, attribute):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| identifier | 0..* | Identifier | Identyfikatory zatrudnienia w przestrzeni Employment.Id (klucz referencyjny); system z NamingSystem (zob. sekcja 2b) |
| employer | 0..1 | Reference(PartyRole) | Pracodawca – referencja do PartyRole (role=employer); dane podmiotu w PartyRole.party → Party |
| employee | 0..1 | Reference(PartyRole) | Pracownik – referencja do PartyRole (role=employee); dane osoby w PartyRole.party → Party |
| period | 0..1 | Period | Okres zatrudnienia (start, end); brak end = nadal zatrudniony |
| position | 0..* | EmploymentPosition | Przypisania stanowisk z okresami – jedno zatrudnienie może obejmować wiele stanowisk jednocześnie lub kolejno w czasie (zob. sekcja 2a) |
| primaryEmployment | 0..1 | Reference(Employment) | Odniesienie do głównego zatrudnienia (gdy to zatrudnienie jest pochodne) |
| kind | 0..1 | CodeableConcept | Rodzaj umowy – słownik hr/employment-kind (np. employment-contract, commission-agreement, contract-for-specific-work) |
| workTime | 0..1 | Quantity | Wymiar etatu liczbowo (np. 1.0 = pełny etat, 0.5 = pół etatu) |
| workTimeText | 0..1 | string | Opis etatu tekstowo (np. „pełny etat”, „1/2 etatu”) |
Uwaga: type (z DomainResource) – typ umowy; system https://api-erp.kamsoft.pl/vs/hr/employment-type, kody nadaje wdrożenie (słownik dostępny przez zasób ValueSet). status (z DomainResource) – kody nadaje wdrożenie.
2a. Struktura position[]
Każdy element tablicy position to obiekt zagnieżdżony (EmploymentPosition) opisujący jedno przypisanie stanowiska w ramach zatrudnienia:
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| reference | 0..1 | Reference(Position) | Referencja do stanowiska (Position) |
| period | 0..1 | Period | Okres obowiązywania przypisania stanowiska w ramach zatrudnienia; brak – przypisanie bezterminowe lub obowiązujące przez cały okres zatrudnienia |
| meta | 0..1 | Meta | Metadane przypisania stanowiska (np. lastModified) |
2b. Identyfikatory i operacje
Przestrzeń identyfikatora zatrudnienia to urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz> – parametr wdrożenia (zob. Identyfikacja i parametry wdrożenia); klucz przestrzeni: Employment.Id.
Zasób jest tylko do odczytu.
GET /v1/employments?identifier=<system>|<wartość>&kind=https://api-erp.kamsoft.pl/vs/hr/employment-kind|employment-contract&count=20&offset=0
| Parametr | Wymagany | Opis |
|---|---|---|
identifier |
nie | Jedna para system\|wartość (bez list po przecinku) |
kind |
nie | Jedna para system\|kod ze słownika hr/employment-kind |
employeeId |
nie | Liczbowy identyfikator pracownika w systemie źródłowym |
count, offset |
nie | Paginacja (domyślnie 20 / 0) |
Odpowiedź: { "items": [...], "nextToken": null }.
3. Zgodność z systemami ERP
| System | Odpowiednik | Uwagi |
|---|---|---|
| SAP HCM / S/4HANA | PA infotype 0001 (Organizational Assignment), Period of Service | Employee (PERNR) → Position (PLANS), Job, Org unit; BEGDA/ENDDA = period; wiele IT0001 = wiele przypisań stanowisk z różnymi datami |
| SAP SuccessFactors | Employment (EC), JobAssignment | Employment entity z effective dates, job/position reference; multiple concurrent job assignments |
| Oracle HCM Cloud | PER_ALL_ASSIGNMENTS_M, Period of Service | Assignment z person, assignment type, job, position, dates; pracownik może mieć wiele assignments |
| Workday | Employment | Worker + Employer + Start/End date, Position (Job), Employment Type; Additional Jobs wspierają równoległe stanowiska |
| FHIR | Patient (employment context), RelatedPerson | Uproszczony kontekst medyczny; pełny model HR w dedykowanych zasobach |
Nasz model jest kanoniczny: employer i employee (Reference PartyRole) + period + position[] (0..N z period) + type/kind (umowa) pokrywa SAP (PA0001 + wiele IT0001 z datami), Oracle (wiele assignments), Workday (Employment + Additional Jobs); pracodawca i pracownik jawnie jako PartyRole.
4. Odniesienia
- DomainResource, PartyRole (employer, employee), Position (position)
- Party (dane pracodawcy i pracownika w PartyRole.party)
- Period, Identifier, CodeableConcept, Reference