Loading
Seguro
InsClaimItemService:calculateCoverages

InsClaimItemService:calculateCoverages

Utilice este servicio para calcular el importe de cobertura y el importe ajustado para una partida de reclamación. Estos importes se utilizan como importe de pago cuando el ajustador de reclamaciones paga la partida de reclamación.

El servicio tiene en cuenta los máximos aplicables de deducibles, copagos, coseguros y gastos de bolsillo al crear ajustes.

Este servicio evalúa la Fórmula de cálculo de cobertura si se define una en la especificación de cobertura.

Clase: InsClaimItemService

Método: calculateCoverages

Funcionamiento

El servicio utiliza nombres de campo de interfaz de objeto como entrada y salida predeterminadas para campos comunes en modelos de datos de Vlocity (ClaimLineItem__c) y Salesforce FSC (ClaimCoveragePaymentDetail).

Este servicio funciona de forma diferente dependiendo de si existe una Fórmula de cálculo de cobertura en la especificación de cobertura.

Cuando no hay Fórmula de cálculo de cobertura presente, este servicio:

  1. Utiliza la siguiente información para obtener el registro de reclamación, el registro de póliza asociado y los valores de atributo para la reclamación y la póliza.

    • claimId

    • claimCoverageId

    • claimItemId (si está disponible)

    • claimAmount

  2. Llama al Servicio InsPolicyTerms: servicio de proceso.

    Este servicio calcula todos los importes de obligaciones aseguradas (copago/coseguro, deducible y máximo de gastos de bolsillo) y devuelve estos datos.

  3. Resta los importes de obligación asegurados del importe de la reclamación, si existen uno o más importes de obligación asegurados.

  4. Devuelve el resultado incluyendo el importe ajustado final y los elementos de reclamación secundarios (si los hubiera).

Cuando existe una Fórmula de cálculo de cobertura en la especificación de cobertura, este servicio:

  • Utiliza la siguiente información para obtener el registro de reclamación, el registro de póliza asociado y los valores de atributo para la reclamación y la póliza.

    • claimId

    • claimCoverageId

    • claimItemId (si está disponible)

    • claimAmount

  • Compila los siguientes objetos (incluyendo AttributeSelectedValues <productcode.key>) para ponerlos a disposición de la Fórmula de cálculo de cobertura en la especificación de cobertura:

    • Reclamación

    • Política

    • PolicyCoverage

    • InsuredParty

    • InsuredItem

    • InvolvedInjury

    • InvolvedProperty

  • Ejecuta la Fórmula de cálculo de cobertura.

  • Llama al Servicio InsPolicyTerms: servicio de proceso.

    Este servicio calcula todos los importes de obligaciones aseguradas (copago/coseguro, deducible y máximo de gastos de bolsillo) y devuelve estos datos.

  • Resta los importes de obligación asegurados del importe de la reclamación, si existen uno o más importes de obligación asegurados.

  • Devuelve el resultado incluyendo el importe ajustado final y los elementos de reclamación secundarios (si los hubiera).

Opciones remotas

Opción

Descripción

claimId

Obligatorio.

El Id. de la reclamación para la que el servicio calcula el importe de cobertura.

claimItemId

Opcional.

Utilice esta opción cuando actualice una partida de reclamación existente con cobertura recalculada e importes ajustados.

claimCoverageId

Obligatorio.

El Id. de la cobertura para la que el servicio calcula un importe.

additionalInput

Obligatorio.

JSON de posible entrada adicional para su uso en las fórmulas de cobertura, para guardar en el registro de partida de reclamación (si saveLineItem es true). Debe tener las siguientes entradas:

  • ClaimLineItem.claimAmount

  • ClaimLineItem.recipientId

Esta opción utiliza los nombres de campo de interfaz descritos en esta tabla en la entrada y salida para campos comunes en modelos de datos de Vlocity ClaimLineItem__c y Salesforce FSC ClaimCoveragePaymentDetail:

Nombre de campo de interfaz de usuario

Campos comunes en modelos de datos de ClaimCoveragePaymentDetail de Vlocity ClaimLineItem__c y Salesforce FSC

ClaimLineItem.name

Uso para ClaimLineItem__c.Name and ClaimCoveragePaymentDetail.Name

ClaimLineItem.claimAmount

Uso para ClaimLineItem__c.ClaimAmount__c  y ClaimCoveragePaymentDetail.ClaimedAmount

ClaimLineItem.description

Uso para ClaimLineItem__c.Description__c and ClaimCoveragePaymentDetail.Description

ClaimLineItem.recipientId

Uso para ClaimLineItem__c.PayeeAcccountId__c, ClaimLineItem__c.PayeeContactId__c, ClaimLineItem.PayeeAccountId__c__c, and ClaimCoveragePaymentDetail.ClaimParticipantRecipientId

ClaimLineItem.benefitType

Uso para ClaimLineItem__c.BenefitType__c and ClaimCoveragePaymentDetail.BenefitName

ClaimLineItem.reserveAmount

Uso para ClaimLineItem__c.ReserveAmount__c  y ClaimCoveragePaymentDetail.ClaimCoverageReserveDetailId.ReserveAmount

ClaimLineItem.status

Uso para ClaimLineItem__c.Status__c and ClaimCoveragePaymentDetail.Status

ClaimLineItem.type

Uso para ClaimLineItem__c.Type__c and ClaimCoveragePaymentDetail.Type

ClaimLineItem.unitCount

Uso para ClaimLineItem__c.Quantity__c and ClaimCoveragePaymentDetail.LimitUnitCount

ClaimLineItem.uom

Uso para ClaimCoveragePaymentDetail.LimitUnitOfMeasure

ClaimLineItem.currencyIsoCode

Uso para ClaimLineItem__c.CurrencyIsoCode y ClaimCoveragePaymentDetail.CurrencyIsoCode

Para campos no enumerados aquí, utilice el nombre completamente cualificado del campo.

Los atributos con el prefijo ClaimLineItem que tienen la API de la partida de reclamación se guardan en la partida de reclamación que se crea.

JSON de entrada y JSON de salida

Si los métodos listos para su uso para determinar el importe ajustado para un detalle de pago cumplen sus necesidades de negocio, puede omitir esta sección. Pero si desea ajustar importes de detalles de pago de formas que no se admiten de forma inmediata, esta sección es para usted.

Normalmente, estos casos de uso listos para su uso son para escenarios no cubiertos por clases de atributos de energía, como:

  • Deducibles condicionales, donde existen dos deducibles en la misma especificación de cobertura. Por ejemplo, el Deducible A se aplica a una pérdida de daño por incendio, y el Deducible B se aplica a una pérdida de daño por inundación. Desea que el sistema determine qué deducible aplicar al detalle de pago en tiempo de ejecución.

  • Orden de operaciones de Copago/Coaseguro. Por ejemplo, el coseguro y el copago existen en la misma especificación de cobertura y desea aplicar el coseguro antes de aplicar el copago en un detalle de pago.

  • Cálculo de un importe de pago para un tipo de beneficio. Por ejemplo, para un tipo de beneficio Visita de bienestar, desea que el sistema calcule un importe de 50 USD para los detalles del pago.

Después de comprender el formato JSON de salida de InsClaimItemService: calculateCoverages, puede implementar un comportamiento similar a atributo de potencia para calcular importes y ajustes de pago sin tener una clase de atributo de potencia subyacente.

Antes de adelantarnos, utilicemos un ejemplo sencillo para ilustrar el JSON de salida que se espera que devuelva InsClaimItemService: calculateCoverages. Considere un caso de uso sencillo compatible con la clase de atributo de energía deducible lista para su uso.

Ejemplo: Importe reclamado de 5.000 $ en una póliza con un deducible de 1.000 $

Este es el JSON de entrada para InsClaimItemService: calculateCoverages.

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

Este es el JSON de salida devuelto por 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
	}
}

A continuación le mostramos cómo las interacciones de los usuarios en la ficha Finanzas invocan servicios, cómo InsClaimItemService: calculateCoverages obtiene datos y qué sucede con los datos después.

Ilustra el flujo de datos de este servicio.
  • (1) En la ficha Datos financieros de una reclamación, un usuario hace clic en Nuevo elemento de pérdida e ingresa un importe de reclamación de 5.000 $. Pulsar Tab para avanzar desde Importe de reclamación al siguiente campo invoca InsClaimItemService: calculateCoverages. En este ejemplo, el resultado JSON devuelto desde InsClaimItemService: calculateCoverages incluye estos valores.

    • claimLineItem: adjustedAmount El importe pagado al beneficiario después de restar el deducible del importe de la reclamación: $5.000-$1.000=$4.000. Este valor se devuelve al usuario en el campo Importe ajustado del formulario Nuevo elemento de pérdida.

    • claimLineItemAdjustment:adjustedAmount El importe del ajuste en el detalle de pago de cobertura de la reclamación, en este caso el deducible de 1.000 $ restado del importe de la reclamación.

    • claimLineItemAdjustment:attributeClass El motivo por el que el importe que se emitirá al beneficiario difiere del importe reclamado. En nuestro ejemplo, el importe reclamado se reduce en 1.000 $ porque se aplica un deducible de 1.000 $ (attributeClass = Deducible).

    • claimLineItemAdjustment:assetTermId Término de póliza para el que se crea una entrada de seguimiento de término de póliza. En nuestro ejemplo, es el Id. del término de póliza Deducible.

    • claimLineItemAdjustment:remainingAmount Importe a establecer en la entrada de seguimiento del término de póliza, en este caso 0 USD porque no queda ningún deducible después de esta transacción.

  • (2) Hacer clic en Agregar para guardar el nuevo elemento de pérdida invoca InsClaimItemService: add, que utiliza la salida JSON devuelta desde InsClaimItemService: calculateCoverages para mantener los datos en los registros ClaimCoveragePaymentDetail, ClaimCoveragePaymentAdjustment y InsurancePolicyTermTrackingEntry. (El servicio de InsClaimItemService: update funciona de forma similar.) Cada registro incluye valores relacionados con nuestro ejemplo:

    • El registro ClaimCoveragePaymentDetail tiene un ClaimCoveragePaymentDetail.ClaimedAmount de 5.000 $ y un ClaimCoveragePaymentDetail.AdjustedAmount de 4.000 $.

    • El registro ClaimCoveragePaymentAdjustment tiene un ClaimCoveragePaymentAdjustment.AdjustedReason de Deducible y un ClaimCoveragePaymentAdjustment.AdjustedAmount de 1.000 USD.

    • El registro InsurancePolicyTermTrackingEntry tiene un InsurancePolicyTermTrackingEntry.PostedAmount de 1.000 $ y un InsurancePolicyTermTrackingEntry.RemainingAmount de 0 $.

Con una comprensión de la estructura básica del JSON de salida, puede configurar un caso de uso más avanzado introduciendo lógica en la Fórmula de cálculo de cobertura en una especificación de cobertura.

Ejemplo: En la ficha Detalles de una especificación de cobertura, ingresa una Fórmula de cálculo de cobertura como esta, utilizando la misma sintaxis ClaimLineItem utilizada para additionalInput.

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

Ilustra el campo Fórmula de cálculo de cobertura en la interfaz de usuario.

En tiempo de ejecución, esta fórmula llama a un procedimiento de integración denominado ClaimCoverage_ClaimCoverageFormula. Este procedimiento de integración espera entradas para claimId, benefitType y quantityCount, como se muestra en este JSON de entrada de muestra para probar el procedimiento de integración:

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

La Fórmula de cálculo de cobertura especifica que el JSON de salida para el procedimiento de integración ClaimCoverage_ClaimCoverageFormula está en un nodo denominado result. Siempre que la estructura JSON de ese nodo de result se ajuste al formato JSON de salida de InsClaimItemService: calculateCoverages esperado, el sistema se comporta exactamente como si estuviera utilizando una clase de atributo de potencia subyacente: mostrando el Importe ajustado al usuario y datos persistentes en los registros ClaimCoveragePaymentDetail, ClaimCoveragePaymentAdjustment y InsurancePolicyTermTrackingEntry después de hacer clic en el botón Agregar.

En este ejemplo de JSON de salida de un pago de 50 USD para una visita de bienestar, el nodo result hace que InsClaimItemService: add realice una inserción de 50 en ClaimCoveragePaymentDetail.AdjustedAmount.

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

Estas son algunas sugerencias para configurar su cálculo.

  • Si su caso de uso implica clases de atributos de potencia existentes, puede utilizar InsurancePolicyTerms: getCurrentStandings para determinar cuánto queda en una condición de póliza antes de aplicar un ajuste. Este paso le permite aplicar el ajuste correcto y devolver el assetTermId apropiado. En estos casos de uso, configure la estructura JSON devuelta por su procedimiento de integración para incluir los nodos claimLineItem y claimLineItemAdjustment.

    En el nodo claimLineItemAdjustment, asegúrese de:

    • Incluya assetTermId.

    • Incluya attributeClass.

    El servicio de InsClaimItemService: add necesita ambos valores para determinar cómo crear el registro de entrada de seguimiento de condiciones de póliza de seguros para ese atributo de potencia específico en la póliza. Por ejemplo, una especificación de cobertura con un deducible condicional tiene dos atributos de potencia Deducible: Deducible A para incendio y Deducible B para inundación. El procedimiento de integración en la fórmula Cálculo de cobertura puede utilizar InsurancePolicyTerms: getCurrentStandings para determinar que el Deducible A para esta póliza es 1.000 $ y el Deducible B es 500 $. A continuación, basándose en la causa de la pérdida para esta reclamación, el procedimiento de integración puede determinar qué deducible aplicar. Al devolver el JSON de salida, asegúrese de devolver el assetTermId correcto basándose en qué deducible se aplicó.

  • Algunos casos de uso no implican las clases de atributos de energía listas para su uso pero requieren un ajuste en los detalles del pago. Por ejemplo, cuando un proveedor factura más de un tipo negociado, necesita un registro ClaimCoveragePaymentAdjustment para explicar por qué el importe de pago ajustado es inferior al importe reclamado. En estos casos de uso, configure la estructura JSON devuelta por su procedimiento de integración para incluir los nodos claimLineItem y claimLineItemAdjustment.

    En el nodo claimLineItemAdjustment:

    • Deje fuera assetTermId porque no hay ninguna clase de atributo power que defina este ajuste.

    • Incluya attributeClass como motivo de ajuste (por ejemplo, “Ajuste de sobrefacturación”).

    El servicio de InsClaimItemService: add utiliza la cadena attributeClass para rellenar el campo ClaimCoveragePaymentDetail.AdjustedReason aunque no haya attributeClass relacionado.

  • Si un caso de uso implica un importe de pago para un tipo de beneficio, no hay discrepancia entre importes reclamados y ajustados. Por ejemplo, se aplica una tarifa plana de 100 $/día a estancias hospitalarias. En estos casos, deje el nodo claimLineItemAdjustment completo fuera de su JSON.

 
Cargando
Salesforce Help | Article