Vous êtes ici :
InsEnrollmentService:enrollPlans
Utilisez ce service pour créer des enregistrements de police (Actif ou Police d'assurance) pour une sélection de régimes médicaux, dentaires, de soins de la vue et autres.
Méthode : enrollPlans
Fonctionnement des enregistrements de police d'assurance
Les services d'inscription peuvent écrire dans la Police d'assurance et les objets associés (modèle de données Police harmonisée) ou dans les objets Actif (modèle Vlocity) , selon le paramètre isFsc et le paramètre personnalisé de defaultIsFSCOption. Le service procède comme suit :
-
Le service prend le JSON d'entrée et recherche les informations pour créer les polices (police d'assurance).
defaultIsFSCOption
Paramètre isFsc
Stratégies créées
True
NA
Enregistrements Police d'assurance (
InsurancePolicy)False
True
Enregistrements Police d'assurance (
InsurancePolicy)False
False
Enregistrements Actif (
Asset)NA
True
Enregistrements Police d'assurance (
InsurancePolicy)NA
False
Enregistrements Actif (
Asset) -
Pour l'enregistrement Police d'assurance, le membre peut être représenté en tant que Contact ou Compte personnel. Lorsqu'un membre (principal ou dépendant) est représenté en tant que compte et contacte les deux, le service utilise la représentation du compte.
-
Associe les personnes dépendantes aux polices en tant que Participants à la police d'assurance (
InsurancePolicyParticipants). Il crée un autre Participant à la police d'assurance (InsurancePolicyParticipant) pour le membre principal.Les enregistrements de
InsurancePolicyParticipantssont remplis selon les règles suivantes :Vous pouvez créer des comptes personnels pour les membres du recensement donné. Pour prendre en charge le flux Compte personnel :
-
Si le Membre principal est représenté en tant que Compte personnel, le
Person Account Iddu membre est défini en tant que Compte de la police. -
Si le Membre principal est représenté en tant que Compte personnel, l'ID de compte du participant principal de l'enregistrement de
InsurancePolicyParticipantprincipal est l'ID de compte personnel du membre principal et l'ID de contact du participant principal estpersonAccount.personContactId. -
Si le membre principal de la personne dépendante est représenté en tant que Compte personnel, l'ID de compte du participant principal de l'enregistrement de
InsurancePolicyParticipantde la personne dépendante est l'ID de compte personnel du membre principal. -
L'ID de contact du participant principal de l'enregistrement
InsurancePolicyParticipantde la personne dépendante est lepersonAccount.personContactIddu membre principal. -
Si une personne dépendante est représentée en tant que Compte personnel, l'ID de compte du participant associé de l'enregistrement de
InsurancePolicyParticipantde la personne dépendante est l'ID de compte personnel du membre associé. -
Si une personne dépendante est représentée en tant que Compte personnel, l'ID de contact du participant associé de l'enregistrement de
InsurancePolicyParticipantde la personne dépendante est lepersonAccount.personContactIddu membre associé.
-
Si le Membre principal est représenté en tant que Contact, le
Account.Iddu membre est défini en tant que Compte de la police. -
Si le membre principal est représenté en tant que contact, l'ID de contact du participant principal de l'enregistrement de
InsurancePolicyParticipantprincipal est l'ID de contact du membre principal. -
Si le membre principal de la personne dépendante est représenté en tant que Contact, l'ID de contact du participant principal de
InsurancePolicyParticipantest l'ID de contact du membre principal. -
si dépendant est représenté en tant que Contact, ID de contact du participant associé de
InsurancePolicyParticipantest l'ID de contact du membre principal.
-
-
Récupère le
ProductIddu plan et tamponneInsurancePolicy.ProductId=plan.Product2Id. -
Crée les relations suivantes :
Police d'assurance
InsurancePolicy.EffectiveDate=Contract.StartDateou EffectiveStart dans le JSON d'entrée.InsurancePolicy.ExpirationDate=Contract.EndDateou EffectiveEnd dans le JSON d'entrée.InsurancePolicy.ContractLineItemId__c=Plan.Id -
Le service calcule les
InsurancePolicy.PolicyTermen fonction desContract.ContractTerm:Police d'assurance
ContractTerm = 12, InsurancePolicy.PolicyTerm= Annual.
ContractTerm = 6, InsurancePolicy.PolicyTerm= Semi-Annual
ContractTerm = 1, InsurancePolicy.PolicyTerm= Monthly
ContractTerm = Toute autre valeur InsurancePolicy.PolicyTerm= Personnalisé.
-
Récupère la clé de
Pricedu JSON d'entrée et crée les relations suivantes :Police d'assurance
InsurancePolicy.PremiumAmount= PrixInsurancePolicy.TermPremiumAmount= prix au prorata basé sur les dates d'entrée en vigueur spécifiées au point 5.InsurancePolicy.MonthlyPremium__c= Prix/Durée du contrat -
Crée des couvertures de police d'assurance (
InsurancePolicyCoverages) pour les éléments de couverture.
Fonctionnement des actifs
-
Le service prend le JSON d'entrée et recherche les informations pour créer les stratégies (actifs).
defaultIsFSCOption
Paramètre isFsc
Stratégies créées
True
NA
Enregistrements Police d'assurance (
InsurancePolicy)False
True
Enregistrements Police d'assurance (
InsurancePolicy)False
False
Enregistrements Actif (
Asset)NA
True
Enregistrements Police d'assurance (
InsurancePolicy)NA
False
Enregistrements Actif (
Asset) -
Associe le
contactIddu membre principal à la stratégie en tant que Contact. -
Estampille le
accountIddu contrat d'inscription en tant que Compte de la police. -
Prend la clé de
RawPriceDataou la clé deRateBandTierPriceDatadu JSON d'entrée et la tamponne dans le champAsset.PricingLogData__c. -
Récupère le
ProductIddu plan et tamponneAsset.Product2Id=plan.Product2Id__c. -
Crée les relations suivantes :
Actifs
Asset.EffectiveDate__c=Contract.StartDateou EffectiveStart dans le JSON d'entrée.Asset.ExpirationDate__c=Contract.EndDateou EffectiveEnd dans le JSON d'entrée.Asset.BenefitPlanId__c=Plan.Id -
Le service calcule les
Asset.Term__cen fonction desContract.ContractTerm:Actifs
ContractTerm = 12, Asset.Term__c = Annual.
ContractTerm = 6, Asset.Term__c = Semi-Annual
ContractTerm = 1, Asset.Term__c = Mensuel
ContractTerm = Toute autre valeur, Asset.Term__c = Personnalisé.
-
Récupère la clé de
Pricedu JSON d'entrée et crée les relations suivantes :Actifs
Asset.StandardPremium__c= PrixAsset.TotalPremiumTerm__c= prix au prorata basé sur les dates d'entrée en vigueur spécifiées au numéro 7Asset.AnnualPremium__c= Price/ContractTerm*12Asset.MonthlyPremium__c= Price/ContractTerm -
Associe les personnes dépendantes aux polices en tant que Relations des produits détenus (
AssetPartyRelationship__c). Lors de la création d'une relation de partie d'actif pour des personnes dépendantes, partyId doit être fourni dans le nœud des personnes dépendantes.RemarqueUn autre participant à la police d'assurance (
InsurancePolicyParticipant) est créé pour le membre principal, mais aucun enregistrement n'est créé pour le membre principal dans Relation des produits détenus (AssetPartyRelationship__c). -
Crée des couvertures de police (
AssetCoverage__c) pour les éléments de couverture.
Options distantes
Option |
Description |
|---|---|
|
Obligatoire. La clé d'une structure JSON prétransformée qui contient les informations dont le service a besoin. |
|
Initie une procédure d'intégration personnalisée basée sur la configuration de l'utilisateur. Lorsque vous utilisez cette option, elle transmet toutes les options du service à la procédure d'intégration personnalisée et tous les ID de police en tant qu'entrée à intégrer à l'objet, par exemple l'objet Police d'assurance avec le régime du membre. |
JSON d'entrée
Le service prend le JSON d'entrée spécifié par le inputKey. Dans cet exemple, inputKey = enrollmentJson.
Le service nécessite :
-
contractId: <valeur> -
Dependents: <list of maps for contactId and relationshipType of the dependents>.RemarqueLors de l'utilisation du service enrollPlans pour générer Asset et AssetPartyRelationship, si des personnes dépendantes sont transmises dans enrollmentJson, partyId correspondant doit être fourni.
-
Modèle de structure JSON du produit comprenant des attributs et des produits enfants
Ce JSON d'entrée peut avoir une liste d'objets ou une carte, car le service prend en charge la création d'une ou de plusieurs stratégies.
Pour prendre en charge l'ID de compte personnel, primaryMemberId est un nouveau nœud ajouté au enrollmentJson. Il prend en charge l'ID de compte personnel et ContactId pour la rétrocompatibilité. Selon le type de primaryMemberId ID, les services fonctionnent comme indiqué dans la description du service.
De la même façon, pour les personnes dépendantes, le nœud memberId est ajouté. Il prend en charge l'ID de compte personnel et l'ID de contact pour la rétrocompatibilité. Selon le type d'ID de memberId, les services fonctionnent comme indiqué dans la description du service.
Dans cet exemple, le JSON inclut trois stratégies.
{
"enrollmentJson":[
{
"primaryMemberContactId":"0035w00003HjCFcAAN",
"primaryMemberId" : "0015e00000DvQ89AAF"
"contractId":"8005w000001mT4MAAU",
"dependents":{
"IsSpouse":false,
"contactId":"0035w00003HhfXPAAZ",
"memberId": "0015e00000RvO24IAJ"
"LastName":"Jones",
"FirstName":"Jean",
"relationshipType":"Child"
},
"Id":"01t5w00000EZUtMAAX",
"Name":"HMO 500",
"Family":"Other",
"ProductCode":"SG-HMO-500",
"Type__c":"Medical",
"SubType__c":"HMO",
"RecordTypeName__c":"Product",
"IsConfigurable__c":false,
"PricingFormula__c":"GroupPremium",
"productId":"01t5w00000EZUtMAAX",
"currencyCode":"USD",
"currencySymbol":"$",
"Price":300,
"planId":"a2S5w0000034B2cEAE",
"planRateType":"Age",
"attributeCategories":{
"totalSize":1,
"records":[
{
"Code__c":"SG_Medical",
"Name":"SG Medical",
"id":"a085w00000uA9v6AAC",
"productAttributes":{
"totalSize":1,
"records":[
{
"rulesCode":"SG-HMO-500.SG_annualDed_INN",
"productCode":"SG-HMO-500",
"code":"SG_annualDed_INN",
"dataType":"text",
"inputType":"text",
"multiselect":false,
"required":false,
"readonly":true,
"disabled":true,
"filterable":true,
"attributeId":"a095w000010zIYkAAM",
"label":"Deductible",
"hasRules":false,
"hidden":false,
"cloneable":true,
"isNotTranslatable":false,
"values":[
{
"readonly":true,
"disabled":true
}
],
"userValues":"$500 / $1,000",
"attributeGroupType":"In-Network"
}
]
}
}
]
},
"childProducts":{
"totalSize":1,
"records":[
{
"Id":"01t5w00000EZUA7AAP",
"Name":"Emergency Services",
"ProductCode":"SG_Emerg_Serv",
"Type__c":"Medical",
"IsRecommended__c":false,
"RecordTypeName__c":"CoverageSpec",
"IsConfigurable__c":true,
"productId":"01t5w00000EZUA7AAP",
"pciId":"a3A5w000000Ib6fEAC",
"isOptional":false,
"isSelected":true,
"attributeCategories":{
"totalSize":1,
"records":[
{
"Code__c":"SG_Medical",
"Name":"SG Medical",
"id":"a085w00000uA9v6AAC",
"productAttributes":{
"totalSize":1,
"records":[
{
"code":"SG_urgentCareFacility_OON",
"dataType":"text",
"inputType":"dropdown",
"multiselect":false,
"required":false,
"readonly":false,
"disabled":false,
"filterable":true,
"attributeId":"a095w000010zIZRAA2",
"label":"Urgent Care Facility",
"hasRules":false,
"hidden":false,
"cloneable":true,
"isNotTranslatable":false,
"values":[
{
"id":"0",
"label":"Not Covered",
"readonly":false,
"disabled":false,
"value":"Not Covered"
},
{
"id":"1",
"label":"40% Coins After Ded",
"readonly":false,
"disabled":false,
"value":"40% Coins After Ded"
},
{
"id":"2",
"label":"50% Coins After Ded",
"readonly":false,
"disabled":false,
"value":"50% Coins After Ded"
},
{
"id":"3",
"label":"30% Coins After Ded",
"readonly":false,
"disabled":false,
"value":"30% Coins After Ded"
}
],
"userValues":"Not Covered",
"attributeGroupType":"Out-Of-Network"
}
]
}
}
]
}
}
]
}
}
]
}JSON de sortie
La liste des stratégies créées par le service.
assetIds |
ID d'enregistrement Police d'assurance pour les enregistrements Police d'assurance. ID d'enregistrement d'actif pour les enregistrements Actifs. |
|---|---|
policyIds |
ID d'enregistrement InsurancePolicy. Généré uniquement pour les enregistrements Police d'assurance. |
{
"assetIds":[
{
"assetId":"0036F00002Q4wlSQAR"
},
{
"assetId":"0036F00002Q4wlSQAQ"
}
],
"policyIds":[
"0036F00002Q4wlSQAR",
"0036F00002Q4wlSQAQ"
]
}