Skip to content

Commit a62482b

Browse files
committed
OTC-525
1 parent 187d87f commit a62482b

1 file changed

Lines changed: 43 additions & 25 deletions

File tree

sql/stored_procedures/uspSSRSProcessBatchWithClaim.sql

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,41 +14,46 @@ CREATE PROCEDURE [dbo].[uspSSRSProcessBatchWithClaim]
1414
)
1515
AS
1616
BEGIN
17+
IF @LocationId=-1
18+
BEGIN
19+
SET @LocationId = NULL
20+
END
1721

18-
IF @DateFrom = '' OR @DateFrom IS NULL OR @DateTo = '' OR @DateTo IS NULL
19-
BEGIN
20-
SET @DateFrom = N'1900-01-01'
21-
SET @DateTo = N'3000-12-31'
22-
END
22+
IF @DateFrom = '' OR @DateFrom IS NULL OR @DateTo = '' OR @DateTo IS NULL
23+
BEGIN
24+
SET @DateFrom = N'1900-01-01'
25+
SET @DateTo = N'3000-12-31'
26+
END
2327

24-
;WITH CDetails AS
25-
(
26-
SELECT CI.ClaimId, CI.ProdId,
27-
SUM(ISNULL(CI.PriceApproved, CI.PriceAsked) * ISNULL(CI.QtyApproved, CI.QtyProvided)) PriceApproved,
28-
SUM(CI.PriceValuated) PriceAdjusted, SUM(CI.RemuneratedAmount)RemuneratedAmount
29-
FROM tblClaimItems CI
30-
WHERE CI.ValidityTo IS NULL
31-
AND CI.ClaimItemStatus = 1
32-
GROUP BY CI.ClaimId, CI.ProdId
33-
UNION ALL
3428

35-
SELECT CS.ClaimId, CS.ProdId,
36-
SUM(ISNULL(CS.PriceApproved, CS.PriceAsked) * ISNULL(CS.QtyApproved, CS.QtyProvided)) PriceApproved,
37-
SUM(CS.PriceValuated) PriceValuated, SUM(CS.RemuneratedAmount) RemuneratedAmount
29+
;WITH CDetails AS
30+
(
31+
SELECT CI.ClaimId, CI.ProdId,
32+
SUM(ISNULL(CI.PriceApproved, CI.PriceAsked) * ISNULL(CI.QtyApproved, CI.QtyProvided)) PriceApproved,
33+
SUM(CI.PriceValuated) PriceAdjusted, SUM(CI.RemuneratedAmount)RemuneratedAmount
34+
FROM tblClaimItems CI
35+
WHERE CI.ValidityTo IS NULL
36+
AND CI.ClaimItemStatus = 1
37+
GROUP BY CI.ClaimId, CI.ProdId
38+
UNION ALL
3839

39-
FROM tblClaimServices CS
40-
WHERE CS.ValidityTo IS NULL
41-
AND CS.ClaimServiceStatus = 1
42-
GROUP BY CS.CLaimId, CS.ProdId
43-
)
40+
SELECT CS.ClaimId, CS.ProdId,
41+
SUM(ISNULL(CS.PriceApproved, CS.PriceAsked) * ISNULL(CS.QtyApproved, CS.QtyProvided)) PriceApproved,
42+
SUM(CS.PriceValuated) PriceValuated, SUM(CS.RemuneratedAmount) RemuneratedAmount
43+
44+
FROM tblClaimServices CS
45+
WHERE CS.ValidityTo IS NULL
46+
AND CS.ClaimServiceStatus = 1
47+
GROUP BY CS.CLaimId, CS.ProdId
48+
)
4449
SELECT C.ClaimCode, C.DateClaimed, CA.OtherNames OtherNamesAdmin, CA.LastName LastNameAdmin, C.DateFrom, C.DateTo, I.CHFID, I.OtherNames,
4550
I.LastName, C.HFID, HF.HFCode, HF.HFName, HF.AccCode, Prod.ProdID, Prod.ProductCode, Prod.ProductName,
4651
C.Claimed PriceAsked, SUM(CDetails.PriceApproved)PriceApproved, SUM(CDetails.PriceAdjusted)PriceAdjusted, SUM(CDetails.RemuneratedAmount)RemuneratedAmount,
4752
D.DistrictID, D.DistrictName, R.RegionId, R.RegionName
4853

4954
FROM tblClaim C
50-
LEFT OUTER JOIN tblClaimAdmin CA ON CA.ClaimAdminId = C.ClaimAdminId
5155
INNER JOIN tblInsuree I ON I.InsureeId = C.InsureeID
56+
LEFT OUTER JOIN tblClaimAdmin CA ON CA.ClaimAdminId = C.ClaimAdminId
5257
INNER JOIN tblHF HF ON HF.HFID = C.HFID
5358
INNER JOIN CDetails ON CDetails.ClaimId = C.ClaimID
5459
INNER JOIN tblProduct Prod ON Prod.ProdId = CDetails.ProdID
@@ -61,10 +66,23 @@ CREATE PROCEDURE [dbo].[uspSSRSProcessBatchWithClaim]
6166
WHERE C.ValidityTo IS NULL
6267
AND (Prod.LocationId = @LocationId OR @LocationId = 0 OR Prod.LocationId IS NULL)
6368
AND(Prod.ProdId = @ProdId OR @ProdId = 0)
64-
AND (C.RunId IS NULL)
69+
AND (C.RunId = @RunId OR @RunId = 0)
6570
AND (HF.HFId = @HFID OR @HFId = 0)
6671
AND (HF.HFLevel = @HFLevel OR @HFLevel = N'')
6772
AND (C.DateTo BETWEEN @DateFrom AND @DateTo)
73+
-- TO AVOID DOUBLE COUNT WITH CAPITATION
74+
AND CONCAT(HF.HFLevel,'.',HF.HFSublevel) NOT IN (
75+
SELECT CONCAT(HFlevel,'.',HFSublevel)
76+
FROM (values ('H'), ('C'), ('D')) v(HFLevel)
77+
JOIN tblHFSublevel on 1=1
78+
INNER JOIN tblProduct Prod on prodid = @ProdID
79+
and (
80+
((HF.HFLevel = prod.Level1) AND (HF.HFSublevel = Prod.SubLevel1 OR Prod.SubLevel1 IS NULL))
81+
OR ((HF.HFLevel = Prod.Level2 ) AND (HF.HFSublevel = Prod.SubLevel2 OR Prod.SubLevel2 IS NULL))
82+
OR ((HF.HFLevel = Prod.Level3) AND (HF.HFSublevel = Prod.SubLevel3 OR Prod.SubLevel3 IS NULL))
83+
OR ((HF.HFLevel = Prod.Level4) AND (HF.HFSublevel = Prod.SubLevel4 OR Prod.SubLevel4 IS NULL))
84+
)
85+
)
6886

6987
GROUP BY C.ClaimCode, C.DateClaimed, CA.OtherNames, CA.LastName , C.DateFrom, C.DateTo, I.CHFID, I.OtherNames,
7088
I.LastName, C.HFID, HF.HFCode, HF.HFName, HF.AccCode, Prod.ProdID, Prod.ProductCode, Prod.ProductName, C.Claimed,

0 commit comments

Comments
 (0)