Skip to content

Foire Aux Questions

Cette page liste les problèmes déjà rencontrés et leurs solutions lors de l'installation et l'utilisation de Shanoir Uploader au sein d'un environnement hospitalier.

Erreurs au démarrage

Echec au démarrage après la fenêtre de login, erreur d'authentification

Dans le fichier su.log il y a un log "handshake_failure" durant le login.

Solution: Shanoir Uploader peut avoir été démarré sous Windows en utilisant le .jar. Il faut lancer l'application en utilisant le fichier start-shup-windows-java.bat.

ShUp ne démarre pas (v5.2)

Dans le fichier su.log:

2019-11-06 15:43:11 INFO [org.shanoir.uploader.action.init.InitialStartupState] [88] DicomServer properties successfully initialized. 2019-11-06 15:43:11 INFO [org.shanoir.uploader.action.init.InitialStartupState] [90] ShanoirServer properties successfully initialized. 2019-11-06 15:43:11 INFO [org.shanoir.uploader.action.init.InitialStartupState] [92] Auto Import properties successfully initialized. 2019-11-06 15:43:11 INFO [org.shanoir.uploader.action.init.InitialStartupState] [94] Shanoir Uploader properties successfully initialized. 2019-11-06 15:43:11 INFO [org.shanoir.uploader.action.init.InitialStartupState] [96] Shanoir Uploader proxy properties successfully initialized. 2019-11-06 15:43:11 INFO [org.shanoir.uploader.action.init.InitialStartupState] [103] Language properties successfully initialized.

Solution: ShUp a peut être été démarré avec WebStart, qui n'est plus supporté.

Erreur durant le démarrage de DcmRcv: "Cannot assign requested address: JVM_Bind"

Dans le cas ou cette erreur apparait, Shanoir Uploader s'éteint durant le démarrage. Cette erreur peut survenir si l'adresse IP de la machine où Shanoir Uploader est installé a changé. Pour résoudre ce problème, suivez les étapes ci dessous (dans le cas d'une machine Windows):

  • Ouvrir une invite de commande (cmd)
  • Entrer la commande ipconfig
  • Analyser Ethernet (normalement) IPv4 address et copier l'address IP
  • Ouvrir {user_home}/.su/dicom_server.properties
  • Copier la nouvelle address IP comme valeur pour local.dicom.server.host et enregistre
  • Appeler l'administrateur du PACS pour changer l'address IP pour l'AET (definé dans local.dicom.server.aet.calling)
  • Therefore the local PACS admin will have to be contacted to do this change. If the IP address is changed only dicom_server.properties, but not in the PACS C-FIND will work, but not C-MOVE: the following error will appear in the logs:
2019-01-16 15:15:22 ERROR [org.dcm4che2.tool.dcmqr.DcmQR] [1249] At least one object couldn't be transfered
java.io.IOException: At least one object couldn't be transfered
at org.dcm4che2.tool.dcmqr.DcmQR.query(DcmQR.java:1228)
at org.shanoir.uploader.dicom.query.DcmQR.query(DcmQR.java:26)
at org.shanoir.uploader.dicom.DicomServerClient.getFilesFromServer(DicomServerClient.java:181)
at org.shanoir.uploader.dicom.DicomServerClient.retrieveDicomFiles(DicomServerClient.java:109)
at org.shanoir.uploader.action.ProcessDicomActionListener$3.run(ProcessDicomActionListener.java:243)
at java.lang.Thread.run(Unknown Source)

2019-01-16 15:15:22 ERROR [org.shanoir.uploader.dicom.DicomServerClient] [184] 2019-01-16 15:15:22 ERROR [org.shanoir.uploader.dicom.DicomServerClient] [135] Download of 0 DICOM files for serie 1.3.12.2.1107.5.2.36.40296.2017111013000447788260208.0.0.0 has failed.

ShanoirUploader affiche le formulaire de configuration du proxy, mais l'url test est accessible (test du Proxy...OK)

Dans le fichier su.log :

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Dans certains réseaux hospitaliers, les flux HTTP sont redirigés vers un serveur pour analyse. cela signifie que la chaîne de vérification des certificats passent par le CA de l'hopital et java doit pouvoir vérifier le certificat racine dans le TrustedRoot store Windows.

Solution: Ouvrir le fichier de démarrage de votre environnement : start-shup-windows-java.bat ou start-shup-linux-mac-java.sh et ajouter la propriété suivante: javaw -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT

Dans start-shup-windows-java.bat ou start-shup-linux-mac-java.sh:

@ECHO OFF IF EXIST "%JAVA_HOME%\bin\javaw.exe" ( ECHO Starting ShanoirUploader application "%JAVA_HOME%\bin\javaw.exe" -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT -jar shanoir-uploader-7.0.0-jar-with-dependencies.jar -Xms128m -Xmx512m -Xnoclassgc org.shanoir.uploader.ShanoirUploader ) ELSE ( java.exe -version >nul 2>&1 IF %ERRORLEVEL% NEQ 0 ( echo ERROR : Java is not properly installed or configured on your machine pause ) ELSE ( javaw -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT -jar shanoir-uploader-7.0.0-jar-with-dependencies.jar -Xms128m -Xmx512m -Xnoclassgc org.shanoir.uploader.ShanoirUploader ) )

Cela indique à Java d'utiliser le trust store local, où le certificat racine de l'hopital peut être trouvé.

Double-clic sur le fichier .bat sous Windows et rien ne se passe

Cette erreur est apparu sur une ancienne version de Shanoir Uploader (sous java 11) La fenêtre de ligne de commande Windows apparait rapidement mais se ferme tout de suite et rien n'apparait dans le fichier su.log.W

Solution: Installer Java 11 et parametrer le JAVA_HOME pour qu'il pointe vers Java 11. Une ancienne version de Java installée peut entraîner des comportements étranges comme celui ci.

Erreurs lors de la requête au PACS

La requête au PACS ne fonctionne pas, su.log: "not able to sort tree"

ERROR [org.shanoir.uploader.action.FindDicomActionListener] [392] Not able to sort tree java.lang.NullPointerException at org.shanoir.uploader.action.FindDicomActionListener.sortTree(FindDicomActionListener.java:332) at org.shanoir.uploader.action.FindDicomActionListener.actionPerformed(FindDicomActionListener.java:222)

Solution: Certains PACS (par exemple Telemis), ne supportent pas les requêtes au niveau du patient, une requête ciblant l'étude (= l'examen) devra être utilisée. Cela signifie que seules les requêtes avec une "Date de l'étude" et/ou une "Description de l'étude" aboutiront.

Problèmes avec le PACS Telemis

Le PACS Telemis ne supporte pas (voir ses statuts de conformité DICOM) les requêtes au niveau du patient. Les requêtes doivent donc se faire au niveau de l'étude (= examen). Dans Shanoir Uploader, cela signifie que dans le formulaire de requête au PACS seuls les champs "Description de l'étude" et "Date de l'étude" doivent être utilisés. L'utilisateur Shanoir Uploader devra regarder la valeur de ces champs dans le PACS afin de les requêter plus précisément dans Shanoir Uploader.

Solution: Utiliser "Date de l'étude" et "Description de l'étude" uniquement pour requêter le PACS.

Erreurs lors de l'import

Un nouveau téléchargement n'apparait pas dans l'onglet d'import après avoir cliqué sur "Téléchargement (PACS) ou copier (CD/DVD)"

ERROR [org.shanoir.dicom.importer.UploadJobManager] [82] javax.xml.bind.UnmarshalException
avec l'exception suivante :
[org.xml.sax.SAXParseException; systemId: file:/XXXX/.su_v7.0.1/workFolder/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2023_xx_xx_xx_xx_xx_xxx/upload-job.xml; lineNumber: 1; columnNumber: 1; Fin pr\E9matur\E9e du fichier.] 2023-07-25 14:48:00 ERROR [org.shanoir.uploader.action.init.StartupStateContext] [44] java.lang.NullPointerException at org.shanoir.uploader.nominativeData.CurrentNominativeDataController.processFolder(CurrentNominativeDataController.java:211) at org.shanoir.uploader.nominativeData.CurrentNominativeDataController.processWorkFolder(CurrentNominativeDataController.java:192) at org.shanoir.uploader.nominativeData.CurrentNominativeDataController.(CurrentNominativeDataController.java:50) at org.shanoir.uploader.action.init.ReadyState.load(ReadyState.java:45) at org.shanoir.uploader.action.init.StartupStateContext.nextState(StartupStateContext.java:42) at org.shanoir.uploader.action.init.PacsConfigurationState.load(PacsConfigurationState.java:36)

Solution: Fermer et relancer Shanoir Uploader. Aller dans le repertoire de travail de l'application ({repertoire.personnel}/.su_v8.0.0/workFolder) et supprimer le repertoire avec l'erreur suivante (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_2023_xx_xx_xx_xx_xx_xxx). Une autre solution peut être de supprimer le contenu du /workFolder pour libérer plus d'espace.

La requête au PACS fonctionne, mais rien ne se passe après avoir cliqué sur "Téléchargement (PACS) ou copier (CD/DVD)"

Dans le fichier su.log: "0 DICOM files could be downloaded; error with download from PACS"

Solution: Contactez l'administrateur du PACS afin d'activer le c-move pour l'AET shanoir-uploader.

Aucun import dans le tableau récapitulatif de l'onglet "2) Importer dans le serveur"

Ce problème est survenu sur une ancienne version de ShUp. Après avoir selectionné l'examen d'intérêt et cliqué sur "Téléchargement (PACS) ou copier (CD/DVD)", le tableau récapitulatif de l'onglet 2) reste vide. Dans le fichier su.log il n'y a aucun message d'erreur et les logs s'arrêtent après plusieurs logs de télechargement en succès.

Dans la console on voit les logs suivants :

Exception in thread "Thread-20" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.shanoir.uploader.action.DownloadOrCopyRunnable.run(DownloadOrCopyRunnable.java:82) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 2 more

Solution: Vérifier la version de java installée (java --version). Si il s'agit de java 11, installer java 8, puis 9 et 10 et ajouter le flag "--add-modules java.xml.bind" juste après la commande java.exe dans start-shup-windows-java.bat. Cette erreur n'apparait qu'avec une ancienne version de Shanoir Uploader et un JDK plus récent. La dernière version disponible sur GitHub inclus le JAXB et ne reproduit donc pas cette erreur.

Clic sur Import/Importer et rien ne se passe

Dans le fichier su.log :

2021-09-08 11:35:37 ERROR [org.shanoir.uploader.action.ImportDialogOpenerNG] [75]
java.lang.NullPointerException
at org.shanoir.uploader.action.ImportDialogOpenerNG.getStudiesWithStudyCards(ImportDialogOpenerNG.java:119)
at org.shanoir.uploader.action.ImportDialogOpenerNG.openImportDialog(ImportDialogOpenerNG.java:59)
at org.shanoir.uploader.nominativeData.CurrentNominativeDataController$1.mouseClicked(CurrentNominativeDataController.java:112)

Solution: Créer une study card dans l'interface web Shanoir afin de faire fonctionner l'import.

Le téléchargement du PACS reste bloqué à 0%

S'assurer que le poste est connecté au réseau filaire du CHU. Dans certaines configurations réseau l'adresse IP obtenue lors d'une connection au réseau Wifi n'est pas reconnue par le PACS.

L'Upload dans Shanoir Uploader ne fonctionne plus, une exception apparait au démarrage, mais les identifiants sont corrects (v5.2)

Dans le fichier su.log:

-- Error: URL ShanoirUploaderService is not correct (exception)

Solution: shanoir.server.upload.service.qname.local.part=UploadFileService (supprimer le "2" à la fin)

Autres erreurs

Accès aux fichiers de configuration de l'application

Le repertoire applicatif /home/.su_{version} contient les fichiers de configuration suivant :

basic.properties

Ce fichier contient la configuration du profil utilisateur, principalement l'instance Shanoir sur laquelle l'utilisateur possède un compte et souhaite pousser ses images.

dicom_server.properties

Ce fichier contient la configuration du PACS local vers lequel Shanoir Uploader effectuera ses requêtes DICOM.

endpoint.properties

Ce fichier contient la liste des API exposées par le serveur Shanoir. Il ne doit pas à être modifié par l'utilisateur.

language.properties

Ce fichier contient le language selectionné par l'utilisateur pour l'affichage de Shanoir Uploader. Ce paramètre peut être modifié au sein de l'application via le menu Configuration --> Configuration de la langue

profiles.properties

Ce fichier contient la liste des instances Shanoir. Il ne doit pas à être modifié par l'utilisateur.

proxy.properties

Ce fichier contient l'url de l'instance Shanoir appelée lors du lancement de l'application afin de tester votre proxy. Si celle ci n'est pas joignable, un écran vous proposera d'entrer vos paramètres de proxy qui seront sauvegardés dans ce fichier proxy.properties.

Erreur "PKIX path building failed" avec Java 17

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Solution : Importer le certificat du serveur dans le fichier cacerts local (fichier de stockage des certificats situé dans {java.home}\lib\security). Le téléchargement du certificat (fichier .pem) du site https://shanoir.irisa.fr est possible en utilisant le navigateur Firefox. Une fois le certificat importé, Shanoir Uploader peut se connecter au serveur. C:\ProgramFiles\Java\jdk-17\bin>keytool -importcert -file c:\temp\shanoir-irisa-fr.pem

Acces à la totalité des logs

Remplacer javaw.exe avec java.exe dans .bat/.sh file, quand vous lancez ShUp. La totalité des logs apparaitra dans la console.

La configuration du PACS est correcte, mais il y a une erreur dans les logs "calling-aet not recognized"

Cette erreur survient avec certains PACS GE Healthcare, sur lesquels le ping du DICOM serveur ne fonctionne pas, même quand tous les paramètres de configuration sont corrects. Dans ce cas, essayer de requêter le PACS et cela fonctionne, seul le ping du PACS échoue.

Solution: Editer le fichier "dicom_server.properties" manuellement et requêter directement sans essayer de ping le PACS.

Shanoir Uploader installé sur une unique VM, utilisable par plusieurs personnes en parallèle

Retour d'un site d'installation : 2 utilisateurs différents sur leurs sessions respectives sur une VM, avec leurs propres AET et ports (qui appellent le même PACS) excepté pour le port web (8080 dans les 2 cas) requêtent et récupèrent différents examens de différents patients. Dans ce cas, l'envoi vers le serveur Shanoir au même moment pour ces deux process s'effectue parfaitement.

Sur MacOSX ou Linux: "error=13, Permission denied"

Cette erreur est survenue sur une ancienne version de Shanoir Uploader

2019-01-18 09:12:04 ERROR [org.shanoir.util.runtime.exec.ShanoirExec] [699] exec : java.io.IOException: Cannot run program "/Users/xxx/.su/pseudonymus/MacOSX/PseudonymusShanoir": error=13, Permission denied Caused by: java.io.IOException: error=13, Permission denied at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:248) at java.lang.ProcessImpl.start(ProcessImpl.java:134) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ... 44 more

Solution: /{user.home}/.su_v6.0.4/pseudonymus/MacOSX/chmod 755 PseudonymusShanoir

Configuration du PACS avec une adresse IP dynamique de la machine

La configuration dans un environnement avec des adresses IP dynamiques reste à définir en fonction de votre PACS et/ou de la configuration réseau. L'utilisation des "host names" peut aider. Lorsque l'AET dans le PACS est configuré par exemple pour wifi-laptop-nantes.chu-xxx.fr et que le même nom d'hôte est présent dans le fichier dicom_server properties cela peut fonctionner.

Configuration d'une adresse IP réservée par DHCP

Si vous disposez d'un serveur DHCP il est envisageable de configurer une adresse IP fixe associée à l'adresse MAC de l'ordinateur portable sur lequel Shanoir Uploader va être installé.