SqliteインストールとConquetのフィルタで転送先を指定 †更新日2023-07-11 (火) 10:32:28
作成日:2023年6月26日
SqliteのDB内容の確認のためツールのインストールと、Conquestサーバ(Ver1.5.0b)でDBのデータ内容の条件でDICOMデータの転送先を変更する手順 Sqliteツールインストール †以下のURLからDownload。 https://www.sqlite.org/index.html 適当なフォルダに展開 使用方法 †DBに接続 †>sqlite3.exe conquest.db3 ← dicomserver150b\data\dbaseにある SQLite version 3.42.0 2023-05-16 12:36:15 Enter ".help" for usage hints. 切断 †sqlite> .exit テーブルの表示 †sqlite> .table DICOMImages DICOMSeries DICOMWorkList DICOMPatients DICOMStudies UIDMODS テーブル内容の表示 †sqlite> select * from DICOMPatients; 0009703828|HEAD EXP2||O|1686187648||| sqlite> select * from DICOMSeries where BodyPartEx='CHEST'; 1.2.392.200036.9125.3.24963615215859.64922747427.2612288|1001|20191111|\ 163125.000||CR|||FUJIFILM Corporation||CHEST||ru0|Ootsuji Clinic||5|\ 1.2.392.200036.9125.2.24963615215859.64922747014.3204330|1687742560||| スキーマ表示 †.schema DICOMPatients ←「;」なし CREATE TABLE DICOMPatients \ (PatientID varchar(64) PRIMARY KEY not null, \ PatientNam varchar(64), \ PatientBir char(8) , \ PatientSex varchar(16), \ AccessTime int, \ qTimeStamp int, \ qFlags int, \ qSpare varchar(64)); ConquestのExportFilterでの転送先を指定方法 †GUIで表示したスキーマでなく、Sqliteのコマンドラインから「.schema DICOMSeries」で確認したスキーマを使用する。キャラクタ指定は「'」くくる。 ExportFilter0 = BodyPartEx = 'CHEST' は select * from DICOMSeries where BodyPartEx = 'CHEST'; を意味するようだ。 dicom.iniの例 †ExportFilter0 = BodyPartEx='CHEST' ↑↑にはスペースは必要 胸のイメージを指定 dicom.iniでの追加部 †
# Edit by JE2ISM # Setup conquest server to forward all images received to multiple pacs servers ForwardAssociationLevel = * ForwardAssociationCloseDelay = 5 ForwardAssociationRefreshDelay = 3600 ExportConverters = 2 ExportConverter0 = forward to Win112110 ExportModality0 = CR ExportFilter0 = BodyPartEx = 'CHEST' ←ここ ExportConverter1 = forward to WinPINTEST ExportModality1 = OT 「BodyPartEx = "CHEST"」の=の前後もスペースが必要かも→Windows再起動後はスペースがないと動作しなくなった(不思議)
# Edit by JE2ISM # Setup conquest server to forward all images received to multiple pacs servers ForwardAssociationLevel = * ForwardAssociationCloseDelay = 5 ForwardAssociationRefreshDelay = 3600 ExportConverters = 1 ExportConverter0 = forward to Win11-2110 ExportFilter0 = SeriesPat Like 'XX%' ← ここ 2つの条件を満足する場合 †BodyPartExamined(0018,0015)が「CHEST」でInstitutionName(0008,0080)が「Ootsuji Clinic」に一致するときに適用 ExportFilter0 = BodyPartEx = 'CHEST' and Institutio = 'Ootsuji Clinic' Conquest Ver1.4.19b+Mysqlでの確認 †
dicom.iniでの追加部 †# Edit by JE2ISM # Setup conquest server to forward all images received to multiple pacs servers ForwardAssociationLevel = * ForwardAssociationCloseDelay = 5 ForwardAssociationRefreshDelay = 3600 ExportConverters = 2 ExportConverter0 = forward to Win112110 ExportModality0 = CR ExportFilter0 = BodyPartEx = "CHEST" ←Mysqlでは「"」で囲む。 ExportConverter1 = forward to WinPINTEST ExportModality1 = OT サーバ上にデータが存在している場合でもデータを受信したときは、条件に従い転送するようだ(Ver1.4.19bで確認) dicom.iniでの正規表現 †Sqliteの正規表現 †どの正規表現(Perl,awk等)が利用できるかは不明 「GLOB」がキーワード
sqlite> select SeriesPat, SeriesNumb, Institutio from DICOMSeries; 0009703828| 1| 5|1001|Ootsuji Clinic 8900|1001|Ootsuji Clinic 8900|999| HN5001|1001|Ootsuji Clinic HN5001|1002|Ootsuji Clinic
sqlite> select SeriesPat, SeriesNumb, Institutio from DICOMSeries where SeriesPat GLOB '[0-9]*'; 0009703828| 1| 5|1001|Ootsuji Clinic 8900|1001|Ootsuji Clinic 8900|999|
sqlite> select SeriesPat, SeriesNumb, Institutio from DICOMSeries where SeriesPat GLOB '[A-Z][A-Z][0-9]*'; HN5001|1001|Ootsuji Clinic HN5001|1002|Ootsuji Clinic dicom.ini の ExportFilter †1文字目が数字だけにマッチしたとき「WinPINTEST」に転送する。 例)
# Edit by JE2ISM # Setup conquest server to forward all images received to multiple pacs servers ForwardAssociationLevel = * ForwardAssociationCloseDelay = 5 ForwardAssociationRefreshDelay = 3600 ExportConverters = 2 ExportConverter0 = forward to Win112110 ExportModality0 = CR ExportFilter0 = SeriesPat GLOB '[0-9]*' ← ここ ExportConverter1 = forward to WinPINTEST # ExportModality1 = OT コマンドラインからデータ削除 †患者IDを指定して削除 †DGATE --deletepatient:patid
dicomserver150b\dgate64.exe --deletepatient:5
dicomserver150b\dgate64.exe --deletepatient:XX* ワイルドカードが使用できるようだ Portを変えて2つConquestを立ち上げても、実行するdgate64.exeのパスを指定することで、同一のフォルダ内のConquestだけから、データを削除できる。他のConquestには影響がない Helpの表示 †>dgate64.exe -? DGATE: UCDMC/NKI DICOM server thread and PACS utility application 1.5.0b Usage: (1) DGATE <-!#|-v|-u#> Report as in dicom.ini|stdout|UDP(#=port) [-^|-l|-Lfile] GUI/Normal/Debug log to file [-p#|-hAE|-qIP|-b] Set port|AE|Target IP|Single thread debug mode [-wDIR] Set the working directory for dgate(ini,dic,...) [-i|-r|-arDEVICE] Init|Init/regenerate DB|Regen single device (略) |