2 авг. 2016 г.

Установка DCM4CHEE для Windows и Debian

Windows

Берем инсталляцию MYSQL отсюда - http://dev.mysql.com/downloads/windows/
Берем инсталляцию JDK отсюда - 
http://www.oracle.com/technetwork/java/javase/downloads/index.html
или (для JDK7) 
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
сам dcm4chee берем отсюда - 
https://sourceforge.net/projects/dcm4che/files/dcm4chee/
Jboss для него берем отсюда - 
https://sourceforge.net/projects/jboss/files/JBoss/JBoss-4.2.3.GA/
Ставим MySQL.
Ставим JDK. Нужно ставить 1.7, так как с 8 не работает jmx-console



Настройка JAVA_HOME

To set the JAVA_HOME variable: Find out where Java is installed. If you didn't change the path during installation, it will be something like this: 
C:\Program Files\Java\jdk1.8.0_65 
In Windows 7 right click My Computer and select Properties > Advanced. 
In Windows 8 go to Control Panel > System > Advanced System Settings. 
Click the Environment Variables button. 
Under System Variables, click New. 
In the Variable Name field, enter: JAVA_HOME if you installed the JDK (Java Development Kit) or JRE_HOME if you installed the JRE (Java Runtime Environment) 
 In the Variable Value field, enter your JDK or JRE installation path. If the path contains spaces, use the shortened path name, for example C:\Progra~1\Java\jdk1.8.0_65)

У нас, наверное, C:\Progra~1\Java\jdk1.7.0_79

Установка Jboss и dcm4chee

Создаем папку, где у нас будет сервер (d:\srv)
Распаковываем туда в отдельную папку инсталляцию dcm4chee.
Распаковываем туда в отдельную папку инсталляцию JBoss-4.2.3.GA.
Из каталога bin запускаем скрипт, который копирует JBOSS к себе с параметром меcтонахождения jboss (D:\srv\dcm4chee-2.18.3-mysql\install_jboss.bat D:\srv\jboss-4.2.3.GA

Создание БД

Создаем пользователя в БД, создаем БД, даем пользователю права на БД, заходим от его имени и создаем таблицы скриптом из инсталляции.

> mysql -uroot -p create user 'pacs'@'localhost' IDENTIFIED BY 'pacs'; 
create database pacsdb; grant all on pacsdb.* to 'pacs'@'localhost' identified by 'pacs'; quit; 
> mysql -upacs -ppacs pacsdb < create.mysql create.mysql берем из папки D:\srv\dcm4chee-2.18.3-mysql\sql

Пароли и имена БД лежат в D:\srv\dcm4chee-2.18.3-mysql\server\default\deploy\pacs-mysql-ds.xml

Настройки поcле запуска


Заходим браузером на 
http://localhost:8080/jmx-console/ admin/admin. Ну и на http://localhost:8080/dcm4chee-web3/ - основной веб-интерфейс.
Для десктопной виндвс можно (и нужно) поставить админку БД - 
http://portableapps.com/apps/development/database_browser_portable или http://dev.mysql.com/downloads/workbench/
На jmx-console заходим в FileSystemMgt и вызываем addRWFileSystem() чтобы указать, где будут лежать картинки. Если этого не сделать картинки лягут в /server/default/archive.
Обязательно для 64-разрядной Windows! Берем файл /server/default/conf/xmdesc/dcm4chee-wado-xmbean.xml, ищем в нем ImageWriterClass, заменяем имя класса из CLib именем, которое есть в Sun SDK. То, что ниже с минусом - убрать, что с плюсом - добавить. Иначе работать не будет а в boot.log будут сыпаться ошибки про WADO.


<name>ImageWriterClass</name> <type>java.lang.String</type> 
<descriptors> 
       - <value value="com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriter" /> 
       + <value value="com.sun.image.codec.jpeg.JPEGImageEncoder" /> 
</descriptors> 
</attribute>

Желательно сразу после установки зайти в "service=AE" и поменять AETITLE если сервер не единственный. Потом менять будет сложнее, т.к. сервис смены будет менять теги в БД.

Установка Weasis


Для установки Weasis на сервер читаем 
http://www.dcm4che.org/confluence/display/WEA/Installing+Weasis+in+DCM4CHEE
А берем его с 
https://sourceforge.net/projects/dcm4che/files/Weasis/ Закачиваем 4 файла - dcm4chee-web-weasis.jar, weasis-i18n.war, weasis-pacs-connector.war, weasis.war. Два из одного каталога, два из другого. Кладем их в server/default/deploy/, в сервисе WebConfig ставим:

WebviewerNames = weasis
WebviewerBaseUrl = weasis:/weasis-pacs-connector/viewer 

Затем, если меняли AETITLE, обязательно нужно в server/conf положить файл, скачанный с https://github.com/nroduit/weasis-pacs-connector/raw/58221aeed3d2abc1929c0753ebeaa53c67fcc46a/src/main/resources/weasis-connector-default.properties. Называем его weasis-pacs-connector.properties. Внимание! Так как на https://sourceforge.net/projects/dcm4che/files/Weasis/ лежит pacs-connector версии 5, то обязательно качаем именно этот файл. Два других (от 6 версии) вообще не подходят - формат другой. Затем в нем меняем AETitle и ip-адрес сервера.

Установка Oviyam

Берем последнюю версию Oviyam с https://sourceforge.net/projects/dcm4che/files/Oviyam.
Закидываем в ./server/default/deploy
Открываем 
http://server:8080/oviyam2 Нажимаем шестеренку. Server->Add. Вводим AETitle, Hostname (ip), Port (11112). Нажимаем дискету. Все.

Сервис

Для того, чтобы все запускалось как сервис в Windows, используем D:\srv\dcm4chee-2.18.3-mysql\bin>install_service.bat для 64бит венды меняем JavaService.exe на скачанный с http://forge.ow2.org/projects/javaservice/. Грузить строго версию 2.0.7.64 - более поздние не работают.
Еще, если все работает, то нужно отключить логи на консоль - в файле dcm4chee/server/default/conf/jboss-log4j.xml нужно удалить CONSOLE в этом теге -

<root> 
      <appender-ref ref="CONSOLE"/> 
      <appender-ref ref="FILE"/> 
</root>

Linux Debian

Установка Java от Oracle

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install oracle-java7-installer

Альтернатива для Debian 10

1.Качаем Java c https://jdk.java.net/java-se-ri/7
2. Распаковываем в /usr/lib/jvm/java-se-7u75-ri
3. Добавляем альтернативу 
    update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-se-7u75-ri/bin/java 2
    update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-se-7u75-ri/bin/javaс 2
4. Устанавливаем альтернативу
    update-alternatives --set java
    update-alternatives --set javaс
5. Пишем в ~./.bashrc
    export _JAVA_OPTIONS="-Xms1024m -Xmx1024m"
6. Перелогиниваемся и проверяем:
    java -version

Установка MySQL

echo y|apt-get install mysql-server 
echo y|apt-get install phpmyadmin

Загрузка DCM4CHEE через lynx

https://sourceforge.net/projects/dcm4che/files/dcm4chee/2.18.1/dcm4chee-2.18.1-mysql.zip/download
https://sourceforge.net/projects/dcm4che/files/dcm4chee/2.18.3/dcm4chee-2.18.3-mysql.zip/download

Загрузка JBOSS через lynx

https://sourceforge.net/projects/jboss/files/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA-jdk6.zip/download
  • Распаковываем архивы
unzip dcm4chee-2.18.3-mysql.zip 
unzip dcm4chee-2.18.1-mysql.zip 
unzip jboss-4.2.3.GA-jdk6.zip

  • Копируем с заменой содержимое из 2.18.3 в 2.18.1
cp -r -f -v /srv/dcm4chee-2.18.3-mysql /srv/dcm4chee-2.18.1-mysql 
rm -r /srv/dcm4chee-2.18.3-mysql 
mv /srv/dcm4chee-2.18.1-mysql /srv/dcm4chee-2.18.3-mysql

Создание БД

Если нужно перенести каталоги БД из /var/lib/mysql где они лежат по умолчанию в, например, /opt/db, то заходим в /etc/mysql/my.conf и правим параметр datadir на требуемый путь. Делаем

service mysql stop 
mv /var/lib/mysql /opt/db 
service mysql start
  • Создаем пользователя в БД, создаем БД, даем пользователю права на БД, заходим от его имени и создаем таблицы скриптом из инсталляции.
mysql -uroot -p 
create user 'pacs'@'localhost' IDENTIFIED BY 'pacs'; 
create database pacsdb; 
grant all on pacsdb.* to 'pacs'@'localhost' identified by 'pacs'; 
quit 
mysql -upacs -ppacs pacsdb < /srv/dcm4chee-2.18.3-mysql/sql/create.mysql


create.mysql берем из папки dcm4chee-2.18.3-mysql/sql

Установка JBOSS

/srv/dcm4chee-2.18.3-mysql/bin/install_jboss.sh /srv/jboss-4.2.3.GA

Для того, чтобы не было ошибок в WADO можно как и в Windows поменять ссылку на класс, а можно скачать библиотеку, которой не хватает -
Для 32-разрядного Линукса libclib_jiio.so уже лежит в $DCM4CHEE/bin/native
Для 32-разрядной Windows:http://www.oracle.com/technetwork/java/install-jai-imageio-1-0-01-139659.html
Для 64-разрядного Линукса:
lynx http://data.opengeo.org/suite/jai/jai-1_1_3-lib-linux-amd64-jdk.bin
lynx http://data.opengeo.org/suite/jai/jai_imageio-1_1-lib-linux-amd64-jdk.bin
lynx http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64-jdk.bin


Чтобы второй файл установился его нужно подрихтовать -
sed s/+215/-n+215/ jai_imageio-1_1-lib-linux-amd64-jdk.bin > jai_imageio-1_1-lib-linux-amd64-jdk-fixed.bin
Потом делаем их исполнимыми и скидываем в папку с JDK:
chmod +x jai*
cp jai* $JDK
И запускаем по очереди на выполнение:
$JDK/jai_imageio-1_1-lib-linux-amd64-jdk-fixed.bin
$JDK/jai-1_1_3-lib-linux-amd64-jdk.bin
Они по очереди спрашивают, готовы ли мы продать душу ораклу (естественно, соглашаемся) и устанавливаются. Ищем в каталогах с JRE файл libclib_jiio.so и складываем его в каталог $DCM4CHEE/bin/native на место старого, 32-разрядного.
$JDK - это примерно /usr/lib/jvm/java-7-oracle
а файл лежит в /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libclib_jiio.so
mv /srv/dcm4chee-2.18.3-mysql/bin/native/libclib_jiio.so /srv/dcm4chee-2.18.3-mysql/bin/native/libclib_jiio.so.32bit
cp /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libclib_jiio.so /srv/dcm4chee-2.18.3-mysql/bin/native/

PostgreSQL

Install the Database Software and create the DCM4CHEE Database
Set permissions on Postgres database. The following setting will trust only connections from the localhost, which is reasonable for a development machine, but may need to be changed for production.
Edit the pg_hba.conf file in order to set the right permissions.
$ sudo vim /etc/postgresql/9.3/main/pg_hba.conf
Set a password for the postgres user
$export PGUSER=postgres
$createdb pacsdb
$psql pacsdb -f dcm4chee-psql-2.18.0/sql/create.psql
This will create all the database structure. Now we have to setup the database access from dcm4chee. In your dcm4chee installation, use a text editor to edit server/default/deploy/pacs-postgres-ds.xml and set the database password.

Автоматический запуск сервера

Для того, чтобы сервер запускался автоматически после запуска системы в /etc/rc.local добавляем:
/srv/dcm4chee-2.18.3-mysql/bin/run.sh &
Или скрипт (версия для debian) кладем в /etc/init.d/dcm4chee и выполняем - update-rc.d dcm4chee defaults
#!/bin/sh
### BEGIN INIT INFO
# Provides:          dcm4chee
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: dcm4chee
# Description:       Start the DCM4CHEE DICOM Image Manager
### END INIT INFO


#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/opt/dcm4chee"}

#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"root"}

#make sure java is in your path
JAVAPTH=${JAVAPTH:-"/usr/lib/jvm/java-7-oracle"}

#configuration to use, usually one of 'minimal', 'default', 'all'
JBOSS_CONF=${JBOSS_CONF:-"default"}

# JMX console credentials
JBOSS_ADMIN_USER=${JBOSS_ADMIN_USER:-"admin"}
JBOSS_ADMIN_PASS=${JBOSS_ADMIN_PASS:-"admin"}
ADMIN_USER_OPT="-u $JBOSS_ADMIN_USER"
ADMIN_PASS_OPT="-p $JBOSS_ADMIN_PASS"

#define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}

#define the script to use to start jboss
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF"}

if [ "$JBOSS_USER" = "RUNASIS" ]; then
  SUBIT=""
else
  SUBIT="su - $JBOSS_USER -c "
fi

if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
  # ensure the file exists
  touch $JBOSS_CONSOLE
  if [ ! -z "$SUBIT" ]; then
    chown $JBOSS_USER $JBOSS_CONSOLE
  fi 
fi

if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
  echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE"
  echo "WARNING: ignoring it and using /dev/null"
  JBOSS_CONSOLE="/dev/null"
fi

#define what will be done with the console log
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}

JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown $ADMIN_USER_OPT $ADMIN_PASS_OPT"}

if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
  export PATH=$PATH:$JAVAPTH
fi

if [ ! -d "$JBOSS_HOME" ]; then
  echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
  exit 1
fi

echo JBOSS_CMD_START = $JBOSS_CMD_START

case "$1" in
start)
    cd $JBOSS_HOME/bin
    if [ -z "$SUBIT" ]; then
        eval $JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &
    else
        $SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &" 
    fi
    ;;
stop)
    if [ -z "$SUBIT" ]; then
        $JBOSS_CMD_STOP
    else
        $SUBIT "$JBOSS_CMD_STOP"
    fi 
    ;;
restart)
    $0 stop
    $0 start
    ;;
*)
    echo "usage: $0 (start|stop|restart|help)"
esac

Настройки в интерфейсе

Чтобы пользователь мог копировать исследования с одного сервера на другой, нужно чтобы у него была роль с установленной галочкой "AET"´. По умолчанию не стоит ни у кого.