Oracle中提供的一些相關媒體對象與過程都是在Oracle模式裡去定義建立包含 ORDDicom 列的表。如果你在Oracle模式的相關操作裡存在不解之處的話,你就可以浏覽以下的文章對其進行了解。
本教程使用一個包含四個列的簡單表:一個整數標識符 (id)、一個 ORDSYS.ORDDicom 對象 (dicom)、一個 ORDSYS.ORDImage 對象 (imageThumb) 和另一個ORDSYS.ORDDicom 對象 (anonDicom)。注意,Oracle 提供的所有多媒體對象和過程都在Oracle模式中定義。執行以下步驟:
1.在 SQL*Plus 會話中,執行以下命令:
- @create_dicom_table
create_dicom_table.sql代碼如下:
Java代碼
- set echo on;
- drop table medical_image_table;
- create table medical_image_table
- (id integer primary key,
- dicom ordsys.orddicom,
- imageThumb ordsys.ordimage,
- anonDicom ordsys.orddicom);
- set echo on;
- drop table medical_image_table;
- create table medical_image_table
- (id integer primary key,
- dicom ordsys.orddicom,
- imageThumb ordsys.ordimage,
- anonDicom ordsys.orddicom);
導入醫學圖像
該主題描述了如何將數據庫文件系統中的醫學圖像加載到新創建的medical_image_table表中。注意,在大多數情況下,您希望使用 SQL*Loader 而不是本例所示的Oracle模式中定義中 ORDDicom 導入方法加載數據。
創建一個 PL/SQL 過程image_import(),該過程將把一個新行插入medical_image_table,將文件名中的 DICOM 數據導入新創建的 ORDDICOM 對象,然後將 DICOM 屬性提取到元數據屬性(基於默認映射文檔)和 ORDDICOM 對象的 UID 屬性。注意,默認映射文檔ordcmmp.XML在安裝期間加載。
您可以創建一個自定義映射文檔,並將屬性提取到單獨的 XML 文檔中,但該主題不在本教程的討論范圍內。
執行以下步驟:
1.在 SQL*Plus 會話中,輸入以下命令:
- @create_import_procedure
create_import_procedure.sql代碼如下:
Java代碼
- -- Set Data Model Repository
- execute ordsys.ord_dicom.setDataModel();
- create or replace procedure image_import
(dest_id number, filename varchar2) is- dcm ordsys.orddicom;
- begin
- delete from medical_image_table where id
= dest_id;- insert into medical_image_table
(id, dicom, imageThumb, anonDicom)- values (dest_id, ordsys.orddicom
(‘file’, ‘IMAGEDIR’, filename, 0),- ordsys.ordimage.init(), ordsys.orddicom())
- returning dicom into dcm;
- dcm.import(1);
- update medical_image_table set dicom=
dcm where id=dest_id;- commit;
- end;
- /
- show errors;
- -- Set Data Model Repository
- execute ordsys.ord_dicom.setDataModel();
- create or replace procedure image_import
(dest_id number, filename varchar2) is- dcm ordsys.orddicom;
- begin
- delete from medical_image_table where id
= dest_id;- insert into medical_image_table
(id, dicom, imageThumb, anonDicom)- values (dest_id, ordsys.orddicom
(‘file’, ‘IMAGEDIR’, filename, 0),- ordsys.ordimage.init(), ordsys.orddicom())
- returning dicom into dcm;
- dcm.import(1);
- update medical_image_table set dicom=
dcm where id=dest_id;- commit;
- end;
- /
- show errors;
2.現在,您可以執行新創建的過程,以導入示例 DICOM 文件。在 SQL*Plus 會話中,輸入以下命令:
Java代碼
- execute image_import(1,'179.dcm');
- execute image_import(1,'179.dcm');