Loading
Insurance
InsClaimItemService:calculateCoverages

InsClaimItemService:calculateCoverages

Utilisez ce service pour calculer le montant de couverture et le montant ajusté d'un élément de ligne de réclamation. Ces montants sont utilisés comme montant de paiement lorsque l'expert paie l'élément de ligne de réclamation.

Le service prend en compte les franchises applicables, les primes payées, la coassurance et les montants maximums payés directement lors de la création d'ajustements.

Ce service évalue la Formule de calcul de couverture si elle est définie dans la spécification de couverture.

Classe: InsClaimItemService

Méthode : calculateCoverages

Fonctionnement

Le service utilise des noms de champ d'interface d'objet en tant qu'entrée et sortie par défaut pour des champs communs dans les modèles de données Vlocity (ClaimLineItem__c) et Salesforce FSC (ClaimCoveragePaymentDetail).

Ce service fonctionne différemment selon qu'une Formule de calcul de couverture existe ou non dans la spécification de couverture.

En l'absence de Formule de calcul de couverture, ce service :

  1. Utilise les informations suivantes pour récupérer l'enregistrement de réclamation, l'enregistrement de police associé et les valeurs d'attribut de la réclamation et de la police.

    • claimId

    • claimCoverageId

    • claimItemId (si disponible)

    • claimAmount

  2. Appelle le InsPolicyTermsService : service de traitement.

    Ce service calcule tous les montants des obligations assurées (copay/coassurance, franchise et prêt à l'emploi maximum) et renvoie ces données.

  3. Soustrait les montants d'obligation assurés du montant de la réclamation, s'il existe un ou plusieurs montants d'obligation assurés.

  4. Renvoie la sortie, y compris le montant ajusté final et les éléments de réclamation enfants (le cas échéant).

Lorsqu'une Formule de calcul de couverture existe dans la spécification de couverture, ce service :

  • Utilise les informations suivantes pour récupérer l'enregistrement de réclamation, l'enregistrement de police associé et les valeurs d'attribut de la réclamation et de la police.

    • claimId

    • claimCoverageId

    • claimItemId (si disponible)

    • claimAmount

  • Compile les objets suivants (y compris AttributeSelectedValues <productcode.key>) pour les rendre disponibles dans la Formule de calcul de couverture de la spécification de couverture :

    • Réclamation

    • Politique

    • PoliceCouverture

    • InsuredParty

    • InsuredItem

    • InvolvedInjury

    • InvolvedProperty

  • Exécute la Formule de calcul de couverture.

  • Appelle le InsPolicyTermsService : service de traitement.

    Ce service calcule tous les montants des obligations assurées (copay/coassurance, franchise et prêt à l'emploi maximum) et renvoie ces données.

  • Soustrait les montants d'obligation assurés du montant de la réclamation, s'il existe un ou plusieurs montants d'obligation assurés.

  • Renvoie la sortie, y compris le montant ajusté final et les éléments de réclamation enfants (le cas échéant).

Options distantes

Option

Description

claimId

Obligatoire.

L'ID de la réclamation pour laquelle le service calcule le montant de couverture.

claimItemId

Facultatif.

Utilisez cette option lorsque vous mettez à jour un élément de ligne de réclamation existant avec une couverture recalculée et des montants ajustés.

claimCoverageId

Obligatoire.

L'ID de la couverture pour laquelle le service calcule un montant.

additionalInput

Obligatoire.

JSON de l'entrée supplémentaire possible à utiliser dans les formules de couverture, à enregistrer dans l'enregistrement de l'élément de ligne de réclamation (si saveLineItem est true). Il doit avoir les entrées suivantes :

  • ClaimLineItem.claimAmount

  • ClaimLineItem.recipientId

Cette option utilise les noms de champ d'interface décrits dans ce tableau dans l'entrée et la sortie des champs communs dans les modèles de données Vlocity ClaimLineItem__c et Salesforce FSC ClaimCoveragePaymentDetail :

Nom du champ Interface utilisateur

Champs courants dans les modèles de données Vlocity ClaimLineItem__c et Salesforce FSC ClaimCoveragePaymentDetail

ClaimLineItem.name

Utiliser pour ClaimCoveragePaymentDetail.Name ClaimLineItem__c.Name and

ClaimLineItem.claimAmount

Utiliser pour ClaimLineItem__c.ClaimAmount__c  et ClaimCoveragePaymentDetail.ClaimedAmount

ClaimLineItem.description

Utiliser pour ClaimCoveragePaymentDetail.Description ClaimLineItem__c.Description__c and

ClaimLineItem.recipientId

Utiliser pour des ClaimCoveragePaymentDetail.ClaimParticipantRecipientId ClaimLineItem__c.PayeeAcccountId__c, ClaimLineItem__c.PayeeContactId__c, ClaimLineItem.PayeeAccountId__c__c, and

ClaimLineItem.benefitType

Utiliser pour ClaimCoveragePaymentDetail.BenefitName ClaimLineItem__c.BenefitType__c and

ClaimLineItem.reserveAmount

Utiliser pour ClaimLineItem__c.ReserveAmount__c  et ClaimCoveragePaymentDetail.ClaimCoverageReserveDetailId.ReserveAmount

ClaimLineItem.status

Utiliser pour ClaimCoveragePaymentDetail.Status ClaimLineItem__c.Status__c and

ClaimLineItem.type

Utiliser pour ClaimCoveragePaymentDetail.Type ClaimLineItem__c.Type__c and

ClaimLineItem.unitCount

Utiliser pour ClaimCoveragePaymentDetail.LimitUnitCount ClaimLineItem__c.Quantity__c and

ClaimLineItem.uom

Utiliser pour ClaimCoveragePaymentDetail.LimitUnitOfMeasure

ClaimLineItem.currencyIsoCode

Utiliser pour ClaimLineItem__c.CurrencyIsoCode et ClaimCoveragePaymentDetail.CurrencyIsoCode

Pour les champs non répertoriés ici, utilisez le nom complet du champ.

Les attributs précédés de ClaimLineItem qui ont l'API de l'élément de ligne de réclamation sont enregistrés dans l'élément de ligne de réclamation créé.

JSON d'entrée et JSON de sortie

Si les méthodes prêtes à l'emploi de détermination du montant ajusté d'un détail de paiement répondent à vos besoins métiers, vous pouvez ignorer cette section. Cependant, si vous souhaitez ajuster les montants de détail de paiement de façon non prise en charge prête à l'emploi, cette section est pour vous.

Généralement, les cas d'utilisation prêts à l'emploi ci-dessous se rapportent à des scénarios non couverts par des classes d'attribut de puissance, tels que :

  • Franchises conditionnelles, lorsque deux franchises existent dans la même spécification de couverture. Par exemple, la franchise A s'applique aux dommages causés par un incendie et la franchise B s'applique aux dommages causés par une inondation. Vous souhaitez que le système détermine la franchise à appliquer aux détails de paiement à l'exécution.

  • Ordre d'opérations Copay/Coinsurance. Par exemple, Coassurance et Copay existent dans la même spécification de couverture, et vous souhaitez appliquer la coassurance avant d'appliquer la Copay à un détail de paiement.

  • Calcul d'un montant de versement pour un type d'avantage. Par exemple, pour un type d'avantage Visite de bien-être, vous souhaitez que le système calcule un montant de 50 € pour les détails de paiement.

Après avoir compris le format JSON de sortie InsClaimItemService: calculateCoverages, vous pouvez implémenter un comportement de type attribut power pour calculer les montants et les ajustements de versement sans avoir de classe d'attribut power sous-jacente.

Avant de prendre de l’avance, prenons un exemple simple pour illustrer le JSON de sortie attendu par InsClaimItemService: calculateCoverages. Prenons un cas d'utilisation simple pris en charge par la classe d'attribut de puissance Déductible prête à l'emploi.

Exemple : Montant réclamé de 5000 $ dans une police avec une franchise de 1000 $

Voici le JSON d'entrée pour InsClaimItemService: calculateCoverages.

{ 
	"claimId": "01t000000000000001",
	"claimCoverageId": "01t000000000000002",
	"claimItemId": "01t000000000000003",
	"additionalInput": {
		"ClaimLineItem.claimAmount": 5000
		"ClaimLineItem.description": "first party claim payment"
		"ClaimLineItem.recipientId": "01t000000000000004"
	}
}

Voici le JSON de sortie renvoyé par InsClaimItemService: calculateCoverages.

{  
	"claimItem": {
		"adjustedAmount": 4000 // loss item adjusted amount
	},
	"claimLineItemAdjustment": {
		"attributeClass": "Deductible", // policy terms attribute class
		"adjustedAmount": 1000, // policy terms tracking entry postedAmount
		"assetTermId": "a6ERN00000000dg2AA", // policy terms id
		"remainingAmount": 0 // policy terms tracking entry remainingAmount
	}
}

Voici comment les interactions des utilisateurs sous l'onglet Données financières invoquent des services, comment les InsClaimItemService: calculateCoverages obtiennent des données et ce qu'il advient ensuite des données.

Illustre le flux de données de ce service.
  • (1) Sous l'onglet Données financières d'une réclamation, un utilisateur clique sur Nouvel élément de perte et saisit un montant de réclamation de 5 000 $. Une pression sur Tabulation pour passer du champ Montant de la réclamation au champ suivant invoque InsClaimItemService: calculateCoverages. Dans cet exemple, la sortie JSON renvoyée par InsClaimItemService: calculateCoverages inclut les valeurs ci-dessous.

    • claimLineItem: adjustedAmount Le montant payé au bénéficiaire après la franchise est soustrait du montant de la réclamation : 5 000 à 1 000 $= 4 000 $. Cette valeur est présentée à l'utilisateur dans le champ Montant ajusté du formulaire Nouvel élément de perte.

    • claimLineItemAdjustment:adjustedAmount Le montant de l'ajustement au détail du paiement de la couverture de réclamation, dans le cas présent la franchise de 1000 $ soustraite du montant de réclamation.

    • claimLineItemAdjustment:attributeClass La raison pour laquelle le montant à délivrer au bénéficiaire diffère du montant réclamé. Dans notre exemple, le montant demandé est diminué de 1000 $, car une franchise de 1000 $ s'applique (attributeClass = Déductible).

    • claimLineItemAdjustment:assetTermId La durée de la police pour laquelle une entrée de suivi de la durée de la police est créée. Dans notre exemple, il correspond à l'ID de la durée de police de la franchise.

    • claimLineItemAdjustment:remainingAmount le montant à définir dans l'entrée de suivi de la durée de la police, dans le cas présent 0 €, car il n'y a plus de franchise après cette transaction.

  • (2) Cliquer sur Ajouter pour enregistrer le nouvel élément de perte invoque InsClaimItemService: add, qui utilise la sortie JSON renvoyée par InsClaimItemService: calculateCoverages pour conserver les données dans les enregistrements ClaimCoveragePaymentDetail, ClaimCoveragePaymentAdjustment et InsurancePolicyTermTrackingEntry. (le fonctionnement du service InsClaimItemService: update est similaire). Chaque enregistrement inclut des valeurs associées à notre exemple :

    • L'enregistrement ClaimCoveragePaymentDetail a un ClaimCoveragePaymentDetail.ClaimedAmount de 5000 € et un ClaimCoveragePaymentDetail.AdjustedAmount de 4000 €.

    • L'enregistrement ClaimCoveragePaymentAdjustment contient ClaimCoveragePaymentAdjustment.AdjustedReason of Deductible et ClaimCoveragePaymentAdjustment.AdjustedAmount de 1000 €.

    • L'enregistrement InsurancePolicyTermTrackingEntry a un InsurancePolicyTermTrackingEntry.PostedAmount de 1000 € et un InsurancePolicyTermTrackingEntry.RemainingAmount de 0 €.

En comprenant la structure de base du JSON de sortie, vous pouvez configurer un cas d'utilisation plus avancé en introduisant une logique dans la Formule de calcul de couverture dans une spécification de couverture.

Exemple : Sous l'onglet Détails d'une spécification de couverture, vous saisissez une Formule de calcul de couverture semblable à celle-ci, en utilisant la même syntaxe ClaimLineItem utilisée pour la additionalInput.

InvokeIP('ClaimCoverage_ClaimCoverageFormula', , INPUT('claimId', ClaimLineItem.claimId) INPUT('benefitType', ClaimLineItem.benefitType), INPUT('quantityCount', ClaimLineItem.unitCount), 'result')

Illustre le champ Formule de calcul de couverture dans l&apos;interface utilisateur.

À l'exécution, cette formule appelle une procédure d'intégration appelée ClaimCoverage_ClaimCoverageFormula. Cette procédure d'intégration attend des entrées pour claimId, benefitType et quantityCount, comme indiqué dans cet exemple de JSON d'entrée pour tester la procédure d'intégration :

{ 
	"claimId": "a2b4W000007W2pQQAS",
	"benefitType": "Ambulance - Air",
	"quantityCount": "1",
}

La formule de calcul de couverture spécifie que le JSON de sortie de la procédure d'intégration ClaimCoverage_ClaimCoverageFormula se trouve dans un nœud appelé result. Tant que la structure JSON de ce nœud result respecte le format JSON de sortie InsClaimItemService: calculateCoverages attendu, le système se comporte exactement comme s'il utilisait une classe d'attribut power sous-jacente : affichage du Montant ajusté pour l'utilisateur et données permanentes dans les enregistrements ClaimCoveragePaymentDetail, ClaimCoveragePaymentAdjustment et InsurancePolicyTermTrackingEntry après avoir cliqué sur le bouton Ajouter.

Dans cet exemple de paiement JSON de sortie de 50 € pour une visite de bien-être, le nœud result entraîne l'insertion de 50 par InsClaimItemService: add dans ClaimCoveragePaymentDetail.AdjustedAmount.

{  
	"result": {
		"claimLineItem": {
			"adjustedAmount": "50"
			}
	},
}

Voici quelques conseils pour configurer votre calcul.

  • Si votre cas d'utilisation implique des classes d'attributs de puissance existantes, vous pouvez utiliser InsurancePolicyTerms: getCurrentStandings pour déterminer le montant restant sur une durée de police avant d'appliquer un ajustement. Cette étape permet d'appliquer l'ajustement correct et de renvoyer l'actifTermId approprié. Dans ces cas d'utilisation, configurez la structure JSON renvoyée par votre procédure d'intégration pour inclure les nœuds claimLineItem et claimLineItemAdjustment.

    Dans le nœud claimLineItemAdjustment, assurez-vous de :

    • Incluez assetTermId.

    • Incluez attributeClass.

    Le service de InsClaimItemService: add a besoin de ces deux valeurs pour déterminer comment créer l'enregistrement d'entrée de suivi de la durée de la police d'assurance pour cet attribut de puissance spécifique dans la police. Par exemple, une spécification de couverture avec une franchise conditionnelle a deux attributs de puissance Déductible : Déductible A pour incendie et Déductible B pour inondation. La procédure d'intégration dans la formule Calcul de la couverture peut utiliser InsurancePolicyTerms: getCurrentStandings pour déterminer que la franchise A pour cette police est de 1 000 $ et la franchise B est de 500 $. Ensuite, selon la cause de la perte pour cette réclamation, la procédure d'intégration peut déterminer la franchise à appliquer. Lors du renvoi du JSON de sortie, assurez-vous de renvoyer le assetTermId correct en fonction de la franchise appliquée.

  • Certains cas d'utilisation n'impliquent pas les classes d'attribut de puissance prêtes à l'emploi, mais nécessitent tout de même un ajustement des détails de paiement. Par exemple, lorsqu’un prestataire facture plus qu’un taux négocié, un enregistrement ClaimCoveragePaymentAdjustment est requis pour expliquer pourquoi le montant de paiement ajusté est inférieur au montant réclamé. Dans ces cas d'utilisation, configurez la structure JSON renvoyée par votre procédure d'intégration pour inclure les nœuds claimLineItem et claimLineItemAdjustment.

    Dans le nœud claimLineItemAdjustment :

    • Oubliez assetTermId, car aucune classe d'attribut power ne définit cet ajustement.

    • Insérez attributeClass comme motif d'ajustement (par exemple, « Ajustement de Oververbilling »).

    Le service InsClaimItemService: add utilise la chaîne attributeClass pour remplir le champ ClaimCoveragePaymentDetail.AdjustedReason, même s'il n'existe pas d'attributClass associé.

  • Si un cas d'utilisation implique un montant de versement pour un type de garantie, il n'y a aucune différence entre les montants réclamés et ajustés. Par exemple, un tarif fixe de 100 $ par jour s'applique aux séjours hospitaliers. Dans ce cas, laissez le nœud claimLineItemAdjustment entier hors de votre JSON.

 
Chargement
Salesforce Help | Article