Skip to main content


         This documentation site is for previous versions. Visit our new documentation site for current releases.      
 

Benefit determination process

Updated on April 26, 2021
  1. The process starts with the CE_DetermineBenefitES collection rule.
  2. 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.

  3. 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.
  4. 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.
    Note:
    1. For a dental claim line, the system expects that along with tooth information there could be a tooth code/tooth surface, a tooth code only with no surface, or an oral cavity with no tooth number. There will not be a tooth number and an oral cavity.
    2. For a claim line that has tooth code/surfaces combinations, the system can derive the dentition (primary, permanent) and choose the benefit accordingly. The dentition determination logic would be as follows:
      • Tooth code is in the range 1 through 32 -> dentition: Permanent
      • Tooth code is in the range A through T -> dentition: Primary
    3. For a claim line that have the oral cavity designation codes, there would not practically be any tooth code information. Since in the application the dentition can only be derived based on the tooth code information, the dentition cannot be derived in claims that have the oral cavity designation codes or oral quadrant information. For these claims the benefit selection logic should ignore the dentition mentioned in the benefit while matching against the CDT code.

    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 nameMandatory/Optional
    CodeMandatory
    DescriptionAuto populated
    Dental coverage detailsOptional
    Dental coverage details -> DentitionOptional
    Dental coverage details -> Dental definitionOptional
    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:

    DentitionDefinition

    Tooth range

    (one string per item)

    Tooth surface(s)

    (Delimiter separated items)

    Oral quadrant

    (Delimiter separated items)

    NoneNoneNoneNoneNone
    CDTCodes.<value>.Dentition.AllValues.Definition.AllValues
    NoneRange and surfaceFrom T1 to TnNoneN/A
    CDTCodes.<value>.Dentition.AllValues.Definition.RangeAndSurface.Range.!<T1>!<T1+1>!..!<Tn>!.ToothSurfaces.AllValues
    PermanentRange and surfaceFrom T1 to TnNoneN/A
    CDTCodes.<value>.Dentition.<Permanent/Primary/Both>.Definition.RangeAndSurface.Range.!<T1>!<T1+1>!..!<Tn>!.ToothSurfaces.AllValues
    PermanentRange and surfaceFrom T1 to TnS1, S2, S3N/A
    CDTCodes.<value>.Dentition.<Permanent/Primary/Both>.Definition.ToothRangeAndSurface.Range.!<T1>!<T2>!..!<Tn>!.ToothSurfaces.!<S1>!<S2>!..!<Sn>!
    PermanentOral quadrantN/AN/AQ1, Q2, Q3
    CDTCodes.<value>.Dentition.<Permanent/Primary/Both>.Definition.OralQudrant.!<Q1>!<Q2>!<Q3>!
    Note: Separate strings are required for each of the tooth range entries for “Range and surface” type CDT codes.

    Sample elastic search query strings for each claim line parameters that matches with concatenated strings is as follows:

    Procedure codeTooth codeTooth surfaceOral cavity designation code
    D0120NoneNoneNone

    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!

    D0120NoneNone00, 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!

    D012014D, LNone

    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

    D012014D, LNone
    12L, FNone

    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

    D012014D, LNone
    21L, FNone

    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

  5. 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.

Have a question? Get answers now.

Visit the Support Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega.com is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us