

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用した FHIR リソースの検証 `$validate`
<a name="reference-fhir-operations-validate"></a>

AWS HealthLake は FHIR リソースの `$validate`オペレーションをサポートするようになりました。これにより、ストレージオペレーションを実行せずに、FHIR 仕様に照らしてリソースを検証し、指定されたプロファイルまたはベースリソース定義への準拠を確認できます。このオペレーションは、以下が必要な場合に特に役立ちます。
+ FHIR CMS コンプライアンス要件を検証する
+ 本番環境で使用する前にリソースをテストする
+ ユーザーが臨床データを編集するときに、リアルタイムの検証フィードバックを提供する
+ APIs を作成および更新するために無効なデータ送信を減らす

## 使用方法
<a name="validate-usage"></a>

`$validate` オペレーションは、POST メソッドを使用して FHIR リソースで呼び出すことができます。

**サポートされているオペレーション**  


```
POST [base]/[type]/[id]/$validate
POST [base]/[type]/$validate
```

## サポートされているペイロード
<a name="validate-payloads"></a>

**パラメータリソース**  


HealthLake は、次の FHIR `$validate`パラメータをサポートしています。


| パラメータ | タイプ | 必須 | 説明 | 
| --- | --- | --- | --- | 
| resource | [リソース]  | はい | 検証するリソース | 
| profile | canonical | 不可 | 検証するプロファイルの正規 URL | 
| mode | コード | 不可 | 検証モード: create、または update | 

**クエリパラメータを使用した直接リソース**  



| パラメータ | タイプ | 必須 | 説明 | 
| --- | --- | --- | --- | 
| profile | canonical | 不可 | 検証するプロファイルの正規 URL | 
| mode | コード | 不可 | 検証モード: create、または update | 

## 例
<a name="validate-examples"></a>

**ID およびパラメータペイロードを持つリソースの POST リクエスト**  


```
POST [base]/Patient/example-patient/$validate
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "resource",
      "resource": {
        "resourceType": "Patient",
        "id": "example-patient",
        "name": [
          {
            "family": "Smith",
            "given": ["John"]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01"
      }
    },
    {
      "name": "profile",
      "valueCanonical": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    },
    {
      "name": "mode",
      "valueString": "create"
    }
  ]
}
```

**リソースタイプとパラメータペイロードの POST リクエスト**  


```
POST [base]/Patient/$validate
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "resource",
      "resource": {
        "resourceType": "Patient",
        "name": [
          {
            "family": "Doe",
            "given": ["Jane"]
          }
        ],
        "gender": "female",
        "birthDate": "1985-05-15"
      }
    },
    {
      "name": "profile",
      "valueCanonical": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    },
    {
      "name": "mode",
      "valueString": "update"
    }
  ]
}
```

**ID と直接リソースペイロードを持つリソースの POST リクエスト**  


```
POST [base]/Patient/example-patient/$validate?profile=http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient&mode=create
Content-Type: application/fhir+json

{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [
        {
        "family": "Smith",
        "given": ["John"]
        }
    ],
    "gender": "male",
    "birthDate": "1990-01-01"
}
```

**リソースタイプと直接リソースペイロードの POST リクエスト**  


```
POST [base]/Patient/$validate?profile=http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient&mode=create
Content-Type: application/fhir+json

{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [
        {
        "family": "Smith",
        "given": ["John"]
        }
    ],
    "gender": "male",
    "birthDate": "1990-01-01"
}
```

**レスポンス例**  
オペレーションは、検証結果を含む OperationOutcome リソースを返します。

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "information",
      "code": "informational",
      "diagnostics": "Validation successful"
    }
  ]
}
```

**検証エラーによるレスポンスの例**  


```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "required",
      "details": {
        "text": "Missing required element"
      },
      "diagnostics": "Patient.identifier is required by the US Core Patient profile",
      "location": [
        "Patient.identifier"
      ]
    },
    {
      "severity": "warning",
      "code": "code-invalid",
      "details": {
        "text": "Invalid code value"
      },
      "diagnostics": "The provided gender code is not from the required value set",
      "location": [
        "Patient.gender"
      ]
    }
  ]
}
```

## 行動
<a name="validate-behavior"></a>

`$validate` オペレーション:

1. FHIR 仕様とベースリソース定義に照らしてリソースを検証します

1. `profile` パラメータが指定されている場合、指定されたプロファイルへの準拠をチェックします

1. 指定されたモード (`create` または `update`) に基づいて検証します。

1. エラー、警告、情報メッセージなど、詳細な検証結果を返します。

1. ストレージオペレーションを実行しない - 検証のみ

1. 検証の問題が見つかったかどうかに関係なく、検証を実行できるときに HTTP 200 OK を返します

## 検証モード
<a name="validate-modes"></a>
+ **create**: 作成中であるかのようにリソースを検証します (新しいリソース)
+ **update**: リソースが更新されているかのように検証します (既存のリソース)

## エラー処理
<a name="validate-error-handling"></a>

オペレーションは以下を返します。
+ 200 OK: 検証が正常に実行されました (検証結果に関係なく)
+ 400 不正なリクエスト: 無効なリクエスト形式またはパラメータ
+ 404 Not Found: リソースタイプまたはプロファイルが見つかりません

`$validate` オペレーション仕様の詳細については、[FHIR R4 リソース`$validate`](https://www.hl7.org/fhir/R4/operation-resource-validate.html)ドキュメントを参照してください。