他社製のソフトウェアと連携する

SonicDICOM® PACSのDICOMビューアは他社製のソフトウェア(電子カルテ、HIS/RISなど)と簡単に連携することができます。
URLに任意のパラメータを付与してWebブラウザを起動することで、任意のIDでログインし、条件に一致する検査の一覧や画像を表示できます。

ログインする

他社製のソフトウェアからWebブラウザを起動し、URLに以下のようなパラメータを加えてアクセスすることで、SonicDICOM® PACSのDICOMビューアに簡単にログインできます。

リスト:
http://localhost/viewer/#/list?id=admin&password=password

ビューア:  
http://localhost/viewer/#/viewer?id=admin&password=password

ログイン処理を実行した後は、URLからIDとパスワードに関するパラメータは自動的に取り除かれます。
また、ブラウザの履歴にIDやパスワードの情報は残りません。

よりセキュアな方法でログインする

前項でご紹介した、URLを使用したログインは非常に簡便で使い勝手が良いのですが、よりセキュアな方法でログインすることを求められる場合もあります。
以下では暗号方式を利用したログイン方法についてご説明します。

1) ワンタイムパスワードを取得する

他社製のソフトウェアから以下のURLに対してPOSTリクエストを発行し、ワンタイムパスワードを取得してください。
SonicDICOM® PACSはワンタイムパスワードの生成時に秘密鍵と公開鍵を作成し、公開鍵をワンタイムパスワードとして返答します。

URL: /viewer/api/otp/

2) IDとパスワードを暗号化する

他社製のソフトウェア側で、SonicDICOM® PACSから取得したワンタイムパスワード(公開鍵)を使用して、IDとパスワードをRSA方式で暗号化してください。

暗号化前の文字列の例: id=admin&password=password  
暗号化後の文字列の例: encryptedstring

3) 暗号化した文字列を使用してログインする

URLのパラメータを以下のように変更してログインを実行してください。

URLの例: /viewer/#/list?code=encryptedstring  

SonicDICOM® PACSはこのようなリクエストを受けると、ワンタイムパスワードの生成時に作成した秘密鍵を使用して、暗号化された文字列を復号し、内部でログイン処理を実行します。
ログインに成功した場合はHTTPコード200を、失敗した場合は401を返答します。
ワンタイムパスワードは一度使用されるか、生成されてから一定時間が経過すると自動的に破棄されます。

検索する

URLに以下のようなパラメータを加えることで簡単に条件に一致する結果を取得できます。

リスト:  
http://localhost/viewer/#/list?id=admin&password=password&patientid=123

ビューア:  
http://localhost/viewer/#/viewer?id=admin&password=password&patientid=123

このようにIDとパスワードに加えて、任意のパラメータをURLに追加することで、他社製のソフトウェアから簡単に検索を実行することができます。

注意

  • URLのlocalhostの部分はSonicDICOM® PACSが動作しているPCのIPアドレスに変更してください。
  • SonicDICOM® PACSのWebサーバーが使用するポート番号を指定している場合は、IPアドレスの後に192.168.10.1:8080のようにポート番号を追加してください。
  • 各パラメータの間には&を挿入してください。
  • 既に任意のIDでSonicDICOM® PACSにログインしている場合はIDとパスワードは省略することができます。

リストで使用できるキーと演算子

リスト(/viewer/#/list)では、以下のキーを検索条件として使用することができます。
またパラメータを複数使用する場合、各パラメータの間には&を挿入してください。

項目 キー
Study Instance UID studyinstanceuid studyinstanceuid=1.2.392.200224.2.3000.8001
Series Instance UID seriesinstanceuid seriesinstanceuid=1.2.392.200224.3.3000.8002
SOP Instance UID sopinstanceuid sopinstanceuid=1.2.392.200224.3.3000.8003
Patient ID patientid patientid=12345
Patient Name patientname patientname=john
Patient Comments patientcomments patientcomments=something
Patient Birth Date patientbirthdate patientbirthdate=1990/04/01
Patient Sex patientsex patientsex=m
Study Description studydescription studydescription=something
Study ID studyid studyid=123456
Study Date studydate studydate=2018/01/23
Study Time studytime studytime=10:56:20
Accession Number accessionnumber accessionnumber=20180123001
Series Number seriesnumber seriesnumber=1
Series Date seriesdate seriesdate=2018/01/23
Series Time seriestime seriestime=10:56:20
Series Description seriesdescription seriesdescription=something
Modality modality modality=mr
Body Part Examined bodypartexamined bodypartexamined=knee

リスト(/viewer/#/list)では、以下の演算子を使用することができます。

項目 演算子
等しい = もしくは ===
等しくない =!=
より大きい =>>
より大きいまたは等しい =>=
より小さい =<<
より小さいまたは等しい =<=
含む =**

例外

項目Patient IDとModalityは以下のように指定することでOR検索が可能です。

patientid=1234&patientid=5678
modality=cr&modality=ct  

項目StudyDateは以下のように指定することで範囲検索が可能です。

studydate==~2013/11/25~2016/08/31  

項目StudyDateには以下のように特別な値を指定することができます。

studydate=today  
studydate=yesterday  
studydate=pastweek  
studydate=pastmonth

ビューアで使用できるキーと演算子

ビューア(/viewer/#/viewer)では、以下のキーを検索条件として使用することができます。
パラメータを複数使用する場合は、各パラメータの間に&を挿入してください。

項目 キー
Study Instance UID studyinstanceuid studyinstanceuid=1.2.392.200224.2.3000.8001
Series Instance UID seriesinstanceuid seriesinstanceuid=1.2.392.200224.3.3000.8002
SOP Instance UID sopinstanceuid sopinstanceuid=1.2.392.200224.3.3000.8003
Patient ID patientid patientid=12345
Accession Number accessionnumber accessionnumber=20180123001

ビューア(/viewer/#/viewer)では、以下の演算子を使用することができます。

項目 演算子
等しい = もしくは ===

レポートで使用できるキーと演算子

レポート(/viewer/#/report)では、以下のキーを検索条件として使用することができます。
パラメータを複数使用する場合は、各パラメータの間に&を挿入してください。

項目 キー
Study Instance UID studyinstanceuid studyinstanceuid=1.2.392.200224.2.3000.8001
Accession Number accessionnumber accessionnumber=20180123001

レポート(/viewer/#/report)では、以下の演算子を使用することができます。

項目 演算子
等しい = もしくは ===