Arzamed
Ultimo aggiornamento:
arzamed.mdPanoramica
- Arzamed è un software gestionale per studi medici e dentistici che esporta i propri dati in file CSV.
- La migrazione importa pazienti, note cliniche, aziende, prestazioni del listino, piani di cura con voci, fatture attive e passive, pagamenti, appuntamenti e (opzionalmente) documenti/immagini dei pazienti.
- Il numero di anni di dati da importare deve essere indicato obbligatoriamente tramite l'opzione
--converter-option=years=<valore>: i file CSV sono suddivisi per anno (es.fatture_1.csv,fatture_2.csv, ecc.) e il converter legge i file da 1 fino al valore indicato. - L'import dei documenti e immagini dei pazienti è opzionale e richiede il flag
--converter-option=img-directory=<percorso>. Senza questo flag i file non vengono importati e viene mostrato un avviso. Attivarlo aumenta sensibilmente tempi di migrazione e dimensioni del backup.
Entità importate
- Pazienti
- Note cliniche
- Aziende (fornitori/intestatari di fatture passive)
- Prestazioni (listino)
- Piani di cura
- Voci di piano di cura
- Fatture (attive e passive)
- Righe di fattura
- Pagamenti (transazioni)
- Appuntamenti
- Operatori
- Documenti e immagini dei pazienti (opzionale)
- Fonti di provenienza pazienti
- Postazioni (studi/ambulatori)
- Conti contabili (fittizi)
- Metodi di pagamento
Campi importati
Pazienti
| Field | Notes |
|---|---|
| Nome | Importato direttamente dal CSV. |
| Cognome | Importato direttamente dal CSV. |
Estratta dai campi Contatti, Contatti 2 o Contatti 3: viene usato il primo campo che inizia con il prefisso e-mail: (case-insensitive). | |
| Genere | Normalizzato: "maschio" → m, qualsiasi altro valore → f. |
| Codice fiscale | Importato direttamente dal CSV. |
| Indirizzo | Ricavato separando l'indirizzo dal CAP tramite split sulla stringa ", <CAP>". |
| Comune | Importato direttamente dal CSV. |
| Provincia | Convertita dal nome esteso al codice provincia tramite tabella di mappatura interna. Se la provincia non è presente nella mappa, il campo rimane vuoto. |
| CAP | Troncato a 5 caratteri se supera tale lunghezza. |
| Data di nascita | Importata e convertita in data; se assente il campo rimane vuoto. |
| Luogo di nascita | Importato direttamente dal CSV. |
| Telefoni | I campi Contatti, Contatti 2 e Contatti 3 vengono trattati come numeri di telefono (salvo quelli riconosciuti come email). |
| Fonte di provenienza | Ricavata dal campo "Segnalato da": vengono rimossi numeri e spazi e il risultato viene convertito in maiuscolo. Se il valore risultante è vuoto, nessuna fonte viene registrata. |
Note cliniche
| Field | Notes |
|---|---|
| Paziente | Collegato tramite ID paziente. |
| Contenuto | Il testo viene prefissato con il tipo di dato (es. "Tipo: Anamnesi") e formattato in HTML con interruzioni di riga. Le note con testo vuoto vengono scartate. |
| Data | Data della nota, nel formato dd/mm/YYYY HH:mm. |
| Data di creazione | Uguale alla data della nota. |
Aziende
| Field | Notes |
|---|---|
| Ragione sociale | Importata direttamente dal CSV. |
| Codice fiscale | Importato direttamente dal CSV. |
| Partita IVA | Obbligatoria: le aziende prive di partita IVA vengono scartate. |
| Nazione | Convertita in minuscolo. |
| Note | Concatenazione dei campi Contatti, Contatti 2 e Contatti 3 separati da spazio. |
| Indirizzo | Importato direttamente dal CSV. |
| Comune | Importato direttamente dal CSV. |
| Provincia | Importata direttamente (non viene convertita al codice provincia come per i pazienti). |
| CAP | Importato direttamente dal CSV. |
Prestazioni (listino)
| Field | Notes |
|---|---|
| Codice | Importato dal campo codice prestazione. |
| Nome | Importato dal nome prestazione. |
| Descrizione | Importata dal campo "Attività associata". |
| Durata | In minuti, importata direttamente. |
| Prezzo | Associato a un listino prezzi fittizio denominato "Listino prezzi importato da Arzamed". |
Piani di cura
| Field | Notes |
|---|---|
| Paziente | Collegato tramite mappatura nome/cognome paziente. I pazienti con nome duplicato e codice fiscale diverso non possono essere collegati ai piani di cura (viene emesso un avviso). |
| Operatore | Collegato tramite il nome dell'operatore presente nel CSV. |
| Nome | "Prestazione importata da Arzamed <id>" se collegato a fattura, altrimenti "Prestazione importata da Arzamed". |
| Stato | accepted se la prestazione è collegata a una fattura; estimate se numero e anno fattura sono assenti. |
| Branca | Sempre general. |
| Data accettazione | Data della prestazione. |
| Data creazione | Data della prestazione. |
Voci di piano di cura
| Field | Notes |
|---|---|
| Prestazione | Collegata tramite codice e nome; se la prestazione non esiste nel listino importato, viene creata al volo con solo codice e nome (senza durata o descrizione). |
| Operatore | Collegato tramite il nome dell'operatore. |
| Prezzo | Importato dall'importo della prestazione. |
| Sconto assoluto | Importato solo se il valore assoluto dello sconto è maggiore di zero. |
| Eseguita | Sempre impostata come eseguita (done = true). |
| Data esecuzione | Data della prestazione. |
| Data creazione | Data della prestazione. |
Fatture
| Field | Notes |
|---|---|
| Direzione | outgoing (attiva) se intestata a paziente; incoming (passiva) se intestata ad azienda. |
| Piano di cura | Collegato se esiste un piano di cura con id corrispondente; altrimenti viene creato un piano di cura fittizio "Piano per fatture importate da Arzamed" con stato closed. |
| Tipo | Sempre full. |
| Imponibile | Importato direttamente. |
| Sconto | Valore assoluto dello sconto. |
| Marca da bollo | Importata direttamente. |
| Numero fattura | Composto come <numero>/<anno>. |
| Data emissione | Importata e convertita. |
| Dati intestatario | Nome, cognome, indirizzo, comune e codice fiscale del cliente (ricavati dal CSV fattura). |
| Collegamento azienda | Se la partita IVA è presente tra le aziende importate, la fattura viene collegata all'azienda. |
| Impossibile importare | Se il cliente non è trovato né tra i pazienti (per nome o codice fiscale) né tra le aziende (per partita IVA), la fattura viene scartata con avviso. Se vengono trovati più pazienti con lo stesso codice fiscale, la fattura viene scartata. |
Righe di fattura
| Field | Notes |
|---|---|
| Fattura collegata | Collegata tramite numero e anno fattura. |
| Voce di piano di cura | Collegata se la riga proviene da un file prestazioni. |
| Descrizione | Nome della prestazione; se assente, "Prestazione importata da Arzamed". Per le fatture senza piano di cura preesistente, viene usato il campo "Servizi" del CSV fattura. |
| Imponibile | Importato direttamente. |
| Aliquota IVA | Calcolata a partire dall'importo IVA e dall'importo totale tramite funzione interna. |
Pagamenti (transazioni)
| Field | Notes |
|---|---|
| Fattura collegata | Collegata tramite l'ID fattura. |
| Tipo | incoming per fatture attive (pazienti), outgoing per fatture passive (aziende). |
| Metodo di pagamento | Mappato da colonne specifiche del CSV fattura: Contanti, POS, Bonifico, Carta di credito, Bancomat, Assegno, CUP Solidale, Bonifico bancario. |
| Conto | cash per contanti, bank per tutti gli altri metodi. |
| Importo | Importato direttamente dalla colonna del metodo di pagamento. I pagamenti con importo ≤ 1 vengono ignorati. |
| Data | Uguale alla data di emissione della fattura. |
Appuntamenti
| Field | Notes |
|---|---|
| Paziente | Collegato tramite mappatura nome/cognome. Se il paziente non è trovato, il campo rimane vuoto (l'appuntamento viene comunque importato). |
| Stato | cancelled se lo stato attività è "Disdetta", altrimenti confirmed. |
| Postazione (studio) | Collegata tramite il nome dell'ambulatorio; se non esiste, viene creata al volo. |
| Operatore | Collegato tramite nome; se non esiste, viene creato al volo con nome e cognome ricavati per split. |
| Nome | Concatenazione dei campi Prestazioni, Prestazioni 2 e Prestazioni 3 separati da virgola. Se tutti vuoti, "Appuntamento importato da Arzamed". |
| Data | Se presente la data attività, viene usata quella; altrimenti viene usata la data di inserimento. Gli appuntamenti con data inserimento di meno di 10 caratteri e data attività assente vengono scartati. |
| Durata | In minuti; se assente, viene impostata a 15. |
| Data creazione | Data di inserimento dell'attività. |
| Descrizione attività | Se presente e il paziente è collegato, il contenuto viene salvato come nota separata sul paziente anziché nel campo appuntamento. |
Operatori
| Field | Notes |
|---|---|
| Nome | Ricavato per split dal nome completo presente nel CSV appuntamenti. |
| Cognome | Ricavato per split dal nome completo presente nel CSV appuntamenti. |
Documenti e immagini dei pazienti
| Field | Notes |
|---|---|
| Paziente | Collegato tramite corrispondenza cartella cognome_nome (case-insensitive). |
| Tipo | Determinato automaticamente dal MIME type del file. |
| Nome | Nome del file (o <cartella>-<file> per file in sottocartelle). |
| Estensione | Rilevata automaticamente. |
| MIME type | Rilevato automaticamente. |
| File | Percorso fisico del file nella directory indicata. |
| Data creazione | Impostata alla data e ora di esecuzione della migrazione (non viene letta dal file system). |
| Pazienti con cartella ambigua | Se per un paziente esistono più cartelle candidate (stesso nome/cognome), i documenti non vengono importati e viene emesso un avviso. |
Limitazioni note
- Pazienti con nome duplicato e codice fiscale differente: quando esistono più pazienti con lo stesso nome e cognome ma codice fiscale diverso, il collegamento ai piani di cura e agli appuntamenti viene perso; viene emesso un avviso per ogni caso.
- Collegamento pazienti tramite nome: la mappatura tra prestazioni/appuntamenti e pazienti avviene tramite nome e cognome (non tramite ID univoco); eventuali variazioni ortografiche o omonimie causano la perdita del collegamento.
- Fatture non importabili: se il cliente di una fattura non corrisponde a nessun paziente (né per nome né per codice fiscale) e a nessuna azienda (per partita IVA), la fattura viene scartata con avviso.
- Fatture con più pazienti trovati: se la ricerca per codice fiscale restituisce più di un paziente, la fattura viene scartata.
- Aziende senza partita IVA: le aziende prive di partita IVA vengono scartate silenziosamente.
- File CSV per anno: i file
prestazioni_N.csv,fatture_N.csveattivita_N.csvvengono cercati da 1 fino al numero di anni indicato; se un file non esiste, l'elaborazione per quell'anno si interrompe. - File aziende opzionale: il file
aziende.csvpotrebbe non essere presente nell'export (non tutti gli studi registrano le fatture passive); in tal caso l'import delle aziende viene saltato silenziosamente. - Provincia pazienti: la conversione da nome provincia a codice avviene tramite una tabella interna; province non presenti nella mappa vengono lasciate vuote.
- Provincia aziende: per le aziende la provincia viene importata così com'è, senza conversione al codice.
- Genere: qualsiasi valore diverso da "maschio" viene mappato a
f; non è prevista una terza opzione. - Pagamenti con importo ≤ 1: vengono ignorati (soglia di filtro hard-coded).
- Postazioni fisse: vengono create 5 postazioni fittizie (Studio 1–5); le postazioni reali trovate negli appuntamenti vengono aggiunte dinamicamente, ma potrebbero risultare duplicate rispetto a quelle fittizie.
- Conti contabili e metodi di pagamento fittizi: i conti (Cassa, Banca) e i metodi di pagamento vengono creati staticamente; non provengono dall'export Arzamed.
- Descrizione attività come nota: il testo descrittivo degli appuntamenti viene salvato come nota sul paziente, non come campo dell'appuntamento.
- Data creazione documenti: la data di creazione di documenti e immagini viene impostata all'ora di esecuzione della migrazione, non alla data reale del file.
- Documenti con cartella ambigua: se esistono più cartelle con lo stesso nome paziente, i documenti non vengono importati e viene emesso un avviso.