Você está aqui:
InsEnrollmentService:enrollPlans
Use esse serviço para criar registros de apólice (Ativo ou Apólice de seguro) para o inscrito selecionado em planos médicos, odontológicos, visuais e outros.
Método: enrollPlans
Como funciona para registros de apólice de seguro
Os serviços de inscrição podem gravar na apólice de seguro e objetos relacionados (modelo de dados de apólice harmonizada) ou objetos de ativo (modelo Vlocity) , dependendo do parâmetro isFsc e da configuração personalizada para defaultIsFSCOption. O serviço faz o seguinte:
-
O serviço pega o JSON de entrada e procura as informações para criar as apólices (apólice de seguro).
defaultIsFSCOption
Parâmetro isFsc
Apólices criadas
Verdadeiro
NA
Registros de apólice de seguro (
InsurancePolicy)Falso
Verdadeiro
Registros de apólice de seguro (
InsurancePolicy)Falso
Falso
Registros de ativos (
Asset)NA
Verdadeiro
Registros de apólice de seguro (
InsurancePolicy)NA
Falso
Registros de ativos (
Asset) -
Para o registro de Apólice de seguro, o membro pode ser representado como um Contato ou uma Conta pessoal. Quando um membro (principal ou dependente) é representado como uma conta e um contato ambos, o serviço usa a representação da conta.
-
Associa dependentes às apólices como Participantes da apólice de seguro (
InsurancePolicyParticipants). Cria outro Participante da apólice de seguro (InsurancePolicyParticipant) para o membro principal.Os registros para
InsurancePolicyParticipantssão preenchidos de acordo com estas regras:Você pode criar contas pessoais para os membros no censo fornecido. Para oferecer suporte ao fluxo Conta pessoal:
-
Se o Membro principal for representado como uma Conta pessoal, a
Person Account Iddo membro será definida como a Conta da apólice. -
Se o Membro principal for representado como uma Conta pessoal, o ID da conta do participante principal do registro de
InsurancePolicyParticipantprincipal será o ID da conta pessoal do membro principal e o ID do contato do participante principal será opersonAccount.personContactId. -
Se o membro principal do dependente for representado como Conta pessoal, o ID da conta principal do participante do registro de
InsurancePolicyParticipantdo dependente será o ID da conta pessoal do membro principal. -
O ID de contato do participante principal do registro de
InsurancePolicyParticipantdo dependente é opersonAccount.personContactIddo membro principal. -
Se o dependente for representado como uma Conta pessoal, o ID da Conta do participante relacionado do registro de
InsurancePolicyParticipantdo dependente será o ID da conta pessoal do membro relacionado. -
Se o dependente for representado como uma Conta pessoal, o ID de contato do Participante relacionado do registro de
InsurancePolicyParticipantdo dependente será opersonAccount.personContactIddo membro relacionado.
-
Se o Membro principal for representado como um Contato, a
Account.Iddo membro será definida como a Conta da apólice. -
Se o Membro principal for representado como um contato, o ID do contato do participante principal do registro de
InsurancePolicyParticipantprincipal será o ID do contato do membro principal. -
Se o membro principal do dependente for representado como Contato, o ID de contato do participante principal do
InsurancePolicyParticipantserá o ID de contato do membro principal. -
se dependente for representado como Contato, o ID de contato do participante relacionado da
InsurancePolicyParticipantserá o ID de contato do membro principal.
-
-
Obtém o
ProductIddo plano e marcaInsurancePolicy.ProductId=plan.Product2Id. -
Cria estes relacionamentos:
Apólice de seguro
InsurancePolicy.EffectiveDate=Contract.StartDateou o EffectiveStart no JSON de entrada.InsurancePolicy.ExpirationDate=Contract.EndDateou EffectiveEnd no JSON de entrada.InsurancePolicy.ContractLineItemId__c=Plan.Id -
O serviço calcula
InsurancePolicy.PolicyTermcom base emContract.ContractTerm:Apólice de seguro
ContractTerm = 12, InsurancePolicy.PolicyTerm= Annual.
ContractTerm = 6, InsurancePolicy.PolicyTerm= Semi-Annual
ContractTerm = 1, InsurancePolicy.PolicyTerm= Monthly
ContractTerm = qualquer outro valor, InsurancePolicy.PolicyTerm= Personalizado.
-
Obtém a chave
Pricedo JSON de entrada e cria estes relacionamentos:Apólice de seguro
InsurancePolicy.PremiumAmount= preçoInsurancePolicy.TermPremiumAmount= preço rateado com base nas datas efetivas especificadas em #5.InsurancePolicy.MonthlyPremium__c= Preço/ContractTerm -
Cria Coberturas da apólice de seguro (
InsurancePolicyCoverages) para os itens de cobertura.
Como funciona para ativos
-
O serviço pega o JSON de entrada e procura as informações para criar as apólices (ativos).
defaultIsFSCOption
Parâmetro isFsc
Apólices criadas
Verdadeiro
NA
Registros de apólice de seguro (
InsurancePolicy)Falso
Verdadeiro
Registros de apólice de seguro (
InsurancePolicy)Falso
Falso
Registros de ativos (
Asset)NA
Verdadeiro
Registros de apólice de seguro (
InsurancePolicy)NA
Falso
Registros de ativos (
Asset) -
Associa o
contactIddo membro principal à apólice como Contato. -
Marca o
accountIddo contrato de inscrição como a Conta da apólice. -
Pega a chave
RawPriceDataou a chaveRateBandTierPriceDatado JSON de entrada e a carimbo no campoAsset.PricingLogData__c. -
Obtém o
ProductIddo plano e marcaAsset.Product2Id=plan.Product2Id__c. -
Cria os seguintes relacionamentos:
Ativos
Asset.EffectiveDate__c=Contract.StartDateou o EffectiveStart no JSON de entrada.Asset.ExpirationDate__c=Contract.EndDateou EffectiveEnd no JSON de entrada.Asset.BenefitPlanId__c=Plan.Id -
O serviço calcula
Asset.Term__ccom base emContract.ContractTerm:Ativos
ContractTerm = 12, Asset.Term__c = Annual.
ContractTerm = 6, Asset.Term__c = Semi-Annual
ContractTerm = 1, Asset.Term__c = Monthly
ContractTerm = qualquer outro valor, Asset.Term__c = Personalizado.
-
Obtém a chave
Pricedo JSON de entrada e cria estes relacionamentos:Ativos
Asset.StandardPremium__c= preçoAsset.TotalPremiumTerm__c= preço rateado com base nas datas efetivas especificadas em #7Asset.AnnualPremium__c= Price/ContractTerm*12Asset.MonthlyPremium__c= Preço/ContractTerm -
Associa dependentes às apólices como Relacionamentos de produto mantidos (
AssetPartyRelationship__c). Ao criar um relacionamento de parte do ativo para dependentes, o partyId deve ser fornecido no nó dependentes.NotaOutro Participante da apólice de seguro (
InsurancePolicyParticipant) é criado para o membro principal, mas nenhum registro é criado para o membro principal em Relacionamento de produto retido (AssetPartyRelationship__c). -
Cria Coberturas da apólice (
AssetCoverage__c) para os itens de cobertura.
Opções remotas
Opção |
Descrição |
|---|---|
|
Obrigatório. A chave para uma estrutura JSON pré-transformada que contém informações de que o serviço precisa. |
|
Inicia um procedimento de integração personalizado com base na configuração do usuário. Quando você usa essa opção, ela passa todas as opções do serviço para o procedimento de integração personalizado e todos os IDs da apólice como entrada para integração com o objeto, por exemplo, o objeto de apólice de seguro com o plano do membro. |
JSON de entrada
O serviço pega o JSON de entrada especificado pelo inputKey. Neste exemplo, inputKey = enrollmentJson.
O serviço exige:
-
contractId: <value> -
Dependents: <lista de mapas para contactId e relationshipType dos dependentes>.NotaAo usar o serviço enrollPlans para gerar Asset e AssetPartyRelationship, se os dependentes forem passados em enrollmentJson, o partyId correspondente deverá ser fornecido.
-
Modelo de estrutura JSON do produto incluindo atributos e produtos filhos
Esse JSON de entrada pode ter uma lista de objetos ou um mapa, pois o serviço oferece suporte à criação de uma política ou de várias políticas.
Para oferecer suporte ao ID da conta pessoal, o primaryMemberId é um novo nó adicionado ao enrollmentJson. Há suporte para ID da conta pessoal e ContactId para compatibilidade com versões anteriores. Com base no tipo de ID de primaryMemberId, os serviços funcionam conforme descrito na descrição do serviço.
Da mesma forma, para dependentes, o nó memberId é adicionado. Há suporte para ID da conta pessoal e ID do contato para compatibilidade com versões anteriores. Com base no tipo de ID de memberId, os serviços funcionam conforme descrito na descrição do serviço.
Neste exemplo, o JSON inclui três políticas.
{
"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 saída
A lista de apólices criadas pelo serviço.
assetIds |
IDs de registro de InsurancePolicy para registros de Apólice de seguro. IDs de registro do ativo para registros de Ativos. |
|---|---|
policyIds |
IDs de registro de InsurancePolicy. Gerado apenas para registros de Apólice de seguro. |
{
"assetIds":[
{
"assetId":"0036F00002Q4wlSQAR"
},
{
"assetId":"0036F00002Q4wlSQAQ"
}
],
"policyIds":[
"0036F00002Q4wlSQAR",
"0036F00002Q4wlSQAQ"
]
}
