Views:

Scenario Overview

Health Coverage Assistance through the Department of Health and Welfare provides health coverage or assistance in paying for health coverage for people who meet certain criteria.

This example shows how to set up a Decision Table to evaluate if a person is entitled to Health coverage or Assistance under the requirements laid down by the US State of Idaho.

Requirements shown below.

 
 

To be eligible you must fit into one of the following categories:

Category 1:

Be a child under 19 years old
Category 2:

Be a pregnant woman
Category 3:

Be an adult with a child under the age of 19
Category 4:

Be aged 65 or older
Category 5:

Be blind or disabled according to the Social Security Administration criteria


If you match one of the above categories then you must also meet the below criteria:

Rule 1: 

You must be a Citizen of, or legal immigrant to, the USA.
Rule 2:

You must be a resident of the State of Idaho
Rule 3:

Your household income must be less then the program income limits for your household size.
Rule 4:

Your resource limits must not exceed the program resource limits



In this example the Account entity has been renamed to Household  and modified accordingly.
Contacts have been renamed as Household Residents that live in the that Household

Household


Household Resident

North52 Decision Suite Solution

The North52 Decision Suite solution works like this:

  • A formula of type Save - Perform Action is created on the Household Resident entity
  • The Source Properties are set to Employment Status, Current Savings, Monthly IncomeDisability Status, Pregnant and Immigration Status
  • The Event is set to Create & Update
  • Exit this Decision Table on First Match is turned On on all Decision Tables
  • Exit All Decision Tables on First Match is turned Off on all Decision Tables

 

Multi-Sheet Decision Table

 

Preliminary Requirements



All of the Conditions are of type OR as you only need to match one of them
 

 

Household Income Check - Adult




Note:  The Household Income requirement states that for every resident after 8 we should add $75 to the max income allowed for 8 residents.

Therefore we use the following 741 + (75 * ({Household Residents} - 8)).
For 10 residents it would evaluate to 741 + (75*(10-8)) = $891 dollars.
  

 

Household Income Check - Pregnant Adult



 

Household Income Check - Child 


Medicaid Eligibility




 

Calculations Table


The Calculations Table has 5 calculations to execute as part of this Decision Table

  • Age - Calculates the age of the Household Resident when the Decision Table executes
  • ChildrenUnder19 - Checks for any Household Residents with a child Connection Role to the Household Resident
  • Household Income -  Sums up the income and savings of all Household Residents living in the Household
  • Household Residents -  Counts how many Household Residents live in the Household
  • Resident in Idaho - Checks if the State / Provence field of the Household the Household Resident is living in is set to Idaho

Calculation

Age

DateDiff([contact.birthdate], UtcDate(), 'y')
ChildUnder19

SmartFlow(
  
  SetVar('HasChildUnder19', false ),
  
      ForEachRecord(
  
        FindRecordsFD('FindChildrenOfResident', false,SetParams([contact.contactid],
                     FindValue('connectionrole', 'name', 'child', 'connectionroleid'))),
  
        iftrue(DateDiff(CurrentRecord('birthdate'), UtcDate(), 'y') < 19, 
                
                SetVar('HasChildUnder19', true))),
  
  SmartFlowReturn(GetVar('HasChildUnder19'))

)
Household Residents

FindCount('contact', 'new_primaryresidence', [contact.new_primaryresidence], 'contactid')
Household Income

Smartflow(
  SetVar('HouseholdIncome', FindSum('contact',
                                    'new_primaryresidence', 
                                    [contact.new_primaryresidence],
                                   'new_monthlyincome', 0)),
  SetVar('HouseholdIncome', GetVar('HouseholdIncome') +
  FindSum('contact',
         'new_primaryresidence', 
         [contact.new_primaryresidence], 
        'new_currentsavings', 0))
)
Resident In Idaho

In(Upper(FindValue('account',
                  'accountid',
                 [contact.new_primaryresidence],
                'address1_stateorprovince')), 'ID', 'IDAHO')

 

Fetch XML 

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" >
  <entity name="contact" >
    <attribute name="fullname" />
    <attribute name="birthdate" />
    <attribute name="contactid" />
    <order attribute="fullname" descending="false" />
    <link-entity name="connection" from="record1id" to="contactid" alias="ae" >
      <filter type="and" >
        <condition attribute="record2id" operator="eq" uitype="contact" value="{0}" />
        <condition attribute="record2roleid" operator="eq" uitype="connectionrole" value="{1}" />
      </filter>
    </link-entity>
  </entity>
</fetch>

 

This example uses publicly available information on the owners website and has not been endorsed by the owner of the information.

Did you know?

TestShield Makes Test Automation a First Class Citizen in Dynamics 365

Test automation principles leads to improved communication, reliability and teamwork as you enhance the ever changing business processes. The team members need to roll out change requests on the existing system and build new applications making automated testing very important. 

Top 3 Benefits of Dynamics 365 Automated Testing:
  • Validated Business Processes: Dynamics 365 Automated Testing provides a robust approach to validate the business rules and process requirements of Dynamics 365 solutions
  • Better Engagement: Dynamics 365 Automated Testing ensures that end users get top-class user experience
  • Faster Delivery Time: Dynamics 365 Automated Testing assures fast delivery time by leveraging automation

The growing number of Dynamics applications that are being developed continuously presents a major challenge for Dynamics 365 testing. With such fast development, organizations need to ensure that these applications are thoroughly and constantly tested before being deployed.

Learn how TestShield helps automate testing in your Dynamics 365 projects