Amazon HealthLake

2024/04/12 - Amazon HealthLake - 4 updated api methods

Changes  Added new CREATE_FAILED status for data stores. Added new errorCause to DescribeFHIRDatastore API and ListFHIRDatastores API response for additional insights into data store creation and deletion workflows.

CreateFHIRDatastore (updated) Link ¶
Changes (response)
{'DatastoreStatus': {'CREATE_FAILED'}}

Creates a data store that can ingest and export FHIR formatted data.

See also: AWS API Documentation

Request Syntax

client.create_fhir_datastore(
    DatastoreName='string',
    DatastoreTypeVersion='R4',
    SseConfiguration={
        'KmsEncryptionConfig': {
            'CmkType': 'CUSTOMER_MANAGED_KMS_KEY'|'AWS_OWNED_KMS_KEY',
            'KmsKeyId': 'string'
        }
    },
    PreloadDataConfig={
        'PreloadDataType': 'SYNTHEA'
    },
    ClientToken='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    IdentityProviderConfiguration={
        'AuthorizationStrategy': 'SMART_ON_FHIR_V1'|'AWS_AUTH',
        'FineGrainedAuthorizationEnabled': True|False,
        'Metadata': 'string',
        'IdpLambdaArn': 'string'
    }
)
type DatastoreName

string

param DatastoreName

The user generated name for the data store.

type DatastoreTypeVersion

string

param DatastoreTypeVersion

[REQUIRED]

The FHIR version of the data store. The only supported version is R4.

type SseConfiguration

dict

param SseConfiguration

The server-side encryption key configuration for a customer provided encryption key specified for creating a data store.

  • KmsEncryptionConfig (dict) -- [REQUIRED]

    The KMS encryption configuration used to provide details for data encryption.

    • CmkType (string) -- [REQUIRED]

      The type of customer-managed-key(CMK) used for encryption. The two types of supported CMKs are customer owned CMKs and AWS owned CMKs.

    • KmsKeyId (string) --

      The KMS encryption key id/alias used to encrypt the data store contents at rest.

type PreloadDataConfig

dict

param PreloadDataConfig

Optional parameter to preload data upon creation of the data store. Currently, the only supported preloaded data is synthetic data generated from Synthea.

  • PreloadDataType (string) -- [REQUIRED]

    The type of preloaded data. Only Synthea preloaded data is supported.

type ClientToken

string

param ClientToken

Optional user provided token used for ensuring idempotency.

This field is autopopulated if not provided.

type Tags

list

param Tags

Resource tags that are applied to a data store when it is created.

  • (dict) --

    A tag is a label consisting of a user-defined key and value. The form for tags is {"Key", "Value"}

    • Key (string) -- [REQUIRED]

      The key portion of a tag. Tag keys are case sensitive.

    • Value (string) -- [REQUIRED]

      The value portion of a tag. Tag values are case sensitive.

type IdentityProviderConfiguration

dict

param IdentityProviderConfiguration

The configuration of the identity provider that you want to use for your data store.

  • AuthorizationStrategy (string) -- [REQUIRED]

    The authorization strategy that you selected when you created the data store.

  • FineGrainedAuthorizationEnabled (boolean) --

    If you enabled fine-grained authorization when you created the data store.

  • Metadata (string) --

    The JSON metadata elements that you want to use in your identity provider configuration. Required elements are listed based on the launch specification of the SMART application. For more information on all possible elements, see Metadata in SMART's App Launch specification.

    authorization_endpoint : The URL to the OAuth2 authorization endpoint.

    grant_types_supported : An array of grant types that are supported at the token endpoint. You must provide at least one grant type option. Valid options are authorization_code and client_credentials .

    token_endpoint : The URL to the OAuth2 token endpoint.

    capabilities : An array of strings of the SMART capabilities that the authorization server supports.

    code_challenge_methods_supported : An array of strings of supported PKCE code challenge methods. You must include the S256 method in the array of PKCE code challenge methods.

  • IdpLambdaArn (string) --

    The Amazon Resource Name (ARN) of the Lambda function that you want to use to decode the access token created by the authorization server.

rtype

dict

returns

Response Syntax

{
    'DatastoreId': 'string',
    'DatastoreArn': 'string',
    'DatastoreStatus': 'CREATING'|'ACTIVE'|'DELETING'|'DELETED'|'CREATE_FAILED',
    'DatastoreEndpoint': 'string'
}

Response Structure

  • (dict) --

    • DatastoreId (string) --

      The AWS-generated data store id. This id is in the output from the initial data store creation call.

    • DatastoreArn (string) --

      The data store ARN is generated during the creation of the data store and can be found in the output from the initial data store creation call.

    • DatastoreStatus (string) --

      The status of the FHIR data store.

    • DatastoreEndpoint (string) --

      The AWS endpoint for the created data store.

DeleteFHIRDatastore (updated) Link ¶
Changes (response)
{'DatastoreStatus': {'CREATE_FAILED'}}

Deletes a data store.

See also: AWS API Documentation

Request Syntax

client.delete_fhir_datastore(
    DatastoreId='string'
)
type DatastoreId

string

param DatastoreId

[REQUIRED]

The AWS-generated ID for the data store to be deleted.

rtype

dict

returns

Response Syntax

{
    'DatastoreId': 'string',
    'DatastoreArn': 'string',
    'DatastoreStatus': 'CREATING'|'ACTIVE'|'DELETING'|'DELETED'|'CREATE_FAILED',
    'DatastoreEndpoint': 'string'
}

Response Structure

  • (dict) --

    • DatastoreId (string) --

      The AWS-generated ID for the data store to be deleted.

    • DatastoreArn (string) --

      The Amazon Resource Name (ARN) that gives AWS HealthLake access permission.

    • DatastoreStatus (string) --

      The status of the data store that the user has requested to be deleted.

    • DatastoreEndpoint (string) --

      The AWS endpoint for the data store the user has requested to be deleted.

DescribeFHIRDatastore (updated) Link ¶
Changes (response)
{'DatastoreProperties': {'DatastoreStatus': {'CREATE_FAILED'},
                         'ErrorCause': {'ErrorCategory': 'RETRYABLE_ERROR | '
                                                         'NON_RETRYABLE_ERROR',
                                        'ErrorMessage': 'string'}}}

Gets the properties associated with the FHIR data store, including the data store ID, data store ARN, data store name, data store status, when the data store was created, data store type version, and the data store's endpoint.

See also: AWS API Documentation

Request Syntax

client.describe_fhir_datastore(
    DatastoreId='string'
)
type DatastoreId

string

param DatastoreId

[REQUIRED]

The AWS-generated data store ID.

rtype

dict

returns

Response Syntax

{
    'DatastoreProperties': {
        'DatastoreId': 'string',
        'DatastoreArn': 'string',
        'DatastoreName': 'string',
        'DatastoreStatus': 'CREATING'|'ACTIVE'|'DELETING'|'DELETED'|'CREATE_FAILED',
        'CreatedAt': datetime(2015, 1, 1),
        'DatastoreTypeVersion': 'R4',
        'DatastoreEndpoint': 'string',
        'SseConfiguration': {
            'KmsEncryptionConfig': {
                'CmkType': 'CUSTOMER_MANAGED_KMS_KEY'|'AWS_OWNED_KMS_KEY',
                'KmsKeyId': 'string'
            }
        },
        'PreloadDataConfig': {
            'PreloadDataType': 'SYNTHEA'
        },
        'IdentityProviderConfiguration': {
            'AuthorizationStrategy': 'SMART_ON_FHIR_V1'|'AWS_AUTH',
            'FineGrainedAuthorizationEnabled': True|False,
            'Metadata': 'string',
            'IdpLambdaArn': 'string'
        },
        'ErrorCause': {
            'ErrorMessage': 'string',
            'ErrorCategory': 'RETRYABLE_ERROR'|'NON_RETRYABLE_ERROR'
        }
    }
}

Response Structure

  • (dict) --

    • DatastoreProperties (dict) --

      All properties associated with a data store, including the data store ID, data store ARN, data store name, data store status, when the data store was created, data store type version, and the data store's endpoint.

      • DatastoreId (string) --

        The AWS-generated ID number for the data store.

      • DatastoreArn (string) --

        The Amazon Resource Name used in the creation of the data store.

      • DatastoreName (string) --

        The user-generated name for the data store.

      • DatastoreStatus (string) --

        The status of the data store.

      • CreatedAt (datetime) --

        The time that a data store was created.

      • DatastoreTypeVersion (string) --

        The FHIR version. Only R4 version data is supported.

      • DatastoreEndpoint (string) --

        The AWS endpoint for the data store. Each data store will have it's own endpoint with data store ID in the endpoint URL.

      • SseConfiguration (dict) --

        The server-side encryption key configuration for a customer provided encryption key (CMK).

        • KmsEncryptionConfig (dict) --

          The KMS encryption configuration used to provide details for data encryption.

          • CmkType (string) --

            The type of customer-managed-key(CMK) used for encryption. The two types of supported CMKs are customer owned CMKs and AWS owned CMKs.

          • KmsKeyId (string) --

            The KMS encryption key id/alias used to encrypt the data store contents at rest.

      • PreloadDataConfig (dict) --

        The preloaded data configuration for the data store. Only data preloaded from Synthea is supported.

        • PreloadDataType (string) --

          The type of preloaded data. Only Synthea preloaded data is supported.

      • IdentityProviderConfiguration (dict) --

        The identity provider that you selected when you created the data store.

        • AuthorizationStrategy (string) --

          The authorization strategy that you selected when you created the data store.

        • FineGrainedAuthorizationEnabled (boolean) --

          If you enabled fine-grained authorization when you created the data store.

        • Metadata (string) --

          The JSON metadata elements that you want to use in your identity provider configuration. Required elements are listed based on the launch specification of the SMART application. For more information on all possible elements, see Metadata in SMART's App Launch specification.

          authorization_endpoint : The URL to the OAuth2 authorization endpoint.

          grant_types_supported : An array of grant types that are supported at the token endpoint. You must provide at least one grant type option. Valid options are authorization_code and client_credentials .

          token_endpoint : The URL to the OAuth2 token endpoint.

          capabilities : An array of strings of the SMART capabilities that the authorization server supports.

          code_challenge_methods_supported : An array of strings of supported PKCE code challenge methods. You must include the S256 method in the array of PKCE code challenge methods.

        • IdpLambdaArn (string) --

          The Amazon Resource Name (ARN) of the Lambda function that you want to use to decode the access token created by the authorization server.

      • ErrorCause (dict) --

        The error cause for the current data store operation.

        • ErrorMessage (string) --

          The text of the error message.

        • ErrorCategory (string) --

          The error category of the create/delete data store operation. Possible statuses are RETRYABLE_ERROR or NON_RETRYABLE_ERROR.

ListFHIRDatastores (updated) Link ¶
Changes (request, response)
Request
{'Filter': {'DatastoreStatus': {'CREATE_FAILED'}}}
Response
{'DatastorePropertiesList': {'DatastoreStatus': {'CREATE_FAILED'},
                             'ErrorCause': {'ErrorCategory': 'RETRYABLE_ERROR '
                                                             '| '
                                                             'NON_RETRYABLE_ERROR',
                                            'ErrorMessage': 'string'}}}

Lists all FHIR data stores that are in the user’s account, regardless of data store status.

See also: AWS API Documentation

Request Syntax

client.list_fhir_datastores(
    Filter={
        'DatastoreName': 'string',
        'DatastoreStatus': 'CREATING'|'ACTIVE'|'DELETING'|'DELETED'|'CREATE_FAILED',
        'CreatedBefore': datetime(2015, 1, 1),
        'CreatedAfter': datetime(2015, 1, 1)
    },
    NextToken='string',
    MaxResults=123
)
type Filter

dict

param Filter

Lists all filters associated with a FHIR data store request.

  • DatastoreName (string) --

    Allows the user to filter data store results by name.

  • DatastoreStatus (string) --

    Allows the user to filter data store results by status.

  • CreatedBefore (datetime) --

    A filter that allows the user to set cutoff dates for records. All data stores created before the specified date will be included in the results.

  • CreatedAfter (datetime) --

    A filter that allows the user to set cutoff dates for records. All data stores created after the specified date will be included in the results.

type NextToken

string

param NextToken

Fetches the next page of data stores when results are paginated.

type MaxResults

integer

param MaxResults

The maximum number of data stores returned in a single page of a ListFHIRDatastoresRequest call.

rtype

dict

returns

Response Syntax

{
    'DatastorePropertiesList': [
        {
            'DatastoreId': 'string',
            'DatastoreArn': 'string',
            'DatastoreName': 'string',
            'DatastoreStatus': 'CREATING'|'ACTIVE'|'DELETING'|'DELETED'|'CREATE_FAILED',
            'CreatedAt': datetime(2015, 1, 1),
            'DatastoreTypeVersion': 'R4',
            'DatastoreEndpoint': 'string',
            'SseConfiguration': {
                'KmsEncryptionConfig': {
                    'CmkType': 'CUSTOMER_MANAGED_KMS_KEY'|'AWS_OWNED_KMS_KEY',
                    'KmsKeyId': 'string'
                }
            },
            'PreloadDataConfig': {
                'PreloadDataType': 'SYNTHEA'
            },
            'IdentityProviderConfiguration': {
                'AuthorizationStrategy': 'SMART_ON_FHIR_V1'|'AWS_AUTH',
                'FineGrainedAuthorizationEnabled': True|False,
                'Metadata': 'string',
                'IdpLambdaArn': 'string'
            },
            'ErrorCause': {
                'ErrorMessage': 'string',
                'ErrorCategory': 'RETRYABLE_ERROR'|'NON_RETRYABLE_ERROR'
            }
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • DatastorePropertiesList (list) --

      All properties associated with the listed data stores.

      • (dict) --

        Displays the properties of the data store, including the ID, ARN, name, and the status of the data store.

        • DatastoreId (string) --

          The AWS-generated ID number for the data store.

        • DatastoreArn (string) --

          The Amazon Resource Name used in the creation of the data store.

        • DatastoreName (string) --

          The user-generated name for the data store.

        • DatastoreStatus (string) --

          The status of the data store.

        • CreatedAt (datetime) --

          The time that a data store was created.

        • DatastoreTypeVersion (string) --

          The FHIR version. Only R4 version data is supported.

        • DatastoreEndpoint (string) --

          The AWS endpoint for the data store. Each data store will have it's own endpoint with data store ID in the endpoint URL.

        • SseConfiguration (dict) --

          The server-side encryption key configuration for a customer provided encryption key (CMK).

          • KmsEncryptionConfig (dict) --

            The KMS encryption configuration used to provide details for data encryption.

            • CmkType (string) --

              The type of customer-managed-key(CMK) used for encryption. The two types of supported CMKs are customer owned CMKs and AWS owned CMKs.

            • KmsKeyId (string) --

              The KMS encryption key id/alias used to encrypt the data store contents at rest.

        • PreloadDataConfig (dict) --

          The preloaded data configuration for the data store. Only data preloaded from Synthea is supported.

          • PreloadDataType (string) --

            The type of preloaded data. Only Synthea preloaded data is supported.

        • IdentityProviderConfiguration (dict) --

          The identity provider that you selected when you created the data store.

          • AuthorizationStrategy (string) --

            The authorization strategy that you selected when you created the data store.

          • FineGrainedAuthorizationEnabled (boolean) --

            If you enabled fine-grained authorization when you created the data store.

          • Metadata (string) --

            The JSON metadata elements that you want to use in your identity provider configuration. Required elements are listed based on the launch specification of the SMART application. For more information on all possible elements, see Metadata in SMART's App Launch specification.

            authorization_endpoint : The URL to the OAuth2 authorization endpoint.

            grant_types_supported : An array of grant types that are supported at the token endpoint. You must provide at least one grant type option. Valid options are authorization_code and client_credentials .

            token_endpoint : The URL to the OAuth2 token endpoint.

            capabilities : An array of strings of the SMART capabilities that the authorization server supports.

            code_challenge_methods_supported : An array of strings of supported PKCE code challenge methods. You must include the S256 method in the array of PKCE code challenge methods.

          • IdpLambdaArn (string) --

            The Amazon Resource Name (ARN) of the Lambda function that you want to use to decode the access token created by the authorization server.

        • ErrorCause (dict) --

          The error cause for the current data store operation.

          • ErrorMessage (string) --

            The text of the error message.

          • ErrorCategory (string) --

            The error category of the create/delete data store operation. Possible statuses are RETRYABLE_ERROR or NON_RETRYABLE_ERROR.

    • NextToken (string) --

      Pagination token that can be used to retrieve the next page of results.