Differences between revisions 108 and 109
Revision 108 as of 2018-05-14 13:06:34
Size: 40140
Editor: a.santurbano
Comment:
Revision 109 as of 2018-05-14 13:13:22
Size: 40407
Editor: a.santurbano
Comment:
Deletions are marked like this. Additions are marked like this.
Line 692: Line 692:
  * '''posologia''': Posologia | Stringa
Line 699: Line 698:
   * '''I''': prodotto intermedio;    * '''I''': prodotto intermedio.
  * '''posologia''': va contestualizzato rispetto a flTipomedicinale:
   * se '''flTipomedicinale''' uguale a un valore tra '''N, S''': è la posologia | Stringa;
   * se '''flTipomedicinale''' uguale a un valore tra '''C, X, I''': è la percentuale di utilizzo rispetto alla razione giornaliera | Intero;

Contents

  1. Regole generali
  2. Flusso di fornitura dei medicinali
    1. Fornitura mediante applicativo
      1. Ricerca ricetta mediante numero e pin
      2. Ricerca ricetta per azienda con deroga sulla privacy
      3. Maschera fornitura ricetta
      4. Fornitura di un farmaco
        1. Caso particolare: Sostituzione di un farmaco
    2. Fornitura massiva mediante CSV
      1. Tracciato del file CSV
      2. Descrizione dei campi del tracciato
      3. Invio del file CSV
      4. Logica di elaborazione
    3. Fornitura massiva mediante XML NSIS (Ambiente di TEST, DRAFT può esser soggetto a cambiamenti)
    4. Fornitura massiva mediante servizio web REST JSON
      1. URL del servizio REST
      2. Tracciato JSON di INPUT
      3. Header
      4. Tracciato JSON di OUTPUT
      5. Autenticazione
      6. Logica di elaborazione
    5. Servizio Web di update della fornitura
      1. URL del servizio REST
      2. Headers
      3. Campi di input
      4. Esempio JSON di input
      5. Esempio JSON di output
        1. Descrizione dei campi
    6. Servizio Web di cancellazione della fornitura
      1. URL del servizio REST
      2. Headers
      3. Campi di input
      4. Esempio JSON di input
      5. Esempio JSON di output
        1. Descrizione dei campi
      6. Logica di elaborazione
    7. Servizio Web di Ricerca delle forniture
      1. Header
      2. Tracciato di input
      3. Tracciato di output
        1. Esempio di interrogazione
    8. Servizi Web di Interrogazione (ricerca e dati di dettaglio della ricetta)
      1. Servizio search/byNumeroAndPin/
      2. Servizio search/noPrivacy/farmaci/
      3. Servizio search/noPrivacy/mangimi/
      4. Tracciato di output
        1. Descrizione dei campi di output della ricetta
  3. Registro dei prodotti forniti
    1. Correzione dei dati della fornitura
    2. Cancellazione dei dati in caso di errata fornitura
    3. Tabella dei prodotti ed esportazione in excel

Regole generali

Per la fornitura dei medicinali attraverso la ricetta elettronica valgono le seguenti regole generali, applicabili alle funzionalità disponibili tramite le maschere online e alle funzionalità disponibili tramite servizi web esposti:

  1. per l’erogazione dei medicinali veterinari la ricetta elettronica potrà essere recuperata tramite il numero identificativo e pin della stessa;
  2. i medicinali sono identificati in maniera univoca tramite il loro AIC;
  3. nella fornitura dei medicinali vanno riportati il codice di lotto e la data di scadenza dei medicinali movimentati;
  4. a seguito di evasione parziale, utilizzando sempre lo stesso numero identificativo di prescrizione e PIN è possibile completare la fornitura (farmaci mancanti).

Flusso di fornitura dei medicinali

Quanto di seguito va a descrivere il seguente flusso operativo relativamente alle operazioni effettuabili da un utente con profilo Farmacista:

farmacia-fornitura-flow.PNG

La fornitura di una ricetta avviene selezionando dal bottone Menu la voce Fornitura ricetta.

farmacia-menu.PNG

Fornitura mediante applicativo

Il sistema permette di effettuare la ricerca della ricetta sulla base di numero e pin o per quelle aziende che hanno effettuato espressa richiesta di rendere visibile a chiunque le proprie ricette. Di seguito sono evidenziate le due modalita operative nel caso si operi direttamente dal sistema informativo.

Ricerca ricetta mediante numero e pin

Una volta ottenuti:

  • Il NUMERO della ricetta

  • Il PIN della ricetta

E' possibile procedere alla fornitura dei farmaci inserendo nella maschera di ricerca della ricetta facendo attenzione alla scrittura del numero della ricetta affinché non contenga caratteri sporchi tipo ad esempio spazio che potrebbero impedire la corretta ricerca. Una volta inserito il numero è possibile procedere con la ricerca cliccando sul relativo bottone. Se la ricerca avrà esito positivo la tabella sottostante la form di ricerca restituirà un risultato, come nell'immagine di seguito

fornitura-ricerca-semplice.PNG

A questo punto è possibile accedere al dettaglio della fornitura in due modi:

  1. Doppio click sulla riga
  2. Selezione della riga e click sul bottone Visualizza Dettaglio

Verremo dunque spostati su una nuova maschera dove verrà richiesto l'inserimento del PIN della ricetta

fornitura-pin.PNG

Una volta inserito il PIN, se questo risulta corretto, avremo accesso alla maschera di dettaglio della fornitura

Ricerca ricetta per azienda con deroga sulla privacy

Le aziende zootecniche possono far richiesta di andare in deroga sulla gestione della privacy delle proprie ricette e rendere quindi queste visibili a chiunque; in questo caso se si sta effettuando una fornitura per un'azienda del genere bisogna cambiare il flag Deroga fornitura farmaci da No a Si, di conguenza la maschera cambierà come nell'immagine di sotto e sarà necessario inserire semplicemente il codice dell'azienda zootecnica in modo da aver accesso all'elenco delle ricette che è possibile fornire.

fornitura-ricerca-deroga.PNG

Dopo aver cliccato su ricerca è possiible selezionare un ricetta per la fornitura nel seguente modo:

  1. Doppio click sulla riga
  2. Selezione della riga e click sul bottone Visualizza Dettaglio

Maschera fornitura ricetta

fornitura-maschera.PNG

Com'è possibile evidenziare dall'immagine precedente possiamo suddividere l'area di lavoro in tre zone:

  1. Area blu: zona di riepilogo della ricetta
  2. Area verde: zona di vendita dei farmaci, dov'è inoltre possibile avere il dettaglio da ricetta
  3. Area rossa: zona relativa al dettaglio della vendita in caso siano state effettuate forniture parziali, utile nel caso ci si accorga che si è appena sbagliato ad effettuare la fornitura. Nel caso siano gia presenti forniture parziali effettuate dalla vostra farmacia, alla selezione del farmaco queste appariranno nella tabella evidenziata, come nella figura di seguito

Con il pulsante "Visualizza ricetta" è possibile aprire il PDF della ricetta emessa.

fornitura-parziale.PNG

E' possibile che la ricetta sia stata parzialmente fornita anche da altre farmacie. In tal caso non sarà possibile visualizzare il dettaglio di tali forniture. E' possibile pero' notare che una ricetta è stata parzialmente fornita, confrontando la quantità del prodotto da fornire con la richiesta iniziale della ricetta (visibile tramite il pulsante "Visualizza ricetta")

Fornitura di un farmaco

Per procedere con la fornitura di un farmaco è necessario selezionare il farmaco di interesse facendo:

  1. Doppio click sulla riga
  2. Selezione della riga e click sul bottone Vendita

Tale azione comporterà l'apertura di una popup come nell'immagine di seguito

fornitura-vendita.PNG

Com'è possibile evidenziare dall'immagine precedente possiamo suddividere l'area di lavoro in due zone:

  1. Area viola: zona di riepilogo della prescrizione relativa al farmaco che ci accingiamo a vendere
  2. Area gialla: zona di vendita dei farmaco

Una volta inseriti i campi obbligatori contraddistinti da un asterisco (*) rosso è possibile procedere alla fornitura del farmaco

Caso particolare: Sostituzione di un farmaco

Nel caso il farmaco richiesto dalla fornitura non risulti disponibile e si vuole procedere con una sostituzione è possibile:

  1. Procedere alla ricerca di eventuali Farmaci compatibili. Eventualmente facendo click sul bottone Vai al prontuario, verrete spostati nel Prontuario Farmaceutico Veterinario gestito dal Ministero della Salute, dal quale è possibile effettuare delle ricerche avanzate (es. Ricerca per principio attivo, ecc...). La ricerca sul prontuario è facoltativa, nel caso si è già a conoscenza della denominazione del farmaco da sostituire passare direttamente al punto 2;

  2. Una volta scelto il farmaco tornate sulla popup di vendita del farmaco, facendo click sul bottone evidenziato dal cerchio azzurro nell'immagine di sopra procedete alla cancellazione del farmaco prescritto dal Veterinario e inserite il nuovo farmaco da voi scelto digitandone il nome.

Per concludere la fornitura del farmaco è possibile far click sul bottone Vendi in basso a destra nella popup.

A parità di Farmaco, identificato dalle prime sei cifre dell'AIC, è possibile effettuare una maggiorazione relativamente al numero di scatole fornite. Il sistema prima richiederà se siete sicuri di effettuare la sostituzione:

fornitura-conferma-sostituzione.png

Dopo di che chiederà una seconda conferma come nella popup seguente:

fornitura-conferma-maggiorazione.png

Fornitura massiva mediante CSV

Oltre alle funzionalità online per la fornitura manuale delle ricette elettroniche (vendita dei medicinali), il sistema informativo permette di effettuare la registrazione “massiva” dei medicinali forniti tramite un file in formato CSV.

Tracciato del file CSV

Il file CSV deve avere la seguente struttura:

numero

pin

prodAic

flTipomedicinale

galenico

fornProdAic

numConfezioni

dtScadenza

numLotto

gtinCodice

tipodocumentoCodice

numDocumento

dtFornitura

1456923503953

4186

104862127

N

1

21/12/2030

testimportRidotto

E' obbligatorio passare l'intestazione delle colonne

Descrizione dei campi del tracciato

Vengono di seguito riportate le descrizioni dei campi obbligatori:

  • numero: numero della ricetta;

  • pin: pin della ricetta;

  • prodAic: AIC del medicinale veterinario da fornire (è il prodotto prescritto dal veterinario);

    • NB: nel caso di sostituzione del medicinale questo campo non deve essere modificato, ma deve essere lasciato l’AIC del farmaco prescritto dal veterinario, bisogna inserire l’AIC del farmaco effettivamente fornito nel campo fornProdAic;

    • Non deve essere valorizzato nel caso di mangime medicato;
  • flTipomedicinale: flag che indica il tipo di medicinale fornito, i cui possibili valori sono:

    • "N": medicinale veterinario (prodotto autorizzato non galenico);
    • "S": galenico;
    • "C": mangime completo;
    • "X": mangime complementare;
    • "I": prodotto intermedio;
  • galenico: nel caso in cui il flTipomedicinale = ‘S’ questo campo deve essere popolato con la descrizione del galenico;

  • fornProdAic: AIC del prodotto fornito in sostituzione del medicinale prescritto;

    • NB: da valorizzare solo se si stà effettuando una sostituzione del medicinale prescritto;

    • Non deve essere valorizzato nel caso di mangime medicato;
  • numConfezioni: numero confezioni fornite (da utilizzare solo per la fornitura di medicinali);

  • quantitaFornita: quantità di mangime medicato fornito (da utilizzare solo per la fornitura di ricette di mangime medicato);

  • dtScadenza: data di scadenza.

    • * NB: Se si forniscono medicinali con differenti lotti e con differenti date di scadenza è sufficiente compilare due distinte righe per lo stesso medicinale;
  • numLotto: numero di lotto.

Vengono di seguito riportate le descrizioni dei campi non obbligatori:

  • gtinCodice: codice GTIN del medicinale venduto;

  • tipodocumentoCodice: tipologia di documento collegato alla fornitura; i possibili valori di questo campo sono i seguenti:

    • R: Ricetta;

    • F: Fattura;

    • A: Altro documento;

    • D: Documento di trasporto;

  • numDocumento: numero del documento collegato alla fornitura;

  • dtFornitura: la data di fornitura;

    • Se non inserita il sistema considera la data odierna;
    • Attualmente disponibile solo in ambiente di test, entro fine Maggio 2018 sarà in ambiente reale.

Invio del file CSV

Per procedere all'import massivo delle forniture è sufficienete cliccare sul bottone “Import CSV forniture” nella maschera di fornitura dei medicinali. Verrà quindi aperta una popup come nell'immagine:

fornitura-popup-import-massivo.png

Nella popup si potrà scegliere il file da importare. Spuntare il flag “Consenti fornitura maggiorata” se nel csv che si va ad importare sono presenti delle sostituzioni dei medicinali prescritti, con numero di confezioni fornite maggiorate rispetto al numero di confezioni originariamente prescritte.

Logica di elaborazione

ATTENZIONE: la logica di elaborazione del file CSV inviato è di tipo “transazionale”, e prevede quindi che in caso di errori tutti i dati inviati vengano scartati.

Fornitura massiva mediante XML NSIS (Ambiente di TEST, DRAFT può esser soggetto a cambiamenti)

Il sistema è in grado recepire gli XML relativi alle comunicazioni che vengono mandate ad NSIS sulle forniture. Il tracciato risulta leggermente modificato rispetto a quanto necessario per NSIS in quanto è stata aggiunta una informazione aggiuntiva relativamente alla sostituzione dei farmaci. Di seguito è possibile scaricare l XSD necessario per generare XML compatibili con il nostro sistema informativo, dove si evidenzia (rispetto a quello "standard" NSIS) il campo aggiuntivo cod_orig che specifica il farmaco che originariamente era stato specificato dal Veterinario nella ricetta.

   1 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   2     <xs:element name="dataroot">
   3         <xs:complexType>
   4             <xs:sequence>
   5                 <xs:element ref="MITT" minOccurs="1" maxOccurs="unbounded" />
   6             </xs:sequence>
   7         </xs:complexType>
   8     </xs:element>
   9     <xs:element name="MITT">
  10         <xs:complexType>
  11             <xs:sequence>
  12                 <xs:element ref="DEST" minOccurs="1" maxOccurs="unbounded" />
  13             </xs:sequence>
  14             <xs:attribute name="id_mitt" use="required">
  15                 <xs:simpleType>
  16                     <xs:restriction base="xs:string">
  17                         <xs:pattern value="[0-9]{6}" />
  18                     </xs:restriction>
  19                 </xs:simpleType>
  20             </xs:attribute>
  21             <xs:attribute name="tipo_m" use="required">
  22                 <xs:simpleType>
  23                     <xs:restriction base="xs:string">
  24                         <xs:enumeration value="D" />
  25                         <xs:enumeration value="F" />
  26                     </xs:restriction>
  27                 </xs:simpleType>
  28             </xs:attribute>
  29         </xs:complexType>
  30     </xs:element>
  31     <xs:element name="DEST">
  32         <xs:complexType>
  33             <xs:sequence>
  34                 <xs:element ref="MOV" minOccurs="1" maxOccurs="unbounded" />
  35             </xs:sequence>
  36             <xs:attribute name="id_dest" use="optional">
  37                 <xs:simpleType>
  38                     <xs:restriction base="xs:string">
  39                         <xs:pattern value="[0-9]{6}|[0-9]{11}|[*]{0}" />
  40                     </xs:restriction>
  41                 </xs:simpleType>
  42             </xs:attribute>
  43             <xs:attribute name="tipo_d" use="required">
  44                 <xs:simpleType>
  45                     <xs:restriction base="xs:string">
  46                         <xs:enumeration value="W" />
  47                         <xs:enumeration value="K" />
  48                         <xs:enumeration value="Y" />
  49                         <xs:enumeration value="Z" />
  50                     </xs:restriction>
  51                 </xs:simpleType>
  52             </xs:attribute>
  53         </xs:complexType>
  54     </xs:element>
  55     <xs:element name="MOV">
  56         <xs:complexType>
  57             <xs:sequence>
  58                 <xs:element ref="DDT" minOccurs="1" maxOccurs="unbounded" />
  59             </xs:sequence>
  60             <xs:attribute name="tipo_mov" use="required">
  61                 <xs:simpleType>
  62                     <xs:restriction base="xs:string">
  63                         <xs:enumeration value="CM" />
  64                     </xs:restriction>
  65                 </xs:simpleType>
  66             </xs:attribute>
  67             <xs:attribute name="tipo_tr" use="required">
  68                 <xs:simpleType>
  69                     <xs:restriction base="xs:string">
  70                         <xs:enumeration value="T" />
  71                         <xs:enumeration value="E" />
  72                     </xs:restriction>
  73                 </xs:simpleType>
  74             </xs:attribute>
  75         </xs:complexType>
  76     </xs:element>
  77     <xs:element name="DDT">
  78         <xs:complexType>
  79             <xs:sequence>
  80                 <xs:element ref="RICETTA" minOccurs="1" maxOccurs="unbounded" />
  81             </xs:sequence>
  82             <xs:attribute name="d_tr" use="required">
  83                 <xs:simpleType>
  84                     <xs:restriction base="xs:date">
  85                         <xs:pattern value="20[0-9]{2}-[0-9]{2}-[0-9]{2}" />
  86                     </xs:restriction>
  87                 </xs:simpleType>
  88             </xs:attribute>
  89             <xs:attribute name="h_tr" use="optional">
  90                 <xs:simpleType>
  91                     <xs:restriction base="xs:string">
  92                         <xs:pattern value="[0-9]{2}:[0-9]{2}:[0-5]{1}[0-9]{1}|[*]{0}" />
  93                     </xs:restriction>
  94                 </xs:simpleType>
  95             </xs:attribute>
  96             <xs:attribute name="id_doc" use="required">
  97                 <xs:simpleType>
  98                     <xs:restriction base="xs:string">
  99                         <xs:pattern value="[0-9a-zA-Z \w _]{1,20}" />
 100                     </xs:restriction>
 101                 </xs:simpleType>
 102             </xs:attribute>
 103             <xs:attribute name="tipo_doc" use="required">
 104                 <xs:simpleType>
 105                     <xs:restriction base="xs:string">
 106                         <xs:enumeration value="D" />
 107                         <xs:enumeration value="F" />
 108                         <xs:enumeration value="A" />
 109                     </xs:restriction>
 110                 </xs:simpleType>
 111             </xs:attribute>
 112         </xs:complexType>
 113     </xs:element>
 114     <xs:element name="RICETTA">
 115         <xs:complexType>
 116             <xs:sequence>
 117                 <xs:element maxOccurs="unbounded" ref="AIC" />
 118             </xs:sequence>
 119             <xs:attribute name="cf_med_prs" use="required">
 120                 <xs:simpleType>
 121                     <xs:restriction base="xs:string">
 122                         <xs:pattern value="[a-zA-Z]{6}\d{2}[abcdehlmprstABCDEHLMPRST]\d{2}[a-zAZ]\d{3}[a-zA-Z]" />
 123                     </xs:restriction>
 124                 </xs:simpleType>
 125             </xs:attribute>
 126             <xs:attribute name="dat_ric" use="required">
 127                 <xs:simpleType>
 128                     <xs:restriction base="xs:date">
 129                         <xs:pattern value="20[0-9]{2}-[0-9]{2}-[0-9]{2}" />
 130                     </xs:restriction>
 131                 </xs:simpleType>
 132             </xs:attribute>
 133             <xs:attribute name="num_ric" use="required">
 134                 <xs:simpleType>
 135                     <xs:restriction base="xs:integer">
 136                         <xs:maxInclusive value="1000000" />
 137                     </xs:restriction>
 138                 </xs:simpleType>
 139             </xs:attribute>
 140             <xs:attribute name="tipo_ric" use="required">
 141                 <xs:simpleType>
 142                     <xs:restriction base="xs:string">
 143                         <xs:enumeration value="1" />
 144                     </xs:restriction>
 145                 </xs:simpleType>
 146             </xs:attribute>
 147         </xs:complexType>
 148     </xs:element>
 149     <xs:element name="AIC">
 150         <xs:complexType>
 151             <xs:attribute name="t_prod" use="required">
 152                 <xs:simpleType>
 153                     <xs:restriction base="xs:string">
 154                         <xs:enumeration value="1" />
 155                         <xs:enumeration value="8" />
 156                         <xs:enumeration value="9" />
 157                     </xs:restriction>
 158                 </xs:simpleType>
 159             </xs:attribute>
 160             <xs:attribute name="cod" use="required">
 161                 <xs:simpleType>
 162                     <xs:restriction base="xs:string">
 163                         <xs:pattern value="[0-9]{9}|[0-9]{14}" />
 164                     </xs:restriction>
 165                 </xs:simpleType>
 166             </xs:attribute>
 167             <xs:attribute name="d_scad" use="optional">
 168                 <xs:simpleType>
 169                     <xs:restriction base="xs:date">
 170                         <xs:pattern value="20[0-9]{2}-[0-9]{2}-[0-9]{2}" />
 171                     </xs:restriction>
 172                 </xs:simpleType>
 173             </xs:attribute>
 174             <xs:attribute name="lot" use="required">
 175                 <xs:simpleType>
 176                     <xs:restriction base="xs:string">
 177                         <xs:maxLength value="40" />
 178                         <xs:minLength value="1" />
 179                         <xs:pattern value="[!-~ ]{0,}" />
 180                     </xs:restriction>
 181                 </xs:simpleType>
 182             </xs:attribute>
 183             <xs:attribute name="qta" use="required">
 184                 <xs:simpleType>
 185                     <xs:restriction base="xs:int">
 186                         <xs:minInclusive value="0" />
 187                         <xs:maxInclusive value="999999999" />
 188                     </xs:restriction>
 189                 </xs:simpleType>
 190             </xs:attribute>
 191             <xs:attribute name="cod_orig" use="optional">
 192                 <xs:simpleType>
 193                     <xs:restriction base="xs:string">
 194                         <xs:pattern value="[0-9]{9}|[0-9]{14}" />
 195                     </xs:restriction>
 196                 </xs:simpleType>
 197             </xs:attribute>
 198         </xs:complexType>
 199     </xs:element>
 200 </xs:schema>

fornitura-izs-nsis.xsd

Per quanto riguarda il flusso di import, è identico a quanto specificato sopra per il csv a parte che per iniziare bisogna cliccare sul bottone Import XML forniture

Fornitura massiva mediante servizio web REST JSON

Attenzione: versione DRAFT che può essere soggetta a cambiamenti.

Il sistema informativo permette di effettuare la registrazione “massiva” della fornitura di medicinali tramite l’invocazione di un servizio web REST JSON.

URL del servizio REST

Il servizio REST JSON è esposto al seguente URL (endpoint):

  • <url_server>/fornitura/ws/insert/ (dove <url_server> varia in base all'ambiente: test o produzione)

Tracciato JSON di INPUT

E’ possibile invocare il web service REST attraverso un tracciato JSON così formattato:

Esempio per invio farmaci:

   1 [{
   2     "numero": "1479111882578",
   3     "pin": "3468",
   4     "prodAic": "105025011",
   5     "flTipomedicinale": "N",
   6     "galenico": "",
   7     "fornProdAic": "",
   8     "numConfezioni": "3",
   9     "dtScadenza": "14-11-2019",
  10     "numLotto": "XSS 123 A",
  11     "gtinCodice": "",
  12     "tipodocumentoCodice": "",
  13     "numDocumento": "",
  14     "farmacOpendataId": FARM_12534,
  15     "saiId": null
  16 
  17 }, {
  18     "numero": "1479117689369",
  19     "pin": "9657",
  20     "prodAic": "104807058",
  21     "flTipomedicinale": "N",
  22     "galenico": "",
  23     "fornProdAic": "",
  24     "numConfezioni": "7",
  25     "dtScadenza": "14-11-2019",
  26     "numLotto": "AB 34 A 3",
  27     "gtinCodice": "",
  28     "tipodocumentoCodice": "",
  29     "numDocumento": "",
  30     "farmacOpendataId": FARM_12534,
  31     "saiId": null
  32 }]

Esempio per invio mangimi:

   1 [{
   2     "numero": "1525939401770",
   3     "pin": "0247",
   4     "flTipomedicinale": "C",
   5     "numConfezioni": "100",
   6     "dtScadenza": "14-11-2019",
   7     "numLotto": "MANGIME",
   8     "gtinCodice": "",
   9     "tipodocumentoCodice": "",
  10     "numDocumento": "",
  11     "saiId": 178125
  12 }]

La semantica dei campi del tracciato JSON è la stessa dei corrispondenti campi utilizzati nella fornitura massiva mediante CSV. Per la loro descrizione fare quindi riferimento al relativo paragrafo: farmaco/help/fornitura#Descrizione_dei_campi_del_tracciato. In aggiunta il tracciato JSON prevede i seguenti campi (per ora disponibile solo in ambiente di test, entro fine Aprile 2018 sarà in ambiente reale):

  • farmacOpendataId: identificativo della farmacia che sta effettuando la vendita del farmaco; è obbligatorio se nella propria lista dei profili si ha più di una farmacia, altrimenti il sistema considera automaticamente l'unico presente;

  • saiId: identificativo del mangimificio che sta effettuando la vendita del mangime medicato; è obbligatorio se nella propria lista dei profili si ha più di un mangimificio, altrimenti il sistema considera automaticamente l'unico presente;

L’invocazione del servizio WEB REST deve avere i seguenti headers:

   1     Content-Type: application/json
   2     Accept: application/json

Tracciato JSON di OUTPUT

Il servizio REST risponderà con un JSON con il seguente formato:

   1 {
   2     "result": {
   3         "1": {
   4             "errors": null,
   5             "errorType": null,
   6             "elencoCodici": null,
   7             "errore": "Ricetta numero 1479117689369 non trovata"
   8         }
   9     },
  10     "data": null
  11 }

Viene di seguito riportata la descrizione dei due campi del JSON restituito:

  • data: lista di elementi che non hanno problemi nella registrazione della fornitura;

  • result: in questo campo, di tipo json, verranno collezionati i vari errori contenuti nei singoli elementi dell'array di importazione:

    • tale item è “null” se non si sono verificati errori;
    • nel caso in cui nel corso dell'elaborazione si fossero verificati errori, la chiave del json corrisponde all'errore avvenuto nell'i-esimo elemento inviato nel caso documentato l'errore è relativo all'elemento di indice i nel json di input.

Autenticazione

Le modalità di autenticazione per l'invocazione dei servizi REST sono descritte nell'apposito paragrafo della sezione del manuale con le informazioni base e tecnologie adottate dal Sistema Informativo Nazionale della Farmacosorveglianza per l'integrazione con i sistemi esterni, accedibile tramite il seguente URL: farmaco/help/integrazione

Logica di elaborazione

ATTENZIONE: La logica di elaborazione del tracciato JSON inviato al servizio REST è di tipo “transazionale”, e prevede quindi che in caso di errori tutti i dati inviati vengano scartati.

Servizio Web di update della fornitura

Il sistema prevede l'aggiornamento dei dati relativi ad una fornitura.

URL del servizio REST

Il servizio REST è esposto al seguente URL (endpoint):

  • <url_server>/fornitura/ws/update/ (dove <url_server> varia in base all'ambiente: test o produzione)

Headers

Il servizio REST prevede i seguenti headers obbligatori:

   1     Content-Type: application/json
   2     Accept: application/json

Campi di input

Il sistema prevede i seguenti campi di input obbligatori:

  • prodfnId: Identificativo del prodotto fornito | Stringa;

  • numLotto: Numero del lotto | Stringa;

  • dtScadenza: Data di scadenza del farmaco | Stringa (formato gg-mm-aaaa);

  • gtinCodice: Codice del GTIN (obbligatorio se si parla di farmaci, non viene considerato in caso di mangimi) | Stringa.

Inoltre obbligatoriamente deve essere passato uno dei seguenti paramteri:

  • fornFarmacOpendataId: identificativo univoco della farmacia che ha effettuato la fornitura | Stringa;

  • fornSaiId: identificativo univoco del mangimificio che ha effettuato la fornitura | Intero;

Esempio JSON di input

   1 {
   2     "prodfnId":29484,
   3     "fornFarmacOpendataId":"FARM_17887",
   4     "gtinCodice":"05414736003276",
   5     "numLotto":"prova",
   6     "dtScadenza":"20-05-2020"
   7 }

Esempio JSON di output

   1 {
   2     "result": {
   3         "errorType": "",
   4         "errors": [
   5             {
   6                 "field": "",
   7                 "message": "error.prodottofornito.non.trovato",
   8                 "errorCode": "common.unknownerror"
   9             }
  10         ],
  11         "elencoCodici": ""
  12     },
  13     "data": null
  14 }

Viene di seguito riportata la descrizione dei due campi del JSON restituito:

  • data: prodottofornito valorizzato nel caso

  • result: in questo campo, di tipo json, verranno collezionati i vari errori contenuti nei singoli elementi dell'array di importazione:

    • tale item è “null” se non si sono verificati errori;
    • nel caso in cui nel corso dell'elaborazione si fossero verificati errori, la chiave del json corrisponde all'errore avvenuto nell'i-esimo elemento inviato nel caso documentato l'errore è relativo all'elemento di indice 1 nel json di input.

Descrizione dei campi

Di seguito una descrizione dei campi di output:

  • prodfnId: Id della fornitura | Intero

  • dtScadenza: Data di scadenza del farmaco | Stringa

  • numLotto: Numero lotto | Stringa

  • numConfezioni: Numero di confezioni fornite | Intero

  • galenico: Descrizione del galenico | Stringa

  • fornDtFornitura: Data della fornitura | String

  • fornFarmacOpendataId: identificativo univoco della farmacia che ha effettuato la fornitura | Stringa

  • fornFarmacDescrizione: Denominazione della farmacia che ha effettuato la dispensazione del farmaco | Stringa

  • fornProdAic: AIC del farmaco effettivamente fornito | Stringa

  • fornProdDenominazione: Denominazione del farmaco effettivamente fornito | Stringa

  • fornProdConfezione: Confezione del farmaco effettivamente fornito | Stringa

  • fornProdFlTipomedicinale: Tipologia del medicinale | Stringa

  • gtinCodice: Codice del GTIN del farmaco effettivamente fornito | Stringa

  • ricNumero: Numero di ricetta a cui fa riferimento la fornitura | Stringa

  • presVetNumAutorizzazione: Numero di autorizzazione del veterinario che ha emesso la ricetta | Stringa

  • presVetPersCognNome: Cognome e nome del veterinario che ha emesso la ricetta | Stringa

  • presVetPersIdFiscale: Id fiscale del veterinario che ha emesso la ricetta | Stringa

  • presPropIdFiscale: Id fiscale Proprietario della ricetta | Stringa

  • presPropCognNome: Cognome e nome del Proprietario della ricetta | Stringa

  • presAziendaCodice: Codice dell'azienda zootecnica della ricetta | Stringa

  • tipodocumentoCodice: Codice del tipo documento allegato alla fornitura | Stringa

  • tipodocumentoDescrizione: Denominazione del tipo documento allegato alla fornitura | Stringa

  • fornSaiDescrizione: Denominazione del Mangimificio che ha effettuato la fornitura del mangime medicato | Stringa

  • flAnomalo: Flag (S/N) che dice se un farmaco è in attesa di validazione da parte del veterinario | Stringa

  • fornMangmedMangCodice: Codice del mangime base usato come base del mangime medicato | Stringa

  • fornMangmedMangDenominazione: Denominazione del mangime base usato come base del mangime medicato | Stringa

  • presStrutturaCodice: Codice struttura non zootecnica della ricetta | Stringa

  • presStrutturaDenominazione: Denominazione struttura non zootecnica della ricetta | Stringa

  • presDetenIdFiscale: Id fiscale Detentore della ricetta | Stringa

  • presDetenCognNome: Cognome e nome del Detentore della ricetta | Stringa

Servizio Web di cancellazione della fornitura

Il sistema prevede l'aggiornamento dei dati relativi ad una fornitura.

URL del servizio REST

Il servizio REST è esposto al seguente URL (endpoint):

  • <url_server>/fornitura/ws/delete/massivo/ (dove <url_server> varia in base all'ambiente: test o produzione)

Headers

Il servizio REST prevede i seguenti headers obbligatori:

   1     Content-Type: application/json
   2     Accept: application/json

Campi di input

Il sistema prevede i seguenti campi di input obbligatori:

  • prodfnId: Id della fornitura | Intero

Inoltre obbligatoriamente deve essere passato uno dei seguenti paramteri:

  • fornFarmacOpendataId: identificativo univoco della farmacia che ha effettuato la fornitura | Stringa;

  • fornSaiId: identificativo univoco del mangimificio che ha effettuato la fornitura | Intero;

Esempio JSON di input

   1 [{
   2     "prodfnId":545967,
   3     "fornFarmacOpendataId":"STAG_17887"
   4 },{
   5     "prodfnId":545335,
   6     "fornFarmacOpendataId":"FARMFITT_00001"
   7 }]

Esempio JSON di output

   1 {
   2         "result": {
   3                 "0": {
   4                         "errors": null,
   5                         "errorType": "S",
   6                         "elencoCodici": "",
   7                         "errore": "it.izs.cfgbase.dbms.utilita.UtilitaException: SQLException is:ORA-02292: integrity constraint (FARMACO_TEST.FK_E_REGIST_REFERENCE_E_REGIST) violated - child record found\n<br />Per favore contatta l'amministratore di sistema."
   8                 }
   9         },
  10         "data": null
  11 }

Descrizione dei campi

Viene di seguito riportata la descrizione dei due campi del JSON restituito:

  • data: lista di elementi che non hanno problemi nella cancellazione

  • result: in questo campo, di tipo json, verranno collezionati i vari errori contenuti nei singoli elementi dell'array di importazione:

    • tale item è “null” se non si sono verificati errori;
    • nel caso in cui nel corso dell'elaborazione si fossero verificati errori, la chiave del json corrisponde all'errore avvenuto nell'i-esimo elemento inviato nel caso documentato l'errore è relativo all'elemento di indice 1 nel json di input.

Logica di elaborazione

ATTENZIONE: La logica di elaborazione del tracciato JSON inviato al servizio REST è di tipo “transazionale”, e prevede quindi che in caso di errori tutti i dati inviati vengano scartati.

Servizio Web di Ricerca delle forniture

Il sistema offre un metodo REST per la ricerca dei prodotti forniti.

  • <url_server>/crudcommon/prodottofornito/ws/search/ (dove <url_server> varia in base all'ambiente: test o produzione).

Header

L’invocazione del servizio WEB REST deve avere i seguenti headers:

   1     Content-Type: x-www-form-urlencoded
   2     Accept: application/json

Tracciato di input

Di seguito la descrizione dei campi da inviare.

Uno dei due seguenti campi deve essere obbligatoriamente valorizzato:

  • fornFarmacOpendataId: Id Farmacia che ha dispensato il farmaco

  • fornSaiId: Id Mangimificio che ha prodotto il mangime medicato

Il risultato della ricerca è "paginato": il risultato della ricerca viene restituito in N pagine da X righe. Il numero massimo "x" di righe da restituire per pagina (gruppo di risultati) e la pagina da visualizzare vengono pilotati da chi invoca il servizio di ricerca, quindi i seguenti campi sono obbligatori:

  • page: pagina ritornata dalla ricerca (nella prima invocazione del servizio tale campo è da valorizzare con il valore "1");

  • rows: numero massimo di righe tornate dalla ricerca (valore compreso tra 1 e 1000).

Almeno uno dei seguenti campi deve essere obbligatoriamente valorizzato (deve essere impostato almeno un filtro di ricerca):

  • presStrutturaCodice: Codice struttura, se valorizzato ritorna tutte le ricette per scorta struttura non zootecnica o emesse da quella struttura | Stringa;

  • presAziendaCodice: Codice azienda, se valorizzato ritorna tutte le ricette emesse per quel codice azienda | Stringa;

  • presPropIdFiscale: Identificativo Fiscale del proprietario, se valorizzato ritorna tutte le ricette per scorta zootecnica, per prescrizione veterinaria o animali d'affezione aventi come proprietario chi indicato | Stringa;

  • presVetPersIdFiscale: Identificativo Fiscale del Veterinario, se valorizzato ritorna tutte le ricette emesse dal veterinario | Stringa;

  • ricerca per data fornitura, i seguenti campi sono tutti obbligatori nel caso di ricerca per data di fornitura:
    • request.confronti[0].fieldName: obbligatoriamente valorizzato con fornDtFornitura | Stringa

    • request.confronti[0].compare: tipo di comparazione, ha i seguenti valori | Stringa:

      • EQUALS: cerca per data di fornitura uguale

      • LESSTHAN: cerca per data di fornitura minore uguale

      • MORETHAN: cerca per data di fornitura maggiore uguale

      • BETWEEN: cerca per data di fornitura compresa in un intervallo

    • request.confronti[0].from: sempre obbligatorio, deve contenere la data di di fornitura nel formato (gg-mm-aaaa) | Stringa

    • request.confronti[0].to: obbligatorio nel caso request.confronti[0].compare = BETWEEN , deve contenere l'estremo destro dell'intervallo di fornitura nel formato (gg-mm-aaaa) | Stringa

Tracciato di output

   1 {
   2     "result": null,
   3     "data": {
   4                 "total": 1,
   5                 "page": 1,
   6                 "records": 29,
   7                 "rows": [...]
   8         }
   9 }

Di seguito la descrizione dei campi:

  • total: numero totale di pagine;

  • page: pagina che si sta interrogando;

  • records: numero totale di records;

  • rows: elementi di prodottofornito;

Esempio di interrogazione

La seguente interrogazione viene effettuata richiedendo la prima pagina di tutto lo storico delle forniture effettuate nel periodo compreso tra l'11-04-2017 e il 20-04-2017

   1     fornFarmacOpendataId:FARMFITT_00001
   2     page:1
   3     rows:50
   4     request.confronti[0].fieldName:fornDtFornitura
   5     request.confronti[0].compare:BETWEEN
   6     request.confronti[0].from:11-04-2017
   7     request.confronti[0].to:20-04-2017

Servizi Web di Interrogazione (ricerca e dati di dettaglio della ricetta)

Sono disponibili due differenti servizi REST JSON per la ricerca delle ricette e il recupero delle informazioni di dettaglio delle ricette stesse

  1. search/byNumeroAndPin: accesso alla ricetta tramite numero ricetta e PIN:

    • metodo da utilizzare per l'accesso ai dati della ricetta quando si conoscono il numero della ricetta e il suo PIN;
  2. search/noPrivacy: ricerca della ricetta tramite i dati identificativi dell'intestatario della ricetta:

    • utilizzabile solo quando l'intestatario della ricetta ha rinunciato alla privacy sulle ricette, e ha quindi reso possibile la ricerca ed accesso alle ricette ancora da "fornire" senza PIN;
    • se l'intestatario della ricetta non ha rinunciato alla privacy sulle sue ricette, l'invocazione di tale servizio non restituirà alcun dato.

Servizio search/byNumeroAndPin/

Il servizio REST JSON è esposto al seguente URL (endpoint):

  • <url_server>/lov/ricettafornitura/ws/search/byNumeroAndPin/ (dove <url_server> varia in base all'ambiente: test o produzione).

In query string vanno passati obbligatoriamente i due seguenti parametri:

  • numero: numero della ricetta;

  • pin: pin della ricetta;

Inoltre obbligatoriamente deve essere passato uno dei seguenti paramteri:

  • farmacOpendataId: identificativo univoco della farmacia | Stringa;

  • saiId: identificativo univoco del mangimificio | Intero;

Esempio di chiamata del servizio di interrogazione:

Servizio search/noPrivacy/farmaci/

Il servizio torna tutte le ricette contenenti solo farmaci per coloro che hanno espressamente richiesto di non avere una gestione forte (attraverso numero e pin) della privacy.

Il servizio REST JSON è esposto al seguente URL (endpoint):

  • <url_server>/lov/ricettafornitura/ws/search/noPrivacy/farmaci/ (dove <url_server> varia in base all'ambiente: test o produzione).

In query string vanno passati alternativamente (solo uno dei parametri di input deve essere valorizzato) i seguenti parametri:

  • aziendaCodice: codice dell'azienda zootecnica, in questo caso il sistema ritorna tutte le ricette di tipo Prescrizione Veterinaria o Prescrizione per scorta struttura zootecnica relative al codice immesso;

  • propIdFiscale: codice fiscale o partita iva dell'intestatario della ricetta per Prescrizione Veterinaria PET (animali d'affezione);

  • strutturaCodice: codice della struttura non zootecnica intestataria della ricetta per Scorta struttura non zootecnica;

  • vetPersIdFiscale: codice fiscale o partita iva del veterinario intestatario della ricetta per Scorta propria;

Inoltre obbligatoriamente deve essere passato il seguente parametro:

  • farmacOpendataId: identificativo univoco della farmacia | Stringa;

Esempio di chiamata del servizio di interrogazione:

Servizio search/noPrivacy/mangimi/

E' identico al servizio search/noPrivacy/farmaci/ tranne per il fatto che torna tutte le ricette contenenti solo mangimi medicati per coloro che hanno espressamente richiesto di non avere una gestione forte (attraverso numero e pin) della privacy.

Inoltre obbligatoriamente deve essere passato il seguente parametro:

  • saiId: identificativo univoco del mangimificio | Intero;

Esempio di chiamata del servizio di interrogazione:

Tracciato di output

Entrambi i servizi condividono un unico tracciato JSON di output.

Nel caso di ricerca tramite numero ricetta e PIN il servizio restituirà una sola ricetta, se in essa ci sono ancora dei medicinali da fornire. Nel caso di ricerca tramite l'intestatario della ricetta, il servizio restituirà l'elenco delle ricette per le quali è ancora possibile effettuare la fornitura (ricette da evadere o parzialmente evase).

L'output restituito è un JSON cosi formattato:

   1 {
   2     "result": null,
   3     "data": [{
   4                 "numero": "1515868293927",
   5                 "pin": "5055",
   6                 "presDtPrescrizione": "13-01-2018 00:00:00.000",
   7                 "aziendaCodice": "001BG093",
   8                 "propCognNome": "SASSELLA CATERINA BIONDO",
   9                 "propIdFiscale": "SSSCRN34R62E200B",
  10                 "detenCognNome": "SASSELLA CLAUDIO",
  11                 "vetPersIdFiscale": "BRSGNN52L24C469G",
  12                 "vetPersCognNome": "BORIOSI GIANNI",
  13                 "tipoprescrizioneDescrizione": "Prescrizione Veterinaria",
  14                 "tipoprescrizioneCodice": "PRESVET",
  15                 "statoricettaDescrizione": "Emessa",
  16                 "statoricettaCodice": "CONFERMATO",
  17                 "medicinali": [{
  18                                 "presrigaId": 1190624,
  19                                 "quantitativo": 1,
  20                                 "posologia": "POSOLOGIA",
  21                                 "durataTrt": 1,
  22                                 "flTipomedicinale": "N",
  23                                 "famAic": "102519",
  24                                 "prodAic": "102519028",
  25                                 "prodDenominazione": "AMMINOFARMA L 20%",
  26                                 "prodConfezione": "FLACONE DA 1 LITRO",
  27                                 "unimisCodice": "SCAT"
  28                 },
  29                 {
  30                                 "presrigaId": 1190625,
  31                                 "quantitativo": 2,
  32                                 "posologia": "POSOLOGIA",
  33                                 "durataTrt": 1,
  34                                 "flTipomedicinale": "N",
  35                                 "famAic": "105026",
  36                                 "prodAic": "105026013",
  37                                 "prodDenominazione": "SUIVAC APP",
  38                                 "prodConfezione": "FLACONE DA 50 ML (25 DOSI) DI SOLUZIONE INIETTABILE PER SUINI",
  39                                 "unimisCodice": "SCAT"
  40                 }]
  41         }]
  42 }

ATTENZIONE: il campo quantitativo all'interno del JSON indica il numero di confezioni ancora da fornire e non la quantità prescritta (in caso di evasione parziale già effettuata il numero delle confezioni da fornire è inferiore al numero delle confezioni prescritte).

Nel caso di ricetta per mangimi medicati il json di output è il seguente:

   1 {
   2     "result": null,
   3     "data": [{
   4                 "numero": "1523524711100",
   5                 "pin": "8373",
   6                 "detenId": null,
   7                 "presDtPrescrizione": "12-04-2018 00:00:00.000",
   8                 "aziendaCodice": "041TE865",
   9                 "propCognNome": "FILOCAMO MAURIZIO",
  10                 "propIdFiscale": "FLCMRZ80B16H224C",
  11                 "detenIdFiscale": null,
  12                 "detenCognNome": null,
  13                 "vetPersIdFiscale": "BRSGNN52L24C469G",
  14                 "vetPersCognNome": "BORIOSI GIANNI",
  15                 "tipoprescrizioneDescrizione": "Prescrizione Veterinaria",
  16                 "tipoprescrizioneCodice": "PRESVET",
  17                 "statoricettaDescrizione": "Emessa",
  18                 "statoricettaCodice": "CONFERMATO",
  19                 "vetNumAutorizzazione": null,
  20                 "presNote": null,
  21                 "strutturaId": null,
  22                 "strutturaCodice": null,
  23                 "strutturaDenominazione": null,
  24                 "medicinali": [
  25                         {
  26                                 "presrigaId": 1912859,
  27                                 "quantitativo": 1000,
  28                                 "posologia": "100",
  29                                 "note": null,
  30                                 "flTipomedicinale": "C",
  31                                 "unimisCodice": "Kg",
  32                                 "mangmedMangDenominazione": "MANGIME RICETTA n° 1523524711100-C",
  33                                 "premiscele": [
  34                                         {
  35                                                 "famAic": "101988",
  36                                                 "famDenominazione": "SULFACHINOSSALINA 200 PREMIX",
  37                                                 "quantitativo": 1000
  38                                         }
  39                                 ]
  40                         }
  41                 ]
  42         }]
  43 }

Attenzione la sottostruttura premiscele contiene l'elenco delle premiscele specificate dal veterinario, mentre il campo mangmedMangDenominazione rappresenta la denominazione del mangime commerciale utilizzato, non essendo un campo richiesto obbligatoriamente all'utente, nel caso quest'ultimo non lo specifichi il sistema genererà una denominazione con la seguente codifica MANGIME RICETTA N° <NUMERO_RICETTA>-<CODICE_TIPO_MANGIME>

Descrizione dei campi di output della ricetta

  • numero: Numero della ricetta | Stringa

  • pin: Pin della ricetta | Stringa

  • presDtPrescrizione: Data di emissione della ricetta | Stringa

  • aziendaCodice: Codice dell'azienda Zootecnina | Stringa

  • propCognNome: Cognome e Nome del proprietario della ricetta | Stringa

  • propIdFiscale: Id Fiscale (Codice/P.IVA) del proprietario della ricetta | Stringa

  • detenCognNome: Cognome e Nome del detentore dell'azienda zootecnica della ricetta | Stringa

  • detenIdFiscale: Id Fiscale (Codice/P.IVA) del detentore dell'azienda zootecnica della ricetta | Stringa

  • vetPersCognNome: Cognome e Nome del veterinario che ha emesso la ricetta | Stringa

  • vetPersIdFiscale: Id Fiscale (Codice/P.IVA) del veterinario che ha emesso la ricetta | Stringa

  • tipoprescrizioneDescrizione: Descrizione della tipologia della ricetta | Stringa,

  • tipoprescrizioneCodice: Codice della tipologia della ricetta | Stringa; possibili valori:

    • PRESPET: ricetta per animali d'affezione

    • PRESSCORSTRUT: ricetta per scorta per struttura non zootecnica

    • PRESSCORTIMP: ricetta per scorta per struttura zootecnica

    • PRESVET: ricetta per strutttura zootecnica

    • PRESCORPROP: ricetta per scorta propria

  • statoricettaDescrizione: Descrizione dello stato di fornitura della ricetta della ricetta | Stringa;

  • statoricettaCodice: Codice dello stato di fornitura della ricetta della ricetta | Stringa; possibili valori:

    • ANNULLATO: ricetta cancellata;

    • CONFERMATO: ricetta per la quale è stato generato il PIN quindi disponibile per la fornitura;

    • FORNITA: ricetta per la quale sono stati forniti tutti i farmaci;

    • INFORNITURA: ricetta per la quale sono stati forniti una parte di farmaci:

  • medicinali: lista dei farmaci della ricetta:

    • quantitativo: quantitativo rimasto da fornire da contestualizzare rispetto al campo unimisCodice | Intero,

    • durataTrt: Durata del trattamento | Intero

    • flTipomedicinale: flag che indica il tipo di medicinale fornito, i cui possibili valori sono:

      • N: medicinale veterinario (prodotto autorizzato non galenico);

      • S: galenico;

      • C: mangime completo;

      • X: mangime complementare;

      • I: prodotto intermedio.

    • posologia: va contestualizzato rispetto a flTipomedicinale:

      • se flTipomedicinale uguale a un valore tra N, S: è la posologia | Stringa;

      • se flTipomedicinale uguale a un valore tra C, X, I: è la percentuale di utilizzo rispetto alla razione giornaliera | Intero;

    • famAic: famiglia AIC del farmaco (prime 6 cifre dell'AIC) | Stringa,

    • prodAic: AIC del farmaco | Stringa

    • prodDenominazione: Denominazione del farmaco | Stringa

    • prodConfezione: Confezionamento del farmaco | Stringa

    • unimisCodice: Unità di misura da contestualizzare rispetto al quantitativo | Stringa

    • mangmedMangDenominazione: denominazione della base del mangime medicato (nel caso di ricetta per mangimi) | Stringa

    • premiscele: lista delle premiscele del mangime (nel caso di ricetta per mangimi):

      • famAic: famiglia AIC della premiscela (prime 6 cifre dell'AIC) | Stringa

      • famDenominazione: Denominazione del farmaco | Stringa

      • quantitativo: quantitativo (g/100kg) della miscela | Stringa

Registro dei prodotti forniti

Il registro dei prodotti forniti è raggiungibile dall'apposita voce di menu. Qui è possibile visualizzare lo storico di tutte le forniture ed è inoltre possibile eventualmente effettuare delle azioni correttive sulle stesse.

Correzione dei dati della fornitura

E' possibile correggere i dati relativi ai campi Data di scadenza e Numero di Lotto, dopo aver effettuato una ricerca sulla tabellina è necessario far doppio click sulla riga di fornitura da modificare, si aprirà un pop-up dove è possibile modificare i campi, una volta conclusa la modifica per salvare i dati è sufficiente cliccare su bottone Aggiorna

Cancellazione dei dati in caso di errata fornitura

Se al momento della fornitura è stato inserito un quantitativo errato l'unico modo per procedere alla correzione del dato è cancellare la fornitura associata e poi ripetere l'azione. Una volta effettuata la ricerca dalla tabellina selezionare una o più righe da cancellare dopo di che premere il bottone Cancella selezionati in basso a destro.

Tabella dei prodotti ed esportazione in excel

Una volta effettuata la ricerca dalla tabellina dei risultati è possibile esportare in Excel il risultato come spiegato alla seguente pagine di manuale

farmaco/help/fornitura (last edited 2023-02-28 11:25:19 by r.sciamanna)