Differences between revisions 40 and 110 (spanning 70 versions)
Revision 40 as of 2018-04-12 11:21:27
Size: 11242
Editor: a.santurbano
Comment:
Revision 110 as of 2018-10-29 09:38:14
Size: 31720
Editor: a.bertoldi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
<<TableOfContents(3)>>

= Ambienti =
Gli ambienti a disposizione per l'interrogazione dei servizi sono due:
 * '''TEST''': http://wstest.izs.it/demo_farmaco_test/
 * '''PRODUZIONE''': https://ws.izs.it/j2_farmaco/

= Gestione delle anagrafiche Farmacie, Grossisti, Scorte e Mangimi =
Sezione relativa alle funzionalità per il caricamento massivo delle anagrafiche di Farmacie, Grossiti autorizzati alla vendita al dettaglio, Scorte e Mangimi.

== Import da CSV delle Anagrafiche Farmacie e Grossisti ==
Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente le anagrafiche delle farmacie e grossisti autorizzati alla vendita al dettaglio, attraverso un apposito file in formato CSV.
<<TableOfContents(5)>>

= Gestione delle anagrafiche delle Autorizzazioni detenzione Scorta e veterinari responsabili =
Sezione relativa alle funzionalità per il caricamento massivo delle anagrafiche delle Autorizzazioni detenzione Scorta e Veterinari responsabili o loro delegati.

== Anagrafiche Scorte Allevamento, Strutture e Veterinario ==
=== Import da CSV ===
Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente le anagrafiche delle scorte in allevamento e le scorte proprie del veterinario attraverso un apposito file in formato CSV.
Line 16: Line 12:
||'''tipofarmaciaCodice''' ||'''descrizione''' ||'''numAutorizzazione''' ||'''cap''' ||'''comIstat''' ||'''comProSigla''' ||'''indirizzo''' ||
||FARMVET ||Farmacia IZS ||A123 ||64100 ||041 ||TE ||Via Campo boario 8 ||




Descrizione dei campi previsti dal file in formato CSV (in '''grassetto '''i campi obbligatori):

 * '''tipofarmaciaCodice''': tipologia della farmacia, può avere i seguenti valori:
  * '''FARM''': Farmacia;
  * '''FARMGROS''': Grossista Farmaceutico;
  * '''FARMVET''': Farmacia Veterinaria.
 * '''descrizione''': denominazione della farmacia;
 * '''numAutorizzazione''': numero autorizzazione o codice farmacia;
 * '''cap''': CAP comune;
 * '''comIstat''': codice ISTAT del comune (eclusa la parte della provincia);
 * '''comProSigla''': sigla della provincia;
 * '''indirizzo''': indirizzo della farmacia.

'''Attenzione''': nel file CSV non devono essere modificati i nomi (intestazioni) delle colonne. Fare attenzione alle minuscole e alle maiuscole. L'ordine delle colonne può essere variato.

== Import da CSV delle Anagrafiche Scorte Allevamento e Veterinario ==
Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente le anagrafiche delle scorte in allevamento e le scorte proprie del veterinario attraverso un apposito file in formato CSV.

Il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''aziendaCodice''' ||'''personeIdFiscale''' ||'''scortaNumAutorizzazione''' ||'''scortaDtInizio''' ||'''aslCodice''' ||
||ALLEVAMENTO ||041TE001 ||RVRCRL62S29D969F ||TESTCSVALLEV ||01-07-2016 || ||
||PROPRIA || ||SCCLDA40R10H811F ||TESTCSVPROP ||02-07-2016 ||P106 ||
||'''tiposcortaCodice''' ||'''aziendaCodice''' ||'''personeIdFiscale''' ||'''strutturaCodice''' ||'''scortaNumAutorizzazione''' ||'''scortaDtInizio''' ||'''aslCodice''' ||'''scortaFlDerogaFornitura''' ||
||ALLEVAMENTO ||041TE001 ||RVRCRL62S29D969F || ||TESTCSVALLEV ||01-07-2016 || ||N ||
||PROPRIA || ||SCCLDA40R10H811F || ||TESTCSVPROP ||02-07-2016 ||P106 ||N ||
||STRUTTURA || || ||RI-AG000060 ||TESTCSVSTRUTTURA ||02-07-2016 || ||N ||
Line 52: Line 24:
  * '''STRUTTURA''': Scorta della Struttura non Zootecnica (Ospedale Veterinario, Canile, Ambulatorio Veterinario, ecc...);
Line 54: Line 27:
 * '''strtutturaCodice''': ('''obbligatorio se tiposcortaCodice = STRUTTURA''')''' '''codice della struttura non zootecnica per la quale si sta autorizzando la scorta;
Line 61: Line 34:
 * '''scortaFlDerogaFornitura''': indica se per l'allevamento, struttura o veterinario non si vuole la privacy sulle ricette;  * scortaFlDerogaFornitura: indica se per l'allevamento, struttura o veterinario non si vuole la privacy sulle ricette;
  * '''N''': per la visualizzazione e accesso alla ricetta, da parte del farmacista od operatore OSM, sono sempre richiesti codice e PIN; valorizzazione di default se tale campo/colonna non fosse valorizzata;
  * '''S''': per la visualizzazione e accesso alla ricetta non è richiesto il PIN, è possibile cercare e accedere alla ricetta tramite il codice azienda o id fiscale del proprietario degli animali.
 * '''aslCodice''': asl di appartenza del Veterinario. E' necessario solo nel caso di tiposcortaCodice "PROPRIA", per identificare a quale ASL associare la scorta. Per gli allevamenti non è necessario, in quanto è un'informazione già presente in BDN.

'''Attenzione''': nel file CSV non devono essere modificati i nomi (intestazioni) delle colonne. Fare attenzione alle minuscole e alle maiuscole. L'ordine delle colonne può essere variato.

==== Esempio file CSV scorta propria (Veterinario) ====
Il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''personeIdFiscale''' ||'''scortaNumAutorizzazione''' ||'''scortaDtInizio''' ||'''aslCodice''' ||'''scortaFlDerogaFornitura''' ||
||PROPRIA ||SCCLDA40R10H811F ||AP45 ||02-07-2016 ||P106 ||N ||
||PROPRIA ||SCNMRC69E22E058V ||TE12 ||02-07-2016 ||P110 ||N ||




==== Esempio file CSV scorta Allevamento Zootecnico ====
Il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''aziendaCodice''' ||'''personeIdFiscale''' ||'''scortaNumAutorizzazione''' ||'''scortaDtInizio''' ||'''scortaFlDerogaFornitura''' ||
||ALLEVAMENTO ||041TE001 ||RVRCRL62S29D969F ||XY67 ||01-07-2016 ||N ||
||ALLEVAMENTO ||011TE001 ||00060330677 ||XX123 ||01-05-2013 ||N ||




==== Esempio file CSV scorta Struttura non zootecnica ====
Il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''strutturaCodice''' ||'''scortaNumAutorizzazione''' ||'''scortaDtInizio''' ||'''scortaFlDerogaFornitura''' ||
||STRUTTURA ||RI-AG000060 ||AG56 ||02-07-2016 ||N ||
||STRUTTURA ||RI-AG000160 ||AG34 ||01-08-2015 ||N ||




==== Template file CSV ====
E' possibile scaricare il file in formato CSV di esempio (da poter utilizzare come template vuoto da compilare) direttamente dall'applicativo, nel seguente modo:

 1. accedere alla sezione "Autorizzazione Detenzione Scorta" e cliccare su uno dei pulsanti posti in fondo alla pagina:
 1. cliccare sul pulsante "Download template CSV".

Step 1

{{attachment:anagrafica_scorta_1.jpg}}

Step 2

{{attachment:anagrafica_scorta_2.jpg}}

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

=== Gestione tramite servizio REST/JSON ===
Di seguito le specifiche per la cooperazione applicativa attraverso i servizi WEB REST/JSON messi a disposizione.

==== Ricerca ====
Il sistema offre un metodo REST per la ricerca:

 * '''<url_server>/lov/scortaronly/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:

{{{#!highlight bash
    Content-Type: x-www-form-urlencoded
    Accept: application/json
}}}
===== Tracciato di input =====
Di seguito la descrizione dei campi da inviare.

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") | Numerico;
 * '''rows''': numero massimo di righe tornate dalla ricerca (valore compreso tra 1 e 100) | Numerico.

Si seguito la descrizione dei campi dell'entita '''scortaronly''' gestiti in input/output:

 * '''lovscortaId''': id del record | Numerico;
 * '''scortaNumAutorizzazione''': numero di autorizzazione alla scorta | Stringa;
 * '''scortaDtInizio''': data di inizio validità della scorta | Stringa (formato dd-mm-aaaa);
 * '''scortaDtFine''': data di fine validità della scorta | Stringa (formato dd-mm-aaaa);
 * '''aziendaCodice''': codice dell'azienda zootecnica a cui fa riferimento la scorta | Stringa;
 * '''propIdFiscale''': ID fiscale (Codice o P.IVA) del proprietario dell'azienda zootecnica a cui fa riferimento la scorta | Stringa;
 * '''tiposcortaCodice''': tipologia della scorta | Stringa; possibili valori:
  * '''STRUTTURA''': Scorta della Struttura non Zootecnica;
  * '''SCORFITT''': Registro delle rimanenze della struttura zootecnica senza scorta;
  * '''PROPRIA''': Scorta del veterinario;
  * '''DETENTORE''': Scorta del detentore;
  * '''ALLEVAMENTO''': Scorta per allevamento.
 * '''scortaFlDerogaFornitura''': indica se per l'allevamento, struttura o veterinario non si vuole la privacy sulle ricette | Stringa:
Line 64: Line 124:
 * '''aslCodice''': asl di appartenza del Veterinario. E' necessario solo nel caso di tiposcortaCodice "PROPRIA", per identificare a quale ASL associare la scorta. Per gli allevamenti non è necessario, in quanto è un'informazione già presente in BDN.

'''Attenzione''': nel file CSV non devono essere modificati i nomi (intestazioni) delle colonne. Fare attenzione alle minuscole e alle maiuscole. L'ordine delle colonne può essere variato.

Dal seguente link è possibile scaricare il file in formato CSV di esempio: [[attachment:elencoAutorizzazioniScortaMedicinali.csv]]

== Import tramite servizio REST/JSON delle Anagrafiche Scorte Allevamento e Veterinario ==
 * '''strutturaCodice''': codice della Struttura non Zootecnica a cui fa riferimento la scorta | Stringa;
 * '''vetPersIdFiscale''': ID fiscale (Codice o P.IVA) del veterinario a cui fa riferimento la scorta | Stringa;
 * '''aslCodice''': Codice dell'ASL a cui fa riferimento la scorta (obbligatorio se tiposcortaCodice = PROPRIA) | Stringa;

===== Esempio di interrogazione =====
{{{#!highlight
    page:1
    rows:50
    aziendaCodice:001TE001
}}}
===== Tracciato di output =====
{{{#!highlight
{
    "result": null,
    "data": {
                "total": 1,
                "page": 1,
                "records": 29,
                "rows": [...]
        }
}
}}}
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 scortaronly;

==== Import ====
Line 79: Line 162:
 {
  "tiposcortaCodice": "ALLEVAMENTO",
  "aziendaCodice": "039TE508",
  "personeIdFiscale": "DNGVNI59B48B515B",
  "scortaNumAutorizzazione": "TESTJSON",
  "scortaDtInizio": "24-01-2017",
  "aslCodice": "",
  "scortaFlDerogaFornitura": "N"
 },
 {
  "tiposcortaCodice": "PROPRIA",
  "aziendaCodice": "",
  "personeIdFiscale": "TSCTNN57A17E058B",
  "scortaNumAutorizzazione": "TESTJSON1",
  "scortaDtInizio": "24-01-2017",
  "scortaFlDerogaFornitura": "N",
  "aslCodice": "F118"
 },
 {
  "tiposcortaCodice": "STRUTTURA",
  "strutturaCodice": "RS-AG000052",
  "scortaNumAutorizzazione": "STRUTACNINA",
  "scortaDtInizio": "24-01-2017",
  "scortaFlDerogaFornitura": "N",
  "aslCodice": ""
 }
]}}}

=== URL del servizio REST ===
        {
                "tiposcortaCodice": "ALLEVAMENTO",
                "aziendaCodice": "039TE508",
                "personeIdFiscale": "DNGVNI59B48B515B",
                "scortaNumAutorizzazione": "TESTJSON",
                "scortaDtInizio": "24-01-2017",
                "aslCodice": "",
                "scortaFlDerogaFornitura": "N"
        },
        {
                "tiposcortaCodice": "PROPRIA",
                "aziendaCodice": "",
                "personeIdFiscale": "TSCTNN57A17E058B",
                "scortaNumAutorizzazione": "TESTJSON1",
                "scortaDtInizio": "24-01-2017",
                "scortaFlDerogaFornitura": "N",
                "aslCodice": "F118"
        },
        {
                "tiposcortaCodice": "STRUTTURA",
                "strutturaCodice": "RS-AG000052",
                "scortaNumAutorizzazione": "STRUTACNINA",
                "scortaDtInizio": "24-01-2017",
                "scortaFlDerogaFornitura": "N",
                "aslCodice": ""
        }
]
}}}
===== URL del servizio REST =====
Line 112: Line 195:
=== Header ===
===== Header =====
Line 115: Line 197:
Line 119: Line 202:

=== Autenticazione ===
===== Autenticazione =====
Line 123: Line 205:
== Import da CSV dei Veterinari responsabili della scorta ==
Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente i veterinari responsabili delle scorte in allevamento attraverso un apposito file in formato CSV. Il file CSV con l'elenco dei veterinari responsabili della scorta deve essere caricato dopo aver caricato l'elenco delle autorizzazioni alla detenzione della scorta in allevamento (import da CSV della anagrafiche Scorte Allevamento e Veterinario).

Il file in formato CSV da importare deve avere la seguente struttura:
||'''aziendaCodice''' ||'''idFiscale''' ||'''cfVeterinario''' ||
||041TE001 ||RVRCRL62S29D969F ||RTAFNC75A20C342V ||
||041TE001 ||RVRCRL62S29D969F ||BRSGNN52L24C469G ||




Descrizione dei campi previsti dal file in formato CSV (in '''grassetto '''i campi obbligatori):

 * '''aziendaCodice''': codice dell'azienda zootecnica con scorta autorizzata;
 * '''IdFiscale''': ID Fiscale del proprietario dell'azienda zootecnica;
 * '''cfVeterinario''':''' '''Codice Fiscale del Veterinario.

'''Attenzione''': nel file CSV non devono essere modificati i nomi (intestazioni) delle colonne. Fare attenzione alle minuscole e alle maiuscole. L'ordine delle colonne può essere variato.

Dal seguente link è possibile scaricare il file in formato CSV di esempio: [[attachment:elencoVeterinariScortaAllevamento.csv]]

== Import tramite servizio REST/JSON dei Veterinari responsabili della scorta ==
Il Sistema Informativo della Farmacosorveglianza permette di gestire i veterinari responsabili delle scorte in allevamento attraverso un apposito servizio REST/JSON. I veterinari responsabili della scorta possono essere inseriti solo dopo aver caricato l'autorizzazione alla detenzione della scorta in allevamento.

I campi previsti dal tracciato JSON sono gli stessi del file in formato CSV.
===== Tracciato di output =====
{{{#!highlight json
{
        "result": {
                "1": {
                        "errors": [{
                                "field": "",
                                "message": "...",
                                "errorCode": "common.unknownerror"
                        }],
                        "errorType": null,
                        "elencoCodici": null,
                        "errore": <Descrizione dell'errore>
                }
        },
        "data": null
}
}}}
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.

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.

==== Update ====
Line 151: Line 235:
{{{#!highlight json
[{
 "aziendaCodice": "041TE040",
 "IdFiscale": "VRNLBT74H42L103M",
 "personeIdFiscale": "FRLMRA79B16A345Q"
}, {
 "aziendaCodice": "030PE140",
 "IdFiscale": "VRNLBT74H42L103M",
 "personeIdFiscale": "FRLMRA79B16A345Q"
}]
}}}

=== URL del servizio REST ===
Esempio aggiornamento scorta struttura:

{{{#!highlight json
{
    "lovscortaId": 1932228,
    "scortaNumAutorizzazione": "012/2018-1",
    "scortaDtInizio": "15-04-2018",
    "scortaDtFine": null,
    "tiposcortaCodice": "STRUTTURA",
    "scortaFlDerogaFornitura": "N",
    "strutturaCodice": "SV-200CA000790"
}
}}}
Esempio aggiornamento scorta allevamento:

{{{#!highlight json
{
    "lovscortaId": 6432,
    "scortaNumAutorizzazione": "PROVA-UP",
    "scortaDtInizio": "15-04-2018",
    "scortaDtFine": null,
    "tiposcortaCodice": "ALLEVAMENTO",
    "scortaFlDerogaFornitura": "N",
    "propIdFiscale": "00548890409",
    "aziendaCodice": "039TE001"
}
}}}
Esempio aggiornamento scorta propria del veterinario:

{{{#!highlight json
{
    "lovscortaId": 6451,
    "scortaNumAutorizzazione": "PROVA-UP",
    "scortaDtInizio": "15-04-2018",
    "scortaDtFine": null,
    "tiposcortaCodice": "PROPRIA",
    "scortaFlDerogaFornitura": "N",
    "vetPersIdFiscale": "RTAFNC75A20C342V",
    "aslCodice": "P106"
}
}}}
N.B. Il campo '''scortaDtFine''' è da popolare quando si vuole chiudere la scorta.

===== URL del servizio REST =====
Line 166: Line 281:
 * '''<url_server>/crudcommon/scortavet/ws/insert/''' (dove <url_server> varia in base all'ambiente: test o produzione)

=== Header ===
 * '''<url_server>/autorizzazione/detenzione/ws/update/''' (dove <url_server> varia in base all'ambiente: test o produzione)

===== Header =====
Line 171: Line 285:
Line 175: Line 290:

=== Autenticazione ===
===== Autenticazione =====
Line 179: Line 293:

== Import da CSV dei mangimi ==
Il Sistema Informativo della Farmacosorveglianza permette ai veterinari libero professionisti di caricare massivamente l'elenco dei mangimi da utilizzare nelle presc attraverso un apposito file in formato CSV. Tale funzionalità è accessibile attraverso la voce di menu '''Altro''' -> '''Mangimi.'''
===== Tracciato di output =====
{{{#!highlight json
{
        "result": {
                "errors": [{
                                "field": "",
                                "message": "....",
                                "errorCode": "common.unknownerror"
                }],
                "errorType": null,
                "elencoCodici": null,
                "errore": <Descrizione dell'errore>
        },
        "data": null
}
}}}
== Import Veterinari responsabili della scorta ==
Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente i veterinari responsabili delle scorte.

=== Caricamento file CSV ===
Il sistema permette il caricamento massivo attraverso un apposito file in formato CSV. Il file CSV con l'elenco dei veterinari responsabili della scorta deve essere caricato dopo aver caricato l'elenco delle autorizzazioni alla detenzione della scorta in allevamento (import da CSV della anagrafiche Scorte Allevamento e Veterinario).
Line 184: Line 316:
||'''denominazione''' ||'''flTipomangime''' ||'''codice''' ||
||Mangime 1 ||X ||ALS123 ||
||Mangime 2 ||I ||ALS124 ||




Descrizione dei campi previsti dal file in formato CSV (in '''grassetto '''i campi obbligatori):

 * '''denominazione''': denominazione commerciale del mangime;
 * '''flTipomangime''': tipologia del mangime:
  * '''C''': Mangime completo;
  * '''I''': Prodotto intermedio;
  * '''X''': Mangime complementare;
 * '''codice''': codice del mangime (max 13 caratteri)
||'''tiposcortaCodice''' ||'''vetPersIdFiscale''' ||'''aziendaCodice''' ||'''propIdFiscale''' ||'''strutturaCodice''' ||'''flResponsabile''' ||
||STRUTTURA ||SCCLDA40R10H811F || || ||OV-PE000001 ||S ||
||ALLEVAMENTO ||RTAFNC75A20C342V ||041TE001 ||RVRCRL62S29D969F || ||S ||
||ALLEVAMENTO ||BRSGNN52L24C469G ||041TE122 ||SCCLDA40R10H811F || || ||




Descrizione dei campi previsti dal file in formato CSV (in '''grassetto ''' i campi obbligatori):

 * '''tiposcortaCodice''': tipologia della scorta, valori ammessi:
  * '''STRUTTURA''': scorta della struttura non zootecnica
  * '''ALLEVAMENTO''': scorta dell'allevamento zootecnico
 * '''aziendaCodice''': codice dell'azienda zootecnica con scorta autorizzata ('''obbligatorio se tiposcortaCodice = ALLEVAMENTO ''');
 * '''propIdFiscale''': ID Fiscale del proprietario dell'azienda zootecnica ('''obbligatorio se tiposcortaCodice = ALLEVAMENTO ''');
 * '''strutturaCodice''': codice della struttura con scorta autorizzata ('''obbligatorio se tiposcortaCodice = STRUTTURA''');
 * '''vetPersIdFiscale''': Codice Fiscale del Veterinario;
 * flResponsabile: flag che indica se il veterinario è il responsabile o il delegato, se non specificato il valore di default è '''N''', possibili valori:
  * '''S''': responsabile;
  * '''N''': delegato
Line 202: Line 339:
==== Esempio file CSV scorta Allevamento Zootecnico ====
Il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''vetPersIdFiscale''' ||'''aziendaCodice''' ||'''propIdFiscale''' ||'''flResponsabile''' ||
||ALLEVAMENTO ||RTAFNC75A20C342V ||041TE001 ||RVRCRL62S29D969F ||S ||
||ALLEVAMENTO ||BRSGNN52L24C469G ||041TE122 ||SCCLDA40R10H811F ||S ||




Nell'esempio precedente in particolare si ha che sulla scorta dell'allevamento 041TE001 ci sono due veterinari:

 1. il veterinario con CF RTAFNC75A20C342V è il veterinario responsabile della scorta;
 1. il veterinario con CF SCNMRC69E22E058V è un veterinario delegato ad operare sulla scorta dal responsabile della scorta stessa.

==== Esempio file CSV scorta Struttura non zootecnica ====
Il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''vetPersIdFiscale''' ||'''strutturaCodice''' ||'''flResponsabile''' ||
||STRUTTURA ||SCCLDA40R10H811F ||OV-PE000001 ||S ||
||STRUTTURA ||SCNMRC69E22E058V ||OV-PE000022 ||S ||




==== Esempio file CSV scorta Allevamento Zootecnico con veterinari delegati dal veterinario responsabile ====
Nel caso in cui su una scorta autorizzata (Allevamento o Struttura) ci siano dei veterinari delegati dal responsabile della scorta, il file in formato CSV da importare deve avere la seguente struttura:
||'''tiposcortaCodice''' ||'''vetPersIdFiscale''' ||'''aziendaCodice''' ||'''propIdFiscale''' ||'''flResponsabile''' ||
||ALLEVAMENTO ||RTAFNC75A20C342V ||041TE001 ||RVRCRL62S29D969F ||S ||
||ALLEVAMENTO ||SCNMRC69E22E058V ||041TE001 ||RVRCRL62S29D969F ||N ||
||ALLEVAMENTO ||BRSGNN52L24C469G ||041TE122 ||SCCLDA40R10H811F ||S ||
||ALLEVAMENTO ||SCNMRC69E22E058V ||041TE122 ||SCCLDA40R10H811F ||N ||




Nell'esempio precedente in particolare si ha che sulla scorte degli allevamenti 041TE001 e 041TE122 ci sono due veterinari:

 1. il veterinario con CF RTAFNC75A20C342V è il veterinario responsabile della scorta dell'allevamento 041TE001;
 1. il veterinario con CF SCNMRC69E22E058V è un veterinario delegato ad operare sulla scorta dell'allevamento 041TE001 dal responsabile della scorta.
 1. il veterinario con CF BRSGNN52L24C469G è il veterinario responsabile della scorta dell'allevamento 041TE122 ;
 1. il veterinario con CF SCNMRC69E22E058V è un veterinario delegato ad operare sulla scorta dell'allevamento 041TE122 dal responsabile della scorta.

Quindi il veterinario con CF SCNMRC69E22E058V è delegato ad operare sulle scorte (emissione ricette per carico della scorta, e gestione degli scarichi) degli allevamenti 041TE122 e 041TE001.

==== Template file CSV ====
E' possibile scaricare il file in formato CSV di esempio (da poter utilizzare come template vuoto da compilare) direttamente dall'applicativo, nel seguente modo:

 1. accedere alla sezione "Autorizzazione Detenzione Scorta", effettuare una ricerca senza specificare filtri e cliccare su uno delle righe risultato della ricerca;
 1. cliccare sul pulsante "Associa Veterinario alla scorta";
 1. cliccare sul pulsante "Download template CSV".

Step 1

{{attachment:anagrafica_scorta_veterinari_1.jpg}}

Step 2

{{attachment:anagrafica_scorta_veterinari_2.jpg}}

Step 3

{{attachment:anagrafica_scorta_veterinari_3.jpg}}

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

=== Gestione tramite servizio web REST/JSON ===
==== Ricerca ====
Il sistema offre un metodo REST per la ricerca:

 * '''<url_server>/crudcommon/scortavet/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:

{{{#!highlight bash
    Content-Type: x-www-form-urlencoded
    Accept: application/json
}}}
===== Tracciato di input =====
Di seguito la descrizione dei campi da inviare.

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") | Numerico;
 * '''rows''': numero massimo di righe tornate dalla ricerca (valore compreso tra 1 e 100) | Numerico.

Si seguito la descrizione dei campi dell'entita '''scortavet''' gestiti in input/output:

 * '''scovetId''': id del record | Numerico;
 * '''vetPersIdFiscale''': ID fiscale (Codice o P.IVA) del veterinario responsabile o delegato alla gestione della scorta | Stringa;
 * '''flResponsabile''': flag che indica se il veterinario è o meno il responsabile della scorta; possibili valori | Stringa:
  * '''S''': responsabile;
  * '''N''': delegato.
 * '''aziendaCodice''': codice dell'azienda zootecnica a cui fa riferimento la relazione | Stringa;
 * '''propIdFiscale''': ID fiscale (Codice o P.IVA) del proprietario dell'azienda zootecnica a cui fa riferimento la relazione | Stringa;
 * '''tiposcortaCodice''': tipologia della scorta; possibili valori | Stringa:
  * '''STRUTTURA''': Scorta della Struttura non Zootecnica;
  * '''SCORFITT''': Registro delle rimanenze della struttura zootecnica senza scorta;
  * '''PROPRIA''': Scorta del veterinario;
  * '''DETENTORE''': Scorta del detentore;
  * '''ALLEVAMENTO''': Scorta per allevamento.
 * '''strutturaCodice''': codice della Struttura non Zootecnica a cui fa riferimento la relazione | Stringa;

===== Esempio di interrogazione =====
{{{#!highlight
    page:1
    rows:50
    aziendaCodice:001TE001
}}}
===== Tracciato di output =====
{{{#!highlight
{
    "result": null,
    "data": {
                "total": 1,
                "page": 1,
                "records": 29,
                "rows": [...]
        }
}
}}}
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 scortavet;

==== Import ====
Il Sistema Informativo della Farmacosorveglianza permette di gestire i veterinari responsabili delle scorte in allevamento attraverso un apposito servizio REST/JSON. I veterinari responsabili della scorta possono essere inseriti solo dopo aver caricato l'autorizzazione alla detenzione della scorta in allevamento.

I campi previsti dal tracciato JSON sono gli stessi del file in formato CSV.

Viene di seguito riportato l'esempio tracciato dati JSON da utilizzare:

{{{#!highlight json
[{
        "tiposcortaCodice": "STRUTTURA",
        "strutturaCodice": "OV-PE000001",
        "vetPersIdFiscale": "SCCLDA40R10H811F",
        "flResponsabile": "S"
}, {
        "tiposcortaCodice": "ALLEVAMENTO",
        "aziendaCodice": "041TE040",
        "propIdFiscale": "RVRCRL62S29D969F",
        "vetPersIdFiscale": "RTAFNC75A20C342V",
        "flResponsabile": "S"
}, {
        "tiposcortaCodice": "ALLEVAMENTO",
        "aziendaCodice": "041TE122",
        "propIdFiscale": "SCCLDA40R10H811F",
        "vetPersIdFiscale": "BRSGNN52L24C469G"
}]
}}}
===== URL del servizio REST =====
Il servizio REST JSON è esposto al seguente URL (endpoint):

 * '''<url_server>/crudcommon/scortavet/ws/insert/''' (dove <url_server> varia in base all'ambiente: test o produzione)

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

{{{#!highlight bash
    Content-Type: application/json
    Accept: application/json
}}}
===== 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]]

===== Tracciato di output =====
{{{#!highlight json
{
        "result": {
                        "1": {
                                "errors": [{
                                        "field": "",
                                        "message": "codice",
                                        "errorCode": "common.unknownerror"
                                }],
                                "errorType": null,
                                "elencoCodici": null,
                                "errore": <Descrizione dell'errore>
                        }
        },
        "data": null
}
}}}
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.

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.

==== Update ====
Viene di seguito riportato l'esempio tracciato dati JSON da utilizzare:

{{{#!highlight json
{
    "scovetId": 178444,
    "flResponsabile": "N",
    "vetPersIdFiscale": "PSSMRA45E44D542K",
    "aziendaCodice": "217BG034",
    "tiposcortaCodice": "SCORFITT",
    "propIdFiscale": "MRCVCN71H10B157J"
}
}}}
===== URL del servizio REST =====
Il servizio REST JSON è esposto al seguente URL (endpoint):

 * '''<url_server>/crudcommon/scortavet/ws/update/''' (dove <url_server> varia in base all'ambiente: test o produzione)

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

{{{#!highlight bash
    Content-Type: application/json
    Accept: application/json
}}}
===== 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]]

===== Tracciato di output =====
{{{#!highlight json
{
        "result": {
                "errors": [{
                        "field": "",
                        "message": "...",
                        "errorCode": "common.unknownerror"
                }],
                "errorType": null,
                "elencoCodici": null,
                "errore": <Descrizione dell'errore>
        },
        "data": null
}
}}}
Line 208: Line 584:
Dal seguente link è possibile scaricare il file con la descrizione dei tracciati, nel quale vengono illustrate le entità gestite e le informazioni necessarie per consentire una corretta alimentazione del sistema relativamente alle strutture di detenzione ed ambulatori veterinari: [[attachment:Sinaaf-Ambulatori-Strutture_di_Detenzione_PET.pdf]] Dal seguente link è possibile scaricare il file con la descrizione dei tracciati, nel quale vengono illustrate le entità gestite e le informazioni necessarie per consentire una corretta alimentazione del sistema relativamente alle strutture di detenzione ed ambulatori veterinari:

 * [[attachment:Sinaaf-Ambulatori-Strutture_Di_Detenzione.pdf]]

Per il caricamento massivo delle strutture veterinarie bisogna predisporre un apposito file in formato excel (*.xlsx), per agevolarne la compilazione è possibile utilizzare il Template_SV appositamente preconfezionato.

 * [[attachment:Sinaaf-Template_SV.xlsx]]

Il Template è strutturato nel seguente modo:

 1. primo foglio denominato "Template_SV": deve essere compilato con i dati delle strutture veterinarie
 1. secondo foglio denominato "Tracciato_SV": è il tracciato delle strutture veterinarie in cui sono esplicitati i valori predefiniti e i vincoli sui dati
 1. terzo foglio denominato "COMUNI": è l'elenco dei comuni da cui leggere i valori delle colonne "comIstat" e "proSigla"

Per il caricamento massivo delle strutture di detenzione bisogna predisporre un apposito file in formato excel (*.xlsx), per agevolarne la compilazione è possibile utilizzare il Template_SD appositamente preconfezionato.

 * [[attachment:Sinaaf-Template_SD.xlsx]]

Il Template è strutturato nel seguente modo:

 1. primo foglio denominato "Template_SD": deve essere compilato con i dati delle strutture di detenzione
 1. secondo foglio denominato "Tracciato_SD": è il tracciato delle strutture di detenzione in cui sono esplicitati i valori predefiniti e i vincoli sui dati
 1. terzo foglio denominato "COMUNI" : è l'elenco dei comuni da cui leggere i valori delle colonne "prpComIstat" , "perProSigla", "comIstat" e "proSigla"

Per il caricamento massivo delle persone bisogna predisporre un apposito file in formato excel (*.xlsx), per agevolarne la compilazione è possibile utilizzare il Persone appositamente preconfezionato.

 * [[attachment:Persone.xlsx]]

Il Template è strutturato nel seguente modo:

 1. primo foglio denominato "Template_SV": deve essere compilato con i dati delle persone
 1. secondo foglio denominato "Tracciato_SV": è il tracciato delle persone in cui sono esplicitati i valori predefiniti e i vincoli sui dati
 1. terzo foglio denominato "COMUNI": è l'elenco dei comuni da cui leggere i valori delle colonne "comIstat" e "proSigla"



== Specifiche servizi WEB ==
Il seguente documento riporta le specifiche dei servizi WEB esposti per il popolamento e la gestione delle anagrafiche delle strutture di detenzione ed ambulatori veterinari gestiti nell’'''Anagrafe Ministeriale Centralizzata delle Strutture PET'''.

Dal seguente link è possibile scaricare il file con le specifiche dei servizi, nel quale vengono illustrate le entità gestite e le informazioni necessarie per consentire una corretta alimentazione del sistema relativamente alle strutture di detenzione ed ambulatori veterinari:

 * [[attachment:WS_Banca_Dati_Nazionale_Pet_v1.3.pdf]]

Gestione delle anagrafiche delle Autorizzazioni detenzione Scorta e veterinari responsabili

Sezione relativa alle funzionalità per il caricamento massivo delle anagrafiche delle Autorizzazioni detenzione Scorta e Veterinari responsabili o loro delegati.

Anagrafiche Scorte Allevamento, Strutture e Veterinario

Import da CSV

Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente le anagrafiche delle scorte in allevamento e le scorte proprie del veterinario attraverso un apposito file in formato CSV.

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

aziendaCodice

personeIdFiscale

strutturaCodice

scortaNumAutorizzazione

scortaDtInizio

aslCodice

scortaFlDerogaFornitura

ALLEVAMENTO

041TE001

RVRCRL62S29D969F

TESTCSVALLEV

01-07-2016

N

PROPRIA

SCCLDA40R10H811F

TESTCSVPROP

02-07-2016

P106

N

STRUTTURA

RI-AG000060

TESTCSVSTRUTTURA

02-07-2016

N

Descrizione dei campi previsti dal file in formato CSV (in grassetto i campi obbligatori):

  • tiposcortaCodice: tipologia della scorta;

    • ALLEVAMENTO: Scorta dell'allevamento;

    • STRUTTURA: Scorta della Struttura non Zootecnica (Ospedale Veterinario, Canile, Ambulatorio Veterinario, ecc...);

    • PROPRIA: Scorta del veterinario.

  • aziendaCodice: (obbligatorio se tiposcortaCodice = ALLEVAMENTO) codice dell’azienda zootecnica per la quale si sta autorizzando la scorta;

  • strtutturaCodice: (obbligatorio se tiposcortaCodice = STRUTTURA) codice della struttura non zootecnica per la quale si sta autorizzando la scorta;

  • personeIdFiscale: dipende dal valore di tiposcortaCodice, se:

    • ALLEVAMENTO (CF/PIVA) del proprietario dell'azienda zootecnica

    • PROPRIA: Codice Fiscale del Veterinario.

  • scortaNumAutorizzazione: numero di autorizzazione alla detenzione della scorta;

  • scortaDtInizio: data di autorizzazione della scorta;

  • scortaFlDerogaFornitura: indica se per l'allevamento, struttura o veterinario non si vuole la privacy sulle ricette;
    • N: per la visualizzazione e accesso alla ricetta, da parte del farmacista od operatore OSM, sono sempre richiesti codice e PIN; valorizzazione di default se tale campo/colonna non fosse valorizzata;

    • S: per la visualizzazione e accesso alla ricetta non è richiesto il PIN, è possibile cercare e accedere alla ricetta tramite il codice azienda o id fiscale del proprietario degli animali.

  • aslCodice: asl di appartenza del Veterinario. E' necessario solo nel caso di tiposcortaCodice "PROPRIA", per identificare a quale ASL associare la scorta. Per gli allevamenti non è necessario, in quanto è un'informazione già presente in BDN.

Attenzione: nel file CSV non devono essere modificati i nomi (intestazioni) delle colonne. Fare attenzione alle minuscole e alle maiuscole. L'ordine delle colonne può essere variato.

Esempio file CSV scorta propria (Veterinario)

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

personeIdFiscale

scortaNumAutorizzazione

scortaDtInizio

aslCodice

scortaFlDerogaFornitura

PROPRIA

SCCLDA40R10H811F

AP45

02-07-2016

P106

N

PROPRIA

SCNMRC69E22E058V

TE12

02-07-2016

P110

N

Esempio file CSV scorta Allevamento Zootecnico

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

aziendaCodice

personeIdFiscale

scortaNumAutorizzazione

scortaDtInizio

scortaFlDerogaFornitura

ALLEVAMENTO

041TE001

RVRCRL62S29D969F

XY67

01-07-2016

N

ALLEVAMENTO

011TE001

00060330677

XX123

01-05-2013

N

Esempio file CSV scorta Struttura non zootecnica

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

strutturaCodice

scortaNumAutorizzazione

scortaDtInizio

scortaFlDerogaFornitura

STRUTTURA

RI-AG000060

AG56

02-07-2016

N

STRUTTURA

RI-AG000160

AG34

01-08-2015

N

Template file CSV

E' possibile scaricare il file in formato CSV di esempio (da poter utilizzare come template vuoto da compilare) direttamente dall'applicativo, nel seguente modo:

  1. accedere alla sezione "Autorizzazione Detenzione Scorta" e cliccare su uno dei pulsanti posti in fondo alla pagina:
  2. cliccare sul pulsante "Download template CSV".

Step 1

anagrafica_scorta_1.jpg

Step 2

anagrafica_scorta_2.jpg

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

Gestione tramite servizio REST/JSON

Di seguito le specifiche per la cooperazione applicativa attraverso i servizi WEB REST/JSON messi a disposizione.

Ricerca

Il sistema offre un metodo REST per la ricerca:

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

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.

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") | Numerico;

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

Si seguito la descrizione dei campi dell'entita scortaronly gestiti in input/output:

  • lovscortaId: id del record | Numerico;

  • scortaNumAutorizzazione: numero di autorizzazione alla scorta | Stringa;

  • scortaDtInizio: data di inizio validità della scorta | Stringa (formato dd-mm-aaaa);

  • scortaDtFine: data di fine validità della scorta | Stringa (formato dd-mm-aaaa);

  • aziendaCodice: codice dell'azienda zootecnica a cui fa riferimento la scorta | Stringa;

  • propIdFiscale: ID fiscale (Codice o P.IVA) del proprietario dell'azienda zootecnica a cui fa riferimento la scorta | Stringa;

  • tiposcortaCodice: tipologia della scorta | Stringa; possibili valori:

    • STRUTTURA: Scorta della Struttura non Zootecnica;

    • SCORFITT: Registro delle rimanenze della struttura zootecnica senza scorta;

    • PROPRIA: Scorta del veterinario;

    • DETENTORE: Scorta del detentore;

    • ALLEVAMENTO: Scorta per allevamento.

  • scortaFlDerogaFornitura: indica se per l'allevamento, struttura o veterinario non si vuole la privacy sulle ricette | Stringa:

    • N: per la visualizzazione e accesso alla ricetta, da parte del farmacista od operatore OSM, sono sempre richiesti codice e PIN;

    • S: per la visualizzazione e accesso alla ricetta non è richiesto il PIN, è possibile cercare e accedere alla ricetta tramite il codice azienda o id fiscale del proprietario degli animali.

  • strutturaCodice: codice della Struttura non Zootecnica a cui fa riferimento la scorta | Stringa;

  • vetPersIdFiscale: ID fiscale (Codice o P.IVA) del veterinario a cui fa riferimento la scorta | Stringa;

  • aslCodice: Codice dell'ASL a cui fa riferimento la scorta (obbligatorio se tiposcortaCodice = PROPRIA) | Stringa;

Esempio di interrogazione

   1     page:1
   2     rows:50
   3     aziendaCodice:001TE001

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 scortaronly;

Import

Il Sistema Informativo della Farmacosorveglianza permette di gestire le anagrafiche delle scorte in allevamento e le scorte proprie del veterinario attraverso un apposito servizio REST/JSON.

I campi previsti dal tracciato JSON sono gli stessi del file in formato CSV.

Viene di seguito riportato l'esempio tracciato dati JSON da utilizzare:

   1 [
   2         {
   3                 "tiposcortaCodice": "ALLEVAMENTO",
   4                 "aziendaCodice": "039TE508",
   5                 "personeIdFiscale": "DNGVNI59B48B515B",
   6                 "scortaNumAutorizzazione": "TESTJSON",
   7                 "scortaDtInizio": "24-01-2017",
   8                 "aslCodice": "",
   9                 "scortaFlDerogaFornitura": "N"
  10         },
  11         {
  12                 "tiposcortaCodice": "PROPRIA",
  13                 "aziendaCodice": "",
  14                 "personeIdFiscale": "TSCTNN57A17E058B",
  15                 "scortaNumAutorizzazione": "TESTJSON1",
  16                 "scortaDtInizio": "24-01-2017",
  17                 "scortaFlDerogaFornitura": "N",
  18                 "aslCodice": "F118"
  19         },
  20         {
  21                 "tiposcortaCodice": "STRUTTURA",
  22                 "strutturaCodice": "RS-AG000052",
  23                 "scortaNumAutorizzazione": "STRUTACNINA",
  24                 "scortaDtInizio": "24-01-2017",
  25                 "scortaFlDerogaFornitura": "N",
  26                 "aslCodice": ""
  27         }
  28 ]

URL del servizio REST

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

  • <url_server>/autorizzazione/detenzione/ws/insert/ (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: application/json
   2     Accept: application/json

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

Tracciato di output

   1 {
   2         "result": {
   3                 "1": {
   4                         "errors": [{
   5                                 "field": "",
   6                                 "message": "...",
   7                                 "errorCode": "common.unknownerror"
   8                         }],
   9                         "errorType": null,
  10                         "elencoCodici": null,
  11                         "errore": <Descrizione dell'errore>
  12                 }
  13         },
  14         "data": null
  15 }

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.

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.

Update

Viene di seguito riportato l'esempio tracciato dati JSON da utilizzare:

Esempio aggiornamento scorta struttura:

   1 {
   2     "lovscortaId": 1932228,
   3     "scortaNumAutorizzazione": "012/2018-1",
   4     "scortaDtInizio": "15-04-2018",
   5     "scortaDtFine": null,
   6     "tiposcortaCodice": "STRUTTURA",
   7     "scortaFlDerogaFornitura": "N",
   8     "strutturaCodice": "SV-200CA000790"
   9 }

Esempio aggiornamento scorta allevamento:

   1 {
   2     "lovscortaId": 6432,
   3     "scortaNumAutorizzazione": "PROVA-UP",
   4     "scortaDtInizio": "15-04-2018",
   5     "scortaDtFine": null,
   6     "tiposcortaCodice": "ALLEVAMENTO",
   7     "scortaFlDerogaFornitura": "N",
   8     "propIdFiscale": "00548890409",
   9     "aziendaCodice": "039TE001"
  10 }

Esempio aggiornamento scorta propria del veterinario:

   1 {
   2     "lovscortaId": 6451,
   3     "scortaNumAutorizzazione": "PROVA-UP",
   4     "scortaDtInizio": "15-04-2018",
   5     "scortaDtFine": null,
   6     "tiposcortaCodice": "PROPRIA",
   7     "scortaFlDerogaFornitura": "N",
   8     "vetPersIdFiscale": "RTAFNC75A20C342V",
   9     "aslCodice": "P106"
  10 }

N.B. Il campo scortaDtFine è da popolare quando si vuole chiudere la scorta.

URL del servizio REST

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

  • <url_server>/autorizzazione/detenzione/ws/update/ (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: application/json
   2     Accept: application/json

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

Tracciato di output

   1 {
   2         "result": {
   3                 "errors": [{
   4                                 "field": "",
   5                                 "message": "....",
   6                                 "errorCode": "common.unknownerror"
   7                 }],
   8                 "errorType": null,
   9                 "elencoCodici": null,
  10                 "errore": <Descrizione dell'errore>
  11         },
  12         "data": null
  13 }

Import Veterinari responsabili della scorta

Il Sistema Informativo della Farmacosorveglianza permette di caricare massivamente i veterinari responsabili delle scorte.

Caricamento file CSV

Il sistema permette il caricamento massivo attraverso un apposito file in formato CSV. Il file CSV con l'elenco dei veterinari responsabili della scorta deve essere caricato dopo aver caricato l'elenco delle autorizzazioni alla detenzione della scorta in allevamento (import da CSV della anagrafiche Scorte Allevamento e Veterinario).

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

vetPersIdFiscale

aziendaCodice

propIdFiscale

strutturaCodice

flResponsabile

STRUTTURA

SCCLDA40R10H811F

OV-PE000001

S

ALLEVAMENTO

RTAFNC75A20C342V

041TE001

RVRCRL62S29D969F

S

ALLEVAMENTO

BRSGNN52L24C469G

041TE122

SCCLDA40R10H811F

Descrizione dei campi previsti dal file in formato CSV (in grassetto i campi obbligatori):

  • tiposcortaCodice: tipologia della scorta, valori ammessi:

    • STRUTTURA: scorta della struttura non zootecnica

    • ALLEVAMENTO: scorta dell'allevamento zootecnico

  • aziendaCodice: codice dell'azienda zootecnica con scorta autorizzata (obbligatorio se tiposcortaCodice = ALLEVAMENTO );

  • propIdFiscale: ID Fiscale del proprietario dell'azienda zootecnica (obbligatorio se tiposcortaCodice = ALLEVAMENTO );

  • strutturaCodice: codice della struttura con scorta autorizzata (obbligatorio se tiposcortaCodice = STRUTTURA);

  • vetPersIdFiscale: Codice Fiscale del Veterinario;

  • flResponsabile: flag che indica se il veterinario è il responsabile o il delegato, se non specificato il valore di default è N, possibili valori:

    • S: responsabile;

    • N: delegato

Attenzione: nel file CSV non devono essere modificati i nomi (intestazioni) delle colonne. Fare attenzione alle minuscole e alle maiuscole. L'ordine delle colonne può essere variato.

Esempio file CSV scorta Allevamento Zootecnico

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

vetPersIdFiscale

aziendaCodice

propIdFiscale

flResponsabile

ALLEVAMENTO

RTAFNC75A20C342V

041TE001

RVRCRL62S29D969F

S

ALLEVAMENTO

BRSGNN52L24C469G

041TE122

SCCLDA40R10H811F

S

Nell'esempio precedente in particolare si ha che sulla scorta dell'allevamento 041TE001 ci sono due veterinari:

  1. il veterinario con CF RTAFNC75A20C342V è il veterinario responsabile della scorta;
  2. il veterinario con CF SCNMRC69E22E058V è un veterinario delegato ad operare sulla scorta dal responsabile della scorta stessa.

Esempio file CSV scorta Struttura non zootecnica

Il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

vetPersIdFiscale

strutturaCodice

flResponsabile

STRUTTURA

SCCLDA40R10H811F

OV-PE000001

S

STRUTTURA

SCNMRC69E22E058V

OV-PE000022

S

Esempio file CSV scorta Allevamento Zootecnico con veterinari delegati dal veterinario responsabile

Nel caso in cui su una scorta autorizzata (Allevamento o Struttura) ci siano dei veterinari delegati dal responsabile della scorta, il file in formato CSV da importare deve avere la seguente struttura:

tiposcortaCodice

vetPersIdFiscale

aziendaCodice

propIdFiscale

flResponsabile

ALLEVAMENTO

RTAFNC75A20C342V

041TE001

RVRCRL62S29D969F

S

ALLEVAMENTO

SCNMRC69E22E058V

041TE001

RVRCRL62S29D969F

N

ALLEVAMENTO

BRSGNN52L24C469G

041TE122

SCCLDA40R10H811F

S

ALLEVAMENTO

SCNMRC69E22E058V

041TE122

SCCLDA40R10H811F

N

Nell'esempio precedente in particolare si ha che sulla scorte degli allevamenti 041TE001 e 041TE122 ci sono due veterinari:

  1. il veterinario con CF RTAFNC75A20C342V è il veterinario responsabile della scorta dell'allevamento 041TE001;
  2. il veterinario con CF SCNMRC69E22E058V è un veterinario delegato ad operare sulla scorta dell'allevamento 041TE001 dal responsabile della scorta.
  3. il veterinario con CF BRSGNN52L24C469G è il veterinario responsabile della scorta dell'allevamento 041TE122 ;
  4. il veterinario con CF SCNMRC69E22E058V è un veterinario delegato ad operare sulla scorta dell'allevamento 041TE122 dal responsabile della scorta.

Quindi il veterinario con CF SCNMRC69E22E058V è delegato ad operare sulle scorte (emissione ricette per carico della scorta, e gestione degli scarichi) degli allevamenti 041TE122 e 041TE001.

Template file CSV

E' possibile scaricare il file in formato CSV di esempio (da poter utilizzare come template vuoto da compilare) direttamente dall'applicativo, nel seguente modo:

  1. accedere alla sezione "Autorizzazione Detenzione Scorta", effettuare una ricerca senza specificare filtri e cliccare su uno delle righe risultato della ricerca;
  2. cliccare sul pulsante "Associa Veterinario alla scorta";
  3. cliccare sul pulsante "Download template CSV".

Step 1

anagrafica_scorta_veterinari_1.jpg

Step 2

anagrafica_scorta_veterinari_2.jpg

Step 3

anagrafica_scorta_veterinari_3.jpg

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

Gestione tramite servizio web REST/JSON

Ricerca

Il sistema offre un metodo REST per la ricerca:

  • <url_server>/crudcommon/scortavet/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.

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") | Numerico;

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

Si seguito la descrizione dei campi dell'entita scortavet gestiti in input/output:

  • scovetId: id del record | Numerico;

  • vetPersIdFiscale: ID fiscale (Codice o P.IVA) del veterinario responsabile o delegato alla gestione della scorta | Stringa;

  • flResponsabile: flag che indica se il veterinario è o meno il responsabile della scorta; possibili valori | Stringa:

    • S: responsabile;

    • N: delegato.

  • aziendaCodice: codice dell'azienda zootecnica a cui fa riferimento la relazione | Stringa;

  • propIdFiscale: ID fiscale (Codice o P.IVA) del proprietario dell'azienda zootecnica a cui fa riferimento la relazione | Stringa;

  • tiposcortaCodice: tipologia della scorta; possibili valori | Stringa:

    • STRUTTURA: Scorta della Struttura non Zootecnica;

    • SCORFITT: Registro delle rimanenze della struttura zootecnica senza scorta;

    • PROPRIA: Scorta del veterinario;

    • DETENTORE: Scorta del detentore;

    • ALLEVAMENTO: Scorta per allevamento.

  • strutturaCodice: codice della Struttura non Zootecnica a cui fa riferimento la relazione | Stringa;

Esempio di interrogazione

   1     page:1
   2     rows:50
   3     aziendaCodice:001TE001

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 scortavet;

Import

Il Sistema Informativo della Farmacosorveglianza permette di gestire i veterinari responsabili delle scorte in allevamento attraverso un apposito servizio REST/JSON. I veterinari responsabili della scorta possono essere inseriti solo dopo aver caricato l'autorizzazione alla detenzione della scorta in allevamento.

I campi previsti dal tracciato JSON sono gli stessi del file in formato CSV.

Viene di seguito riportato l'esempio tracciato dati JSON da utilizzare:

   1 [{
   2         "tiposcortaCodice": "STRUTTURA",
   3         "strutturaCodice": "OV-PE000001",
   4         "vetPersIdFiscale": "SCCLDA40R10H811F",
   5         "flResponsabile": "S"
   6 }, {
   7         "tiposcortaCodice": "ALLEVAMENTO",
   8         "aziendaCodice": "041TE040",
   9         "propIdFiscale": "RVRCRL62S29D969F",
  10         "vetPersIdFiscale": "RTAFNC75A20C342V",
  11         "flResponsabile": "S"
  12 }, {
  13         "tiposcortaCodice": "ALLEVAMENTO",
  14         "aziendaCodice": "041TE122",
  15         "propIdFiscale": "SCCLDA40R10H811F",
  16         "vetPersIdFiscale": "BRSGNN52L24C469G"
  17 }]

URL del servizio REST

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

  • <url_server>/crudcommon/scortavet/ws/insert/ (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: application/json
   2     Accept: application/json

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

Tracciato di output

   1 {
   2         "result": {
   3                         "1": {
   4                                 "errors": [{
   5                                         "field": "",
   6                                         "message": "codice",
   7                                         "errorCode": "common.unknownerror"
   8                                 }],
   9                                 "errorType": null,
  10                                 "elencoCodici": null,
  11                                 "errore": <Descrizione dell'errore>
  12                         }
  13         },
  14         "data": null
  15 }

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.

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.

Update

Viene di seguito riportato l'esempio tracciato dati JSON da utilizzare:

   1 {
   2     "scovetId": 178444,
   3     "flResponsabile": "N",
   4     "vetPersIdFiscale": "PSSMRA45E44D542K",
   5     "aziendaCodice": "217BG034",
   6     "tiposcortaCodice": "SCORFITT",
   7     "propIdFiscale": "MRCVCN71H10B157J"
   8 }

URL del servizio REST

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

  • <url_server>/crudcommon/scortavet/ws/update/ (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: application/json
   2     Accept: application/json

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

Tracciato di output

   1 {
   2         "result": {
   3                 "errors": [{
   4                         "field": "",
   5                         "message": "...",
   6                         "errorCode": "common.unknownerror"
   7                 }],
   8                 "errorType": null,
   9                 "elencoCodici": null,
  10                 "errore": <Descrizione dell'errore>
  11         },
  12         "data": null
  13 }

Gestione delle anagrafiche degli ambulatori veterinari e strutture di detenzione dei PET

Sezione relativa alle funzionalità per l'importazione e il caricamento massivo delle anagrafiche degli ambulatori veterinari e strutture di detenzione dei PET.

Tracciati importazione dati

Il seguente documento riporta i tracciati necessari al popolamento delle anagrafiche delle strutture di detenzione ed ambulatori veterinari gestiti nell’Anagrafe Ministeriale Centralizzata delle Strutture PET.

Dal seguente link è possibile scaricare il file con la descrizione dei tracciati, nel quale vengono illustrate le entità gestite e le informazioni necessarie per consentire una corretta alimentazione del sistema relativamente alle strutture di detenzione ed ambulatori veterinari:

Per il caricamento massivo delle strutture veterinarie bisogna predisporre un apposito file in formato excel (*.xlsx), per agevolarne la compilazione è possibile utilizzare il Template_SV appositamente preconfezionato.

Il Template è strutturato nel seguente modo:

  1. primo foglio denominato "Template_SV": deve essere compilato con i dati delle strutture veterinarie
  2. secondo foglio denominato "Tracciato_SV": è il tracciato delle strutture veterinarie in cui sono esplicitati i valori predefiniti e i vincoli sui dati
  3. terzo foglio denominato "COMUNI": è l'elenco dei comuni da cui leggere i valori delle colonne "comIstat" e "proSigla"

Per il caricamento massivo delle strutture di detenzione bisogna predisporre un apposito file in formato excel (*.xlsx), per agevolarne la compilazione è possibile utilizzare il Template_SD appositamente preconfezionato.

Il Template è strutturato nel seguente modo:

  1. primo foglio denominato "Template_SD": deve essere compilato con i dati delle strutture di detenzione
  2. secondo foglio denominato "Tracciato_SD": è il tracciato delle strutture di detenzione in cui sono esplicitati i valori predefiniti e i vincoli sui dati
  3. terzo foglio denominato "COMUNI" : è l'elenco dei comuni da cui leggere i valori delle colonne "prpComIstat" , "perProSigla", "comIstat" e "proSigla"

Per il caricamento massivo delle persone bisogna predisporre un apposito file in formato excel (*.xlsx), per agevolarne la compilazione è possibile utilizzare il Persone appositamente preconfezionato.

Il Template è strutturato nel seguente modo:

  1. primo foglio denominato "Template_SV": deve essere compilato con i dati delle persone
  2. secondo foglio denominato "Tracciato_SV": è il tracciato delle persone in cui sono esplicitati i valori predefiniti e i vincoli sui dati
  3. terzo foglio denominato "COMUNI": è l'elenco dei comuni da cui leggere i valori delle colonne "comIstat" e "proSigla"

Specifiche servizi WEB

Il seguente documento riporta le specifiche dei servizi WEB esposti per il popolamento e la gestione delle anagrafiche delle strutture di detenzione ed ambulatori veterinari gestiti nell’Anagrafe Ministeriale Centralizzata delle Strutture PET.

Dal seguente link è possibile scaricare il file con le specifiche dei servizi, nel quale vengono illustrate le entità gestite e le informazioni necessarie per consentire una corretta alimentazione del sistema relativamente alle strutture di detenzione ed ambulatori veterinari:

farmaco/help/gestione_anagrafiche (last edited 2018-12-10 07:19:45 by m.ferella)