Restart a Computer or Server using powershell
restart-computer -ComputerName <computer_name> -Force
restart-computer -ComputerName <computer_name> -Force
allow-hotplug ens192 iface ens192 inet static address 192.168.0.33 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.168.0.2 192.168.0.3 8.8.8.8 dns-search pizzolongo.com
minidlnad -R
/etc/init.d/minidlna restart
This is a quick guide to install ConQuest DICOM server on Debian 8 (Jessie) using MySQL as ConQuest database.
BEFORE PROCEEDING
I assume that you’re logged in as “root” and the image files will be stored into the directory “/data” and you’ve already installed your debian server with a standard configuration.
I’m used with “nano” to edit files, if you’re not familiar with “nano”, please use another editor (eg: “vim”).
If you’re updating your ConQuest version, backup these files before proceeding:
/etc/conquest-dicom-server/acrnema.map
/etc/conquest-dicom-server/dicom.ini
Don’t restore the above files to your new version of ConQuest. Use them just to check the information you need to change at the new files. Overwriting files from a newer version of ConQuest with files from an older version may cause ConQuest malfunctioning.
INSTALLING
First of all, we want to install the latest version of each needed package, so we call:
# apt-get update
And then install the recommended packages:
# apt-get install apache2 mysql-server openssh-server conquest-mysql
Optionally i install too:
#phpmyadmin dcmtk apache2-mpm-itk
Now we create the database that ConQuest will use:
# mysql -u root -p
create database conquest;
quit;
The directory for ConQuest files is:
# /etc/conquest-dicom-server
Enter the ConQuest directory:
# cd /etc/conquest-dicom-server
Edit the file dicom.ini to set up your server, now you define the server Application Entity Title (AET), its communication port, the user and the password that ConQuest will use to connect to MySQL
The lines that aren’t listed here are the lines that I don’t make any changes, so leave them alone:
# nano dicom.ini
MyACRNema = SERVER_AET
TCPPort = 104 # the server communication port
Password =
FixPhilips = 1 # avoids problems with Patient ID from some Philips systems
FixKodak = 1 # avoids problems with Patient ID from some Kodak/Carestream systems
IgnoreOutOfMemoryErrors = 1 # avoids ConQuest interruptions when out of memory errors occurs
FileNameSyntax = 8 # determines the name of stored files (see page 52 of windowsmanual.pdf)
DroppedFileCompression = jk # store dropped files using Lossless JPEG2000
IncomingCompression = jk # store image files through DICOM communication using Lossless JPEG2000
PACSName = # for banner and debug information
MAGDevice0 /data/ # where the images will be stored
Create the directory to store the images:
# mkdir /data
Edit the the file that contain associated remote DICOM nodes that will communicate with this server:
# nano acrnema.map
(Re)build the database verbosely:
# dgate -v -r
SCRIPTS
I’ve developed some simple scripts to make my life easier. Here they are:
(Re)start Conquest
(Re)start script for ConQuest saving logs into “serverstatus.log” file:
# nano /usr/local/bin/start
#!/bin/bash pkill -9 dgate dgate -^logfilename.log &
Keep Server Alive
This script checks if “dgate” proccess is running, if not (server crashed), the script restarts it:
# nano /usr/local/bin/keepalive
#!/bin/bash pgrep dgate if [ $? -ne 0 ] then /usr/local/bin/start fi
Send Yesterday’s Studies To Another Server
This script sends every yesterday’s studies to another server
# nano /usr/local/bin/dgateyesterday
#!/bin/bash DATE=$(date -d 'yesterday' + %Y%m%d) dgate --movestudies:SRC_AET,DEST_AET,$DATE wait
Make all scripts executables:
# chmod a+x /usr/local/bin/*
Schedule the execution of scripts:
# crontab -e
Reload cron to activate the new entries at “/etc/crontab”:
# /etc/init.d/cron restart
Some Useful Commands
Load new DICOM nodes after editing acrnema.map:
# dgate –read_amap:
List of loaded DICOM nodes:
# dgate –get_amaps:
Transferring studies from one server to another:
# dgate –movestudy:patientID:studyuid
Here is how to get PHP 5.6 on Linux (specifically Debian) talking to a Microsoft SQL Server database:
1. Install FreeTDS and the PHP MSSQL extension
apt-get install freetds-common freetds-bin unixodbc php5-sybase
Note: That is correct, the MS SQL extension is in the “php5-sybase” package.
2. Restart Apache
/etc/init.d/apache2 restart
3. Test FreeTDS
tsql -H your.server.name -p 1433 -U yourusername -P yourpassword -D yourdatabasename
If it connects, it’s working. Note: If you try to SELECT an NTEXT or NVARCHAR column you may get an error saying “Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier”. That is expected and will be fixed in the next step.
4. Configure FreeTDS
nano /etc/freetds/freetds.conf
Add this at the end of the file:
[yourserver] host = your.server.name port = 1433 tds version = 8.0
5. Test FreeTDS using server name
tsql -S yourserver -U yourusername -P yourpassword -D yourdatabasename
If you try to select something, you shouldn’t get the Unicode error now – because you specified “tds version = 8.0”.
6. Test in PHP
$link = mssql_connect('yourserver', 'yourusername', 'yourpassword');
if (!$link)
die('Unable to connect!');
if (!mssql_select_db('yourdatabasename', $link))
die('Unable to select database!');
$result = mssql_query('SELECT * FROM yourtable');
while ($row = mssql_fetch_array($result)) {
var_dump($row);
}
mssql_free_result($result);
https://www.clearcanvas.ca/Home/tabid/421/Default.aspx
https://www.neologica.it/ita/home
OsiriX, The world famous medical images viewer
Mount CIFS with the default local filesystem permissions:
For example, this is the folder where i want to reach my share:
apt-get install cifs-utils
# mkdir /myfolderpath
These are various examples on how to mount a CIFS (windows) share;
# mount -t cifs //myservername/mysharename /myfolderpath -o username=myuser,password=mypassword,domain=mydomain
# mount -t cifs //192.168.83.200/mysharename /myfolderpath -o username=myuser,password=mypassword,domain=mydomain
OR
# mount.cifs //192.168.83.200/mysharename /myfolderpath -o username=myuser,password=mypassword,domain=mydomain
Explain:
In una ipotetica LAN nella sottorete 192.168.0.0/24 la macchina da cui vogliamo effettuare l’accesso senza password ha l’indirizzo ip 192.168.0.2, mentre quella su cui vogliamo loggarci senza password ha 192.168.0.3.
Sulla macchina da cui vogliamo connetterci senza digitare la password (192.168.0.2), digitiamo il seguente comando per generare la chiave RSA:
[root@192.168.0.2 ]# ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: f7:ec:0d:c8:f4:df:7a:6c:2b:1d:a1:59:ee:c7:ae:a0
root@192.168.0.2
Poi copiamo la chiave che abbiamo generato nella macchina di destinazione
[root@192.168.0.2 ]# scp /root/.ssh/id_rsa.pub root@192.168.0.3:.
Sulla macchina su cui vogliamo autenticarci senza utilizzare la password digitiamo il seguente comando:
[root@192.168.0.3 ]#cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
Finito, adesso dalla macchina 192.168.0.2 potremo loggarci sulla 192.168.0.3 senza digitare alcuna password, ma non viceversa.
Questa tecnica può essere usata per gestire le connessioni tramite rsync appoggiandosi al protocollo OpenSSH o per sfruttare comandi tipo scp per muovere file da un pc/server ad un altro anche tramite script automatici.
[root@192.168.0.2 ~]# ssh root@192.168.0.3
Last login: Thu Jul 19 15:20:29 2007 from 192.168.0.2
[root@192.168.0.3 ~]#