3 DICOMの開発の概要

この章では、Oracle Multimedia DICOMを使用したアプリケーションの開発に関連する開発者および管理者のタスクについて簡単に説明します。

注:

DICOMのOracle Multimediaサポートは、Oracle Database 12cリリース2 (12.2)では非推奨になりました。将来のリリースではサポートされなくなる可能性があります。できるだけ早く、非推奨となった機能の使用を停止することをお薦めします。

この章では、次の内容を説明します。

3.1 DICOM開発環境

Oracle Multimedia DICOMでは、DICOMコンテンツに関連する多くの操作の機能が提供されています。たとえば、管理者は、現在の環境にユーザー定義のドキュメントを追加するかどうかを決定する前に、DICOMデータ・モデル・リポジトリにあるOracleで定義された構成ドキュメントを確認できます。これらの構成ドキュメントに関する属性およびその他の詳細情報を管理者が取得するには、ビューを使用するか、またはデータ・モデル・ユーティリティの関数をコールします。また、開発者も、DICOMコンテンツ、メタデータ属性およびその他のオブジェクトを直接処理して、様々な操作を実行できます。

インストールが完了すると、各データベースには、デフォルトの構成ドキュメント・セットがOracle Multimedia DICOMデータ・モデル・リポジトリに含まれます。インストール後に、管理者は特定の組織に固有の構成ドキュメントを追加できます。構成ドキュメントに関する一般的な情報は、リポジトリ内の構成ドキュメントを参照してください。DICOMリポジトリ内でこれらの文書を管理する方法の詳細は、DICOM管理の使用方法とリファレンスを参照してください。

次の各項では、DICOM開発環境について説明します。

3.1.1 Oracle Multimedia DICOMで使用されるAPI

Oracle Multimedia DICOMは、Oracle Multimediaのインストール後に完全に機能するため、開発者はすぐにアプリケーションの作成を開始できます。Oracle Multimedia DICOMでは、開発者向けにいくつかのアプリケーション・プログラミング・インタフェース(API)を提供していますが、これらは管理者も使用できます。

さらに、Oracle Multimedia DICOMには管理者専用ORD_DICOMデータ・モデル・リポジトリAPIも用意されています。管理者は、このAPIを使用してデータ・モデル・リポジトリから構成ドキュメントの挿入または削除を行うことによって、開発者を支援できます。

次の表では、Oracle Multimedia DICOMで使用可能なアプリケーション・プログラミング・インタフェースのリストで、それらを使用できるユーザー、および詳細情報の入手先を示しています。

表3-1 DICOMのアプリケーション・プログラミング・インタフェース

APIの名前 ユーザーのタイプ 詳細の参照先

DICOMデータ・モデル・ユーティリティAPI

管理者と開発者

DICOMデータ・モデル・ユーティリティのリファレンス

DICOM PL/SQL API

管理者と開発者

DICOM PL/SQL APIリファレンス

ORDDicomオブジェクトAPI

管理者と開発者

ORDDicomオブジェクト型のリファレンス

ORD_DICOM_ADMINデータ・モデル・リポジトリAPI

管理者のみ

ORD_DICOM_ADMINパッケージのリファレンス

3.1.2 DICOMリポジトリ内のビュー

Oracle Multimedia DICOMでは、DICOMリポジトリ内のドキュメントに関する具体的な情報へのアクセスを可能にするビューが提供されます。パブリック・ビューは、リポジトリのユーザーと管理者が使用できます。これらのビューでは、ドキュメントの名前、ドキュメント・タイプ、制約の名前、および制約検証メッセージなどの詳細が示されます。管理者専用ビューでは、リポジトリ内のドキュメント参照の詳細が示されます。

次の表はビューのリストで、アクセスが許可される対象と詳細情報の入手先を示しています。

表3-2 DICOMリポジトリのビュー

名前 アクセス 詳細の参照先

orddcm_conformance_vld_msgs

パブリック

DICOMリポジトリのパブリック・ビュー

orddcm_constraint_names

パブリック

DICOMリポジトリのパブリック・ビュー

orddcm_document_types

パブリック

DICOMリポジトリのパブリック・ビュー

orddcm_documents

パブリック

DICOMリポジトリのパブリック・ビュー

orddcm_document_refs

管理者のみ

DICOMリポジトリの管理者用ビュー

orddcm_conformance_vld_msgs

orddcm_conformance_vld_msgsビューには、検証操作中に一連の制約に対して生成された制約メッセージがリストされます。

注:

このビューには、現在のユーザーのスキーマに対する制約メッセージのみがリストされます。

orddcm_constraint_names

orddcm_constraint_namesビューには、リポジトリにインストールされている制約の名前がリストされます。

orddcm_document_types

orddcm_document_typesビューには、サポート対象のOracle Multimedia DICOMドキュメント・タイプがコードのリストとともに示されます。

orddcm_documents

orddcm_documentsビューには、リポジトリに格納されているドキュメントの詳細がリストされます。

orddcm_document_refs

管理者専用として、orddcm_document_refsビューには、リポジトリ内のドキュメントで、リポジトリ内の他のドキュメントによって参照されているものがリストされます。

3.2 DICOM開発者および管理者のタスク

各項で説明する次のタスクでは、Oracle Multimedia DICOMを使用したアプリケーション開発で推奨される方法を示します。

3.2.1 タスク1: リポジトリのロード

データベース・セッションを開始するたびに、ユーザーおよび管理者は、データベースからメモリー構造にデータ・モデル・リポジトリをロードする必要があります。ユーザーは、setDataModel( )プロシージャをコールしてデータ・モデルをロードします。管理者は、setDataModel( )プロシージャまたはeditDataModel( )プロシージャをコールして、データ・モデルをロードします。

リポジトリがメモリーにロードされると、ユーザーと管理者は、アプリケーションで新しいデータ・モデルの変更が必要になったときにいつでも、setDataModel( )プロシージャをコールできます。

注:

ユーザーおよび管理者は、他のDICOMメソッド、ファンクションまたはプロシージャをコールする前に、setDataModel( )プロシージャをコールする必要があります。

ORD_DICOMパッケージのDICOMデータ・モデル・ユーティリティを使用して、ユーザーと管理者はsetDataModel( )プロシージャを次のようにコールします。

exec ord_dicom.setdatamodel;

詳細は、setDataModel( )プロシージャおよびeditDataModel( )プロシージャを参照してください。

3.2.2 タスク2: DICOMコンテンツのロード

DICOMコンテンツをOracle Databaseの既存の表にロードするために、SQL*Loaderユーティリティを使用できます。最初に、適切な列を持つ表を作成し、列を初期化する必要があります(ORDDicom列を含む表の作成を参照)。これで、SQL*Loaderユーティリティを呼び出し、データ・ファイルから表の列にDICOMコンテンツをSecureFiles LOBとしてロードできます(SQL*Loaderユーティリティを使用したDICOMコンテンツのロードを参照)。DICOMコンテンツの操作を実行する前に、setDataModel( )プロシージャをコールして、DICOMデータ・モデルをロードする必要があります(setDataModel( )プロシージャを参照)。

DICOMコンテンツがロードされると、DICOMメタデータの抽出、DICOM属性の検索および取得、DICOMメタデータの記述および編集、サムネイル画像の作成、DICOMコンテンツの準拠の検証、機密のDICOMコンテンツの匿名化など、他の操作を実行できます。

SQL*Loaderユーティリティを使用して、DICOMコンテンツをロードし、DICOMコンテンツの特定のメタデータ属性を匿名化する方法を示す例は、DICOMアプリケーション開発を参照してください。

関連項目:

SQL*Loaderユーティリティを使用してオブジェクトおよびLOBをOracle Databaseにロードする方法の詳細は、『Oracle Databaseユーティリティ』

3.2.3 タスク3: DICOMメタデータの抽出

Oracle Multimedia DICOMは、DICOMコンテンツからのメタデータの抽出をサポートします。アプリケーションでは、抽出されたメタデータを検索することで、関連するメタデータを含む特定のDICOMコンテンツを検索できます。

デフォルトのメタデータのXMLスキーマに準拠するXMLドキュメントにすべてのDICOM属性を抽出するには、最初にsetProperties( )メソッドをコールして、メタデータのXMLドキュメントを抽出して、ORDDicomオブジェクトのメタデータ属性に格納します。デフォルトのメタデータのXMLスキーマは、DICOM属性を格納するための完全な汎用データ・モデルを定義します。カスタマイズされたメタデータ・スキーマ、および特定のアプリケーション用にカスタマイズされた対応するマッピング・ドキュメントは、デフォルトの汎用メタデータ・スキーマに比べて、索引付けおよび検索のパフォーマンスが向上する場合があります。カスタム・スキーマおよびマッピング・ドキュメントを使用すると、検索用に最適化された階層構造内で、頻繁に検索されるDICOM属性を定義することができます。

DICOM属性をXMLTypeのアプリケーション固有のXML文書に抽出するには、extractMetadata( )メソッドをコールして、アプリケーション固有のマッピング・ドキュメントを指定します。結果として生成されるアプリケーション固有のメタデータのXMLドキュメントは、表の列に格納することができます。このメタデータは、アプリケーション固有のXMLスキーマにバインドできます。

詳細は、setProperties( )およびextractMetadata( )メソッドを参照してください。

次の各項では、管理者および開発者がメタデータの抽出時に実行する手順を説明します。

3.2.3.1 メタデータの抽出: 管理者のタスク

管理者として、次のタスクを実行し、DICOMメタデータの抽出処理を開始します。

  1. 抽出されたメタデータのXMLスキーマを設計します。一般に、最も頻繁に検索されるDICOM属性は、XMLスキーマのマップされたセクションに含まれます。

    XMLスキーマの詳細は、DICOM XMLスキーマを参照してください

  2. メタデータのXMLスキーマをグローバルまたはローカルXMLスキーマとしてOracle XML DBに登録します。

    注:

    グローバルに登録されたXMLスキーマは、他のデータベース・ユーザーも表示および使用が可能です。ユーザー定義のマッピング・ドキュメントに関連付けられたカスタムのメタデータXMLスキーマが他のユーザーの検証に使用されないようにするには、それらをローカル・スキーマとしてOracle XML DBに登録します。

    関連項目:

    グローバルとローカルのXMLスキーマの詳細は、『Oracle XML DB開発者ガイド』を参照してください

  3. メタデータのXMLスキーマのマッピング・ドキュメントを作成します。
  4. マッピング・ドキュメントをデータ・モデル・リポジトリにロードします。

    詳細は、ドキュメントのリポジトリへの挿入についてを参照してください。

3.2.3.2 メタデータの抽出: 開発者のタスク

開発者として、次のタスクを実行し、DICOMメタデータの抽出処理を完了します。

  1. orddcm_documentsビューを問い合せて、マッピング・ドキュメントがロードされ参照可能なことを確認します。
    select * from orddcm_documents;
    

    詳細は、orddcm_documentsビューを参照してください。

  2. extractMetadata( )メソッドをコールして、マッピング・ドキュメントの名前と適切なパラメータを指定することによって、メタデータをXMLメタデータ・ドキュメントに抽出します。

    詳細は、extractMetadata( )メソッドを参照してください。

  3. 後で検索するために、戻されたXMLメタデータ・ドキュメントをアプリケーション固有のXMLスキーマにバインドされたデータベースの列に格納します。

    関連項目:

    このタスクの詳細は、『Oracle XML DB開発者ガイド』を参照してください。

3.2.4 タスク4: DICOM属性の検索および取得

Oracle Multimedia DICOMは、DICOM属性の検索および取得をサポートします。

SOPインスタンスUID、SOPクラスUID、検査インスタンスUID、およびシリーズ・インスタンスUIDの属性をORDDicomオブジェクト属性に抽出するには、最初にsetProperties( )メソッドをコールして、ORDDicomオブジェクトの属性を移入します。これらのDICOM属性は、ORDDicomオブジェクト内から容易に取得できます。検索をより高速化するために、対応するオブジェクト属性に索引を作成して、これらの属性に索引を付けることもできます。(リファレンス情報は、ORDDicomオブジェクト・タイプリファレンスを参照してください。)

メタデータXMLドキュメント内の属性を検索および取得するには、属性のXPath式を指定してSQL XML関数XMLCast( )、XMLExists( )、XMLQuery( )、XMLTable( )をコールします。検索をより高速化するために、メタデータのXML文書の属性に索引を付けることもできます。

関連項目:

単一のDICOM属性を取得するには、getAttributeByTag( )メソッドまたはgetAttributeByName( )メソッドのいずれかをコールします。この処理は、サイズの大きい表、または複数の属性の取得にはお薦めしません。ただし、この処理を使用する場合は、検索を高速化するために、これらのメソッドでファンクションベースの索引を作成することをお薦めします。(リファレンス情報は、ORDDicomオブジェクト・タイプリファレンスを参照してください。)

注:

DICOM属性の取得を可能にするには、事前にsetProperties( )メソッドコールして、ORDDicomオブジェクトの属性を移入する必要があります(setProperties( )を参照)。

3.2.5 タスク5: DICOMメタデータの記述および編集

Oracle Multimedia DICOMでは、既存のORDDicomオブジェクトからのメタデータの上書きまたは補足による新規ORDDicomオブジェクトの作成がサポートされます。writeMetadata( )メソッドでは、元のORDDicomオブジェクトからの新しいORDDicomオブジェクトのコピー、および追加または変更されたメタデータを含むXMLドキュメントが作成されます。元のORDDicomオブジェクトは保持されます。

DICOMメタデータを記述および編集するには、次のタスクを実行します。

  1. Oracleのデフォルトのマッピング・ドキュメントを使用して、extractMetadata( )メソッドをコールすることによって、元のDICOMコンテンツから、元のDICOMメタデータのコピーを抽出します。

    詳細は、extractMetadata( )メソッドを参照してください。

  2. 抽出されたメタデータのXMLドキュメントのコピーで、DICOM属性を追加または変更します。

    XMLドキュメントのDICOMメタデータの操作の詳細は、DICOM管理の概要を参照してください。

  3. 空のORDDicomコンストラクタを使用して、新しいDICOMコンテンツのプレースホルダとして、空のORDDicomオブジェクトを作成します。

    リファレンス情報については、ORDDicomコンストラクタを参照してください。

  4. writeMetadata( )メソッドをコールして、元のORDDicomオブジェクトからコピーされたメタデータのXMLドキュメントおよびDICOMコンテンツを変更して、新規作成されたORDDicomオブジェクトに記述します。このメタデータXMLドキュメントは、新しいORDDicomオブジェクトでの既存の属性の上書き、および新規属性の追加に使用されます。

    詳細は、writeMetadata( )メソッドを参照してください。

3.2.6 タスク6: DICOMデータの処理、変換、および圧縮

Oracle Multimedia DICOMには、指定されたコマンド・パラメータに従って、DICOMコンテンツのコピーや処理を行い、DICOM形式または他のメディア形式で保存するprocessCopy( )メソッドが用意されています。processCopy( )メソッドを使用すると、新しいコンテンツが作成され、元のDICOMコンテンツも保持されます。

次のリストに、Oracle Multimedia DICOMでサポートされている処理、変換および圧縮操作の概要と、各操作に対応するprocessCopy( )メソッドのコマンド・パラメータの例を示します。

  • JPEGサムネイル画像の作成。たとえば、

    'fileFormat=jpeg, maxScale=100 100'
    
  • 元のDICOM画像と同じサイズのJPEG画像の作成。たとえば、

    'fileFormat=jpeg'
    
  • DICOMコンテンツ内の画像コンテンツの圧縮。たとえば、

    'fileFormat=dicom, compressionFormat=jpeg'
    
  • 複数フレームのDICOMコンテンツからの指定されたフレームの取得。たとえば、

    'frame=10'
    
  • DICOM画像の指定された領域の切取り。たとえば、

    'cut=20 20 100 100'
    
  • マルチフレームDICOMコンテンツを処理してAVI出力にします。たとえば、

    'fileFormat=avi, scale=0.5'
    
  • RLE圧縮を使用してDICOMコンテンツを書き込みます。たとえば、

    'fileFormat=dicom, compressionFormat=dicomrle'
    
  • DICOM形式からMPEGコンテンツを抽出して処理し、MPEG形式にします。たとえば、

    'fileFormat=mpeg'
    
  • DEFLATE圧縮を使用してDICOMコンテンツを書き込みます。たとえば、

    'fileformat=dicom, compressionFormat=deflate, deflateLevel=defaultcompression'
    

processCopy( )メソッドおよびサポートされているコマンド・パラメータの詳細は、ORDDicomメソッドを参照してください。DICOM処理の詳細は、DICOMの処理およびサポートされている形式を参照してください。

3.2.7 タスク7: セカンダリ・キャプチャ・イメージとビデオからのDICOMコンテンツの作成

Oracle Multimedia DICOMには、JPEG、TIFF、MPEG、などの形式のコンテンツおよびデータ型XMLTypeのDIUCOMメタデータなど、セカンダリ・キャプチャ・イメージとビデオからDICOM形式のイメージやビデオを作成するPL/SQL APIプロシージャcreateDicomImage( )があります。

セカンダリ・キャプチャ・イメージまたはビデオとDICOMメタデータからDICOM形式のコンテンツを作成するには、次のタスクを実行します。

  1. 指定されたイメージまたはビデオをBLOBにロードするか、BFILEデータ型として定義します。
  2. 対応するイメージまたはビデオのDICOMメタデータからXMLTypeオブジェクトを作成します。
  3. 新しいDICOMコンテンツのプレースホルダとして、空のBLOBオブジェクトを作成します。
  4. createDICOMImage( )プロシージャを使用して、DICOM形式のイメージまたはビデオを作成します。

    createDicomImage( )プロシージャの詳細は、DICOM PL/SQL APIプロシージャを参照してください。

3.2.8 タスク8: DICOM制約準拠の検証

Oracle Multimedia DICOMでは、isConformanceValid( )メソッドを使用して、DICOM指定された制約に応じたDICOMコンテンツの準拠性の検証がサポートされます。このメソッドを使用して、埋込みDICOMコンテンツが特定の制約セットに準拠しているかどうかを確認します。

準拠の制約とは、DICOM標準規格およびその他の組織全体に適用されるガイドラインに対するDICOMコンテンツの準拠性を検証するルールのコレクションです。これらのルールは、リポジトリに格納されている制約ドキュメントと呼ばれるXMLドキュメントで指定されます。Oracle Multimedia DICOMに付属しているデフォルトの制約ドキュメントでは、DICOM標準規格の一部への準拠を適用するルールが定義されています。

DICOMコンテンツは、様々なソースから発生する可能性があるため、DICOMコンテンツはDICOM標準規格に準拠している場合も、準拠していない場合もあります。リポジトリにDICOMコンテンツを格納する前に、DICOMコンテンツの特定の属性を確認できます。例として、DICOMコンテンツをチェックして患者の性別の属性の値を確認します。DICOM標準規格のPatient Module Attributesに定義されているように、この属性には、M (男性)、F (女性)、O (その他)の値があります。特定の属性の正しい値を確認する制約ルールを定義できます。または、制約ルールのカスタム・セットを定義して、リポジトリ内のすべてのDICOMコンテンツがそれらのルールに準拠していることを確認することもできます。

インストール後に、制約ドキュメントを定義して、組織に固有のユーザー定義の制約ルールを含めることができます。制約名のリストを確認するには、ビューorddcm_constraint_namesを問い合せます。

準拠の検証中に、指定された述語条件に対してメッセージを生成するように制約ルールが定義されており、その条件に一致した場合、述語条件を示すメッセージが生成されます。これらの制約メッセージのリストを確認するには、ビューorddcm_conformance_vld_msgsを問い合せます。

DICOMコンテンツの準拠性を検証するには、管理者と開発者のタスクを組み合せる必要があります。次の各項では、これらのタスクについて説明します。

注:

この項で説明する管理者タスクを最初に実行します。

次の各項では、準拠検証時に実行する管理者および開発者の手順を説明します。

3.2.8.1 準拠の検証: 管理者のタスク

管理者として、次のタスクを実行し、DICOMコンテンツの準拠の検証処理を開始します。

  1. 組織の制約ドキュメントを作成します。このドキュメントでは、指定された述語条件のメッセージを生成する制約ルールを定義できます。

    例3-1に、Oracleでインストールされている制約ドキュメントordcmcmd.xmlに定義されている、DICOM標準規格のPatient Moduleに対する制約ルールを示します。

    詳細は制約ドキュメントの作成についてを参照してください。

  2. 制約ドキュメントをデータ・モデル・リポジトリにロードします。

    詳細は、ドキュメントのリポジトリへの挿入についてを参照してください。

例3-1 Patient Moduleの制約ルール

 <GLOBAL_RULE name="PatientModule">
   <DESCRIPTION>
     A subset of Patient Module defined in DICOM standard
   </DESCRIPTION>
   <PREDICATE>
     <BOOLEAN_FUNC operator="notEmpty">
       <ATTRIBUTE_TAG>00100040</ATTRIBUTE_TAG>
     </BOOLEAN_FUNC>
   </PREDICATE>
   <PREDICATE>
     <DESCRIPTION>Patient's Sex</DESCRIPTION>
     <RELATIONAL operator="in">
       <ATTRIBUTE_TAG>00100040</ATTRIBUTE_TAG>
       <STRING_VALUE>M</STRING_VALUE>
       <STRING_VALUE>F</STRING_VALUE>
       <STRING_VALUE>O</STRING_VALUE>
     </RELATIONAL>
   </PREDICATE>
   <PREDICATE>
     <DESCRIPTION>Referenced patient sequence constraint</DESCRIPTION>
     <LOGICAL operator="derive">
       <PREDICATE>
         <BOOLEAN_FUNC operator="occurs">
           <ATTRIBUTE_TAG>00081120</ATTRIBUTE_TAG>
         </BOOLEAN_FUNC>
       </PREDICATE>
       <PREDICATE>
         <LOGICAL operator="and">
           <PREDICATE>
             <BOOLEAN_FUNC operator="notEmpty">
               <ATTRIBUTE_TAG>00081120.00081150</ATTRIBUTE_TAG>
             </BOOLEAN_FUNC>
           </PREDICATE>
           <PREDICATE>
             <BOOLEAN_FUNC operator="notEmpty">
               <ATTRIBUTE_TAG>00081120.00081155</ATTRIBUTE_TAG>
             </BOOLEAN_FUNC>
           </PREDICATE>    
         </LOGICAL>
       </PREDICATE>
     </LOGICAL>
   </PREDICATE>
   <ACTION action="log" when="false">Validation error: 
     missing mandatory attribute for patient module</ACTION>
   <ACTION action="warning" when="false">Warning: validation failure</ACTION>
 </GLOBAL_RULE>
 
3.2.8.2 準拠の検証: 開発者のタスク

開発者として、次のタスクを実行して、制約ルールに対するDICOMコンテンツの準拠の検証処理を完了します。

  1. orddcm_constraint_namesビューを次のように問い合せて、組織に使用可能な制約名のリストを参照します。
    select * from orddcm_constraint_names;
    

    詳細はorddcm_constraint_namesビューを参照してください。

  2. isConformanceValid( )メソッドを次のようにコールして、DICOMコンテンツの準拠を確認します。
       declare
         cursor dicom_src_cur is       
          select dicom_src from medical_image_obj order by id;
       begin
          for rec in dicom_src_cur loop
            dbms_output.put_line('isConformanceValid(PatientModule): ' ||
              rec.dicom_src.isConformanceValid('PatientModule'));
          end loop;
       end;
       / 
    

    詳細は、isConformanceValid( )メソッドを参照してください。

  3. orddcm_conformance_vld_msgsビューを次のように問い合せて、データの制約の検証中に生成された制約メッセージのリストを参照します。
    select * from orddcm_conformance_vld_msgs;
    

    詳細はorddcm_conformance_vld_msgsビューを参照してください。

DICOMコンテンツが組織に定義された制約ルールに準拠していない場合は、修正されたDICOMメタデータを使用して別のORDDicomオブジェクトを作成できます(タスク5: DICOMメタデータの記述および編集を参照)。

3.2.9 タスク9: 患者の機密データの保護

Oracle Multimedia DICOMでは、患者データの機密性を保証することで、患者のプライバシの保護がサポートされます。一般に、makeAnonymous( )メソッドのコール前にisAnonymous( )メソッドをコールして、指定されたORDDicomオブジェクトの患者の機密データが指定の匿名ドキュメントに従って削除または置換されているかどうかを確認します。makeAnonymous( )メソッドをコールして、患者の機密データを削除または置換します。このメソッドを使用すると、新しいORDDicomオブジェクトが作成され、元のORDDicomオブジェクトは保持されます。

これらの両方のメソッドで、リポジトリに格納されているXML文書の匿名ドキュメントを使用して、匿名化する必要のある患者を特定する情報を判断します。匿名化する一連の属性を指定する他に、匿名ドキュメントでは、それらの属性を匿名化するために実行するアクションも指定します。

インストール後、Oracle Multimedia DICOMで提供されるデフォルトの匿名ドキュメントを使用できます。または、必要に応じて、カスタマイズした匿名ドキュメントを追加して、患者の機密データを上書きまたは削除できます。

次の各項では、機密データを匿名化する際に管理者および開発者が実行する手順を説明します。

3.2.9.1 プライバシの保護: 管理者のタスク

管理者として、次のタスクを実行して、患者の機密データを匿名化する処理を開始します。

  1. 削除または置換を行うDICOM属性を定義する匿名ドキュメントを作成します。

    詳細は匿名ドキュメントの作成についてを参照してください。

  2. 匿名ドキュメントをデータ・モデル・リポジトリにロードします。

    詳細は、ドキュメントのリポジトリへの挿入についてを参照してください。

3.2.9.2 プライバシの保護: 開発者のタスク

開発者として、次のタスクを実行して、患者の機密データを匿名化する処理を完了します。

  1. orddcm_documentsビューを次のように問い合せて、データ・モデル・リポジトリにロードされた匿名ドキュメントのリストを参照します。
    select * from orddcm_documents;
    

    詳細は、orddcm_documentsビューを参照してください。

  2. makeAnonymous( )メソッドをコールする場合は、空のORDDicomコンストラクタを使用して、空のORDDicomオブジェクトを作成します。空のORDDicomオブジェクトは、新しいORDDicomオブジェクトのプレースホルダとして使用されます。次のように、空のオブジェクトを作成します。
     insert into medical_image_obj (id, dicom_src)
        values (3, ORDDicom());
    

    詳細はORDDicomコンストラクタを参照してください。

  3. isAnonymous( )メソッドをコールして、指定された匿名ドキュメントに従って、元のORDDicomオブジェクトが匿名化されていることをチェックします。
       select t.dicom_src.isAnonymous('ordcman.xml') from medical_image_obj t;
    

    詳細はisAnonymous( )メソッドを参照してください。

  4. makeAnonymous( )メソッドをコールして、元のORDDicomオブジェクトをコピーして匿名化してから、新しい空のORDDicomオブジェクトに新しいDICOMコンテンツを書き込みます。次のように、このメソッドをコールします。
     declare
       obj_src orddicom;
       obj_dest orddicom;
       dest_sop_instance_uid varchar2(128) := '<unique-UID>';
     begin
       select dicom_src, dicom_dest  into obj_src, obj_dest
       from medical_image_obj where id = 1 for update;
       obj_src.makeAnonymous(dest_sop_instance_uid, obj_dest, 'ordcman.xml');
    
       update medical_image_obj set dicom_dest = obj_dest where id = 1;
     end;
    /
    

    詳細は、makeAnonymous( )メソッドを参照してください。

3.2.10 タスク10: DICOM属性抽出時の記憶域の改善

Oracle Multimedia DICOMには、setProperties( )メソッドによって抽出されるDICOM属性のリストを制限する機能が用意されています。すべての属性ではなく、選択された属性セットのみを抽出すると、setProperties( )メソッドのパフォーマンスが改善され、記憶域の所要量が減少します。Oracle Multimedia DICOMでは、リポジトリ内のストアド・タグ・リスト構成ドキュメントによってこれがサポートされます。ストアド・タグ・リスト・ドキュメントは、setProperties( )メソッドがコールされたときに、埋込みDICOMコンテンツから抽出され、ORDDicomオブジェクトのXMLメタデータ属性に格納されるDICOM属性を指定します。

ストアド・タグ・リスト・ドキュメントの作成の詳細は、ストアド・タグ・リスト・ドキュメントの作成についてを参照してください。

ストアド・タグ・リスト・ドキュメントをリポジトリに挿入する方法を示すサンプル・セッションは、サンプル・セッション4: ストアド・タグ・リスト・ドキュメントの挿入を参照してください。

リファレンス情報については、generateTagListDocument( )関数を参照してください。