翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティング AWS HealthLake
以下のトピックでは、、 AWS SDKs AWS CLI、または HealthLake コンソールの使用時に発生する可能性のあるエラーや問題のトラブルシューティングに関するアドバイスを提供します。このセクションに記載されていない問題が見つかった場合は、このページの右側のサイドバーにあるフィードバックの提供ボタンを使用して報告します。
データストアアクション
問題: HealthLake データストアを作成しようとすると、次のエラーが表示されます。
AccessDeniedException: Insufficient Lake Formation permission(s): Required Database on Catalog
2022 年 11 月 14 日、HealthLake は新しいデータストアを作成するために必要な IAM アクセス許可を更新しました。詳細については、「HealthLake を使用するように IAM ユーザーまたはロールを設定する (IAM 管理者)」を参照してください。
問題: AWS SDKs を使用して HealthLake データストアを作成すると、データストアの作成ステータスは例外または不明なステータスを返します。
DescribeFHIRDatastore または ListFHIRDatastores API 呼び出しが例外または不明なデータストアのステータスを返す場合は、 AWS SDK を最新バージョンに更新します。
インポートアクション
問題: データが FHIR R4 形式でない場合でも HealthLake を使用できますか?
HealthLake データストアにインポートできるのは、FHIR R4 形式のデータのみです。既存のヘルスデータを FHIR R4 形式に変換するのに役立つパートナーのリストについては、AWS HealthLake 「 パートナー」を参照してください。
問題: FHIR インポートジョブが失敗したのはなぜですか?
インポートジョブが成功すると、 .ndjson形式の結果 (出力ログ) を含むフォルダが生成されますが、個々のレコードはインポートに失敗する可能性があります。この場合、インポートに失敗したレコードのマニフェストを含む 2 番目のFAILUREフォルダが生成されます。詳細については、「を使用した FHIR データのインポート AWS HealthLake」を参照してください。
インポートジョブが失敗した理由を分析するには、 DescribeFHIRImportJob API を使用して JobProperties を分析します。以下が推奨されます。
-
ステータスが
FAILEDで、メッセージが存在する場合、失敗は入力データサイズや HealthLake クォータを超える入力ファイルの数などのジョブパラメータに関連しています。 -
インポートジョブのステータスが の場合は
COMPLETED_WITH_ERRORS、マニフェストファイル をチェックしてmanifest.json、正常にインポートされなかったファイルに関する情報を確認してください。 -
インポートジョブのステータスが
FAILEDで、メッセージが存在しない場合は、ジョブの出力場所に移動してマニフェストファイル にアクセスしますmanifest.json。
入力ファイルごとに、インポートに失敗したリソースの入力ファイル名を持つ失敗出力ファイルがあります。レスポンスには、入力データの場所に対応する行番号 (lineId)、FHIR レスポンスオブジェクト (UpdateResourceResponse)、レスポンスのステータスコード (statusCode) が含まれます。
サンプル出力ファイルは次のようになります。
{"lineId":3, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"1 validation error detected: Value 'Patient123' at 'resourceType' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z]{1,256}"}]}, "statusCode":400} {"lineId":5, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"This property must be an simple value, not a com.google.gson.JsonArray","location":["/EffectEvidenceSynthesis/name"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@telecom'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@gender'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@birthDate'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@address'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@maritalStatus'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@multipleBirthBoolean'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@communication'","location":["/EffectEvidenceSynthesis"]},{"severity":"warning","code":"processing","diagnostics":"Name should be usable as an identifier for the module by machine processing applications such as code generation [name.matches('[A-Z]([A-Za-z0-9_]){0,254}')]","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.status': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.population': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposure': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposureAlternative': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.outcome': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/disability-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[3]"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/quality-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[4]"]}]}, "statusCode":400} {"lineId":7, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"2 validation errors detected: Value at 'resourceId' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z0-9-.]{1,64}; Value at 'resourceId' failed to satisfy constraint: Member must have length greater than or equal to 1"}]}, "statusCode":400} {"lineId":9, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Missing required id field in resource json"}]}, "statusCode":400} {"lineId":15, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Invalid JSON found in input file"}]}, "statusCode":400}
上記の例は、入力ファイルから対応する入力行の 3、4、7、9、15 行で障害が発生したことを示しています。これらの各行の説明は次のとおりです。
-
行 3 で、入力ファイルの行 3 で
resourceType指定された が有効でないことがレスポンスで説明されています。 -
5 行目には、入力ファイルの 5 行目に FHIR 検証エラーがあることがレスポンスで説明されています。
-
7 行目のレスポンスでは、入力として
resourceId提供された の検証の問題があることが説明されています。 -
9 行目のレスポンスでは、入力ファイルには有効なリソース ID が含まれている必要があることが説明されています。
-
15 行目で、入力ファイルのレスポンスは、ファイルが有効な JSON 形式ではないということです。
FHIR APIs
問題: FHIR RESTful APIs の認可を実装するにはどうすればよいですか?
使用する データストア認可戦略を決定します。
を使用して SigV4 認可を作成するには AWS SDK for Python (Boto3)、次の例のようなスクリプトを作成します。
import boto3 import requests import json from requests_auth_aws_sigv4 import AWSSigV4 # Set the input arguments data_store_endpoint = 'https://healthlake.us-east-1.amazonaws.com/datastore/<datastore id>/r4//' resource_path = "Patient" requestBody = {"resourceType": "Patient", "active": True, "name": [{"use": "official","family": "Dow","given": ["Jen"]},{"use": "usual","given": ["Jen"]}],"gender": "female","birthDate": "1966-09-01"} region = 'us-east-1' #Frame the resource endpoint resource_endpoint = data_store_endpoint+resource_path session = boto3.session.Session(region_name=region) client = session.client("healthlake") # Frame authorization auth = AWSSigV4("healthlake", session=session) # Call data store FHIR endpoint using SigV4 auth r = requests.post(resource_endpoint, json=requestBody, auth=auth, ) print(r.json())
問題: カスタマーマネージド KMS キーで暗号化されたデータストアに FHIR RESTful APIs を使用するときにAccessDeniedエラーが表示されるのはなぜですか?
ユーザーまたはロールがデータストアにアクセスするには、カスタマーマネージドキーと IAM ポリシーの両方に対するアクセス許可が必要です。ユーザーは、カスタマーマネージドキーを使用するために必要な IAM アクセス許可を持っている必要があります。ユーザーがカスタマーマネージド KMS キーを使用するアクセス許可を HealthLake に付与する許可を取り消したり、廃止したりすると、HealthLake はAccessDeniedエラーを返します。
HealthLake には、顧客データにアクセスし、データストアにインポートされた新しい FHIR リソースを暗号化し、リクエストされたときに FHIR リソースを復号するためのアクセス許可が必要です。詳細については、「アクセス許可のトラブルシューティング AWS KMS」を参照してください。
問題: 10MB のドキュメントを使用して HealthLake への FHIR POST API オペレーションが413 Request Entity Too Largeエラーを返しています。
AWS HealthLake の同期 Create and Update API 制限は 5MB で、レイテンシーとタイムアウトの増加を回避できます。一括インポート API を使用して、Binaryリソースタイプを使用して最大 164MB の大きなドキュメントを取り込むことができます。
NLP 統合
問題: HealthLake の統合自然言語処理機能を有効にするにはどうすればよいですか?
2022 年 11 月 14 日をもって、HealthLake データストアのデフォルトの動作が変更されました。
現在のデータストア: 現在の HealthLake データストアはすべて、base64 でエンコードされたDocumentReferenceリソースでの自然言語処理 (NLP) の使用を停止します。つまり、新しいDocumentReferenceリソースは NLP を使用して分析されず、リソースタイプのテキストに基づいて新しいDocumentReferenceリソースは生成されません。既存のDocumentReferenceリソースの場合、NLP を介して生成されたデータとリソースは残りますが、2023 年 2 月 20 日以降は更新されません。
新しいデータストア: 2023 年 2 月 20 日以降に作成された HealthLake データストアは、base64 でエンコードされたDocumentReferenceリソースで自然言語処理 (NLP) を実行しません。
HealthLake NLP 統合を有効にするには、 を使用してサポートケースを作成しますAWS Support Center Console
問題: >統合 NLP で処理できなかったDocumentReferenceリソースを見つけるにはどうすればよいですか?
DocumentReference リソースが有効でない場合、HealthLake は統合された医療 NLP 出力で提供するのではなく、検証エラーを示す拡張機能を提供します。NLP 処理中に検証エラーの原因となったDocumentReferenceリソースを見つけるには、HealthLake の FHIR search関数を検索キー cm-decoration-status および検索値 VALIDATION_ERROR とともに使用できます。この検索では、検証エラーの原因となったすべてのDocumentReferenceリソースと、エラーの性質を説明するエラーメッセージが一覧表示されます。検証エラーがあるDocumentReferenceリソースの拡張フィールドの構造は、次の例のようになります。
"extension": [ { "extension": [ { "url": "http://healthlake.amazonaws.com/aws-cm/status/", "valueString": "VALIDATION_ERROR" }, { "url": "http://healthlake.amazonaws.com/aws-cm/message/", "valueString": "Resource led to too many nested objects after NLP operation processed the document. 10937 nested objects exceeds the limit of 10000." } ], "url": "http://healthlake.amazonaws.com/aws-cm/" } ]
注記
は、NLP デコレーションによって 10,000 個を超えるネストされたオブジェクトが作成された場合にも発生するVALIDATION_ERROR可能性があります。この場合、処理する前にドキュメントを小さなドキュメントに分割する必要があります。
SQL 統合
問題: 新しいデータレイク管理者を追加するpermissions error: lakeformation:PutDataLakeSettingsときに Lake Formation を取得するのはなぜですか?
IAM ユーザーまたはロールに AWSLakeFormationDataAdmin AWS 管理ポリシーが含まれている場合、新しいデータレイク管理者を追加することはできません。以下を含むエラーが表示されます。
User arn:aws:sts::111122223333:assumed-role/lakeformation-admin-user is not authorized to perform: lakeformation:PutDataLakeSettings on resource: arn:aws:lakeformation:us-east-2:111122223333:catalog:111122223333 with an explicit deny in an identity-based policy
Lake AWS Formation データレイク管理者として IAM ユーザーまたはロールを追加するには、 AWS 管理ポリシーAdministratorAccessが必要です。IAM ユーザーまたはロールにも アクションが含まれているAWSLakeFormationDataAdmin場合、アクションは失敗します。AWSLakeFormationDataAdmin AWS 管理ポリシーには、 AWS Lake Formation API オペレーション に対する明示的な拒否が含まれていますPutDataLakeSetting。AdministratorAccess 管理ポリシー AWS を使用するためのフルアクセス権を持つ管理者でも、AWSLakeFormationDataAdminポリシーによって制限できます。
問題: Amazon Athena SQL 統合を使用するように既存の HealthLake データストアを移行するにはどうすればよいですか?
2022 年 11 月 14 日より前に作成された HealthLake データストアは機能しますが、SQL を使用して Athena でクエリすることはできません。Athena で既存のデータストアをクエリするには、まず新しいデータストアに移行する必要があります。
HealthLake データを新しいデータストアに移行するには
-
新しいデータストアを作成します。
-
既存の から Amazon S3 バケットにデータをエクスポートします。
-
Amazon S3 バケットから新しいデータストアにデータをインポートします。
注記
Amazon S3 バケットにデータをエクスポートすると、追加料金が発生します。追加料金は、エクスポートするデータのサイズによって異なります。
問題: SQL 統合用の新しい HealthLake データストアを作成する場合、データストアのステータスは から変更されませんCreating。
新しい HealthLake データストアを作成しようとしたときに、データストアのステータスが「作成中」から変更されない場合は、 を使用するように Athena を更新する必要があります AWS Glue Data Catalog。詳細については、「Amazon Athena AWS ユーザーガイド」の「Glue データカタログへのstep-by-stepのアップグレード」を参照してください。 Amazon Athena
を正常にアップグレードしたら AWS Glue Data Catalog、HealthLake データストアを作成できます。
古い HealthLake データストアを削除するには、 を使用してサポートケースを作成しますAWS Support Center Console
問題: 新しい HealthLake データストアにデータをインポートした後、Athena コンソールが機能しない
データを新しい HealthLake データストアにインポートすると、そのデータはすぐに使用できない場合があります。これは、データが Apache Iceberg テーブルに取り込まれる時間を確保するためです。後でもう一度試してください。
問題: Athena の検索結果を他の AWS サービスに接続するにはどうすればよいですか?
Athena の検索結果を他の AWS サービスと共有する場合、SQL 検索クエリjson_extract[1]の一部として を使用すると問題が発生する可能性があります。この問題を修正するには、 を に更新する必要がありますCATVAR。
保存結果、テーブル (静的)、またはビュー (動的) を作成しようとすると、この問題が発生する可能性があります。