cvdlab-projects / web3d

Web 3D Object Definition
2 stars 3 forks source link

Caricamento immagini DICOM in locale #3

Closed AlessioDeAngelis closed 12 years ago

AlessioDeAngelis commented 12 years ago

Ciao, ho installato in locale il progetto, però non riesco a fargli caricare le immagini DICOM. In particolare, non sapendo bene cosa modificare in dicom_png.php, ho inserito nella cartella dicom del progetto il file dicom2.exe e un file prova.dcm (sulla guida c'è scritto che è la posizione di default). Inoltre in main.js ho assegnato ad url_dicom il path della cartella dove si trova dicom2 C:\wamp\www\grafica\dicom\

Ho provato anche su un sistema linux ma continua a non funzionarmi, anche dopo aver provato varie combinazioni di url...dove posso aver sbagliato? Grazie Alessio

massimocandela commented 12 years ago

1) Assicurati di aver installato correttamente apache+php. 2) Assicurati che quando chiami il servizio di conversione stai passando per apache. 3) Assicurati che in php.ini non vi siano limitazioni sulle funzioni eseguibili. 4) Assicurati che dicom2 o dicom2.exe abbiano i permessi necessari per essere eseguiti dall'utente di apache. 5) Assicurati che il browser che stai usando non generi eccezioni per la sicurezza, in particolare se usi Chrome potresti aggiungere --allow-file-access-from-files alla destinazione del collegamento (magari di un collegamento apposito che non usi per navigare abitualmente).

Inoltre ti informo che è disponibile un servizio ftp accessibile da tutti gli studenti di grafica dove puoi caricare i file dicom utilizzando così il servizio di conversione già disponibile online senza dover installare nulla (http://web3d.dia.uniroma3.it/), nel caso non avessi le credenziali puoi mandare una email a uno fra: me, Marino, Spini, Prof. Paoluzzi

massimocandela commented 12 years ago

Leggendo meglio questa tua affermazione: "Inoltre in main.js ho assegnato ad url_dicom il path della cartella dove si trova dicom2 C:\wamp\www\grafica\dicom\"

mi fa capire che stai sbagliando almeno nel punto 2 dell'elenco sopra, se non passi per apache il file php non verrà in nessun modo interpretato.

AlessioDeAngelis commented 12 years ago

Grazie per i consigli! In locale uso xampp, apache e php dovrebbero funzionare bene...in ogni caso dopo aver sostituito l'url precedente con http://localhost/grafica/dicom almeno la cartella di cache viene creata, anche se ancora non ho i i file png generati dalla conversione...proverò a controllare anche il resto che mi hai detto

massimocandela commented 12 years ago

In questo caso lo script php parte ma non riesce a far partire dicom2.

Puoi controllare le seguenti cose: 1) Controlla che i permessi siano adeguati. 2) Controlla che hai messo correttamente i parametri necessari nell'url. 3) Controlla che tutti i path nello script php puntino alle locazioni corrette: crea una cartella cache vuota e una cartella sources dove metti i file dicom (nella guida all'installazione c'è un errore che correggo subito, nella versione attuale il path dei file dcm è specificato nello script ed è sources/).

Se il file dcm è valido e stai puntando ad un frame esistente, non dovresti avere ulteriori problemi.

AlessioDeAngelis commented 12 years ago

ti aggiorno sui progressi...sto usando Firefox per evitare quei problemi di sicurezza che mi dicevi e provandolo su windows ho sostituito in dicom_png.php la riga ./dicom2 -p 1 --to=cache/$dir/ --frame=$frame --rename=cur_fr sources/$file con dicom2 -p 1 --to=cache/$dir/ --frame=$frame --rename=cur_fr sources/$file e ora converte i file presenti in sources, tuttavia non mostra il png ottenuto sulla canvas. Altre immagini png, provate a caricare tramite loadGeneralConf, sono visualizzate correttamente, anche se poi non posso applicarci le funzioni di disegno

massimocandela commented 12 years ago

Su firefox dovrebbe funzionare tutto regolarmente, ho appena ricontrollato! (puoi anche provare qui: http://web3d.dia.uniroma3.it/?dicom=example2.dcm&frames=20&start=5)

Se non funziona potrebbe essere una limitazione simile a Chrome (in qualsiasi caso leggi la console)

Ovviamente l'url in url_dicom deve essere corretto: deve puntare alla posizione di dicom_png.php escluso il nome dello script stesso. Se ad esempio lo script è raggiungibile da http://localhost/dicom/dicom_png.php, in url_dicom devi mettere http://localhost/dicom/.

Se ti colleghi a http://localhost/dicom/dicom_png.php?file=example.dcm&frame=2 (metti il tuo url) dovresti vedere il frame 2 del dicom scelto, se questo funziona allora hai inserito un url_dicom sbagliato.

AlessioDeAngelis commented 12 years ago

Olè! Alla fine ce l'ho fatta :) Grazie per l'aiuto! Il problema proveniva dalla funzione eregi (invocata in dicom_png.php) che nell'ultima versione di php che ho installato in locale è diventata deprecata e mi sollevava un'eccezione che mi impediva di visualizzare l'immagine, ma che senza la console errori non avrei mai scoperto! E' bastato togliere quel controllo ed è girato tutto :)

massimocandela commented 12 years ago

Ottimo!

Ho aggiornato la versione di dicom_png.php utilizzando preg_match al posto di ereg in modo che anche le ultimissime versioni di php non generino warning.

Nelle installazioni in produzione generalmente non vengono generati warning in output (error_reporting in php.ini) per questo non ce ne siamo accorti.

Mi fa piacere che stai usando il nostro tool! Buon lavoro!