NamingSystem
NamingSystem (przestrzeń identyfikatorów) publikuje jedną przestrzeń Identifier.system instalacji: jej klucz, znaczenie, zasób, którego identyfikatory niesie, faktyczną wartość system oraz to, czy jest kluczem referencyjnym. Model jest wzorowany na FHIR R5 NamingSystem zawężonym do kind = identifier.
Zasób jest tylko do odczytu i zastępuje dawną sekcję przestrzeni identyfikatorów w karcie wdrożenia — zob. Identyfikacja i parametry wdrożenia.
1. Zakres i zastosowanie
Przestrzenie kartotek konkretnej instalacji (urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>) nie są częścią IG — IG dokumentuje stabilny klucz przestrzeni (Party.Id, FixedAsset.Id…) w tabelach „Identyfikatory" na stronach zasobów, a NamingSystem daje mapowanie klucz → faktyczny system. Integrator używa go do:
- budowania i rozstrzygania referencji logicznych (
?identifier=system|value), - podstawienia rzeczywistych przestrzeni w miejsce placeholderów
urn:oid:2.999.*z przykładów, - sprawdzenia, które przestrzenie są kluczem referencyjnym (
uniqueId[].preferred = true).
Rejestry publiczne (https://gov.pl/nip, https://gov.pl/regon…) są stałe i nie mają NamingSystem.
2. Struktura (pola)
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| name | 1..1 | string | Klucz przestrzeni — ten sam, który stoi w tabeli „Identyfikatory" strony zasobu (np. Party.Id) |
| status | 1..1 | code | active |
| kind | 1..1 | code | identifier — przestrzeń identyfikatorów (nie codesystem ani root) |
| date | 1..1 | date | Data publikacji (yyyy-MM-dd) |
| description | 0..1 | string | Znaczenie przestrzeni, po angielsku (np. „Contractor id in the accounting ledger") |
| usage | 0..1 | string | Nazwa zasobu, którego identyfikatory niesie przestrzeń (np. Party) |
| uniqueId | 1..* | lista obiektów | Identyfikatory przestrzeni — 2a |
2a. Struktura uniqueId[]
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| type | 1..1 | code | uri (wartość jest URI urn:oid:…) |
| value | 1..1 | string | Dosłownie wartość Identifier.system: urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz> |
| preferred | 0..1 | boolean | true = klucz referencyjny: value identyfikatora jest w przestrzeni unikalne, przestrzeń nadaje się do ?identifier=system|value |
3. Konwencje API.ERP
| Pole | Konwencja | Odstępstwo od R5 |
|---|---|---|
name |
klucz przestrzeni z tabel „Identyfikatory"; kilka zasobów może mieć ten sam name (np. Party.Id osobno dla każdego profilu strony) — rozróżnia je description i uniqueId[].value |
R5 traktuje name jako nazwę techniczną; tu jest kluczem dokumentacyjnym |
usage |
nazwa zasobu API.ERP | R5: dowolny opis użycia |
uniqueId[].type |
zawsze uri |
— |
uniqueId[].value |
wartość Identifier.system bez przekształceń |
— |
uniqueId[].preferred |
znacznik klucza referencyjnego | R5: preferowany identyfikator przestrzeni spośród kilku |
| rodzaj identyfikatora | wynika z przestrzeni; brak osobnego pola | — |
4. Operacje
Odpowiedź to koperta { "items": [...], "nextToken": null }, stronicowana parametrami count (domyślnie 20) i offset (domyślnie 0).
| Operacja | Parametry | Odpowiedź |
|---|---|---|
GET /v1/naming-systems |
brak | 200 koperta z NamingSystem[] — wszystkie przestrzenie instalacji |
GET /v1/naming-systems?usage=<Zasób> |
usage (nazwa zasobu, np. Party) |
200 koperta z przestrzeniami tego zasobu |
Zasób jest tylko do odczytu; brak POST/PATCH i tras z {id}.
5. Przykład
{ "resourceType": "NamingSystem", "name": "Party.Id", "status": "active", "kind": "identifier", "date": "2026-09-18",
"description": "Contractor id in the accounting ledger", "usage": "Party",
"uniqueId": [ { "type": "uri", "value": "urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>", "preferred": true } ] }
Odpowiadający wiersz tabeli „Identyfikatory" na stronie Party: Party.Id — Id kontrahenta, kartoteka księgowości (profil Contractor), klucz referencyjny: tak.