JeffS23
Posting Yak Master
212 Posts |
Posted - 2007-05-03 : 19:18:47
|
I think I have a small issue with my Syntax somewhere ....This is the specific section of the query I need help on (this is how it was prior to me changing it): ResourceID = ISNULL((SELECT TOP 1 DoctorFacilityID FROM DoctorFacility r INNER JOIN PatientVisitResource pvr ON pvr.ResourceID = r.DoctorFacilityID WHERE pvr.PatientVisitID = #Patients.PatientVisitID),#Patients.DoctorID)Instead of the client needing the DoctorFacilityID (int), she wants to pull the DotID (varchar). So I went in and did this:UPDATE #Patients SET ResourceID = ISNULL((SELECT TOP 1 r.DotID as ResourceID FROM DoctorFacility r INNER JOIN PatientVisitResource pvr ON pvr.ResourceID = r.DoctorFacilityID WHERE pvr.PatientVisitID = #Patients.PatientVisitID),#Patients.DoctorID)and now Im getting this:Server: Msg 245, Level 16, State 1, Line 288Syntax error converting the varchar value 'OB718' to a column of data type int.Ive tried every combo of CAST and CONVERT and seem to be missing something!! Can anyone help me change this from DoctorFacilityID to DotID? The Whole Query:/* UDS Schedule 5 - Rev. 12/05/2004 - Add Homeless Filter 12/15/2004 Add Void Visit Filter12/16/2004 Resource Types 04/07/05 by Insurance Carrier01/31/2006 Added Duplicate Encounter Filter03/01/2006 Change behavior based on use of qualifiers*/SET NOCOUNT ONdeclare @qmed intdeclare @qden intdeclare @qbh intdeclare @qsa intdeclare @qen intdeclare @qop intselect @qmed=medlistsid from medlists where tablename = 'ProcedureCodeQualifier' and Description='HCPC - MED'select @qden=medlistsid from medlists where tablename = 'ProcedureCodeQualifier' and Description='HCPC - DEN'select @qbh =medlistsid from medlists where tablename = 'ProcedureCodeQualifier' and Description='HCPC - BH'select @qsa =medlistsid from medlists where tablename = 'ProcedureCodeQualifier' and Description='HCPC - SA'select @qen =medlistsid from medlists where tablename = 'ProcedureCodeQualifier' and Description='HCPC - EN'select @qop =medlistsid from medlists where tablename = 'ProcedureCodeQualifier' and Description='HCPC - OP'declare @db varchar(255)select @db=db_name()create table #UDSTMP(PatientProfileID int,PatientID varchar(255),[Last] varchar(255),Suffix varchar(255), [First] varchar(255),Middle varchar(255),Birthdate datetime,Sex varchar(1),ListNamea varchar(255), Homeless varchar(255),HomelessStatusID varchar(255), AgWrkrStatusID varchar(255),ListName varchar(255),ListNameb varchar(255),FacilityID int,TicketNumber varchar(255), Visit datetime,PatientVisitID int,DoctorID int,Voided int, CompanyID int, ProceduresID int, CPTProcedureCodeQualifierMId int, DepartmentMId int,PrimaryInsuranceCarriersID int, DOS datetime)insert into #UDSTMPexec master..chcxp_UDS @db,2,'04/01/2007','04/30/2007'update uset u.homeless=h.homeless,u.homelessstatusid=h.homelessstatusidfrom #udstmp ujoin (select patientprofileid,min(visit) as visit from #udstmp where homeless=1 group by patientprofileid) t on t.patientprofileid=u.patientprofileidjoin #udstmp h on t.patientprofileid=h.patientprofileid and t.visit=h.visitupdate uset u.homeless=h.homeless,u.homelessstatusid=h.homelessstatusidfrom #udstmp ujoin (select uu.patientprofileid,min(uu.visit) as visit from #udstmp uuleft join (select patientprofileid,min(visit) as visit from #udstmp where homeless=1 group by patientprofileid) tt on tt.patientprofileid=uu.patientprofileidwhere tt.patientprofileid is nullgroup by uu.patientprofileid) t on t.patientprofileid=u.patientprofileidjoin #udstmp h on t.patientprofileid=h.patientprofileid and t.visit=h.visitCREATE TABLE #Patients ( PatientProfileID int, PatientID varchar(15), PatientName varchar(100), Birthdate datetime, Sex varchar(1), DoctorName varchar(75), Resource varchar(75), Homeless bit, Flag varchar(50), FacilityName varchar(75), FacilityID varchar(20), TicketNumber varchar(15), Visit datetime, PatientVisitID int, DoctorID int, ResourceID int, ResourceType varchar(75), DuplicateVisit int, Qualifier varchar(255), DOS datetime)DECLARE @NewVisitID int, @OldFacID varchar(20), @NewFacID varchar(20), @OldVisitDate datetime, @NewVisitDate datetime, @OldPtID int,@NewPtID int, @NewQual varchar(255),@OldQual varchar(255),@OldDrID int,@NewDrID intIF (ISNULL(1,0)>1)BEGININSERT INTO #PatientsSELECT PatientProfileID, PatientID, RTRIM(RTRIM(ISNULL(t.[Last], '') + ' ' + ISNULL(t.Suffix, '')) + ', ' + ISNULL(t.[First], '') + ' ' + ISNULL(t.Middle, '')) AS PatientName, Birthdate, Sex, ISNULL(ic.DotID,'0') AS DoctorName, ' ' AS Resource, ISNULL(Homeless,0) , '(none)' , ISNULL(t.ListName,'None'), ISNULL(df.DotID,'0'), TicketNumber, Visit, PatientVisitID, DoctorID, 0, '', 0, isnull(ml.Description,'Unknown'), DOSFROM #UDSTMP tleft join medlists ml on t.CPTProcedureCodeQualifierMId =ml.medlistsidjoin DoctorFacility df on t.FacilityID = df.DoctorFacilityIDleft join InsuranceCarriers ic ON t.PrimaryInsuranceCarriersID = ic.InsuranceCarriersIDWHERE Voided IS NULL AND --Filter on facility ( (NULL IS NOT NULL AND t.FacilityID IN (NULL)) OR (NULL IS NULL) ) AND --Filter on Company ( (NULL IS NOT NULL AND CompanyID IN (NULL)) OR (NULL IS NULL) ) AND --Filter on Insurance Carrier ( (NULL IS NOT NULL AND PrimaryInsuranceCarriersID IN (NULL)) OR (NULL IS NULL) ) AND --Filter on CPTCode ( (NULL IS NOT NULL AND ProceduresID IN (NULL)) OR (NULL IS NULL) ) AND -- Identify Dental from Medical from BH ( (1 = 1) OR (1 = 2 AND CPTProcedureCodeQualifierMId in (@qmed,@qden,@qbh,@qsa,@qen,@qop)) OR (1 = 3 AND CPTProcedureCodeQualifierMId =@qmed) OR (1 = 4 AND CPTProcedureCodeQualifierMId =@qden) OR (1 = 5 AND CPTProcedureCodeQualifierMId =@qbh) OR (1 = 6 AND CPTProcedureCodeQualifierMId =@qsa) OR (1 = 7 AND CPTProcedureCodeQualifierMId =@qen) OR (1 = 8 AND CPTProcedureCodeQualifierMId =@qop) OR (1 IS NULL) ) --Filter on Department AND --Filter on Department ( (NULL IS NOT NULL AND DepartmentMId IN (NULL)) OR (NULL IS NULL) ) AND --Filter on Homeless ( ('1' = '1') OR ('1' = '2' AND Homeless = 1) OR ('1' = '3' AND isnull(AgWrkrStatusID,0)<>0 AND (AgWrkrStatusID NOT IN (NULL) OR NULL IS NULL)) )GROUP BY PatientProfileID,t.Last,t.First,t.Suffix,t.Middle, Birthdate, Homeless,ListNameB, TicketNumber,Visit,df.DotID,t.ListName,PatientID,Sex,PatientVisitID,DoctorID,CPTProcedureCodeQualifierMId,ml.Description, DOS, ic.DotIDENDELSEBEGININSERT INTO #PatientsSELECT PatientProfileID, PatientID, RTRIM(RTRIM(ISNULL(t.[Last], '') + ' ' + ISNULL(t.Suffix, '')) + ', ' + ISNULL(t.[First], '') + ' ' + ISNULL(t.Middle, '')) AS PatientName, Birthdate, Sex, ISNULL(ic.DotID,'0') AS DoctorName, ' ' AS Resource, ISNULL(Homeless,0) , '(none)' , ISNULL(t.ListName,'None'), ISNULL(df.DotID,0), TicketNumber, Visit, PatientVisitID, DoctorID, 0, '', 0, 'N/A', NULLFROM #UDSTMP tjoin DoctorFacility df on t.FacilityID = df.DoctorFacilityIDleft join InsuranceCarriers ic ON t.PrimaryInsuranceCarriersID = ic.InsuranceCarriersIDWHERE Voided IS NULL AND --Filter on facility ( (NULL IS NOT NULL AND t.FacilityID IN (NULL)) OR (NULL IS NULL) ) AND --Filter on Company ( (NULL IS NOT NULL AND CompanyID IN (NULL)) OR (NULL IS NULL) ) AND --Filter on Insurance Carrier ( (NULL IS NOT NULL AND PrimaryInsuranceCarriersID IN (NULL)) OR (NULL IS NULL) ) AND --Filter on CPTCode ( (NULL IS NOT NULL AND ProceduresID IN (NULL)) OR (NULL IS NULL) ) AND -- Identify Dental from Medical from BH ( (1 = 1) OR (1 = 2 AND CPTProcedureCodeQualifierMId in (@qmed,@qden,@qbh,@qsa,@qen,@qop)) OR (1 = 3 AND CPTProcedureCodeQualifierMId =@qmed) OR (1 = 4 AND CPTProcedureCodeQualifierMId =@qden) OR (1 = 5 AND CPTProcedureCodeQualifierMId =@qbh) OR (1 = 6 AND CPTProcedureCodeQualifierMId =@qsa) OR (1 = 7 AND CPTProcedureCodeQualifierMId =@qen) OR (1 = 8 AND CPTProcedureCodeQualifierMId =@qop) OR (1 IS NULL) ) --Filter on Department AND --Filter on Department ( (NULL IS NOT NULL AND DepartmentMId IN (NULL)) OR (NULL IS NULL) ) AND --Filter on Homeless ( ('1' = '1') OR ('1' = '2' AND Homeless = 1) OR ('1' = '3' AND isnull(AgWrkrStatusID,0)<>0 AND (AgWrkrStatusID NOT IN (NULL) OR NULL IS NULL)) )GROUP BY PatientProfileID,t.Last,t.First,t.Suffix,t.Middle, Birthdate, Homeless,ListNameB, TicketNumber,Visit,df.DotID,t.ListName,PatientID,Sex,PatientVisitID,DoctorID,CPTProcedureCodeQualifierMId, DOS,ic.DotIDENDIF 1 = 1BEGIN SELECT @OldFacID = '', @OldVisitDate = '01/01/1800', @OldPtID = 0, @OldQual='',@OldDrID = 0 DECLARE c CURSOR FOR SELECT PatientVisitID, FacilityID, DOS, Qualifier, PatientProfileID FROM #Patients p ORDER BY PatientProfileID, FacilityID, DOS, Qualifier OPEN c FETCH NEXT FROM c INTO @NewVisitID, @NewFacID, @NewVisitDate, @NewQual, @NewPtID WHILE @@FETCH_STATUS = 0 BEGIN IF @NewFacID = @OldFacID AND @NewVisitDate = @OldVisitDate AND @NewPtID = @OldPtID AND @OldQual = @NewQual BEGIN UPDATE #Patients SET DuplicateVisit = 1 WHERE PatientVisitID = @NewVisitID END ELSE BEGIN SELECT @OldFacID = @NewFacID, @OldVisitDate = @NewVisitDate, @OldPtID = @NewPtID, @OldQual = @NewQual END FETCH NEXT FROM c INTO @NewVisitID, @NewFacID, @NewVisitDate, @NewQual, @NewPtID END CLOSE c DEALLOCATE c DECLARE c CURSOR FOR SELECT PatientVisitID, DoctorID, DOS, Qualifier, PatientProfileID FROM #Patients p ORDER BY PatientProfileID, DoctorID, DOS, Qualifier OPEN c FETCH NEXT FROM c INTO @NewVisitID, @NewDrID, @NewVisitDate, @NewQual, @NewPtID WHILE @@FETCH_STATUS = 0 BEGIN IF @NewDrID = @OldDrID AND @NewVisitDate = @OldVisitDate AND @NewPtID = @OldPtID AND @OldQual = @NewQual BEGIN UPDATE #Patients SET DuplicateVisit = 1 WHERE PatientVisitID = @NewVisitID END ELSE BEGIN SELECT @OldDrID = @NewDrID, @OldVisitDate = @NewVisitDate, @OldPtID = @NewPtID, @OldQual = @NewQual END FETCH NEXT FROM c INTO @NewVisitID, @NewDrID, @NewVisitDate, @NewQual, @NewPtID END CLOSE c DEALLOCATE cEND UPDATE #Patients SET ResourceID = ISNULL((SELECT TOP 1 r.DotID as ResourceID FROM DoctorFacility r INNER JOIN PatientVisitResource pvr ON pvr.ResourceID = r.DoctorFacilityID WHERE pvr.PatientVisitID = #Patients.PatientVisitID),#Patients.DoctorID)UPDATE #Patients SET Resource = (SELECT r.ListName FROM DoctorFacility r WHERE r.DoctorFacilityID = #Patients.ResourceID)IF 1 = 1 BEGINUPDATE #Patients SET ResourceType = ISNULL((SELECT TOP 1 ml.Description FROM ResourceTypeAssignments rta LEFT JOIN MedLists ml ON rta.ResourceTypeID = ml.MedListsID WHERE rta.ResourceID = #Patients.ResourceID),'No Resource Type')ENDELSEBEGIN UPDATE #Patients SET ResourceType = 'Doctor'ENDSELECT * FROM #Patients ORDER BY DOS, ResourceID, FacilityName, DoctorNameDROP TABLE #UDSTMPDROP TABLE #Patients |
|