エクスポージャーの作成
POST /claims/{claimId}/exposures を使用して、新しいエクスポージャーを作成することができます。
最小作成条件
エクスポージャーをアサイン可能にするには、エクスポージャーに以下が含まれている必要があります。
- 補償および補償のサブタイプ
- 保険金請求者
- インシデント
exposure リソースには coverage 属性もあります。これは保険契約の coverage オブジェクトを特定するものです。これは必須属性ではありません。ただし、ClaimCenter には、正しく機能するためにこの属性を設定する必要がある機能が存在します。例えば、免責金額処理は、補償に免責金額があるのか、ある場合はいくらなのかを ClaimCenter が判別できるように、エクスポージャーが適切な coverage オブジェクトに関連付けられている場合のみ機能します。このため、Guidewire では、エクスポージャーの coverage 属性を常に設定しておくことをお勧めします。
次の JSON スケルトンは、POST /exposures 要求ペイロードに表示されたときの、これらのコンポーネントをまとめています。
{
"data": {
"attributes": {
"primaryCoverage": {
"code": "..."
},
"coverageSubtype": {
"code": "..."
},
"claimant": {
"id" / "refid" / "policySystemId": "..."
},
"...Incident": {
"id" / "refid": "..."
},
"coverage": {
"id": "..."
}
}
},
"included": {
"...Incident": ...
"ClaimContact": ...
}
}
次の点に注目します。
- 補償および補償のサブタイプは、
CoverageTypeおよびCoverageSubtypeタイプリストにあるタイプコードによって特定されます。 - 保険金請求者は次のいずれかによって参照できます。
id(保険金請求者が保険契約にすでに存在する場合)refid(保険金請求者がエクスポージャーと同じペイロードで作成される場合)policySystemId(保険金請求者が保険契約にリストされている場合)
- エクスポージャーはインシデントを参照する必要があります。インシデントの種類は補償に応じて異なります。
- インシデントは次のいずれかによって参照できます。
id(インシデントが保険契約にすでに存在する場合)refid(インシデントがエクスポージャーと同じペイロードで作成される場合)
- 補償はオプションです。ただし、Guidewire では補償を常に含めておくことをお勧めします。いくつかの ClaimCenter 機能が期待どおりに機能するためには、補償が指定されている必要があるからです。
エクスポージャーペイロードの構築
エクスポージャーペイロードを構築するには、次の操作を実行する必要があります。
- 補償の種類を指定する
- 補償のサブタイプを指定する
- 保険金請求者を作成または指定する
- インシデントを作成または指定する
- 補償を指定する
前述のリストの各項目は、コードの 1 ブロックと必ずしも対応していないことに注意してください。エクスポージャーを作成する時点で、呼び出し元アプリケーションがすでに必要な情報を得ている可能性があります。また、呼び出し元アプリケーションが 1 回の呼び出しで複数の情報を ClaimCenter に問い合わせできることもあります。
エクスポージャーペイロードの作成例
以降のセクションでは、新しいエクスポージャーに対するペイロードの作成例を示します。このエクスポージャーはサンプルデータのクレーム 235-53-373906 に対するもので、Betty Baker さんにアサインされています。このクレームの ID は demo_sample:8037 です。このクレームの保険契約には、ホンダシビックとフォードエクスプローラーという 2 台の車両が含まれています。新しいエクスポージャーは、車両保険を使用するホンダシビックに対するものです。保険請求者は Allen Robertson さんで、保険契約ではその他の被保険者に該当します。
すべての呼び出しは、ClaimCenter のインスタンスがローカルマシンにあると想定しています。
ステップ 1:補償の種類を識別する
呼び出し元アプリケーションが補償の種類を認知していない場合は、GET /claims/{claimId}/policy エンドポイントを使用して、ホンダシビックに添付された補償を確認できます。
補償の種類を確認するための要求
GET http://localhost:8080/cc/rest/claim/v1/claims/demo_sample:8037/policy/vehicle-risk-units?fields=*all
応答ペイロード(スニペット)
"RUNumber": 1,
"coverages": [
{
...
"coverageType": {
"code": "PACollisionCov",
"name": "Collision"
}
...
}
],
"id": "cc:9",
"vehicle": {
...
"id": "demo_sample:4",
"make": "Honda",
"model": "Civic"
...
エクスポージャー要求ペイロード(最初のパート)
前のクエリに基づいて、POST /exposures 要求ペイロードの最初のパートは次のようになります。
{
"data": {
"attributes": {
"primaryCoverage": {
"code": "PACollisionCov"
},
...
ステップ 2:補償のサブタイプを識別する
ClaimCenter の補償の種類と補償のサブタイプのセットはほとんど変更されません。呼び出し数を削減するために、可能性のある補償の種類と補償のサブタイプを呼び出し元アプリケーションでローカルに保存することができます。
開発中またはエクスポージャー作成の任意の時点で、呼び出し元アプリケーションは、Common API の GET /typelists エンドポイントを実行することで、特定の補償に対する補償のサブタイプを確認できます。特定の補償の種類に対する補償のサブタイプに応答を制限するには、呼び出しでエクスポージャーの CoverageType(PACollisionCov など)を使用して CoverageSubtype タイプリストをフィルタできます。
Common API の GET /typelists エンドポイントの詳細については、/typelists エンドポイントを参照してください。
補償のサブタイプを確認するための要求
GET http://localhost:8080/cc/rest/common/v1/typelists/CoverageSubtype
?typekeyFilter=category:cn:CoverageType.PACollisionCov
応答ペイロード(スニペット)
"description": "Subtype of coverage, filtered by CoverageType",
"name": "CoverageSubtype",
"typeKeys": [
{
"code": "PACollisionCov",
"description": "Collision",
"name": "Collision",
"priority": -1
}
]
エクスポージャー要求ペイロード(最初の 2 パート)
前のクエリに基づいて、POST /exposures 要求ペイロードの 1 つ目と 2 つ目のパートは次のようになります。
{
"data": {
"attributes": {
"primaryCoverage": {
"code": "PACollisionCov"
},
"coverageSubtype": {
"code": "PACollisionCov"
},
...
ステップ 3:保険金請求者を作成または識別する
保険契約に保険請求者が存在する場合、ペイロードは policySystemId によって保険金請求者を識別できます。必要に応じて、呼び出し元アプリケーションは保険契約管理システムに対して policySystemId を問い合わせできます。
保険請求者が存在しない場合、呼び出し元アプリケーションは POST /exposures 要求ペイロードで新しいクレーム連絡先を作成し、refid を使用してそのクレーム連絡先を参照できます。この手法は要求包含と呼ばれます。詳細については、要求包含を参照してください。
ClaimCenter に保険請求者が存在する場合、ペイロードはその id によって保険請求者を識別できます。必要に応じて、呼び出し元アプリケーションは ClaimCenter に対して id を問い合わせできます。
id フィールドを使用します。 refid フィールドを使用して追加のクレーム連絡先を作成してはなりません。論理的に同じクレーム連絡先を 2 回作成すると、データの重複が発生します。これにより、クレームの処理が複雑になってしまいます。次の例では、保険請求者がすでに ClaimCenter にコピー済みです。このため、ペイロードは ClaimCenter id によって保険請求者を識別します。
保険請求者 ID を確認するための要求
GET http://localhost:8080/cc/rest/claim/v1/claims/demo_sample:8037/contacts
応答ペイロード(スニペット)
{
"attributes": {
...
"displayName": "Allen Robertson",
"id": "cc:32",
...
},
エクスポージャー要求ペイロード(最初の 3 パート)
前のクエリに基づいて、POST /exposures 要求ペイロードの最初の 3 パートは次のようになります。
{
"data": {
"attributes": {
"primaryCoverage": {
"code": "PACollisionCov"
},
"coverageSubtype": {
"code": "PACollisionCov"
},
"claimant": {
"id": "cc:32"
},
...
ステップ 4:インシデントを作成または識別する
インシデントは、損害または損傷を受けた項目を一般的に表す情報のコレクションです。インシデントは保険契約にあるオブジェクトを参照することができます。(例えば、車両インシデントは保険契約にある車両を参照できます。)しかし、インシデントが保険契約に表示されることはありません。インシデントは ClaimCenter にのみ存在します。
インシデントが存在しない場合、呼び出し元アプリケーションは POST /exposures 要求ペイロードで新しいインシデントを作成し、refid を使用してそのインシデントを参照できます。この手法は要求包含と呼ばれます。詳細については、要求包含を参照してください。インシデントの種類によっては、新しいインシデントが子オブジェクト(場所、負傷者、または車両)を参照できます。この子オブジェクトは保険契約または ClaimCenter に存在する可能性があり、POST /exposures 要求ペイロードで作成することもできます。
ClaimCenter にインシデントがすでに存在する場合、呼び出し元アプリケーションはそれを id で参照できます。
id フィールドを使用します。refid フィールドを使用して追加のインシデントを作成してはなりません。論理的に同じインシデントを 2 回作成すると、データの重複が発生します。これにより、クレームの処理が複雑になってしまいます。次の例では、インシデントが存在していないので、作成する必要があります。しかし、これは保険契約にすでに存在している車両を参照します。この車両の ID は最初のステップで補償の種類を識別したときにすでに取得済みです。この ID は demo_sample:4 です。追加の車両情報を取得するための追加のペイロードは必要ありません。
エクスポージャー要求ペイロード(最初の 4 パート)
前のクエリに基づいて、POST /exposures 要求ペイロードの最初の 4 パートは次のようになります。
{
"data": {
"attributes": {
"primaryCoverage": {
"code": "PACollisionCov"
},
"coverageSubtype": {
"code": "PACollisionCov"
},
"claimant": {
"id": "cc:32"
},
"vehicleIncident": {
"refid": "newVehicleIncident"
},
...
}
},
"included": {
"VehicleIncident": [
{
"attributes": {
"vehicle": {
"id": "demo_sample:4"
}
},
"refid": "newVehicleIncident",
"method": "post",
"uri": "/claim/v1/claims/demo_sample:8037/vehicle-incidents"
}
]
}
}
ステップ 5:補償を識別する
coverage は、補償に関する情報を提供する保険契約上のオブジェクトです。ここには免責金額や限度額などの補償内容が含まれます。エクスポージャーの作成時には、補償を指定する必要はありません。ただし、Guidewire では、補償を常に指定することをお勧めします。ClaimCenter には、免責金額処理など、正しく機能するためにこの属性を設定する必要がある機能が存在します。
補償は id によって参照する必要があります。補償の取得に使用されるエンドポイントは、補償の添付先によって異なります。次に例を示します。
- 保険契約そのものに補償が添付されている場合(通常は賠償責任補償)は、
GET /claims/{claimId}/policy/coverages/{coverageId} を使用します。 - 所在地ベースのリスクユニットに補償が添付されている場合は、
GET /claims/{claimId}/policy/location-based-risk-units/{locationBasedRiskUnitId} を使用します。 - 車両リスクユニットに補償が添付されている場合は、
GET /claims/{claimId}/policy/vehicle-risk-units/{vehicleRiskUnitId} を使用します。
補償 ID を確認するための要求
クレーム demo_sample:8037 の保険契約に、id が cc:121 の 1 つの車両リスクユニットが存在しているとします。
GET http://localhost:8080/cc/rest/claim/v1/claims/demo_sample:8037/
policy/vehicle-risk-units/cc:121
応答ペイロード(スニペット)
{
"attributes": {
"coverages": [
{
"coverageType": {
"code": "PACollisionCov"
},
"id": "cc:7007",
...
エクスポージャー要求ペイロード(完全)
完全な POST /exposures 要求ペイロードは次のようになります。
{
"data": {
"attributes": {
"primaryCoverage": {
"code": "PACollisionCov"
},
"coverageSubtype": {
"code": "PACollisionCov"
},
"claimant": {
"id": "cc:32"
},
"vehicleIncident": {
"refid": "newVehicleIncident"
},
"coverage": {
"id": "cc:7007"
}
}
},
"included": {
"VehicleIncident": [
{
"attributes": {
"vehicle": {
"id": "demo_sample:4"
}
},
"refid": "newVehicleIncident",
"method": "post",
"uri": "/claim/v1/claims/demo_sample:8037/vehicle-incidents"
}
]
}
}