--- tags: vehikl, rcm, abelto --- # Client Seeders and How to Interpret the Google Sheet ## Client Configuration Structure | EnAbleTo Client Name | Client (Launch) Name | Payor ID | LOB | Group/Subgroup | | -------------------- | -------------------- | -------- | ---------- | -------------- | | Aetna | Aetna | 60054 | Commercial | - | | Aetna | Aetna | 60054 | Commercial | Costco 0169579 | Given the contract ruleset above (**not a real ruleset**) we can construct a seeder as fallows: ```javascript= [ { name: 'Aetna', payer: { name: 'Aetna', description: 'Aetna', mahlerPayerId: '60054', eligiblePayerId: '60054' }, linesOfBusiness: [{ name: 'Commercial', description: 'Costco Commercial', // Line of Business contract products are added here contractProducts: { [ProductName.Therapy360]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...] }, [ProductName.TherapyPlus]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...] }, [ProductName.DigitalPlus]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...] } }, // Group specific contracts are added here groups: [{ name: 'Costco 0169579', description: 'Costco Commercial 0169579', groupNumber: '0169579', contractProducts: { description: 'Aetna Commercial Costco 0169579 Group Contract', [ProductName.Therapy360]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...] }, [ProductName.TherapyPlus]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...] }, [ProductName.DigitalPlus]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...] } }, }] }] } ] ``` If contract products need a specific non generated description the `description` property can be added. See the seeder example above. ## Rules Contract products (Therapy 360, Therapy+, D+) should always be created regardless if they have any rules. In this case they can be set to inactive. See the example below: ```javascript= { ... payer: {...}, lineOfBusiness: [{ ... // for line of business: contractProducts: { [ProductName.Therapy360]: { attributes: { status: ActivityStatus.INACTIVE }, }, ... } groups: [{ ... // for group contractProducts: { [ProductName.Therapy360]: { attributes: { status: ActivityStatus.INACTIVE }, }, ... } }, ...] }, ...] } ``` If the value for the rule is `N/A`, `NONE` or the column header is not green the rule can also be ignored. `TreatmentModalities` the cell content of `both` is the rule value of `phone,video`. `ProgramResetPeriodStartDateTrigger` may have something similar to "365 days from **1A**". The **bolded** text is the rule value. Some rules may be specific to a state for example California `CA`. For example: [[Replatforming] Contract Specification Document](https://docs.google.com/spreadsheets/d/1kFjnjYN4OGp4QWMqkqOHw854X6u8s6MwRJMuY1nxlJ0/edit?pli=1#gid=1401421693) Column AG Row 15. The Seeder rule structure can be seen below. Note that there needs to be a ruleset for the specific state and a non-sepcific ruleset. ```javascript= const rules = [...] { name: 'UHC', payer: { name: 'UHC', description: 'UHC Payer', mahlerPayerId: '87726', eligiblePayerId: '87726' }, linesOfBusiness: [{ name: 'Fully Insured', states: [{ id: 'CA', name: 'California' }], contractProducts: { [ProductName.Therapy360]: { attributes: { status: ActivityStatus.ACTIVE }, rules: [...rules, { // This is the rule unique to the state. type: ContractRuleType.TREATMENT_MODALITIES, valueType: ContractRuleValueType.ARRAY_STRING, value: 'video', action: 'CREATE' }] }, ... }, groups: [] }, { name: 'Fully Insured', contractProducts: { [ProductName.Therapy360]: { attributes: { status: ActivityStatus.ACTIVE }, rules: rules }, ... }, groups: [] }, ... ] } ``` Here are all the rules in the eligibility service marked as Not implemented: * AllowBoosters * MultipleProgramExclusionTime * MultipleProgramInclusionTime * MultipleProgramMaxCount * MultiplePrograms Whenever unsure of a rule's proper value Joshua Kornberg is the person to talk to.