最近在一个站点,我们有很多丢失的图像,我必须恢复。该站点是一家医院,我能够恢复所有图像并将所有内容放入一个临时表中,其中包括受影响的:遭遇、病历编号、文档和字幕。我现在正在尝试创建一个长文本文件来显示每个受影响的遭遇,如果该遭遇有多个文档,它将显示该遭遇的所有文档。每个受影响的帐户将在文件中以 %%START 开头并以 %%END 结尾。我想要做到这一点,最好做一个游标来对这张表中的遭遇进行排序。然后....光标浏览该遭遇的所有文件以包括该遭遇。我的脚本如下所示:
declare
@name varchar(40),
@mrn varchar(20),
@encounter varchar(20),
@document varchar(30),
@subtitle varchar(30),
@cmd varchar(255),
@count int
declare find_affected cursor for
select distinct p.name, m.mrn, m.encounter from mck_hpf..missing_documents m
join his..patients p on m.mrn=p.mrn
open find_affected
fetch next from find_affected into @mrn, @name, @encounter while
@@FETCH_STATUS=0
begin
select @mrn = mrn from mck_hpf.dbo.missing_documents where encounter = @encounter
select @name=name from his.dbo.patients where mrn=@mrn
select @encounter = encounter from mck_hpf.dbo.missing_documents where encounter = @encounter
Print '%%START'
Print ''
Print 'Name: ' + @name
Print 'MRN: ' + @mrn
Print 'Encounter: ' + @encounter
Print 'Possible affected documents in this chart:'
declare find_document cursor for
select distinct(document), subtitle from mck_hpf..missing_documents m
join his..encounters e on e.encounter=m.encounter where @mrn=m.mrn and @encounter=m.encounter
open find_document
fetch next from find_document into @document, @subtitle
while @@FETCH_STATUS=0
begin
select @document = document from mck_hpf.dbo.missing_documents where encounter = @encounter
select @subtitle = subtitle from mck_hpf.dbo.missing_documents where encounter = @encounter and document=@document
Print @document + '-' + @subtitle
fetch next from find_document into @document, @subtitle
end
close find_document
deallocate find_document
Print ''
Print ''
Print '%%END'
fetch next from find_affected into @mrn, @name, @encounter
end
close find_affected
deallocate find_affected
go
该脚本运行良好,并且可以正确循环遇到……但由于某种原因,它不适用于文档。示例....遇到 123 在 missing_documents 表中有 2 个文档让我们说称为 UB04 和 1500....当脚本完成时,而不是说:
Name: Mickey Mouse
MRN: 11111111
Encounter: 123456789
此图表中可能受影响的文档:
UB04
1500
它会说:
Name: Mickey Mouse
MRN: 11111111
Encounter: 123456789
此图表中可能受影响的文档:
UB04
UB04
就像光标知道有 2 个丢失的文档,但它一遍又一遍地重复找到的第一个文档。IT 对所有遭遇执行此操作……如果缺少 6 个文档,它会拾取第一个并不断重复。
我花了一段时间才达到这一点并让它工作,我只是不知道从哪里开始,因为我认为我的代码看起来是正确的。我在这里搜索但没有找到任何可以帮助我的东西。任何帮助,将不胜感激。非常感谢你