@@ -13,10 +13,34 @@ CREATE PROCEDURE [dbo].[uspAPIGetClaims]
1313 @EndDate DATE = NULL ,
1414 @DateProcessedFrom DATE = NULL ,
1515 @DateProcessedTo DATE = NULL ,
16- @ClaimStatus INT = NULL
16+ @ClaimStatus INT = NULL ,
17+ @InsureeNumber NVARCHAR (50 ) = NULL ,
18+ @LastUpdateDate DATETIME = NULL
1719)
1820AS
1921BEGIN
22+ SELECT
23+ ClaimID
24+ INTO #tempClaimIDs
25+ FROM
26+ (
27+ SELECT DISTINCT
28+ c .ClaimId
29+ FROM tblClaim c
30+ JOIN tblClaimAdmin ca ON ca .ClaimAdminId = c .ClaimAdminId
31+ JOIN tblInsuree i ON c .InsureeId = i .InsureeId
32+ JOIN tblClaimItems ci on c .ClaimID = ci .ClaimID
33+ JOIN tblClaimServices cs on c .ClaimID = cs .ClaimID
34+ WHERE
35+ c .ValidityTo IS NULL AND i .ValidityTo IS NULL AND ca .ValidityTo IS NULL
36+ AND ca .ClaimAdminCode = @ClaimAdminCode
37+ AND i .CHFID = ISNULL (@InsureeNumber, i .CHFID )
38+ AND C .ClaimStatus = ISNULL (@ClaimStatus, c .ClaimStatus )
39+ AND ISNULL (C .DateTo , C .DateFrom ) BETWEEN ISNULL (@StartDate, ISNULL (C .DateTo , C .DateFrom )) AND ISNULL (@EndDate, ISNULL (C .DateTo , C .DateFrom ))
40+ AND (C .DateProcessed BETWEEN ISNULL (@DateProcessedFrom, C .DateProcessed ) AND ISNULL (@DateProcessedTo, C .DateProcessed ) OR C .DateProcessed IS NULL )
41+ AND (c .ValidityFrom >= ISNULL (@LastUpdateDate, c .ValidityFrom ) OR ci .ValidityFrom >= ISNULL (@LastUpdateDate, ci .ValidityFrom ) OR cs .ValidityFrom >= ISNULL (@LastUpdateDate, cs .ValidityFrom ))
42+ ) ClaimIds
43+
2044 SELECT
2145 C .ClaimUUID claim_uuid,
2246 C .ClaimCode claim_number,
3357 FROM tblClaimItems CI
3458 join tblClaim C ON C .ClaimID = CI .ClaimID
3559 join tblItems I ON I .ItemID = CI .ItemID
36- join tblClaimAdmin CA ON CA .ClaimAdminId = C .ClaimAdminId
37- WHERE C .ValidityTo IS NULL AND CI .ValidityTo IS NULL AND I .ValidityTo IS NULL
38- AND CA .ValidityTo IS NULL AND CA .ClaimAdminCode = @ClaimAdminCode
39- AND (C .ClaimStatus = @ClaimStatus OR @ClaimStatus IS NULL )
40- AND ISNULL (C .DateTo , C .DateFrom ) BETWEEN ISNULL (@StartDate, (SELECT CAST (- 53690 AS DATETIME ))) AND ISNULL (@EndDate, GETDATE ())
41- AND (C .DateProcessed BETWEEN ISNULL (@DateProcessedFrom, CAST (' 1753-01-01' AS DATE )) AND ISNULL (@DateProcessedTo, GETDATE ()) OR C .DateProcessed IS NULL );
60+ WHERE
61+ C .ValidityTo IS NULL AND CI .ValidityTo IS NULL AND I .ValidityTo IS NULL AND C .ClaimID in (SELECT * FROM #tempClaimIDs)
4262
4363 SELECT
4464 C .ClaimUUID claim_uuid,
@@ -56,14 +76,10 @@ BEGIN
5676 FROM tblClaimServices CS
5777 join tblClaim C ON C .ClaimID = CS .ClaimID
5878 join tblServices S ON S .ServiceID = CS .ServiceID
59- join tblClaimAdmin CA ON CA .ClaimAdminId = C .ClaimAdminId
60- WHERE C .ValidityTo IS NULL AND CS .ValidityTo IS NULL AND S .ValidityTo IS NULL
61- AND CA .ValidityTo IS NULL AND CA .ClaimAdminCode = @ClaimAdminCode
62- AND (C .ClaimStatus = @ClaimStatus OR @ClaimStatus IS NULL )
63- AND ISNULL (C .DateTo , C .DateFrom ) BETWEEN ISNULL (@StartDate, (SELECT CAST (- 53690 AS DATETIME ))) AND ISNULL (@EndDate, GETDATE ())
64- AND (C .DateProcessed BETWEEN ISNULL (@DateProcessedFrom, CAST (' 1753-01-01' AS DATE )) AND ISNULL (@DateProcessedTo, GETDATE ()) OR C .DateProcessed IS NULL );
79+ WHERE
80+ C .ValidityTo IS NULL AND CS .ValidityTo IS NULL AND S .ValidityTo IS NULL AND C .ClaimID in (SELECT * FROM #tempClaimIDs)
6581
66- WITH TotalForItems AS
82+ ; WITH TotalForItems AS
6783 (
6884 SELECT C .ClaimId , SUM (CI .PriceAsked * CI .QtyProvided )Claimed,
6985 SUM (ISNULL (CI .PriceApproved , ISNULL (CI .PriceAsked , 0 )) * ISNULL (CI .QtyApproved , ISNULL (CI .QtyProvided , 0 ))) Approved,
@@ -110,7 +126,6 @@ BEGIN
110126 C .GuaranteeId guarantee_number
111127 FROM
112128 TBLClaim C
113- join tblClaimAdmin CA ON CA .ClaimAdminId = C .ClaimAdminId
114129 LEFT JOIN tblHF HF ON C .HFID = HF .HfID
115130 LEFT JOIN tblInsuree INS ON C .InsureeId = INS .InsureeId
116131 LEFT JOIN TotalForItems TFI ON C .ClaimID = TFI .ClaimID
@@ -123,9 +138,8 @@ BEGIN
123138 WHERE
124139 C .ValidityTo IS NULL AND HF .ValidityTo IS NULL AND INS .ValidityTo IS NULL AND ICD .ValidityTo IS NULL
125140 AND ICD1 .ValidityTo IS NULL AND ICD2 .ValidityTo IS NULL AND ICD3 .ValidityTo IS NULL AND ICD4 .ValidityTo IS NULL
126- AND CA .ValidityTo IS NULL AND CA .ClaimAdminCode = @ClaimAdminCode
127- AND (C .ClaimStatus = @ClaimStatus OR @ClaimStatus IS NULL )
128- AND ISNULL (C .DateTo , C .DateFrom ) BETWEEN ISNULL (@StartDate, (SELECT CAST (- 53690 AS DATETIME ))) AND ISNULL (@EndDate, GETDATE ())
129- AND (C .DateProcessed BETWEEN ISNULL (@DateProcessedFrom, CAST (' 1753-01-01' AS DATE )) AND ISNULL (@DateProcessedTo, GETDATE ()) OR C .DateProcessed IS NULL )
141+ AND C .ClaimID in (SELECT * FROM #tempClaimIDs)
142+
143+ DROP TABLE #tempClaimIDs
130144END
131145GO
0 commit comments