Attachment
Attachment (załącznik) to zasób kanoniczny oznaczający odniesienie do pliku lub treści binarnej – skan faktury, PDF, orzeczenie lekarskie. Wzorowany na FHIR Attachment. Używany w dokumentach magazynowych (załącznik do dokumentu) i w kadrach (skierowanie i orzeczenie medycyny pracy).
1. Zakres i zastosowanie
Attachment służy do:
- Załączników do dokumentów – plik dokumentu magazynowego, skan faktury, załącznik do zamówienia.
- Dokumentów kadrowych – skierowanie i orzeczenie medycyny pracy przekazywane jako treść base64.
- Klasyfikacji załącznika – przez attribute[] (np. identyfikator dokumentu, REGON, miejscowość).
- Powiązania z zasobem źródłowym – przez basedOn (np. skierowanie, zlecenie, dokument źródłowy).
Reguła: url (link do zasobu) lub data (base64) + contentType (MIME); title do wyświetlania opcjonalnie.
Rozszerza DomainResource. Zasób w standardzie Kamsoft.FAIR (Fast Adaptive Interoperable Resources).
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 załącznika (w profilu AttachmentOccupationalMedicine 1..*) |
| basedOn | 0..1 | Reference | Referencja do zasobu, na podstawie którego powstał ten załącznik (np. skierowanie, zlecenie, dokument źródłowy) |
| contentType | 0..1 | string | Typ MIME (np. application/pdf, image/png) |
| language | 0..1 | string | Język treści (opcjonalnie) |
| url | 0..1 | string | Adres URL do pliku (gdy plik zewnętrzny); w profilu WarehouseAttachment 1..1 |
| data | 0..1 | string (base64) | Treść w formacie base64 (gdy brak url); w profilu AttachmentOccupationalMedicine 1..1 |
| title | 0..1 | string | Tytuł / nazwa do wyświetlania |
| size | 0..1 | integer | Rozmiar w bajtach (opcjonalnie) |
| hash | 0..1 | string | Skrót (np. SHA-256) do weryfikacji (opcjonalnie) |
| creation | 0..1 | dateTime | Data utworzenia (opcjonalnie) |
Reguła: url lub data (przynajmniej jedno); contentType zalecane. attribute[] (z DomainResource) niesie cechy biznesowe załącznika – kody ze słownika attachment-attribute-type w wariancie domenowym: hr (regon, city); dla załączników magazynowych system https://api-erp.kamsoft.pl/vs/warehouse/attachment-attribute-type, kody nadaje wdrożenie.
2a. Profile załącznika
| Profil | Cecha rozpoznawcza | Zastosowanie |
|---|---|---|
AttachmentOccupationalMedicine |
wymagane identifier i data |
skierowanie i orzeczenie medycyny pracy; jedyny profil przyjmowany przy zapisie |
WarehouseAttachment |
wymagane url |
załącznik dokumentu magazynowego; tylko odczyt |
Profil niesie meta.profile (obiekt {name, version, url}, zob. Meta). Schematy: profile kanoniczne.
2b. Operacje
Odczyt – zwraca wyłącznie załączniki profilu WarehouseAttachment; nie ma parametru profile ani identifier:
GET /v1/attachments?attribute=document-type|<wartość>&attribute=company-id|<wartość>&attribute=document-id|<wartość>&count=20&offset=0
| Parametr | Wymagany | Opis |
|---|---|---|
attribute |
nie | Powtarzalny, każda wartość to jedna para kod\|wartość; rozpoznawane kody: document-type, company-id, document-id (liczbowe) |
count, offset |
nie | Paginacja (domyślnie 20 / 0) |
Odpowiedź: { "items": [...], "nextToken": null }.
Zapis – przyjmuje wyłącznie załącznik profilu AttachmentOccupationalMedicine (data wymagane; identifier[].system zalecany — wskazuje instalację rejestrującą załącznik, pominięty rozstrzyga profil, a value nadaje system prowadzący, zob. rejestracja zasobu):
POST /v1/attachments
Content-Type: application/json
{ "resourceType": "Attachment", "meta": { "profile": ["https://api-erp.kamsoft.pl/ns/StructureDefinition/AttachmentOccupationalMedicine"] }, "identifier": [ { "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>" } ], "data": "<base64>", "title": "..." }
Odpowiedź: { "items": ... } z wynikiem rejestracji; brak odpowiedzi systemu źródłowego kończy się statusem 503.