Caricamento massivo dalla riga di comando
Il comando ygg carica una cartella di immagini in un progetto. È pensato per dataset troppo grandi da selezionare in un browser: migliaia di file, molti pazienti, caricamenti che durano ore. Esegue lo stesso codice di de-identificazione e cifratura del browser, sulla tua macchina. Il server riceve ciò che invia un caricamento dal browser: file cifrati e metadati cifrati, mai i tuoi file né gli ID reali dei tuoi pazienti.
Legge i formati accettati dalle modalità del progetto (DICOM, NIfTI, NRRD, immagini, video, vetrini, mesh e segnali; vedi Formati supportati) e non converte nulla.
Ottenere il comando
Sezione intitolata “Ottenere il comando”ygg è un singolo file senza dipendenze. Finché i rilasci non lo includono, compilalo dai sorgenti (con Deno 2.9 e pnpm):
pnpm installcd apps/clideno task compile # writes dist/yggAccedere
Sezione intitolata “Accedere”ygg login --server https://ygg.example.org --email you@example.orgRicevi un’email con un codice di accesso; digitalo. La prima volta, il comando ha bisogno dell’approvazione di un dispositivo su cui le tue chiavi sono sbloccate, come un nuovo browser:
yggstampa un link e un codice.- Sul tuo dispositivo attendibile, apri il link (oppure apri Sicurezza e digita il codice), poi Continua.
- Entrambi mostrano un codice di 6 cifre. Se corrispondono, scegli I codici corrispondono sul dispositivo attendibile.
Da quel momento questa macchina è uno dei tuoi dispositivi attendibili: conserva la propria chiave del dispositivo in ~/.config/yggdrasil/credentials.json, leggibile solo da te (YGG_CONFIG_DIR imposta un’altra cartella). La pagina Sicurezza la elenca insieme agli altri tuoi dispositivi. Gli accessi successivi richiedono solo il codice via email.
ygg logout termina la sessione; ygg logout --forget elimina anche la chiave del dispositivo di questa macchina. Rimuovi anche il suo slot nella pagina Sicurezza.
Caricare una cartella
Sezione intitolata “Caricare una cartella”ygg projects # your projects; "upload" where you may uploadygg upload ./dataset --project my-study --mapping mapping.csv- Pazienti. I file DICOM sono raggruppati per Patient ID, studio e serie. Gli altri file non indicano alcun paziente: la cartella che contiene un file rappresenta il suo paziente e il suo studio (
dataset/BraTS_001/BraTS_001_t1.nii.gz). - Gli pseudonimi provengono dal tuo file di corrispondenze, lo stesso CSV che la pagina di caricamento legge e salva (
real_id,pseudonym). Resta sulla tua macchina; non viene mai inviato. Un paziente assente dal file di corrispondenze interrompe il caricamento. Con--assign <prefix>, a questi pazienti vengono assegnati nuovi pseudonimi (<prefix>0001,<prefix>0002, …), che vengono scritti nel file di corrispondenze prima di inviare qualsiasi cosa. (La pagina di caricamento invece precompila gli pseudonimi di questi pazienti dallo schema del progetto;yggnon lo legge.) - Centro. Carichi nel tuo centro; gli amministratori ne indicano uno con
--site <name>quando il progetto ne ha più di uno. - Punti temporali. Ogni nuovo studio riceve il punto temporale successivo del paziente nell’ordine del manifest.
- Serie segnalate. Alcune serie possono mostrare testo identificativo nei pixel (per esempio Burned In Annotation di DICOM, ecografie, foto). Il caricamento si ferma e le elenca. Controllale, poi carica con
--include-flagged, oppure escludile con--skip-flagged. Per mascherare i pixel serve la pagina di caricamento. --dry-runanalizza la cartella e stampa il piano; non viene inviato nulla.
Il comando non compila i moduli clinici: i nuovi pazienti ricevono un modulo vuoto, che completi nella web app.
Caricamenti interrotti
Sezione intitolata “Caricamenti interrotti”Interrompi un caricamento con Ctrl+C, o perdi la connessione: esegui di nuovo lo stesso comando e riprende da dove si era fermato. I file già conservati non vengono inviati di nuovo; gli altri vengono de-identificati e cifrati di nuovo. Ciò che il caricamento ha scritto viene conservato, cifrato con le tue chiavi, in ~/.config/yggdrasil/uploads/, anche dopo la fine: eseguire di nuovo il comando sulla stessa cartella invia solo i file che non ha conservato, come quelli aggiunti nel frattempo, e scrive di nuovo ciò che qualcuno ha eliminato dal progetto.
--restart dimentica ciò che i caricamenti precedenti della cartella hanno conservato e ricomincia da capo. Le istanze DICOM che le serie del paziente contengono già non vengono comunque inviate di nuovo: sono riconosciute dai loro UID de-identificati, anche quando la cartella è stata caricata da un altro computer o dall’app web. Gli altri formati non hanno nulla con cui confrontarli, quindi senza lo stato conservato creano nuove serie.
Che cosa verifica
Sezione intitolata “Che cosa verifica”- Il registro firmato del progetto viene ripercorso e verificato come fa un browser: il primo contatto lo fissa, e le esecuzioni successive rifiutano un registro che non contiene più ciò che questa macchina ha verificato.
- Il manifest deve corrispondere al registro firmato del progetto.
- I caricamenti vanno solo ai progetti in cui puoi caricare, con la chiave corrente del progetto.
Che cosa il comando non fa ancora: eseguire processori al caricamento (avviali dalla pagina Processori) e creare le miniature delle immagini (le serie DICOM hanno le loro). Il sorgente del comando si trova in apps/cli.