Location — magazyn i miejsce składowania
Magazyn nie jest osobnym zasobem. To Location w profilu Warehouse; miejsce składowania (apteka centralna, oddział) to Location w profilu StorageLocation. Profil rozpoznaje się po category, a zasób w odpowiedzi niesie go w meta.profile. Schematy: profile kanoniczne.
1. Profile
| Profil |
category |
Co reprezentuje |
https://api-erp.kamsoft.pl/ns/StructureDefinition/Warehouse |
warehouse + kod rodzaju magazynu (0…7, np. 1 magazyn leków) — system https://api-erp.kamsoft.pl/vs/warehouse/location-category |
magazyn prowadzący stany |
https://api-erp.kamsoft.pl/ns/StructureDefinition/StorageLocation |
storage-location — system https://api-erp.kamsoft.pl/vs/warehouse/location-category |
miejsce składowania: apteka centralna, oddział |
https://api-erp.kamsoft.pl/ns/StructureDefinition/UsagePlace |
usage-place — system https://api-erp.kamsoft.pl/vs/assets/location-category |
miejsce użytkowania środka trwałego (majątek) |
Schemat każdego profilu wymaga category z odpowiednim kodem; pozostałe pola są opcjonalne.
2. Operacje
| Metoda |
Ścieżka |
Opis |
| GET |
/v1/locations |
Lista lokalizacji wszystkich profili |
GET /v1/locations?profile=https://api-erp.kamsoft.pl/ns/StructureDefinition/Warehouse
GET /v1/locations?profile=https://api-erp.kamsoft.pl/ns/StructureDefinition/StorageLocation
GET /v1/locations?category=https://api-erp.kamsoft.pl/vs/warehouse/location-category|warehouse
| Parametr |
Format |
Opis |
profile |
URL profilu |
Zawęża odpowiedź do jednego profilu |
category |
system\|value |
Filtr: odpowiedź zawiera wyłącznie lokalizacje z podaną kategorią. Rozpoznawane są oba słowniki zasobu: warehouse, storage-location i rodzaje magazynu (0…7) w …/vs/warehouse/location-category oraz usage-place w …/vs/assets/location-category. Kategoria nie przełącza rodzaju odpowiedzi; przestrzeń spoza tych słowników kończy się 400 (konwencje §8.1) |
identifier |
system\|value |
Identyfikator lokalizacji w przestrzeni urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz> |
owner |
system\|value |
Firma (przestrzeń identyfikatora strony lub https://gov.pl/nip) |
type |
system\|value |
Rodzaj lokalizacji, system = https://api-erp.kamsoft.pl/vs/warehouse/location-type |
attribute |
code\|value (wiele) |
Filtry źródłowe (dla miejsc użytkowania schema\|…) |
contained |
integer |
Identyfikator jednostki nadrzędnej (miejsca składowania) |
count, offset |
integer |
Paginacja (domyślnie 20 / 0) |
Odpowiedź 200: { "items": [Location…], "nextToken": null }. Zapis (POST, PATCH) nie jest dostępny.
3. Warehouse — pola
| Pole |
Wartość |
| identifier |
identyfikator magazynu: system = urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>, przestrzeń ResourceLocation.Id (klucz referencyjny) |
| name |
nazwa magazynu, w nawiasie skrót |
| type |
kod warehouse w systemie https://api-erp.kamsoft.pl/vs/warehouse/location-type; opublikowany słownik nie zawiera dziś tego kodu (publikuje 0, 1, 2), a display niesie typ magazynu ze źródła |
| category |
warehouse oraz rodzaj magazynu (0…7) ze słownika location-category |
| status |
active / inactive w systemie https://api-erp.kamsoft.pl/vs/warehouse/location-status (adres w rejestrze, słownik nieopublikowany) |
| partOf |
pojedyncza Reference do Location oddziału (profil StorageLocation), gdy magazyn jest przypisany do oddziału |
| attribute[] |
warehouse-account-fk (konto księgowe magazynu), is-accounting, zsmopl — słownik location-attribute-type |
4. StorageLocation — pola
| Pole |
Wartość |
| identifier |
identyfikator miejsca: system = urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>, przestrzeń ResourceLocation.Id |
| name |
nazwa miejsca |
| type |
0 (apteka centralna) lub 1 (oddział szpitalny) w systemie https://api-erp.kamsoft.pl/vs/warehouse/location-type; opublikowany słownik nadaje tym kodom inne opisy (rodzaje magazynów) |
| category |
storage-location |
| managingParty |
Reference do Party (jednostka prowadząca) |
| attribute[] |
organizational-unit-fk-account (konto księgowe jednostki), location-symbol — system https://api-erp.kamsoft.pl/vs/warehouse/location-attribute-type; opublikowany słownik dziś nie zawiera tych kodów |
5. Przykład
{
"resourceType": "Location",
"meta": { "profile": ["https://api-erp.kamsoft.pl/ns/StructureDefinition/Warehouse"] },
"identifier": [{ "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>", "value": "12" }],
"name": "Magazyn Główny (MG)",
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/location-type", "code": "warehouse" }] },
"category": [
{ "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/location-category", "code": "warehouse", "display": "Magazyn" }] },
{ "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/location-category", "code": "1", "display": "magazyn leków" }] }
],
"status": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/location-status", "code": "active", "display": "Aktywny" }] },
"partOf": { "type": "Location", "identifier": { "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>", "value": "3" }, "display": "Oddział Chirurgii (CHIR) [ID:3]" },
"attribute": [
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/location-attribute-type", "code": "is-accounting" }] }, "value": { "valueString": "1" } }
]
}
6. Odniesienia
Location, InventoryDocument (fromLocation, toLocation, participant), Inventory (location), Party (managingParty). Schematy: Warehouse, StorageLocation, UsagePlace.