Przykłady Party (stron)
Przykłady zasobu Party dla różnych rodzajów podmiotów: organizacja (firma), osoba (person), oddział (branch). Party jest wspólny dla kartotek w FK, CRM, WHS, HR – rodzaj wyraża type lub category z DomainResource. Role są w PartyRole, który referuje do Party przez party.
URL systemów kodów: https://api-erp.kamsoft.pl/ns/ (party-type, party-role itd.). Rodzaj identyfikatora wynika z Identifier.system (np. urn:pl:nip, urn:pl:regon, company).
1. Firma (organizacja)
Party reprezentujący przedsiębiorstwo: identyfikatory (NIP, REGON, numer kontrahenta), nazwa jako CodeableConcept, adresy (siedziba, rozliczeniowy), kontakt (telefon, e-mail), role (odbiorca, dostawca).
{
"resourceType": "Party",
"id": "party-org-001",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"type": {
"coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-type", "code": "organization", "display": "Organizacja" }]
},
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active", "display": "Aktywny" }] },
"identifier": [
{ "system": "urn:pl:nip", "value": "1234567890" },
{ "system": "urn:pl:regon", "value": "123456789" },
{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "K-001" }
],
"name": {
"coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-name", "code": "official", "display": "ABC Sp. z o.o." }]
},
"address": [
{
"use": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/address-use", "code": "work", "display": "Siedziba" }] },
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/address-type", "code": "physical", "display": "Fizyczny" }] },
"line": ["ul. Przykładowa 1", "lok. 10"],
"city": "Warszawa",
"postalCode": "00-001",
"country": "PL"
},
{
"use": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/address-use", "code": "billing", "display": "Rozliczeniowy" }] },
"line": ["ul. Przykładowa 1", "lok. 10"],
"city": "Warszawa",
"postalCode": "00-001",
"country": "PL"
}
],
"contactPoint": [
{ "system": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/contact-point-system", "code": "phone", "display": "Telefon" }] }, "value": "+48 22 123 45 67" },
{ "system": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/contact-point-system", "code": "email", "display": "E-mail" }] }, "value": "biuro@abc.pl" }
]
}
Uwaga: Party nie zawiera pól na role. Role (odbiorca, dostawca) są w PartyRole, który referuje do Party przez party. W dokumentach używa się referencji do Party lub do PartyRole z kontekstem roli w profilu.
2. Osoba (person)
Party reprezentujący osobę fizyczną: nazwa jako CodeableConcept, identyfikator wewnętrzny (np. pracownik, kontakt), adres, telefon/e-mail, rola (pracownik, kontakt).
{
"resourceType": "Party",
"id": "party-person-001",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"type": {
"coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-type", "code": "person", "display": "Osoba" }]
},
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active", "display": "Aktywny" }] },
"identifier": [
{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "P-1001" }
],
"name": {
"coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-name", "code": "official", "display": "Jan Kowalski" }]
},
"address": [
{
"use": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/address-use", "code": "home", "display": "Prywatny" }] },
"line": ["ul. Kwiatowa 5"],
"city": "Kraków",
"postalCode": "30-001",
"country": "PL"
}
],
"contactPoint": [
{ "system": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/contact-point-system", "code": "phone", "display": "Telefon" }] }, "value": "+48 500 123 456", "use": { "coding": [{ "code": "mobile", "display": "Komórka" }] } },
{ "system": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/contact-point-system", "code": "email", "display": "E-mail" }] }, "value": "jan.kowalski@example.com" }
]
}
Uwaga: Dla osoby bez NIP/REGON wystarczy name i opcjonalnie identifier wewnętrzny. Role (np. pracownik, pracodawca) są w PartyRole z party = ten Party; w HR Employment wskazuje employer i employee jako referencje do PartyRole.
3. Oddział / placówka (branch)
Party może reprezentować oddział lub placówkę firmy (np. biuro sprzedaży, punkt obsługi). Identyfikacja przez type (branch), identifier (kod oddziału), adres, opcjonalnie kontakt. Magazyn jako „strona” w dokumentach WHS to osobny przypadek – Party z type=branch i category=warehouse (przykłady w WMS-Examples).
{
"resourceType": "Party",
"id": "party-branch-001",
"meta": { "lastModified": "2025-02-20T10:00:00Z" },
"type": {
"coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-type", "code": "branch", "display": "Oddział" }]
},
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/status", "code": "active", "display": "Aktywny" }] },
"identifier": [
{ "system": "https://api-erp.kamsoft.pl/ns/company", "value": "ODD-01" }
],
"name": {
"coding": [{ "system": "https://api-erp.kamsoft.pl/ns/party-name", "code": "official", "display": "Oddział Warszawa" }]
},
"address": [
{
"use": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/address-use", "code": "work", "display": "Siedziba" }] },
"line": ["ul. Marszałkowska 1"],
"city": "Warszawa",
"postalCode": "00-001",
"country": "PL"
}
],
"contactPoint": [
{ "system": { "coding": [{ "system": "https://api-erp.kamsoft.pl/ns/contact-point-system", "code": "phone", "display": "Telefon" }] }, "value": "+48 22 999 00 00" }
]
}
Uwaga: W systemach ERP oddział bywa osobnym obiektem (Branch, Location); w naszym modelu Party z type (branch) reprezentuje oddział/placówkę i może być używany w participant[] w Document (np. miejsce dostawy, punkt sprzedaży).
4. Diagramy zależności obiektów Party
4.1. Rodzaje Party (type / category)
flowchart TB
subgraph Party["Zasób Party"]
direction TB
ORG[type: organization\nFirma – NIP, REGON, adres, role]
PER[type: person\nOsoba – name, identifier, role]
BR[type: branch\nOddział / placówka – kod, adres]
GRP[type: group\nGrupa / holding]
end
4.2. Party i powiązania (PartyRole, Document)
erDiagram
PartyRole }o--|| Party : "party"
Party ||--o{ Document : "participant"
PartyRelationship }o--|| PartyRole : "partyFrom"
PartyRelationship }o--|| PartyRole : "partyTo"
Party {
string id
CodeableConcept name
string type
Address address
ContactPoint contactPoint
}
PartyRole {
Reference party
CodeableConcept role
}
Document {
Reference participant
}
4.3. Użycie Party w różnych domenach
flowchart LR
P[Party]
P --> CRM[Document CRM\nseller, customer]
P --> FK[Document FK\nsupplier, buyer]
P --> WHS[Document WHS\nwarehouse, supplier]
P --> HR[Employment, Payroll\nemployer, employee]
Podsumowanie: czym może być Party
| Rodzaj | type (przykład) | Opis |
|---|---|---|
| Organizacja | organization | Firma, instytucja – NIP, REGON, adres siedziby, role customer/supplier |
| Osoba | person | Osoba fizyczna – pracownik, kontakt; name (CodeableConcept) = imię i nazwisko, opcjonalnie identifier wewnętrzny |
| Oddział / placówka | branch | Oddział firmy, placówka – identifier (kod oddziału), adres; w WHS magazyn to branch z category=warehouse |
| Grupa / holding | group | Np. grupa kapitałowa – category/type; relacje do innych Party przez PartyRelationship |
Wszystkie przykłady używają tej samej struktury Party: identifier, name, address, contactPoint; type i category (z DomainResource) rozróżniają rodzaj podmiotu. Party nie zawiera partyRole – to PartyRole referuje do Party przez party. Mapowanie z SAP Business Partner, Oracle TCA Party, UBL PartyType, OAGIS Party na identifier, Address, ContactPoint jest spójne.