DomainResource
Model DomainResource (zasób domenowy) jest podstawą obiektów platformy wymiany danych dla systemów klasy ERP (FK, ESM, CRM, WMS). Należy do standardu Kamsoft.FAIR (Fast Adaptive Interoperable Resources). Wzorowany na FHIR DomainResource, w uproszczonej postaci w tym przewodniku.
1. Zakres i zastosowanie
DomainResource to typ bazowy zasobu — nie występuje samodzielnie w API; specjalizują go zasoby domenowe opisane w tym przewodniku. Wspólny rdzeń (w JSON przyjęta jest konwencja camelCase):
- id — identyfikator logiczny,
- meta — metadane (np. lastModified),
- owner — lista Reference(Party) (właściciele zasobu),
- comment — komentarz,
- category — klasyfikacje (CodeableConcept),
- status — status zasobu,
- type — typ zasobu (CodeableConcept),
- contained — zasoby osadzone w payloadzie nadrzędnym; reguły w §3,
- attribute — Attribute (cechy rozszerzające).
Zasoby pochodne dodają własne pola specyficzne dla domeny.
2. Zawartość (struktura)
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| id | 0..1 | string | Identyfikator logiczny zasobu |
| resourceType | 0..1 | string | Opcjonalnie w payloadzie API (konwencja FAIR/REST) |
| meta | 0..1 | Meta | Metadane |
| owner | 0..* | Reference(Party) | Właściciele zasobu |
| comment | 0..1 | string | Komentarz |
| category | 0..* | CodeableConcept | Kategorie |
| status | 0..1 | CodeableConcept | Status |
| type | 0..1 | CodeableConcept | Typ zasobu |
| contained | 0..* | object | Zasoby osadzone w payloadzie nadrzędnym — patrz §3 |
| attribute | 0..* | Attribute | Atrybuty rozszerzające |
3. Zasoby osadzone (contained)
Pole contained przenosi zasoby w kontekście nadrzędnym, gdy nie występują jako samodzielna wiadomość w wymianie. Wzorzec jak w FHIR contained resources.
Kiedy używać
| Sytuacja | Opis |
|---|---|
| Dane towarzyszą nadrzędnemu zasobowi | Elementy przesyłane w jednym payloadzie wraz z zasobem głównym |
| Referencja lokalna zamiast osobnego GET | Reference z reference: "#<id>" wskazuje element w tablicy contained |
Dozwolone typy osadzonych zasobów i ewentualne ograniczenia pól określa profil zasobu nadrzędnego (dokumentacja konkretnego typu).
Reguły elementu w contained
| Element | Wymaganie |
|---|---|
| resourceType | Tak — typ zasobu zgodny z profilem nadrzędnym |
| id | Tak — identyfikator lokalny w ramach nadrzędnego zasobu (do referencji #id) |
| identifier | Nie — identyfikatory biznesowe należą do zasobu nadrzędnego |
| meta.versionId / meta.lastModified | Nie — brak niezależnej wersji (Meta) |
| Pola wiązania z nadrzędnym | Nie — kontekst wynika z zasobu rodzica; pola referencyjne do rodzica nie występują w elemencie osadzonym |
Referencja do osadzonego zasobu: Reference z reference = #<id> (np. #embedded-1).