Benefit determination process
- The process starts with the CE_DetermineBenefitES collection rule.
- The collection first calls the CE_DetermineBenefitES Collection. The
CE_DetermineBenefitES collection further breaks the collection into three different
steps.
Within the above collection, the first step would be to find the benefit network by cross walking through the PCS network. If the benefit network is found the claim will be adjudicated as In-network/Participating network or else will try to find out the out of network/Non-participating network and if non-participating network is not found then system will raise an event.
- The DetermineBenefitES Activity, contains the DetermineBenefitES Data Transform which retrieves the needed data from the claim, to make the call to the Flattened structure of the foundation.
- Step 2 and Step 3 within the DetermineBenefitES Activity uses java code to create a
query to perform elastic search on the Medical and Dental benefits. Different Values
are taken from the claim to match to a benefit.
Sample Flattened form (fragment) of the above benefit configuration as per current flattening logic.
Listed below are a few examples of selection logic of a benefit based on claim line parameters Smart Claims Engine:
PCS Dental Benefit Configuration Parameters: Listed below are all the dental parameters considered for Dental benefit matching.
Field name Mandatory/Optional Code Mandatory Description Auto populated Dental coverage details Optional Dental coverage details -> Dentition Optional Dental coverage details -> Dental definition Optional Dental coverage details -> Dental definition (=Range and surface) -> Tooth range (multiple) Mandatory when Dental definition = Range and surface Dental coverage details -> Dental definition (=Range and surface) -> Tooth range -> Tooth surface (multiple) Optional Dental coverage details -> Dental definition (=Oral quadrant) -> Oral quadrant (multiple) Mandatory when Dental definition = Oral quadrant The Proposed flattened concatenated strings is as follows:
Dentition Definition Tooth range
(one string per item)
Tooth surface(s)
(Delimiter separated items)
Oral quadrant
(Delimiter separated items)
None None None None None CDTCodes.<value>.Dentition.AllValues.Definition.AllValues None Range and surface From T1 to Tn None N/A CDTCodes.<value>.Dentition.AllValues.Definition.RangeAndSurface.Range.!<T1>!<T1+1>!..!<Tn>!.ToothSurfaces.AllValues Permanent Range and surface From T1 to Tn None N/A CDTCodes.<value>.Dentition.<Permanent/Primary/Both>.Definition.RangeAndSurface.Range.!<T1>!<T1+1>!..!<Tn>!.ToothSurfaces.AllValues Permanent Range and surface From T1 to Tn S1, S2, S3 N/A CDTCodes.<value>.Dentition.<Permanent/Primary/Both>.Definition.ToothRangeAndSurface.Range.!<T1>!<T2>!..!<Tn>!.ToothSurfaces.!<S1>!<S2>!..!<Sn>! Permanent Oral quadrant N/A N/A Q1, Q2, Q3 CDTCodes.<value>.Dentition.<Permanent/Primary/Both>.Definition.OralQudrant.!<Q1>!<Q2>!<Q3>! Sample elastic search query strings for each claim line parameters that matches with concatenated strings is as follows:
Procedure code Tooth code Tooth surface Oral cavity designation code D0120 None None None Query string:
/CDTCodes\\.D0120\\..*/
Matching flattened string:
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!7!8!9!10!11!12!13!14!15!.ToothSurfaces.!F!D!B!
D0120 None None 00, 01 Query string:
/CDTCodes\\.D0120\\.Dentition\\..*.\\.OralQuadrant\\..*?!00!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\..*.\\.OralQuadrant\\..*?!01!.*/
Matching flattened string:
CDTCodes.D0120.Dentition.Permanent.Definition.OralQuadrant.!00!05!
D0120 14 D, L None Query string:
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\..*?!D!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\..*?!L!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces.AllValues
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range.AllValues\\.ToothSurfaces\\.AllValues
Matching flattened string:
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!7!8!9!10!11!12!13!14!15!.ToothSurfaces.!F!D!B!
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!11!12!13!14!15!.ToothSurfaces.AllValues
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.AllValues.ToothSurfaces.AllValues
D0120 14 D, L None 12 L, F None Query string:
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\..*?!D!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\..*?!L!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!12!.*\\.ToothSurfaces\\..*?!L!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!12!.*\\.ToothSurfaces\\..*?!F!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!12!.*\\.ToothSurfaces\\.AllValues
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\.AllValues
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\.AllValues\\.ToothSurfaces\\.AllValues
Matching flattened string:
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!7!8!9!10!11!12!13!14!15!.ToothSurfaces.!F!D!B!
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!7!8!9!10!11!12!13!14!15!.ToothSurfaces.AllValues
D0120 14 D, L None 21 L, F None Query string:
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\..*?!D!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\..*?!L!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!21!.*\\.ToothSurfaces\\..*?!L!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!21!.*\\.ToothSurfaces\\..*?!F!.*/
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!14!.*\\.ToothSurfaces\\.AllValues
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\..*?!21!.*\\.ToothSurfaces\\.AllValues
OR
/CDTCodes\\.D0120\\.Dentition\\.Permanent\\.ToothRangeAndsurface\\.Range\\.AllValues\\.ToothSurfaces\\.AllValues
Matching flattened string:
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!7!8!9!10!11!12!13!14!15!.ToothSurfaces.!F!D!B!
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!20!21!22!23!.ToothSurfaces.!O!L!
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.!20!21!22!23!.ToothSurfaces.AllValues
CDTCodes.D0120.Dentition.Permanent.ToothRangeAndSurface.Range.AllValues.ToothSurfaces.AllValues
- Service Covered check: The service covered or not covered will be checked as part of CE_DetermineBenefitES collection in the last step.
The ServiceCoveredCheck DT will run after the benefit is determined to check whether the returned benefit should be considered for benefit adjudication or not.
If the Service covered flag is enabled, then the benefit will not be considered for benefit adjudication.
If the service is not covered then the system will raise a suspend event SBD-0006 showing benefit not covered.
Previous topic About benefit determination Next topic Business edits