轉帖|使用教程|編輯:楊鵬連|2021-01-29 13:52:52.133|閱讀 204 次
概述:本文將主要介紹LEAD存儲服務器數據庫的數據查詢方式,LEAD存儲服務器數據庫和教程數據庫的數據庫查詢都遵循相同的模式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
LEADTOOLS Recognition Imaging SDK是精選的LEADTOOLS SDK功能集,旨在在企業級文檔自動化解決方案中構建端到端文檔成像應用程序,這些解決方案需要OCR,MICR,OMR,條形碼,表單識別和處理,PDF,打印捕獲 ,檔案,注釋和圖像查看功能。 這套功能強大的工具利用LEAD屢獲殊榮的圖像處理技術,智能識別可用于識別和提取任何類型的掃描或傳真形式圖像數據的文檔功能。
點擊下載LEADTOOLS Recognition Imaging SDK試用版
概述
本文將主要介紹LEAD存儲服務器數據庫的數據查詢方式,LEAD存儲服務器數據庫和教程數據庫的數據庫查詢都遵循相同的模式:
在為每個數據庫表定義存儲目錄和CatalogEntity類(對于本教程為MyPatient,MyStudy,MySeries和MyInstance)之后,可以使用Leadtools.Medical.DataAccessLayer.SqlProviderUtilities.GenerateWhereStatement()方法來生成WHERE查詢語句。
我們為本教程創建的MyStorageSqlDataAccessAgent類將覆蓋許多用于創建SQL命令的StorageSqlDbDataAccessAgent方法。 下面顯示了準備SQL查詢(不包括SQL WHERE語句)的每個示例,以便您可以了解如何構建這些查詢方式。
protected override void PreparePatientsQueryCommand
BEGIN SET NOCOUNT ON CREATE TABLE \#PrimaryKeys ( PatientId [int], StudyId [int], SeriesId [int], ImageId [int] ) INSERT INTO \#PrimaryKeys SELECT MyPatientTable.PatientId, MyStudyTable.StudyId, MySeriesTable.SeriesId, MyInstanceTable.ImageId FROM MyPatientTable LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyPatientId = MyPatientTable.PatientId LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesStudyId = MyStudyTable.StudyId LEFT OUTER JOIN MyInstanceTable ON MyInstanceTable.ImageSeriesId = MySeriesTable.SeriesId SET NOCOUNT OFF SELECT \* FROM MyPatientTable WHERE PatientId IN ( SELECT PatientId FROM \#PrimaryKeys ) DROP TABLE \#PrimaryKeys END **protected override void PrepareStudiesQueryCommand** BEGIN SET NOCOUNT ON CREATE TABLE \#PrimaryKeys ( PatientId [int], StudyId [int], SeriesId [int], ImageId [int] ) INSERT INTO \#PrimaryKeys SELECT MyPatientTable.PatientId, MyStudyTable.StudyId, MySeriesTable.SeriesId, MyInstanceTable.ImageId FROM MyStudyTable LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesStudyId = MyStudyTable.StudyId LEFT OUTER JOIN MyInstanceTable ON MyInstanceTable.ImageSeriesId = MySeriesTable.SeriesId SET NOCOUNT OFF SELECT \* FROM MyPatientTable WHERE PatientId IN ( SELECT PatientId FROM \#PrimaryKeys ) SELECT \* FROM MyStudyTable WHERE StudyId IN ( SELECT StudyId FROM \#PrimaryKeys ) DROP TABLE \#PrimaryKeys ENDprotected override void PrepareSeriesQueryCommand
BEGIN SET NOCOUNT ON CREATE TABLE \#PrimaryKeys ( PatientId [int], StudyId [int], SeriesId [int], ImageId [int] ) INSERT INTO \#PrimaryKeys SELECT MyPatientTable.PatientId, MyStudyTable.StudyId, MySeriesTable.SeriesId, MyInstanceTable.ImageId FROM MySeriesTable LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyId = MySeriesTable.SeriesStudyId LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId LEFT OUTER JOIN MyInstanceTable ON MyInstanceTable.ImageSeriesId = MySeriesTable.SeriesId SET NOCOUNT OFF SELECT \* FROM MyPatientTable WHERE PatientId IN ( SELECT PatientId FROM \#PrimaryKeys ) SELECT \* FROM MyStudyTable WHERE StudyId IN ( SELECT StudyId FROM \#PrimaryKeys ) SELECT \* FROM MySeriesTable WHERE SeriesId IN ( SELECT SeriesId FROM \#PrimaryKeys ) DROP TABLE \#PrimaryKeys ENDprotected override void PrepareInstanceQueryCommand
BEGIN SET NOCOUNT ON CREATE TABLE \#PrimaryKeys ( PatientId [int], StudyId [int], SeriesId [int], ImageId [int] ) INSERT INTO \#PrimaryKeys SELECT MyPatientTable.PatientId, MyStudyTable.StudyId, MySeriesTable.SeriesId, MyInstanceTable.ImageId FROM MyInstanceTable LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesId = MyInstanceTable.ImageSeriesId LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyId = MySeriesTable.SeriesStudyId LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId SET NOCOUNT OFF SELECT \* FROM MyPatientTable WHERE PatientId IN ( SELECT PatientId FROM \#PrimaryKeys ) SELECT \* FROM MyStudyTable WHERE StudyId IN ( SELECT StudyId FROM \#PrimaryKeys ) SELECT \* FROM MySeriesTable WHERE SeriesId IN ( SELECT SeriesId FROM \#PrimaryKeys ) SELECT \* FROM MyInstanceTable WHERE ImageId IN ( SELECT ImageId FROM \#PrimaryKeys ) DROP TABLE \#PrimaryKeys ENDprotected override void PrepareDeletePatientsCommand
DELETE FROM MyPatientTable WHERE ( MyPatientTable.PatientId IN ( SELECT MyPatientTable.PatientId FROM MyInstanceTable LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesId = MyInstanceTable.ImageSeriesId LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyId = MySeriesTable.SeriesStudyId LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId ) )protected override void PrepareDeleteStudiesCommand
DELETE FROM MyStudyTable WHERE ( MyStudyTable.StudyId IN ( SELECT MyStudyTable.StudyId FROM MyInstanceTable LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesId = MyInstanceTable.ImageSeriesId LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyId = MySeriesTable.SeriesStudyId LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId ) )protected override void PrepareDeleteSeriesCommand
DELETE FROM MySeriesTable WHERE ( MySeriesTable.SeriesId IN ( SELECT MySeriesTable.SeriesId FROM MyInstanceTable LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesId = MyInstanceTable.ImageSeriesId LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyId = MySeriesTable.SeriesStudyId LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId ) )protected override void PrepareDeleteInstanceCommand
DELETE FROM MyInstanceTable WHERE ( MyInstanceTable.SOPInstanceUID IN ( SELECT MyInstanceTable.SOPInstanceUID FROM MyInstanceTable LEFT OUTER JOIN MySeriesTable ON MySeriesTable.SeriesId = MyInstanceTable.ImageSeriesId LEFT OUTER JOIN MyStudyTable ON MyStudyTable.StudyId = MySeriesTable.SeriesStudyId LEFT OUTER JOIN MyPatientTable ON MyPatientTable.PatientId = MyStudyTable.StudyPatientId ) )protected override void PrepareDeletePatientsNoChildStudiesCommand
DELETE FROM MyPatientTable WHERE MyPatientTable.PatientId NOT IN ( SELECT MyStudyTable.StudyPatientId FROM MyStudyTable ) **protected override void PrepareDeleteStudiesNoChildSeriesCommand** DELETE FROM MyStudyTable WHERE MyStudyTable.StudyId NOT IN ( SELECT MySeriesTable.SeriesStudyId FROM MySeriesTable )protected override void PrepareDeleteSeriesNoChildInstancesCommand
DELETE FROM MySeriesTable WHERE MySeriesTable.SeriesId NOT IN ( SELECT MyInstanceTable.ImageSeriesId FROM MyInstanceTable )protected override void PrepareIsPatientExistsCommand
SELECT StudyStudyInstanceUID
FROM MyStudyTableWHERE StudyStudyInstanceUID='2222'
protected override void PrepareIsStudyExistsCommand
SELECT StudyStudyInstanceUIDFROM MyStudyTable
WHERE StudyStudyInstanceUID='2222'
protected override void PrepareIsSeriesExistsCommand
SELECT SeriesSeriesInstanceUIDWHERE SeriesSeriesInstanceUID='3333'
protected override void PrepareIsInstanceExistsCommand
SELECT SOPInstanceUIDWHERE SOPInstanceUID='4444'
了解更多
這是本系列的第五篇文章,本文介紹了LEAD醫學存儲服務器數據庫的數據查詢方式,我們將在《LEAD醫療存儲服務器自定義數據庫系列教程 –自定義醫療存儲數據訪問層》系列的第六篇文章中,著重介紹LEAD醫用存儲服務器數據庫如何自定義醫療存儲數據訪問層。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn