Skip to content

Commit f30720d

Browse files
committed
OTC-492: Claim overview now works properly on a regional level.
1 parent 9a8fa1c commit f30720d

2 files changed

Lines changed: 113 additions & 2 deletions

File tree

sql/migrations/1_migration_latest.sql

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9377,3 +9377,111 @@ IF COL_LENGTH(N'tblPayment', N'PhoneNumber') IS NOT NULL
93779377
ALTER TABLE tblPayment
93789378
ALTER COLUMN PhoneNumber NVARCHAR(50) NULL
93799379
GO
9380+
9381+
--OTC-492
9382+
9383+
IF OBJECT_ID('uspSSRSGetClaimOverview', 'P') IS NOT NULL
9384+
DROP PROCEDURE uspSSRSGetClaimOverview
9385+
GO
9386+
9387+
CREATE PROCEDURE [dbo].[uspSSRSGetClaimOverview]
9388+
(
9389+
@HFID INT,
9390+
@LocationId INT,
9391+
@ProdId INT,
9392+
@StartDate DATE,
9393+
@EndDate DATE,
9394+
@ClaimStatus INT = NULL,
9395+
@ClaimRejReason xClaimRejReasons READONLY,
9396+
@Scope INT = NULL
9397+
)
9398+
AS
9399+
BEGIN
9400+
-- no scope -1
9401+
-- claim only 0
9402+
-- claimand rejection 1
9403+
-- all 2
9404+
;WITH TotalForItems AS
9405+
(
9406+
SELECT C.ClaimId, SUM(CI.PriceAsked * CI.QtyProvided)Claimed,
9407+
SUM(ISNULL(CI.PriceApproved, CI.PriceAsked) * ISNULL(CI.QtyApproved, CI.QtyProvided)) Approved,
9408+
SUM(CI.PriceValuated)Adjusted,
9409+
SUM(CI.RemuneratedAmount)Remunerated
9410+
FROM tblClaim C LEFT OUTER JOIN tblClaimItems CI ON C.ClaimId = CI.ClaimID
9411+
WHERE C.ValidityTo IS NULL
9412+
AND CI.ValidityTo IS NULL
9413+
GROUP BY C.ClaimID
9414+
), TotalForServices AS
9415+
(
9416+
SELECT C.ClaimId, SUM(CS.PriceAsked * CS.QtyProvided)Claimed,
9417+
SUM(ISNULL(CS.PriceApproved, CS.PriceAsked) * ISNULL(CS.QtyApproved, CS.QtyProvided)) Approved,
9418+
SUM(CS.PriceValuated)Adjusted,
9419+
SUM(CS.RemuneratedAmount)Remunerated
9420+
FROM tblClaim C
9421+
LEFT OUTER JOIN tblClaimServices CS ON C.ClaimId = CS.ClaimID
9422+
WHERE C.ValidityTo IS NULL
9423+
AND CS.ValidityTo IS NULL
9424+
GROUP BY C.ClaimID
9425+
)
9426+
9427+
SELECT C.DateClaimed, C.ClaimID, I.ItemId, S.ServiceID, HF.HFCode, HF.HFName, C.ClaimCode, C.DateClaimed, CA.LastName + ' ' + CA.OtherNames ClaimAdminName,
9428+
C.DateFrom, C.DateTo, Ins.CHFID, Ins.LastName + ' ' + Ins.OtherNames InsureeName,
9429+
CASE C.ClaimStatus WHEN 1 THEN N'Rejected' WHEN 2 THEN N'Entered' WHEN 4 THEN N'Checked' WHEN 8 THEN N'Processed' WHEN 16 THEN N'Valuated' END ClaimStatus,
9430+
C.RejectionReason, COALESCE(TFI.Claimed + TFS.Claimed, TFI.Claimed, TFS.Claimed) Claimed,
9431+
COALESCE(TFI.Approved + TFS.Approved, TFI.Approved, TFS.Approved) Approved,
9432+
COALESCE(TFI.Adjusted + TFS.Adjusted, TFI.Adjusted, TFS.Adjusted) Adjusted,
9433+
COALESCE(TFI.Remunerated + TFS.Remunerated, TFI.Remunerated, TFS.Remunerated)Paid,
9434+
CASE WHEN @Scope =2 OR CI.RejectionReason <> 0 THEN I.ItemCode ELSE NULL END RejectedItem, CI.RejectionReason ItemRejectionCode,
9435+
CASE WHEN @Scope =2 OR CS.RejectionReason <> 0 THEN S.ServCode ELSE NULL END RejectedService, CS.RejectionReason ServiceRejectionCode,
9436+
CASE WHEN @Scope =2 OR CI.QtyProvided <> COALESCE(CI.QtyApproved,CI.QtyProvided) THEN I.ItemCode ELSE NULL END AdjustedItem,
9437+
CASE WHEN @Scope =2 OR CI.QtyProvided <> COALESCE(CI.QtyApproved,CI.QtyProvided) THEN ISNULL(CI.QtyProvided,0) ELSE NULL END OrgQtyItem,
9438+
CASE WHEN @Scope =2 OR CI.QtyProvided <> COALESCE(CI.QtyApproved ,CI.QtyProvided) THEN ISNULL(CI.QtyApproved,0) ELSE NULL END AdjQtyItem,
9439+
CASE WHEN @Scope =2 OR CS.QtyProvided <> COALESCE(CS.QtyApproved,CS.QtyProvided) THEN S.ServCode ELSE NULL END AdjustedService,
9440+
CASE WHEN @Scope =2 OR CS.QtyProvided <> COALESCE(CS.QtyApproved,CS.QtyProvided) THEN ISNULL(CS.QtyProvided,0) ELSE NULL END OrgQtyService,
9441+
CASE WHEN @Scope =2 OR CS.QtyProvided <> COALESCE(CS.QtyApproved ,CS.QtyProvided) THEN ISNULL(CS.QtyApproved,0) ELSE NULL END AdjQtyService,
9442+
C.Explanation,
9443+
-- ALL claims
9444+
CASE WHEN @Scope = 2 THEN CS.QtyApproved ELSE NULL END ServiceQtyApproved,
9445+
CASE WHEN @Scope = 2 THEN CI.QtyApproved ELSE NULL END ItemQtyApproved,
9446+
CASE WHEN @Scope = 2 THEN cs.PriceAsked ELSE NULL END ServicePrice,
9447+
CASE WHEN @Scope = 2 THEN CI.PriceAsked ELSE NULL END ItemPrice,
9448+
CASE WHEN @Scope = 2 THEN ISNULL(cs.PriceApproved,0) ELSE NULL END ServicePriceApproved,
9449+
CASE WHEN @Scope = 2 THEN ISNULL(ci.PriceApproved,0) ELSE NULL END ItemPriceApproved,
9450+
CASE WHEN @Scope = 2 THEN ISNULL(cs.Justification,NULL) ELSE NULL END ServiceJustification,
9451+
CASE WHEN @Scope = 2 THEN ISNULL(CI.Justification,NULL) ELSE NULL END ItemJustification,
9452+
CASE WHEN @Scope = 2 THEN cs.ClaimServiceID ELSE NULL END ClaimServiceID,
9453+
CASE WHEN @Scope = 2 THEN CI.ClaimItemID ELSE NULL END ClaimItemID,
9454+
--,cs.PriceApproved ServicePriceApproved,ci.PriceApproved ItemPriceApproved--,
9455+
CASE WHEN @Scope > 0 THEN CONCAT(CS.RejectionReason,' - ', XCS.Name) ELSE NULL END ServiceRejectionReason,
9456+
CASE WHEN @Scope > 0 THEN CONCAT(CI.RejectionReason, ' - ', XCI.Name) ELSE NULL END ItemRejectionReason
9457+
9458+
-- end all claims
9459+
9460+
9461+
FROM tblClaim C LEFT OUTER JOIN tblClaimItems CI ON C.ClaimId = CI.ClaimID
9462+
LEFT OUTER JOIN tblClaimServices CS ON C.ClaimId = CS.ClaimID
9463+
LEFT OUTER JOIN tblItems I ON CI.ItemId = I.ItemID
9464+
LEFT OUTER JOIN tblServices S ON CS.ServiceID = S.ServiceID
9465+
--INNER JOIN tblProduct PROD ON PROD.ProdID = CS.ProdID AND PROD.ProdID = CI.ProdID
9466+
INNER JOIN tblHF HF ON C.HFID = HF.HfID
9467+
LEFT OUTER JOIN tblLocations L ON HF.LocationId = L.LocationId
9468+
LEFT OUTER JOIN tblClaimAdmin CA ON C.ClaimAdminId = CA.ClaimAdminId
9469+
INNER JOIN tblInsuree Ins ON C.InsureeId = Ins.InsureeId
9470+
LEFT OUTER JOIN TotalForItems TFI ON C.ClaimId = TFI.ClaimID
9471+
LEFT OUTER JOIN TotalForServices TFS ON C.ClaimId = TFS.ClaimId
9472+
-- all claims
9473+
LEFT JOIN @ClaimRejReason XCI ON XCI.ID = CI.RejectionReason
9474+
LEFT JOIN @ClaimRejReason XCS ON XCS.ID = CS.RejectionReason
9475+
-- and all claims
9476+
WHERE C.ValidityTo IS NULL
9477+
AND L.ValidityTo IS NULL
9478+
AND HF.ValidityTo IS NULL
9479+
AND CA.ValidityTo IS NULL
9480+
AND ISNULL(C.DateTo,C.DateFrom) BETWEEN @StartDate AND @EndDate
9481+
AND (C.ClaimStatus = @ClaimStatus OR @ClaimStatus IS NULL)
9482+
AND (L.LocationId = @LocationId OR L.ParentLocationId = @LocationId OR @LocationId = 0)
9483+
AND (HF.HFID = @HFID OR @HFID = 0)
9484+
AND (CI.ProdID = @ProdId OR CS.ProdID = @ProdId
9485+
OR COALESCE(CS.ProdID, CI.ProdId) IS NULL OR @ProdId = 0)
9486+
END
9487+
GO

sql/stored_procedures/uspSSRSGetClaimOverview.sql

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ CREATE PROCEDURE [dbo].[uspSSRSGetClaimOverview]
8383
LEFT OUTER JOIN tblServices S ON CS.ServiceID = S.ServiceID
8484
--INNER JOIN tblProduct PROD ON PROD.ProdID = CS.ProdID AND PROD.ProdID = CI.ProdID
8585
INNER JOIN tblHF HF ON C.HFID = HF.HfID
86+
LEFT OUTER JOIN tblLocations L ON HF.LocationId = L.LocationId
8687
LEFT OUTER JOIN tblClaimAdmin CA ON C.ClaimAdminId = CA.ClaimAdminId
8788
INNER JOIN tblInsuree Ins ON C.InsureeId = Ins.InsureeId
8889
LEFT OUTER JOIN TotalForItems TFI ON C.ClaimId = TFI.ClaimID
@@ -92,11 +93,13 @@ CREATE PROCEDURE [dbo].[uspSSRSGetClaimOverview]
9293
LEFT JOIN @ClaimRejReason XCS ON XCS.ID = CS.RejectionReason
9394
-- and all claims
9495
WHERE C.ValidityTo IS NULL
96+
AND L.ValidityTo IS NULL
97+
AND HF.ValidityTo IS NULL
98+
AND CA.ValidityTo IS NULL
9599
AND ISNULL(C.DateTo,C.DateFrom) BETWEEN @StartDate AND @EndDate
96100
AND (C.ClaimStatus = @ClaimStatus OR @ClaimStatus IS NULL)
97-
AND (HF.LocationId = @LocationId OR @LocationId = 0)
101+
AND (L.LocationId = @LocationId OR L.ParentLocationId = @LocationId OR @LocationId = 0)
98102
AND (HF.HFID = @HFID OR @HFID = 0)
99103
AND (CI.ProdID = @ProdId OR CS.ProdID = @ProdId
100104
OR COALESCE(CS.ProdID, CI.ProdId) IS NULL OR @ProdId = 0)
101105
END
102-
Go

0 commit comments

Comments
 (0)