Przejdź do treści

PurchaseRequisition (zapotrzebowanie)

PurchaseRequisition (zapotrzebowanie / rekwizycja) to zasób magazynowy służący do przyjęcia i przechowywania zapotrzebowania utworzonego w systemie zewnętrznym i przekazanego do obsługi przez system magazynowy.

Zapotrzebowanie nie jest dokumentem księgowym – nie zawiera cen. Zawiera nagłówek i listę pozycji (position[]) z produktem (asortyment) i ilością.

Rozszerza DomainResource.


1. Zakres i zastosowanie

  • Wejście do magazynu: system zewnętrzny przekazuje zapotrzebowanie, a system magazynowy tworzy u siebie dokument PurchaseRequisition z wiązaniem do identyfikatorów źródłowych.
  • Identyfikowalność: powiązanie z systemem źródłowym jest utrzymywane przez identifier[] oraz (dla danych pomocniczych) attribute[].
  • Zakres zasobu: przyjęcie i utrzymanie zapotrzebowania przekazanego z systemu zewnętrznego; zamówienia do dostawców, GR/FV, przesunięcia i rozchody leżą poza tym zasobem i są modelowane innymi typami (PurchaseOrder, InventoryDocument, Invoice).

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 zapotrzebowania w przestrzeni urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>
symbol 0..* CodeableConcept Symbol dokumentu zapotrzebowania (§3)
warehouse 0..1 Reference(Location) Magazyn kontekstowy (Location w profilu Warehouse, category = warehouse)
participant 0..* Reference(Party) Uczestnicy (np. jednostka zamawiająca, jednostka realizująca)
relatedDocument 0..* Reference Powiązane dokumenty (np. zamówienie zakupu PurchaseOrder, dokument ruchu InventoryDocument)
issueDate 0..1 dateTime Data i czas utworzenia
expectedDate 0..1 dateTime Oczekiwana data i czas realizacji
description 0..1 string Opis
note 0..1 string Uwagi
transferDate 0..1 dateTime Data przekazania
realizationDate 0..1 dateTime Data zrealizowania zapotrzebowania
position 1..* struktura pozycji (§2a) Pozycje zapotrzebowania zagnieżdżone w dokumencie

Schemat wymaga position. status (z DomainResource) niesie kod ze słownika purchase-requisition-status.

2a. Pozycja (position[], struktura zagnieżdżona)

Pozycje są częścią zapotrzebowania: nie mają własnego endpointu ani identyfikatora. Pozycja nie rozszerza DomainResource; status, type i attribute są jej własnymi polami.

Nazwa Kard. Typ Opis
positionNo 1..1 integer Numer pozycji (od 1); w torze zapisu pełni rolę identyfikatora pozycji po stronie magazynu
product 1..1 Reference(ProductDefinition) Referencja do asortymentu
quantity 1..1 Quantity Ilość żądana (value > 0; unit = nazwa jednostki, code = identyfikator jednostki w systemie magazynowym)
priority 0..1 CodeableConcept Priorytet pozycji (system https://api-erp.kamsoft.pl/vs/warehouse/purchase-requisition-position-priority; adres w rejestrze, słownik nieopublikowany)
type 0..1 CodeableConcept Typ pozycji (system https://api-erp.kamsoft.pl/vs/warehouse/purchase-requisition-position-type; adres w rejestrze, słownik nieopublikowany)
factor 0..1 number Mnożnik/przelicznik dla ilości
attribute 0..* Attribute Atrybuty pozycji (§2b)
status 0..1 CodeableConcept Status pozycji
creationTime 0..1 dateTime Data utworzenia pozycji
fulfilledQuantity 0..1 number Ilość zrealizowana, może być częściowa
description 0..1 string Opis pozycji

Schemat pozycji wymaga positionNo, product, quantity.

2b. Kontekst medyczny i operacyjny

Rdzeń zasobu nie przewiduje osobnych pól dla pacjenta, lekarza ani numeru zlecenia, które mogą towarzyszyć pozycji zapotrzebowania w systemie źródłowym. Identyfikatory i numery ze źródła zapisuje się w attribute[] nagłówka lub pozycji jako valueString z kodem uzgodnionym z operatorem API; kody nadaje wdrożenie (brak opublikowanego słownika).

Instalacje łączące szpitalny obieg kliniczny z API.ERP: KAMSOFT oferuje osobno API.MED — interfejsy pod dane medyczne (np. pacjent, wizyta, zlecenie w ujęciu klinicznym), zbliżone modelem do HL7 FHIR. API.ERP (ten przewodnik) opisuje wyłącznie warstwę gospodarczą. Gdy umowa o integrację przewiduje powiązanie zapotrzebowania z rekordem klinicznym, profil instalacji może dopuścić Reference do zasobu opisanego w dokumentacji API.MED. Integrator nie zakłada obecności API.MED.


3. Mapowanie z modelem źródłowym

Odczyt (GET):

  • identyfikator dokumentu → identifier[0] (system = przestrzeń urn:oid:…<klucz>, bez type)
  • symbol → symbol[0].coding[0] ze stałym code = symbol i wartością w display (system https://api-erp.kamsoft.pl/vs/warehouse/purchase-requisition-symbol; adres w rejestrze, słownik nieopublikowany)
  • status (liczba w źródle) → kod ze słownika purchase-requisition-status (0not-delivered, 1in-preparation/handed-over, 2accepted, 3completed, 4rejected, 5ordered, 6draft, 7temporary, 8suspended, 9pending-director-approval, 10partially-ordered, inne → unknown)
  • magazyn → warehouse (Reference do Location), firma → owner[0], jednostki → participant[]
  • pozycja: id pozycji → positionNo, asortyment → product.identifier, ilość + jednostka → quantity

Zapis (POST) czyta odwrotnie: symbol[0].text, warehouse.identifier.value, owner[0].identifier.value, participant[0]/participant[1], status.coding[0].code (jako liczba źródłowa), na pozycji positionNo, product.identifier.value, quantity.value, quantity.code (id jednostki), quantity.unit, factor, creationTime, description.


4. Operacje

Metoda Ścieżka Opis
GET /v1/purchase-requisitions Lista zapotrzebowań
POST /v1/purchase-requisitions Przekazanie zapotrzebowania do magazynu (treść: PurchaseRequisition z identifier[].system)

Zapis może nieść przestrzeń identyfikatora (identifier[].system) — wskazuje ona wtedy magazyn rejestrujący zapotrzebowanie; bez niej magazyn rozstrzyga profil. value jest opcjonalne i nadaje je system prowadzący (rejestracja zasobu). Odpowiedź obu operacji ma kod 200 i kopertę { "items": [PurchaseRequisition…], "nextToken": null }.

Parametry GET /v1/purchase-requisitions:

Parametr Format Opis
identifier system\|value Identyfikator zapotrzebowania w przestrzeni urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>
owner system\|value Firma (przestrzeń identyfikatora strony)
status system\|value system = https://api-erp.kamsoft.pl/vs/warehouse/purchase-requisition-status, value = kod ze słownika; nieznany kod → 400
symbol system\|value system = https://api-erp.kamsoft.pl/vs/warehouse/purchase-requisition-symbol
issueDateFrom, issueDateTo date Zakres dat utworzenia
count, offset integer Paginacja (domyślnie 20 / 0)

5. Artefakty