Výrobce software: Medoro s.r.o, Hraniční 10, 530 03 Pardubice, IČ: 260 02 612, Česká republika

images/common/ce.png

Tento dokument je určen pro správce počítačových systémů a servisní techniky programu Dicompass DEVELOPMENT. V tomto manuálu administrátora naleznete informace o následujících tématech:

  • instalace a konfigurace Dicompass serveru

  • integrace s produkty třetích stran

  • parametry příkazové řádky

Dicompass server

Dicompass server je serverová aplikace, která poskytuje funkce pro:

  • aktualizaci klientských stanic

  • distribuci a správu plovoucích licencí

  • vzdálenou konfiguraci klientských stanic

  • auditování činnosti uživatelů

  • rozhraní s produkty třetích stran

Instalace

Dicompass server může být provozován na počítači se systémem Microsoft Windows nebo Linux Ubuntu.

Vyžadované prerekvizity:

  • Java Runtime Environment 6 nebo novější (32 bit nebo 64 bit)

  • v systémové proměnné PATH musí být nakonfigurována cesta k Javě

  • databázový server PostgreSQL 8.4 nebo novější

Microsoft Windows

  1. Nakopírujte celou distribuční složku do požadovaného cílového umístěn (např. C:\Program Files\DicompassServer).

  2. Soubor conf/DicompassServer.conf otevřete pomocí Poznámkového bloku a upravte blok konfigurující připojení k databázovému serveru

    # DB connection configuration
    db.driver=org.postgresql.Driver
    db.jdbc=jdbc:postgresql://localhost/dicompass
    db.user=postgres
    db.password=postgres
  3. Spusťte DicompassServer pomocí dávky bin/start.bat. Databázové schéma a výchozí konfigurace bude automaticky vytvořena.

  4. Pro automatické spouštění přidejte tuto dávku do složky Po spuštění

Linux

  1. Rozbalte distribuční balíček do požadovaného cílového umístění (následující příklad používá umístění /opt/dicompass-server).

    cd /opt
    tar -zxvf dicompass-server.tar.gz
  2. Vytvořte databázi a uživatele pro přístup do databáze (jako uživatel postgres).

    createdb dicompass
    echo "CREATE USER dicompass WITH PASSWORD 'password';" | psql
    echo "GRANT ALL PRIVILEGES ON DATABASE dicompass TO dicompass;" | psql
  3. Založte uživatele, pod kterým se bude DicompassServer spouštět a nastavte všechna práva na instalační adresář tomuto uživateli.

    useradd dicompass
    chown -R dicompass:dicompass /opt/dicompass-server/
  4. Soubor conf/DicompassServer.conf otevřete pomocí textového editoru a upravte blok konfigurující připojení k databázovému serveru

    # DB connection configuration
    db.driver=org.postgresql.Driver
    db.jdbc=jdbc:postgresql://localhost/dicompass
    db.user=dicompass
    db.password=password
  5. Nakopírujte soubor install/dicompass-server.redhat (nebo install/dicompass-server.debian) do /etc/init.d/dicompass-server a nastavte mu práva pro spuštění

    cp /opt/dicompass-server/install/dicompass-server.redhat /etc/init.d/dicompass-server
    chmod +x /etc/init.d/dicompass-server
  6. Nastavte automatické spouštění aplikace po startu systému

    chkconfig --add dicompass-server
    chkconfig --level 2345 dicompass-server on

    nebo pro Debian

    update-rc.d dicompass-server defaults

Pokud se skript nespouští ani poté, lze nouzově přidat do /etc/rc.local ruční spuštění /etc/init.d/dicompass-server start. . Spusťte Dicompass server pomocí příkazu

+

/etc/init.d/dicompass-server start

Databázové schéma a výchozí konfigurace bude automaticky vytvořena.

Po prvním spuštění jsou v databázi vytvořeny tabulky. V nich je třeba nakonfigurovat některé hodnoty v databázi. Důležité je nastavení hodnoty UID.ServerID, tak aby se jednalo o unikátní hodnotu.

echo "UPDATE ds.config SET value='123' WHERE config_id='UID.ServerID';" | psql dicompass

V případě nutnosti použití proxy upravit konfiguraci conf/DicompassServer.conf

# HTTP proxy configuration
proxy.use=true
proxy.host=proxy
proxy.port=80
proxy.user=
proxy.password=

Ve firewallu, pokud je použit, je třeba povolit porty číslo:

Tabulka 1. Porty používané DicompassServerem

8844

webové rozhraní

8845

RMI registry

8846

RMI services

Konfigurace

Konfigurace serveru se provádí pomocí tabulky config v databázi. Hodnoty v konfigurační tabulce je třeba vždy upravovat v souladu s datovým typem konfigurační hodnoty. Podporované datové typy jsou:

  • java.lang.String (textový řetězec)

  • java.lang.Integer (celé číslo)

  • java.lang.Double (desetinné číslo)

  • java.lang.Boolean (true, false)

  • java.util.Date (datum ve formátu YYYY-MM-DD HH:MM:SS)

Server hodnoty z nastavení udržuje v keši s dobou platnosti 15 minut. Změna nastavení se tak neprojeví okamžitě, ale nejpozději do 15 minut po provedení změny v konfiguraci.

Tabulka 2. Nastavení DicompassServeru
Název hodnoty Popis Výchozí hodnota

RemoteConf.Enabled

Povolení vzdálené konfiguraci

true

RemoteConf.AutoConf.Enabled

Automatické založení konfigurace pro novou stanici

true

RemoteConf.AutoConf.LoginRequired

Vyžadování úspěšného přihlášení uživatele pro automatické nakonfigurování stanice

true

RemoteConf.AutoConf.DefaultOrganization

Výchozí ID organizace pro automaticky nakonfigurovanou stanici

1

Login.Authenticator

Třída zajišťující autentizaci uživatele

org.medoro.dicompass.server.impl.DBUserAuthenticator

Login.NewUserRole

Výchozí role pro uživatele, který ještě nikdy nebyl přihlášen

user

Login.SSO.Authenticator

Třída zajišťující přihlášení uživatele SSO, pokud je prázdné SSO není povoleno

Login.SSO.DomainPrefixes

Prefixy uživatelského jména (jméno domény), které jsou povoleny pro přihlášení, kontrola není aktivní v případě, že tato konfigurační hodnota není vyplněna. Hodnota je použita pouze v případě nastavení autentizační třídy

org.medoro.dicompass.server.impl.DBUserAuthenticator

PublicServer.URL

Adresa serveru, se kterým komunikuje tento server jako se svým nadřízeným

http://public.medoro.cz/Dicompass

UID.ServerID

Unikátní identifikátor DicompassServeru

0

Auditing.Enabled

Povolení auditování činností uživatelů

true

Auditing.HistoryDays

Počet dní, po který má být log událostí uchováván

90

License.Stats.HistoryDays

Počet dní, po který má být uchováván protokol o využití licencí

60

DEX.Enabled

Povolení služby DEX

false

DEX.Store_AEs

Jeden nebo více AE adres oddělených středníkem ve formátu AET@IP:port určených pro ukládání dat

DEX.Retrieve_AEs

Jeden nebo více AE adres oddělených středníkem ve formátu AET@IP:port určených pro hledání a stahování dat

DEX.AE.Title

AE Title po kterým bude vystupovat AE pro stahování a odesílání dat na PACS(y)

DEX-AE

DEX.AE.Port

Číslo portu, na kterém DEX AE poběží

104

DEX.Charset

Kódování pro dotazy na PACS

UTF-8

DEX.Path

Cesta, kterou DEX používá pro příjem dat

/tmp

Updates.Auto

Aktualizace Dicompassu jsou automaticky stahovány

true

Updates.LinkHost

Hostitelská adresa, která se posílá v emailu v odkazu

localhost

Updates.NotificationEmail

E-mailová adresa, na kterou se posílají informace správci serveru

SendMail.Host

Hostitel pro odesílání e-mailů

localhost

SendMail.Port

Číslo portu pro odesílání e-mailů

25

SendMail.Authorization

Pro odesílání e-mailů je vyžadována autorizace uživatele

false

SendMail.User

Uživatelské jméno pro autentizaci uživatele pro odesílání emailů

SendMail.Password

Heslo pro autentizaci uživatele pro odesílání emailů

SendMail.SSL

Server pro odesílání emailů používá SSL

false

SendMail.TLS

Server pro odesílání emailů používá TLS

false

SendMail.Sender

E-mailová adresa, která figuruje jako odesílatel zpráv

dicompass@medoro.org

Varování Neuvážená změna některých hodnot nastavení může způsobit závážné problémy s funkcionalitou. Měňte nastavení s rozvahou!

Možnost autentizace uživatele

Tabulka 3. Výpis autentizačních tříd pro přihlášení uživatele
Jméno autentizační třídy Ověření přihlašovacích údajů Přidělení oprávnění uživatele Podpora SSO

org.medoro.dicompass.server.impl.DBUserAuthenticator

databáze DicompassServeru

databáze DicompassServeru

ano

org.medoro.dicompass.server.impl.DummyUserAuthenticator

žádné - libovolná kombinace uživatelského jména a hesla je platná

databáze DicompassServeru

ano

org.medoro.dicompass.server.apfs.APFSUserAuthenticator

AMIS*PACS Flex

AMIS*PACS Flex

ano

org.medoro.dicompass.server.impl.MedoroUserAuthenticator

informační systém Medoro M2

databáze DicompassServeru

ne

Oprávnění uživatelů

Všechna oprávnění jsou uvedena v tabulce permission, jejich přiřazení k uživatelským rolím pak v tabulce role_permission.

Tabulka 4. Možná oprávnění uživatelů
Název oprávnění Popis oprávnění

cfg.org

Oprávnění měnit konfiguraci organizace

cfg.mach

Oprávnění měnit konfiguraci stanice

cfg.usr

Oprávnění měnit nastavení uživatele

op.store

Oprávnění odesílat data na PACS

op.burn

Oprávnění vypalovat CD/DVD

op.print

Oprávnění tisknout snímky

op.export

Oprávnění exportovat snímky do JPEG / MPEG

op.convert

Oprávnění exportovat snímky do DICOM

chpass

Oprávnění změnit své heslo

op.categ

Oprávnění používat kategorizaci

cfg.default

Oprávnění nastavit výchozí nastavení podle stanice

dex.retrieve

Oprávnění přijímat data přes DEX

dex.store

Oprávnění odesílat data přes DEX

Dicompass server konzole

Konzole Dicompass Serveru usnadňuje některé konfigurační úkony, které by se jinak musely pracně dělat přes SQL dotazy v databázi. Příkazy konzole se spouští pomocí binárky: /opt/dicompass-server/bin/ds

Správa uživatelů

Následující příkazy pro správu uživatelů fungují pouze v případě, že je nakonfigurována jedna z autentifikačních tříd:

  • org.medoro.dicompass.server.impl.DBUserAuthenticator

  • org.medoro.dicompass.server.impl.DummyUserAuthenticator

  • org.medoro.dicompass.server.impl.MedoroUserAuthenticator

V případě použití jiné autentifikační třídy nemají nasledující příkazy žádný vliv. Pro třídu org.medoro.dicompass.server.impl.MedoroUserAuthenticator jsou platné pouze operace, které přiřazují role k uživatelům.

Přidání uživatele
ds add user <username> <password>

Při přidání uživatele je kontrolováno, jestli uživatelské jméno username neexistuje.

Pozor Na délku a obtížnost hesla nejsou kladeny žádné požadavky. Je tedy třeba, aby správce volil vhodné a bezpečné heslo.
Smazání uživatele
ds rm user <username>

Při provedení příkazu je kontrolováno, jestli uživatelské jméno username existuje.

Přiřazení role uživateli
ds add role <role> <username>

Přiřazovaná role role musí existovat (ve výchozí konfiguraci existují role user a admin).

Změna hesla uživateli
ds set password <username> <password>

Uživatelské jméno musí existovat.

Pozor Na délku a obtížnost hesla nejsou kladeny žádné požadavky. Je tedy třeba, aby správce volil vhodné a bezpečné heslo.

Správa konfigurací

Příklad

Naklonování pracovní stanice stanice01 a úprava jejího nastavení

ds clone machine stanice01 stanice02
ds load config stanice02 stanice02.conf
nano stanice02.conf                            # editace konfigurace
ds save config stanice02 stanice02.conf
rm stanice02.conf
Načtení konfigurace z databáze do souboru
ds load config (user|machine|organization) <user_id|machine_id|organization_id> <output_file>

Výstupní soubor pokud existuje, bude přepsán. Třetí parametr smí nabývat hodnot pouze user, machine nebo organization a v závislosti na hodnotě třetího parametru musí existovat příslušný primární klíč zadaný čtvrtým parametrem.

Uložení konfigurace ze souboru do databáze
ds save config (user|machine|organization) <user_id|machine_id|organization_id> <input_file>

Vstupní soubor musí existovat, třetí parametr smí nabývat hodnot pouze user, machine nebo organization a v závislosti na hodnotě třetího parametru musí existovat příslušný primární klíč zadaný čtvrtým parametrem.

Vytvoření kopie konfigurace
ds clone (user|machine|organization) <user_id|machine_id|organization_id> <new_user_id|new_machine_id|new_organization_id>

Druhý parametr smí nabývat hodnot pouze user, machine nebo organization a v závislosti na hodnotě druhého parametru musí existovat příslušný primární klíč zadaný třetím parametrem parametrem. Čtvrtý parametr pak udává nový primární klíč, pod kterým má být kopie uložena. Nový primární klíč nesmí existovat.

Audit činností uživatelů

Pokud je hodnota nastavení Auditing.Enabled nastavena na hodnotu true je do databáze DicompassServeru do tabulky audit ukládán log o činnostech uživatele. Doba uchovávání logu je ovlivněna hodnotou v nastavení Auditing.HistoryDays, která indikuje, kolik dní zpětně má být audit ukládán. Výchozí hodnota je 90 dní.

Kategorizace snímků

Pro nastavení kategorizace snímků je třeba vytvořit kategorizační schéma pomocí XML souboru, který nahrajeme do složky dicompass-server/conf/categ/. Název souboru a ID kategorizace musí být malými písmeny a tyto dvě hodnoty se musejí shodovat.

Podporované datové typy jsou:

  • radiogroup = skupina přepínačů z nichž pouze jeden může být aktivní

  • checkgroup = skupina přepínačů z nichž může být více přepínačů aktivních

  • shorttext = krátký text (atribut length pak určuje maximální délku, pokud není uveden je délka omezena na 64 znaků)

  • longtext = text, který může obsahovat více řádků

  • double = desetinné číslo

  • int = celé číslo

  • boolean = přepínač ano / ne

Ukázka kategorizačního schematu
<?xml version="1.0" encoding="UTF-8"?>
<Categorization id="test" name="Testovací kategorizace" version="1">
        <Field id="radiogroup1" name="Test radiogroupu" type="radiogroup" mandatory="true">
                <Item id="radio1" name="Radio 1" />
                <Item id="radio2" name="Radio 2" />
                <Item id="radio3" name="Radio 3" />
        </Field>
        <Field id="checkgroup1" name="Test checkgroupu" type="checkgroup" mandatory="true">
                <Item id="check1" name="Check 1" />
                <Item id="check2" name="Check 2" />
                <Item id="check3" name="Check 3" />
        </Field>
        <Field id="shorttext1" name="Test krátkého textu" type="shorttext" length="32" mandatory="true" />
        <Field id="longtext1" name="Test dlouhého textu" type="longtext" mandatory="true" />
        <Field id="int1" name="Test čísla" type="int" mandatory="true" />
        <Field id="double1" name="Test čísla" type="double" mandatory="true" />
        <Field id="boolean1" name="Test jednoho booleanu" type="boolean" mandatory="true" />
</Categorization>
Pozor Všechny atributy id musí být psány malými písmeny a smí obsahovat pouze písmena anglické abecedy, čísla a podtržítka.

Integrace s produkty třetích stran

Tato kapitola popisuje možnosti propojení DicompassServeru s jinými softwarovými produkty.

AMIS*PACS Flex

Díky spolupráci společností ICZ a Medoro je možnost DicompassServer velmi těsně provázat s PACS serverem společnosti ICZ AMIS*PACS Flex (dále jen APFS).

Pro všechny možnosti integrace je třeba v konfiguračním souboru conf/DicompassServer.conf nastavit tyto hodnoty:

apfs.enabled=true
apfs.rmi.registry.host=adresa APFS
apfs.rmi.registry.port=2377
  1. Nastavit lze autentizaci uživatele přihlašovacími údaji do APFS. Toho docílíme, pokud do nastavení Login.Authenticator nastavíme hodnotu org.medoro.dicompass.server.apfs.APFSUserAuthenticator. Dicompass server poté bude přejímat nejen uživatelské jméno a heslo, ale také role uživatele, které umožní omezit jeho oprávnění.

  2. Integerace s APFS umožňuje také spravovat uživatele, jejich nastavení, nastavení stanic a nastavení celé organizační jednotky přímo pomocí webového rozhraní APFS. Bez potřeby ručního zadávání pak lze do nastavení jednotlivých stanic importovat nastavené DICOM zařízení.

  3. Dicompass může komunikovat s APFS prostřednictvím proprietárního protokolu DEX, který zabaluje DICOM požadavek do HTTP protokolu, který lze v případě potřeby provozovat v prostředí sítě Internet. Pokud je uživatel přihlášen do Dicompassu prostřednictvím přihlašovacích údajů do APFS, je ke službě DEX automaticky přihlášen.

M2 RIS

Dicompass server umí uživatele autentizovat prostřednictvím přihlašovacích údajů do radiologického informačního systému M2. Pro povolení této funkce je třeba v nastavení serveru do Login.Autenticator nastavit hodnotu org.medoro.dicompass.server.impl.MedoroUserAuthenticator. Dále je třeba v nastavení zadat přihlašovací údaje do databáze RIS M2. Ty se nastavují do hodnot začínajících Login.Medoro.

Tip Z bezpečnostních důvodů by neměla role z přihlašovacích údajů do databáze možnost měnit data v databázi, ale mělo by se jednat pouze o pohled s přístupem pouze pro čtení.

Volání z NIS/RIS

Provolávání prolížeče z NIS/RIS lze nejlépe docílit pomocí parametrů příkazové řádky, které jsou popsány v tomto manuálu v kapitole Dicompass.

HL7 rozhraní

V nastavení konfigurace pro organizaci (viz příkaz ds load config organization) jsou vydefinovány šablony HL7 zpráv, které lze upravit. Při odesílání HL7 zpravy jsou použita následující nahrazení.

Tabulka 5. Výpis parametrů pro nahrazení v HL7 zprávách

SendingApplicationName

Jméno odesílací aplikace (lze změnit v panelu nastavení Dicompassu)

SendingFacilityName

Název odesílacího zařízení (lze změnit v panelu nastavení Dicompassu)

ReceivingApplicationName

Jméno přijímací aplikace (lze změnit v panelu nastavení Dicompassu)

ReceivingFacilityName

Název přijímacího zařízení (lze změnit v panelu nastavení Dicompassu)

Now

Aktuální datum a čas

MessageID

Identifikátor HL7 zprávy

Encoding

Kódování pro odesílání HL7 zpráv (lze změnit v panelu nastavení Dicompassu)

PatientID

Identifikátor pacienta (pro české prostředí rodné číslo)

PatientFamilyName

Příjmení pacienta

PatientGivenName

Křestní jméno pacienta

PatientMiddleName

Prostřední jméno pacienta

PatientNameSuffix

Tituly před jménem pacienta

PatientNamePrefix

Tituly za jménem pacienta

PatientBirthDate

Datum narození pacienta

PatientSex

Pohlaví pacienta (M,F,O)

PlacerOrderNumber

Identifikátor žádanky (doplněn prefixem z nastavení hl7Config.idPrefix)

OrderDateTime

Datum a čas na objednání

ProcedureCode

Kód vyšetření

ProcedureDescription

Popis vyšetření

ProcedureCodeDesignator

Vydavatel kódu vyšetření

Queue

Název fronty

Výchozí HL7 šablona pro přidání pacienta na worklist
MSH|^~\&amp;|{SendingApplicationName}|{SendingFacilityName}|{ReceivingApplicationName}|{ReceivingFacilityName}|{Now}||ORM^O01|{MessageID}|P|2.3|||AL|NE|CZ|{Encoding}|
PID|||{PatientID}||{PatientFamilyName}^{PatientGivenName}^{PatientMiddleName}^{PatientNameSuffix}^{PatientNamePrefix}||{PatientBirthDate}|{PatientSex}||||||||
ORC|NW|{PlacerOrderNumber}|||SC||^^^{OrderDateTime}||||||
OBR||{PlacerOrderNumber}|{PlacerOrderNumber}|{ProcedureCode}^{ProcedureDescription}^{ProcedureCodeDesignator}||||||||||||||{Queue}|||||||||||||||||||||||||
Výchozí HL7 šablona pro smazání pacienta na worklist
MSH|^~\&amp;|{SendingApplicationName}|{SendingFacilityName}|{ReceivingApplicationName}|{ReceivingFacilityName}|{Now}||ORM^O01||P|2.3|||AL|NE|CZ|{Encoding}|
PID|||{PatientID}||{PatientFamilyName}^{PatientGivenName}^{PatientMiddleName}^{PatientNameSuffix}^{PatientNamePrefix}||{PatientBirthDate}|{PatientSex}||||||||
ORC|CA|{PlacerOrderNumber}|||||^^^{OrderDateTime}||||||
Výchozí HL7 šablona pro potvrzení dokončení vyšetření
MSH|^~\&amp;|{SendingApplicationName}|{SendingFacilityName}|{ReceivingApplicationName}|{ReceivingFacilityName}|{Now}||ORM^O01||P|2.3|||AL|NE|CZ|{Encoding}|
PID|||{PatientID}||{PatientFamilyName}^{PatientGivenName}^{PatientMiddleName}^{PatientNameSuffix}^{PatientNamePrefix}||{PatientBirthDate}|{PatientSex}||||||||
ORC|SC|{PlacerOrderNumber}|||CM||||||||
OBR||{PlacerOrderNumber}|{PlacerOrderNumber}||||||||||||||||||||||||||||||||||||||||

Dicompass

Tato kapitola pojednává o možnostech spouštění samotného prohlížeče Dicompass a o možnostech jeho pokročilého nastavení.

Parametry příkazové řádky

V textu níže budou používány následující parametry:

<AET>

Parametr <AET> definuje DICOM uzel a jeho adresu v síti. Formát parametru je:

<AET>[@<host>[:<port>]]

AET je tzv. Application Entity Title - označení DICOM uzlu. Host je IPv4 nebo doménové jméno. Pokud není uveden port, bude se předpokládat výchozí port 104.

Tip Pokud máte v konfiguraci prohlížeče nadefinovány DICOM uzly, nemusíte uvádět úplnou adresu ve tvaru AET@IP:port, ale můžete použít pouze samotné AET. IP adresa a číslo portu bude doplněno automaticky.

<query>

Parametr <query> určuje vyhledávací dotaz pro PACS nebo DEX server. Formát parametru je:

<key>=<value>[&<key>=<value>]...

Podporovanými klíči jsou názvy DICOM tagů bez mezer. Např: PatientID, StudyInstanceUID, AccessionNumber, StudyDate

Tip Seznam tagů můžete nalézt na webu http://www.dicomtags.com/
Pozor Vyhledávat lze pouze podle tagů, které podporuje server, kterého se dotazujete. Tagy zanořené v sekvencích nelze zadávat.

Otevření dialogu pro vyhledávání v PACSu

Formát parametru:

-qr <query>[;<AET>[;<search>]]

Parametr <search>, pokud je vyplněn, určuje, že zadané vyhledávání má být i spuštěno. Pokud parametr není zadán, jsou pouze parametry vyhledávání nastaveny, ale pokud uživatel sám neklikne na tlačítko hledat, nejsou zobrazeny žádné výsledky.

Tabulka 6. Možné hodnoty parametru search

S

Provést vyhledávání

T

Provést vyhledávání - omezení na dnešní studie

Y

Provést vyhledávání - omezení na včerejší studie

Příklad

Vyhledání pacienta s ID 1234567890 na PACSu s AET APFSDCM.

-qr PatientID=1234567890;APFSDCM;S

Vyhledání dnešních studií pacienta s ID 1234567890 na posledním použitém PACSu (pokud nebyl žádný použitý, bude vybrán první dostupný)

-qr PatientID=1234567890;;T

Vyhledání, stažení a zobrazení snímků z PACS bez zobrazení dialogu pro vyhledávání

Formát parametru:

-qropen <query>[;<AET>]

Příklad

Zobrazení studie s AccessionNumber ABC123 z PACSu s AET PACS na adrese 10.20.1.1:104.

-qropen AccessionNumber=ABC123;PACS@10.20.1.1:104

Zobrazení všech studií žen ze dne 1.1.2013

-qropen PatientSex=F&StudyDate=20130101

Otevření dialogu pro vyhledávání v PACS přes protokol DEX

Formát parametru:

-dex <query>[;<host>[;<search>]]

Parametry přepínače -dex jsou velmi podobné přepínači -qr s tím, rozdílem, že místo AET je zadána adresa DEX serveru jako parametr host. Parametr host je zadáván ve tvaru host:port. Pokud parametr není uveden použije se první definovaný DEX server v nastavení programu.

Tip Pokud máte v konfiguraci prohlížeče nadefinovány DEX servery, nemusíte uvádět úplnou adresu, ale můžete použít pouze nadefinované označení DEX serveru.

Příklad

Zobrazení vyhledávacího dialogu na pacienta s ID 1234567890 na DEX serveru, který je předdefinovaný pod názvem DEX.

-dex PatientID=1234567890;DEX

Vyhledání pacienta s ID 1234567890 na DEX serveru na adrese http://10.20.0.1:8080.

-dex PatientID=1234567890;http://10.20.0.1:8080;S

Vyhledání, stažení a zobrazení snímků přes protokol DEX bez zobrazení dialogu pro vyhledávání

Formát parametru:

-dexopen <query>[;<URL>]

Příklad

Zobrazení studie s AccessionNumber ABC123 z DEX serveru na adrese https://10.20.1.1:9200.

-qropen AccessionNumber=ABC123;https://10.20.1.1:9200

Zobrazení všech studií žen ze dne 1.1.2013 z naposledy použitého DEX serveru

-qropen PatientSex=F&StudyDate=20130101

Otevření digitalizačního dialogu

Formát parametru:

-grabber <query>[;<AET>[;<type>]]

Prvním parametrem query zadáváme vyhledávácí dotaz pro Modality Worklist, parametr AET pak určuje adresu Modality Worklist serveru. Pokud tento parametr není uveden nebo je prázdný, použije se MWL server, který je nastaven v konfiguraci aplikace v kategorii Digitalizace. Volitelný parametr type udává kartu dialogu digitalizace, která má být po spuštění vybrána. Pokud parametr není zadán, použije se digitalizace video zdroje.

Tabulka 7. Možné hodnoty parametru type

0

Digitalizace video zdroje

1

DICOMizace - převod fotek a videí do DICOM

2

Digitalizace dokumentů - převod obrazu se skeneru do DICOM

Pozor Vyhledávat lze pouze podle tagů, které podporuje server, kterého se dotazujete. Tagy zanořené v sekvencích nelze zadávat.

Příklad

Zobrazení digitalizačního okna pro skenování na základě žádanky číslo 12345

-grabber AccessionNumber=12345;;2

Nadefinování výchozího serveru při prvním spuštění

Přepínač je užitečný k nastavení režimu clientserver a nakonfigurování serveru při prvním spuštění aplikace.

Formát parametru:

-server <host>:<port>

Příklad

Nastavení režimu clientserver se serverem na adrese 10.20.1.1 a portu 8845.

-server 10.20.1.1:8845

Otevření DICOM souboru, DICOMDIRu nebo složky

Otevře soubor nebo adresář zadaný cestou <path>. Pokud je cestou adresář, je celý adresář prohledán a načten do pracovní sady. Pokud se jedná o soubor dojde k jeho otevření. Přípustné jsou vedle DICOM souborů se snímky také archivy webových schránek ePACS DCMDIR, ZIP archivy a soubory DICOMDIR.

Formát parametru:

-open <path>

Příklad

Načtení a zobrazení všech DICOM souborů v adresáři C:\prac\dicom\RTG.

-open C:\prac\dicom\RTG

Předvyplnění uživatelského jména

Předvyplní uživatelské jméno pro přihlášení do prohlížeče (pouze pro režim clientserver). Pokud se není parametr <user> zadán, použije se jméno uživatele přihlášeného v systému.

Formát parametru:

-username [<user>]

Předvyplnění hesla

Předvyplní heslo pro přihlášení do prohlížeče (pouze pro režim clientserver).

Formát parametru:

-password <password>

Automatické přihlášení uživatele

Provede automatické přihlášení s uloženými údaji nebo s údaji zadanými přepínači -username a -password.

Formát parametru: -login

Příklad

Přihlášení uživatele pod uživatelským jménem přihlášeným v operačním systému (bez použití hesla).

-username -login

Single Sign-On přihlášení uživatele

Provede automatické přihlášení s přihlašovacími údaji ze systému MS Windows. Tato funkce musí být povolena v konfiguraci serveru.

Formát parametru: -sso

Příklad

Přihlášení uživatele pod uživatelským jménem přihlášeným v operačním systému.

-sso

Přednastavení výchozího ID stanice pro první spuštění

Pro první spuštění přednastaví ID stanice. Použitelné pro instalaci přes MSI balíček (msiexec.exe /i dicompass.msi ID="jméno stanice"), pokud je hodnota parametru rovna textu HOSTNAME nebo parametr vůbec není uveden, provede Dicompass přiřazení ID stanice podle názvu počítače (hostname).

Formát parametru: -id <id_stanice>

Příklad

Nastavení jména stanice TEST

-id TEST

Potlačení dialogu pro nastavení při prvotním spuštěním programu

Potlačí konfigurační dialog, který se zobrazuje při prvním spuštěním aplikace na stanici. Možno kombinovat s parametry -id a -server.

Formát parametru: -autoconf

Příklad

Spouštění v režimu client-server s DicompassServerem běžímcím na adrese 192.168.1.1 a použití hostname jako ID stanice:

-server 192.168.1.1 -autoconf

Spuštění v režimu standalone a použití hostname jako ID stanice:

-autoconf

Spuštění v režimu client-servers DicompassServerem běžímcím na adrese 192.168.1.1 a nastavení ID stanice na: TEST-STANICE

-server 192.168.1.1 -id TEST-STANICE -autoconf

Nastavení pracovního adresáře Dicompassu

Umožňuje nastavit adresář, který Dicompass používá jako svůj pracovní (pro ukládání lokální databáze, konfigurace…).

-path <path>

Příklad

Spustí Dicompass tak, aby veškerá data ukládal na cestu C:\Dicompass.

-path C:\Dicompass

Spuštění verze volání z NIS

Spustí verzi aplikace, která v uživatelském rozhraní neumožňuje vyhledávat další pacientská data

-nis

Zavaděč jStart

Zavaděč jStart se stará o kontrolu aktualizací programu při každém spuštění programu Dicompass. Díky tomuto zavaděči tak používáte vždy nejaktuálnější verzi programu.

Pro předávání parametrů přes zavaděč jstart, je třeba zdvojit pomlčku před parametrem.

Příklad

Kontrola aktualizací programu Dicompass, jeho spuštění a přihlášení s uživatelským jménem v systému aktuálně přihlášeného uživatele a zobrazení souborů ze složky c:\data\dicom\RTG.

java -jar jstart.jar --username --login --open c:\data\dicom\RTG

Samotný zavaděč podporuje vlastní parametry.

Tabulka 8. Vlastní parametry zavaděče jStart

-path <path>

Cesta, která má být použita pro uložení aplikace, cestu lze také nastavit definováním systémové proměnné JSTART_PATH. Definice cesty přes systémovou proměnnou má vyšší prioritu než definice pomocí parametru příkazové řádky.

-nostart

Po kontrole aktuálnosti a případné aktualizaci program dále nespustí

-nogui

Provede aktualizaci programu bez zobrazení okna informujícího o průběhu operace

Dicompass konzole

Konzole v programu Dicompass slouží k diagnostice systému, analýze problému či ke speciálním možnostem nastavení. Konzoli lze vyvolat z menu Nápověda | Konzole.

images/cs/console.jpg
Obrázek 1. Zobrazení konzole v programu Dicompass

Konzole přijímá textové příkazy, šipky nahoru a dolů slouží k procházení historie spuštěných příkazů (v rámci instance programu).

Seznam příkazů a jejich popis získáte zadáním příkazu: help nebo samotným zapsáním znaku otazník (?).

Tabulka 9. Příkazy podporované konzolí

cert

Načte a zobrazí certifikáty ověřující identitu serveru na zadané adrese a čísle portu

cleandb

Promaže z lokální databáze všechny studie, které nebyly otevřeny déle než zadaný počet dní

editcfg

Ruční editace konfiguračních souborů (povinný jeden parametr určující typ konfiguračního souboru: usr - uživatel, mach - stanice, org - organizace)

exception

Vyhodí testovací vyjímku programu

exit

Zavře okno s konzolí

gc

Spustí proces automatického uvolňování paměti a zobrazí informace o využití paměti

get

Vrátí hodnotu pokročilého nastavení (viz příkaz set)

hwkey

Zobrazí informace o HW klíči

iotest

Test rychlosti zápisu a čtení do zadané složky (první parametr určuje složku a druhý počet megabytů, které se mají zkusit zapsat, test je užitečný pro vyzkoušení rychlého úložiště na objemy)

jstart

Zobrazí JStart ID

savecfg

Uloží konfiguraci (omezeno podle aktuální role uživatele)

setdefcfg

Nastaví zadaného uživatele/stanici jako výchozí zdroj konfigurace pro nově připojené uživatele/stanice (pokud parametr není uveden nastavuje se aktuální uživatel/stanice). Příklad: setdefcfg user VYCHOZI

set

Nastavení některých pokročilých nastavení (množství paměti, kontroly aktualizací, cesty…), pokud zadáme příkaz pouze bez parametrů jsou vypsány všechny atributy, které lze měnit

sql

Vykoná SQL příkaz nad lokální databází (neumožňuje vracet výsledky, pouze vykonávat UPDATE, DELETE a ALTER příkazy)

system

Zobrazí proměnné a nastavení systému a prostředí

trust

Označí certifikát načtený příkazem cert jako důvěryhodný

uivalues

Zobrazí (vyhledá) vlastnosti UIManageru

verify

Provede DICOM echo na zadaný AET

Poznámka Konzole komunikuje pouze v anglickém jazyce.

Vyhledávání pacientů v lokální databázi

Za pomocí HTTP protokolu je možné se dotazovat do lokální databáze Dicompassu. Vyhledávání v databázi slouží výhradně k nalezení pacienta/pacientů.

Test serveru

Otevřít libovolný webový prohlížeč a zkusit adresu http://localhost:11117 (výchozí nastavení). Localhost může být zaměněn IP adresou zařízení, kde je Dicompass spuštěn. Zvolený port odpovídá portu z nastavení v manuálu uživatele.

Dotazování se do lokální databáze

Dotazování do databáze funguje za pomocí metody GET - tedy na základě parametrů v url adrese, která má tvar: ip:port?field=(pid|pn)&q=<hledaný_výraz> Výsledkem je stránka obsahující JSON, který vrací pole pacientů. V opačném případě je výsledkem stránka s informace o neúspěšně provedeném dotazu a statusem 404. Každý pacient obsahuje:

  • PatientID = ID pacienta, které je povinné

  • PatientName = Jméno pacienta podle DICOM standardu Příjmení^Jméno

  • PatientSex = Pohlaví pacienta s hodnotami: M - muž, F - žena a O - ostatní (nepovinné)

  • PatientBirthDate = Datum narození pacienta (nepovinné)

  • IssuerOfPatientID = Identifikace organizace, která vydala ID pacienta (nepovinné)

Vyhledávání pacientů podle ID

Pacienti s začátkem PatientID 123

http://localhost:11117?field=pid&q=123
Vyhledávání pacientů podle jména

Pacienti s jménem Novák

http://localhost:11117/?field=pn&q=Novák

Ukázková implementace v PHP

<?php

Header("Content-Type: application/json; charset=utf-8");

class Patient {

  public $PatientName; // Required variable with valid DICOM patient name - Family^Given
  public $PatientID; // Required variable.
  public $PatientSex;
  public $PatientBirthDate;
  public $IssuerOfPatientID;

  public function __construct($patientName, $patientID, $patientSex, $patientBirthDate, $issuerOFPID) {
        $this->PatientName = $patientName;
        $this->PatientID = $patientID;
        $this->PatientSex = $patientSex;
        $this->PatientBirthDate = $patientBirthDate;
        $this->IssuerOfPatientID = $issuerOFPID;
    }

}

$databaseOfPatients = Array(
    Array("Novák^Jan", "123456789", "M", "1984-02-21", ""),
    Array("Novák^Miroslav", "123987545", "O", "", ""),
    Array("Nováková^Jana", "123845654", "F", "1992-01-18", "")
);

$pid = "pid"; //search patients by PatientID
$pn = "pn"; //search patients by PatientName

/* required field and q parameters from url */
$field = isset($_GET["field"]) ? $_GET["field"] : NULL;
$query = isset($_GET["q"]) ? $_GET["q"] : NULL;

/* select patients from data source */
$queryResult = Array();
if(is_string($field) && is_string($query)){
    foreach ($databaseOfPatients AS $patient){
        $patientNameOrID = $field == $pid ? $patient[1] : $patient[0];
        if(is_string($patientNameOrID) && strpos($patientNameOrID, $query)===0){
            $queryResult[] = new Patient($patient[0], $patient[1], $patient[2], $patient[3], $patient[4]);
        }
    }
}

print json_encode($queryResult); //print array of patients to JSON

?>

Pokročilá nastavení

Nastavení pracovního adresáře programu

Dicompass ukládá data jako lokální databázi a její obrazová data, logovací soubory a konfigurační soubory do svého pracovního adresáře.

Pracovní adresář, pokud není specifikován jinak se nachází v domovském adresáři uživatele v podsložce .dicompass (např. C:\Users\Petr\.dicompass3 nebo /home/Petr/.dicompass3). Cestu k pracovnímu adresáři lze změnit pomocí parametru příkazové řádky (viz výše), pomocí systémové proměnné DICOMPASS_PATH nebo pomocí konfiguračního souboru. Konfigurační soubor je automaticky vyhledáván v adresářích All users/.dicompass.path (na OS MS Windows), /usr/share/.dicompass.path a v domovském adresáři uživatele .dicompass.path. Pokud tento soubor obsahuje existující cestu, je jako pracovní adresář aplikace použita tato cesta.

Nejvyšší prioritu zadání cesty má zadání parametrem na příkazové řádce.

Nastavení formuláře pro ruční zadávání údajů o pacientovi

V nastavení organizace (viz příkaz ds load config organization) lze upravit formulář pro zadávání pacienta tím, že lze nastavit viditelnost (element visible) a příznak povinného vyplnění (element required) pro hodnoty:

  • příjmení

  • křestní jméno

  • prostřední jméno

  • tituly před jménem

  • tituly za jménem

  • datum narození

  • pohlaví

  • ID pacienta

  • Vydavatel ID pacienta

Nastavení se upravuje v elementu modules-advanced-config-PatientDialogConfig.

Do atributu issuersOfPid lze vypsat středníkem oddělené názvy vydavetelů ID pacientů (např. RC;Passport). Nastavení této hodnoty má význam pouze v případě, že je povoleno zobrazení issuerOfPid.

Pomocí atributů pidRegexp a nameRegexp lze nastavit regulární výraz pro validaci ID pacienta (respektive křestního jména, příjmení a prostředního jména). Pokud jsou tyto atributy prázdné, žádné validační pravidlo se neaplikuje.

Atribut pidGenerator umožňuje nastavit automatické generování ID pacientů pro země, kde jednotné unikátní označení není zavedeno.

Tabulka 10. Podporované generátory ID pacientů

UA

Ukrajina - ID je vygenerováno jako MD5 hash převedený do Base64 ořezaný o koncová rovnítka z hodnoty tvořené spojením příjmení pacienta, jména pacienta a data narození ve formátu YYYYMMDD převedené na velká písmena v Locale uk_UA.

Vlastní konfigurace logování

Dicompass při prvním spuštění vytvoří kopii své konfigurace logování ve svém pracovním adresáři pod názvem logback.xml. Nastavení logování lze provádět v souladu s dokumentací Logback. Nejužitečnější je zřejmě změna logovací úrovně pro určitý modul programu.

Příklad

Povolení veškerého logování pro modul digitalizace

<logger name="org.medoro.dicompass.modules.grabber" level="DEBUG" />

Použití na terminálové serveru

Provozování programu Dicompass na terminálovém serveru s hardwarovým klíčem není možné, omezení výrobce hardwarového klíče (SafeNet, Inc.) to neumožňuje z bezpečnostních důvodů. V případě potřeby použití DicompassServeru na terminálovém serveru je třeba změnit nastavení z důvodu sdílení některých portů a služeb více uživateli. Změnu je třeba provést v souboru startup.xml, kde je nutné změnit hodnotu atributu terminalServer na true.

<config id="..." mode="clientserver" serverAddress="192.168.1.1" serverPort="8845" webPort="8844" connectTimeout="4000" offlineOnlineMode="false" localControlPort="11110" terminalServer="true" />