DECLARE PAGE CURSOR Forward_Only Read_Only FOR SELECT DD.PATH, DD.Filename, DD.PAGE FROM IMPACTMD.dbo.Doc_Detail DD WHERE documentid = @documentid ORDER BY DD.Filename, DD.PAGE OPEN PAGE FETCH NEXT FROM PAGE INTO @PATH , @Filename, @PAGE SET @ProcessDocument = 'Y' SET @PageCount = 0 WHILE @@FETCH_STATUS = 0 . . .Full code:
SET NOCOUNT ON DECLARE @poscode AS VARCHAR(10), @posdesc AS VARCHAR(100), @acctno AS VARCHAR(20), @provcode AS VARCHAR(20), @PatientID AS VARCHAR(25), @ChartNumber AS VARCHAR(30), @ChartID AS VARCHAR(30), @Last_Name AS VARCHAR(30), @First_Name AS VARCHAR(30), @Middle_Initial AS VARCHAR(5), @Sex AS CHAR(1), @DOB AS CHAR(10), @SSN AS CHAR(11), @ID AS VARCHAR(20), @LastName AS VARCHAR(30), @FirstName AS VARCHAR(30), @MiddleInitial AS VARCHAR(5), @TITLE AS VARCHAR(10), @Suffix AS VARCHAR(10), @UPIN AS VARCHAR(20), @NAME AS VARCHAR(100), @LocID VARCHAR(20), @DocDateTime AS VARCHAR(8), @DocumentName AS VARCHAR(80), @OldDocDateTime AS VARCHAR(22), @OldSubject AS VARCHAR(80), @Filename AS VARCHAR(50), @PATH AS VARCHAR(50), @PAGE AS VARCHAR(10), @documentid AS VARCHAR(40), @SQL AS VARCHAR(8000), @COPYSCRIPT AS nvarchar(4000), @CREATEDIRSCRIPT AS nvarchar(4000), @DELETEDIRSCRIPT AS nvarchar(4000), @Folder AS VARCHAR(100), @Export_FileName AS VARCHAR(100), @Merge_Script AS nvarchar(4000), @RTFScript AS nvarchar(4000), @Copy_Script AS nvarchar(4000), @PageCount AS INTEGER, @cmd AS varchar(1000), @SourceFileExists AS nvarchar(1), @TargetFileExists AS nvarchar(1), @ProcessDocument AS nvarchar(1), @FirstFile AS VARCHAR(100), @ImageRootDirectory AS VARCHAR(100), @ImageExportDirectory AS VARCHAR(100), @TiffMergerDirectory AS VARCHAR(100), @RTFConverterDirectory AS VARCHAR(100), @TreatMergeAsCopy AS nvarchar(1) -- SET @TreatMergeAsCopy = 'N' SET @TreatMergeAsCopy = 'Y' SET @ImageRootDirectory = 'G:\Fox_Meadows\Document_Conversion\ImpactMD\Images\' SET @ImageExportDirectory = 'G:\Fox_Meadows\Documents\' SET @TiffMergerDirectory = 'G:\Fox_Meadows\Document_Conversion\ImpactMD\Tiff\' SET @RTFConverterDirectory = 'G:\Fox_Meadows\Document_Conversion\ImpactMD\Tiff\' USE ImpactMD DECLARE ChartID CURSOR Forward_Only FOR SELECT DISTINCT (P.ChartID) FROM IMPACTMD.dbo.Patients P INNER JOIN IMPACTMD.dbo.Doc_Header H ON H.PatientID = P.PatientID -- Testing Only! -- WHERE -- ChartID = '1601' -- OR ChartID = '286' -- OR ChartID = '1008' OPEN ChartID FETCH NEXT FROM ChartID INTO @ChartID WHILE @@FETCH_STATUS = 0 BEGIN PRINT '' PRINT '---------------------------------------------------------------------' PRINT 'ChartID: ' + @ChartID PRINT '---------------------------------------------------------------------' DECLARE Patient CURSOR Forward_Only Read_Only FOR SELECT DISTINCT ISNULL(CONVERT(VARCHAR(8),H.DATE,112),'') AS DocumentDate, ISNULL(H.DocumentName,'') , ISNULL(H.documentid,'') , ISNULL(FT.DESCRIPTION,'') FROM IMPACTMD.dbo.Patients P INNER JOIN IMPACTMD.dbo.Doc_Header H ON H.PatientID = P.PatientID INNER JOIN IMPACTMD.dbo.Folder_Template FT ON H.FolderID = FT.FolderID WHERE P.ChartID = @ChartID OPEN Patient FETCH NEXT FROM Patient INTO @DocDateTime , @DocumentName, @documentid , @Folder WHILE @@FETCH_STATUS = 0 BEGIN DECLARE PAGE CURSOR Forward_Only Read_Only FOR SELECT DD.PATH, DD.Filename, DD.PAGE FROM IMPACTMD.dbo.Doc_Detail DD WHERE documentid = @documentid ORDER BY DD.Filename, DD.PAGE OPEN PAGE FETCH NEXT FROM PAGE INTO @PATH , @Filename, @PAGE SET @ProcessDocument = 'Y' SET @PageCount = 0 WHILE @@FETCH_STATUS = 0 BEGIN CREATE TABLE #SourceFiles(s varchar(1000)) SELECT @cmd = 'dir /B ' + '"' + @ImageRootDirectory + @Path + @FileName + '"' INSERT #SourceFiles EXEC master..xp_cmdshell @cmd IF EXISTS (SELECT * FROM #SourceFiles WHERE s = @FileName) BEGIN SET @SourceFileExists = 'Y' --PRINT 'Source file ' + @ImageRootDirectory + @Path + @FileName + ' exists' END ELSE BEGIN SET @SourceFileExists = 'N' --PRINT 'Source file ' + @ImageRootDirectory + @Path + @FileName + ' does not exist' END DROP TABLE #SourceFiles IF @Filename COLLATE Latin1_General_CI_AI LIKE '%.TIF%' COLLATE Latin1_General_CI_AI OR @Filename COLLATE Latin1_General_CI_AI LIKE '%.DOC%' COLLATE Latin1_General_CI_AI BEGIN IF @PAGE = 1 BEGIN SET @PageCount = 1 SET @FirstFile = @ImageRootDirectory + @PATH + @Filename SET @Export_FileName = 'EXP_' + @Filename COLLATE Latin1_General_CI_AI -- Currently G:\TCimages and F:\Images1 on client box SET @Merge_Script = @ImageRootDirectory + @PATH + @Filename + ',' SET @Copy_Script = 'copy ' + '"' + @ImageRootDirectory + @PATH COLLATE Latin1_General_CI_AI + @Filename COLLATE Latin1_General_CI_AI + '" "' + @ImageExportDirectory + @Path COLLATE Latin1_General_CI_AI + @Export_FileName + '"' CREATE TABLE #TargetFiles(s varchar(1000)) SELECT @cmd = 'dir /B ' + '"' + @ImageExportDirectory + @Path + @Export_FileName + '"' INSERT #TargetFiles EXEC master..xp_cmdshell @cmd IF EXISTS (SELECT * FROM #TargetFiles WHERE s = @Export_FileName) BEGIN SET @TargetFileExists = 'Y' --PRINT 'Target file ' + @ImageRootDirectory + @Path + @FileName + ' exists' SET @ProcessDocument = 'N' -- Target File Family already exists, so do not process again END ELSE BEGIN SET @TargetFileExists = 'N' --PRINT 'Target file ' + @ImageRootDirectory + @Path + @FileName + ' does not exist' END DROP TABLE #TargetFiles END IF @PAGE <> 1 ANd @Filename COLLATE Latin1_General_CI_AI LIKE '%.TIF%' COLLATE Latin1_General_CI_AI BEGIN SET @PageCount = @PageCount + 1 SET @Merge_Script = @Merge_Script + @ImageRootDirectory + @PATH + @Filename + ',' END IF @ProcessDocument = 'Y' AND @TreatMergeAsCopy = 'Y' BEGIN SET @Copy_Script = 'copy ' + '"' + @ImageRootDirectory + @PATH COLLATE Latin1_General_CI_AI + @Filename COLLATE Latin1_General_CI_AI + '" "' + @ImageExportDirectory + @Path COLLATE Latin1_General_CI_AI + 'EXP_' + @FileName + '"' PRINT 'COPY: ' + @Copy_Script EXEC MASTER.dbo.xp_cmdshell @Copy_Script, no_output END END FETCH NEXT FROM PAGE INTO @PATH , @Filename, @PAGE END CLOSE PAGE DEALLOCATE PAGE /* IF @ProcessDocument = 'Y' AND @PageCount > 1 BEGIN SET @Merge_Script = LEFT(@Merge_Script,LEN(LTRIM(RTRIM(@Merge_Script))) -1) SET @Merge_Script = @Merge_Script + '|' + @ImageExportDirectory + @Path + '|' + @Export_FileName SET @Merge_Script = @TiffMergerDirectory + 'Tiff_Merger.exe "' + @Merge_Script + '"' -- Testing ONLY! --PRINT 'TIF: ' + @Merge_Script --EXEC MASTER.dbo.xp_cmdshell @Merge_Script, no_output END IF @ProcessDocument = 'Y' AND @PageCount = 1 BEGIN -- Testing ONLY! --PRINT 'COPY: ' + @Copy_Script --EXEC MASTER.dbo.xp_cmdshell @Copy_Script, no_output END IF @ProcessDocument = 'N' BEGIN -- Testing ONLY! PRINT 'Skipped: ' + @FirstFile END */ FETCH NEXT FROM Patient INTO @DocDateTime , @DocumentName, @documentid , @Folder END CLOSE Patient DEALLOCATE Patient FETCH NEXT FROM ChartID INTO @ChartID END CLOSE ChartID DEALLOCATE ChartID SET NOCOUNT OFF