3 DICOMの開発の概要

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

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

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オブジェクト型のリファレンス

Mid-Tier Java API

管理者および開発者

Oracle Multimedia Mid-Tier Java APIリファレンス

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スキーマが他のユーザーの検証に使用されないようにするには、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( )メソッド(setProperties( )を参照)をコールして、ORDDicomオブジェクトの属性を移入する必要があります。

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( )メソッドをコールして、変更されたメタデータのXMLドキュメントのコピーと元のORDDicomオブジェクトからの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のDICOMメタデータを含むセカンダリ・キャプチャ・イメージおよびビデオから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オブジェクトをコピーし、オブジェクトを匿名化して、新しいDICOMコンテンツを空の新しいORDDicomオブジェクトに記述します。次のように、このメソッドをコールします。
     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( )ファンクションを参照してください。