# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T02:17:00+00:00
from __future__ import annotations
from enum import Enum
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, RootModel
class ActivateConsentRequest(BaseModel):
consentArtifact: Optional[str] = Field(
None,
description="Required. The resource name of the Consent artifact that contains documentation of the user's consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. If the draft Consent had a Consent artifact, this Consent artifact overwrites it.",
)
expireTime: Optional[str] = Field(
None, description='Timestamp in UTC of when this Consent is considered expired.'
)
ttl: Optional[str] = Field(
None,
description='The time to live for this Consent from when it is marked as active.',
)
class LicensedVocabulary(Enum):
LICENSED_VOCABULARY_UNSPECIFIED = 'LICENSED_VOCABULARY_UNSPECIFIED'
ICD10CM = 'ICD10CM'
SNOMEDCT_US = 'SNOMEDCT_US'
class AnalyzeEntitiesRequest(BaseModel):
documentContent: Optional[str] = Field(
None, description='document_content is a document to be annotated.'
)
licensedVocabularies: Optional[List[LicensedVocabulary]] = Field(
None,
description='A list of licensed vocabularies to use in the request, in addition to the default unlicensed vocabularies.',
)
class AnnotationConfig(BaseModel):
annotationStoreName: Optional[str] = Field(
None,
description='The name of the annotation store, in the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`). * The destination annotation store must be in the same project as the source data. De-identifying data across multiple projects is not supported. * The destination annotation store must exist when using DeidentifyDicomStore or DeidentifyFhirStore. DeidentifyDataset automatically creates the destination annotation store.',
)
storeQuote: Optional[bool] = Field(
None,
description='If set to true, the sensitive texts are included in SensitiveTextAnnotation of Annotation.',
)
class AnnotationStore(BaseModel):
labels: Optional[Dict[str, str]] = Field(
None,
description='Optional. User-supplied key-value pairs used to organize Annotation stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.',
)
name: Optional[str] = Field(
None,
description='Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.',
)
class ArchiveUserDataMappingRequest(BaseModel):
pass
class ArchiveUserDataMappingResponse(BaseModel):
pass
class Attribute(BaseModel):
attributeDefinitionId: Optional[str] = Field(
None,
description='Indicates the name of an attribute defined in the consent store.',
)
values: Optional[List[str]] = Field(
None,
description='The value of the attribute. Must be an acceptable value as defined in the consent store. For example, if the consent store defines "data type" with acceptable values "questionnaire" and "step-count", when the attribute name is data type, this field must contain one of those values.',
)
class Category(Enum):
CATEGORY_UNSPECIFIED = 'CATEGORY_UNSPECIFIED'
RESOURCE = 'RESOURCE'
REQUEST = 'REQUEST'
class AttributeDefinition(BaseModel):
allowedValues: Optional[List[str]] = Field(
None,
description='Required. Possible values for the attribute. The number of allowed values must not exceed 500. An empty list is invalid. The list can only be expanded after creation.',
)
category: Optional[Category] = Field(
None,
description='Required. The category of the attribute. The value of this field cannot be changed after creation.',
)
consentDefaultValues: Optional[List[str]] = Field(
None,
description='Optional. Default values of the attribute in Consents. If no default values are specified, it defaults to an empty value.',
)
dataMappingDefaultValue: Optional[str] = Field(
None,
description='Optional. Default value of the attribute in User data mappings. If no default value is specified, it defaults to an empty value. This field is only applicable to attributes of the category `RESOURCE`.',
)
description: Optional[str] = Field(
None, description='Optional. A description of the attribute.'
)
name: Optional[str] = Field(
None,
description='Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.',
)
class LogType(Enum):
LOG_TYPE_UNSPECIFIED = 'LOG_TYPE_UNSPECIFIED'
ADMIN_READ = 'ADMIN_READ'
DATA_WRITE = 'DATA_WRITE'
DATA_READ = 'DATA_READ'
class AuditLogConfig(BaseModel):
exemptedMembers: Optional[List[str]] = Field(
None,
description='Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.',
)
logType: Optional[LogType] = Field(
None, description='The log type that this config enables.'
)
class CancelOperationRequest(BaseModel):
pass
class CharacterMaskConfig(BaseModel):
maskingCharacter: Optional[str] = Field(
None,
description='Character to mask the sensitive values. If not supplied, defaults to "*".',
)
class CharacterMaskField(BaseModel):
pass
class ResponseView(Enum):
RESPONSE_VIEW_UNSPECIFIED = 'RESPONSE_VIEW_UNSPECIFIED'
BASIC = 'BASIC'
FULL = 'FULL'
class CleanDescriptorsOption(BaseModel):
pass
class CleanTextField(BaseModel):
pass
class CleanTextTag(BaseModel):
pass
class CloudHealthcareSource(BaseModel):
name: Optional[str] = Field(
None, description='Full path of a Cloud Healthcare API resource.'
)
class ConfigureSearchRequest(BaseModel):
canonicalUrls: Optional[List[str]] = Field(
None,
description='The canonical URLs of the search parameters that are intended to be used for the FHIR store. See https://www.hl7.org/fhir/references.html#canonical for explanation on FHIR canonical urls',
)
validateOnly: Optional[bool] = Field(
None,
description='If `validate_only` is set to true, the method will compile all the search parameters without actually setting the search config for the store and triggering the reindex.',
)
class State(Enum):
STATE_UNSPECIFIED = 'STATE_UNSPECIFIED'
ACTIVE = 'ACTIVE'
ARCHIVED = 'ARCHIVED'
REVOKED = 'REVOKED'
DRAFT = 'DRAFT'
REJECTED = 'REJECTED'
class EvaluationResult(Enum):
EVALUATION_RESULT_UNSPECIFIED = 'EVALUATION_RESULT_UNSPECIFIED'
NOT_APPLICABLE = 'NOT_APPLICABLE'
NO_MATCHING_POLICY = 'NO_MATCHING_POLICY'
NO_SATISFIED_POLICY = 'NO_SATISFIED_POLICY'
HAS_SATISFIED_POLICY = 'HAS_SATISFIED_POLICY'
class ConsentEvaluation(BaseModel):
evaluationResult: Optional[EvaluationResult] = Field(
None, description='The evaluation result.'
)
class ConsentList(BaseModel):
consents: Optional[List[str]] = Field(
None,
description='The resource names of the Consents to evaluate against, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`.',
)
class ConsentStore(BaseModel):
defaultConsentTtl: Optional[str] = Field(
None,
description='Optional. Default time to live for Consents created in this store. Must be at least 24 hours. Updating this field will not affect the expiration time of existing consents.',
)
enableConsentCreateOnUpdate: Optional[bool] = Field(
None,
description='Optional. If `true`, UpdateConsent creates the Consent if it does not already exist. If unspecified, defaults to `false`.',
)
labels: Optional[Dict[str, str]] = Field(
None,
description='Optional. User-supplied key-value pairs used to organize consent stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62}. Label values must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}. No more than 64 labels can be associated with a given store. For more information: https://cloud.google.com/healthcare/docs/how-tos/labeling-resources',
)
name: Optional[str] = Field(
None,
description='Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.',
)
class ContextualDeidConfig(BaseModel):
pass
class CryptoHashField(BaseModel):
pass
class Dataset(BaseModel):
name: Optional[str] = Field(
None,
description='Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.',
)
timeZone: Optional[str] = Field(
None,
description='The default timezone used by this dataset. Must be a either a valid IANA time zone name such as "America/New_York" or empty, which defaults to UTC. This is used for parsing times in resources, such as HL7 messages, where no explicit timezone is specified.',
)
class DateShiftField(BaseModel):
pass
class DeidentifySummary(BaseModel):
pass
class DeleteTag(BaseModel):
pass
class FilterProfile(Enum):
TAG_FILTER_PROFILE_UNSPECIFIED = 'TAG_FILTER_PROFILE_UNSPECIFIED'
MINIMAL_KEEP_LIST_PROFILE = 'MINIMAL_KEEP_LIST_PROFILE'
ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE = 'ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE'
KEEP_ALL_PROFILE = 'KEEP_ALL_PROFILE'
DEIDENTIFY_TAG_CONTENTS = 'DEIDENTIFY_TAG_CONTENTS'
class DicomFilterConfig(BaseModel):
resourcePathsGcsUri: Optional[str] = Field(
None,
description='The Cloud Storage location of the filter configuration file. The `gcs_uri` must be in the format `gs://bucket/path/to/object`. The filter configuration file must contain a list of resource paths separated by newline characters (\\n or \\r\\n). Each resource path must be in the format "/studies/{studyUID}[/series/{seriesUID}[/instances/{instanceUID}]]" The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location.',
)
class ProfileType(Enum):
PROFILE_TYPE_UNSPECIFIED = 'PROFILE_TYPE_UNSPECIFIED'
MINIMAL_KEEP_LIST_PROFILE = 'MINIMAL_KEEP_LIST_PROFILE'
ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE = 'ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE'
KEEP_ALL_PROFILE = 'KEEP_ALL_PROFILE'
DEIDENTIFY_TAG_CONTENTS = 'DEIDENTIFY_TAG_CONTENTS'
class Empty(BaseModel):
pass
class Entity(BaseModel):
entityId: Optional[str] = Field(
None,
description='entity_id is a first class field entity_id uniquely identifies this concept and its meta-vocabulary. For example, "UMLS/C0000970".',
)
preferredTerm: Optional[str] = Field(
None,
description='preferred_term is the preferred term for this concept. For example, "Acetaminophen". For ad hoc entities formed by normalization, this is the most popular unnormalized string.',
)
vocabularyCodes: Optional[List[str]] = Field(
None,
description='Vocabulary codes are first-class fields and differentiated from the concept unique identifier (entity_id). vocabulary_codes contains the representation of this concept in particular vocabularies, such as ICD-10, SNOMED-CT and RxNORM. These are prefixed by the name of the vocabulary, followed by the unique code within that vocabulary. For example, "RXNORM/A10334543".',
)
class EntityMentionRelationship(BaseModel):
confidence: Optional[float] = Field(
None,
description="The model's confidence in this annotation. A number between 0 and 1.",
)
objectId: Optional[str] = Field(
None, description='object_id is the id of the object entity mention.'
)
subjectId: Optional[str] = Field(
None, description='subject_id is the id of the subject entity mention.'
)
class EvaluateAnnotationStoreResponse(BaseModel):
pass
class EvaluateUserConsentsRequest(BaseModel):
consentList: Optional[ConsentList] = Field(
None,
description='Optional. Specific Consents to evaluate the access request against. These Consents must have the same `user_id` as the User data mappings being evalauted, must exist in the current `consent_store`, and must have a `state` of either `ACTIVE` or `DRAFT`. A maximum of 100 Consents can be provided here. If unspecified, all `ACTIVE` unexpired Consents in the current `consent_store` will be evaluated.',
)
pageSize: Optional[int] = Field(
None,
description='Optional. Limit on the number of User data mappings to return in a single response. If not specified, 100 is used. May not be larger than 1000.',
)
pageToken: Optional[str] = Field(
None,
description='Optional. Token to retrieve the next page of results, or empty to get the first page.',
)
requestAttributes: Optional[Dict[str, str]] = Field(
None,
description='Required. The values of request attributes associated with this access request.',
)
resourceAttributes: Optional[Dict[str, str]] = Field(
None,
description='Optional. The values of resource attributes associated with the resources being requested. If no values are specified, then all resources are queried.',
)
responseView: Optional[ResponseView] = Field(
None,
description='Optional. The view for EvaluateUserConsentsResponse. If unspecified, defaults to `BASIC` and returns `consented` as `TRUE` or `FALSE`.',
)
userId: Optional[str] = Field(
None, description='Required. User ID to evaluate consents for.'
)
class ExportAnnotationsResponse(BaseModel):
pass
class ExportDicomDataResponse(BaseModel):
pass
class ExportMessagesResponse(BaseModel):
pass
class Expr(BaseModel):
description: Optional[str] = Field(
None,
description='Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.',
)
expression: Optional[str] = Field(
None,
description='Textual representation of an expression in Common Expression Language syntax.',
)
location: Optional[str] = Field(
None,
description='Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.',
)
title: Optional[str] = Field(
None,
description='Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.',
)
class Feature(BaseModel):
confidence: Optional[float] = Field(
None,
description="The model's confidence in this feature annotation. A number between 0 and 1.",
)
value: Optional[str] = Field(
None,
description='The value of this feature annotation. Its range depends on the type of the feature.',
)
class ProfileType1(Enum):
PROFILE_TYPE_UNSPECIFIED = 'PROFILE_TYPE_UNSPECIFIED'
KEEP_ALL = 'KEEP_ALL'
BASIC = 'BASIC'
CLEAN_ALL = 'CLEAN_ALL'
class FhirNotificationConfig(BaseModel):
pubsubTopic: Optional[str] = Field(
None,
description="The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging).",
)
sendFullResource: Optional[bool] = Field(
None,
description='Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation. Note that setting this to true does not guarantee that all resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full resource as a separate operation.',
)
class FhirOutput(BaseModel):
fhirStore: Optional[str] = Field(
None,
description="Name of the output FHIR store, which must already exist. You must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set `enable_update_create` to true. The destination store must use FHIR version R4. Writing these resources will consume FHIR operations quota from the project containing the source data. De-identify operation metadata is only generated for DICOM de-identification operations.",
)
class ComplexDataTypeReferenceParsing(Enum):
COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED = (
'COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED'
)
DISABLED = 'DISABLED'
ENABLED = 'ENABLED'
class Version(Enum):
VERSION_UNSPECIFIED = 'VERSION_UNSPECIFIED'
DSTU2 = 'DSTU2'
STU3 = 'STU3'
R4 = 'R4'
class FhirStoreMetric(BaseModel):
count: Optional[str] = Field(
None,
description='The total count of FHIR resources in the store of this resource type.',
)
resourceType: Optional[str] = Field(
None, description='The FHIR resource type this metric applies to.'
)
structuredStorageSizeBytes: Optional[str] = Field(
None,
description='The total amount of structured storage used by FHIR resources of this resource type in the store.',
)
class FhirStoreMetrics(BaseModel):
metrics: Optional[List[FhirStoreMetric]] = Field(
None, description='List of FhirStoreMetric by resource type.'
)
name: Optional[str] = Field(
None,
description='The resource name of the FHIR store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.',
)
class FieldModel(BaseModel):
maxOccurs: Optional[int] = Field(
None,
description='The maximum number of times this field can be repeated. 0 or -1 means unbounded.',
)
minOccurs: Optional[int] = Field(
None,
description='The minimum number of times this field must be present/repeated.',
)
name: Optional[str] = Field(
None, description='The name of the field. For example, "PID-1" or just "1".'
)
table: Optional[str] = Field(
None,
description='The HL7v2 table this field refers to. For example, PID-15 (Patient\'s Primary Language) usually refers to table "0296".',
)
type: Optional[str] = Field(
None,
description='The type of this field. A Type with this name must be defined in an Hl7TypesConfig.',
)
class Action1(Enum):
ACTION_UNSPECIFIED = 'ACTION_UNSPECIFIED'
TRANSFORM = 'TRANSFORM'
INSPECT_AND_TRANSFORM = 'INSPECT_AND_TRANSFORM'
DO_NOT_TRANSFORM = 'DO_NOT_TRANSFORM'
class FieldMetadata(BaseModel):
action: Optional[Action1] = Field(
None, description='Deidentify action for one field.'
)
paths: Optional[List[str]] = Field(
None,
description='List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR type name. All types begin with an upper case letter. For example, the resource field "Patient.Address.city", which uses a string type, can be matched by "Patient.Address.String". Path also supports partial matching. For example, "Patient.Address.city" can be matched by "Address.city" (Patient omitted). Partial matching and type matching can be combined. For example, "Patient.Address.city" can be matched by "Address.String". For "choice" types (those defined in the FHIR spec with the form: field[x]), use two separate components. For example, "deceasedAge.unit" is matched by "Deceased.Age.unit". Supported types are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName(for example HumanName.given, HumanName.family) can be omitted.',
)
class FilterList(BaseModel):
infoTypes: Optional[List[str]] = Field(
None,
description='These infoTypes are based on after the `eval_info_type_mapping` and `golden_info_type_mapping`.',
)
class Finding(BaseModel):
end: Optional[str] = Field(
None, description='Zero-based ending index of the found text, exclusively.'
)
infoType: Optional[str] = Field(
None,
description='The type of information stored in this text range. For example, HumanName, BirthDate, or Address.',
)
quote: Optional[str] = Field(
None,
description='The snippet of the sensitive text. This field is only populated during deidentification if `store_quote` is set to true in DeidentifyConfig.',
)
start: Optional[str] = Field(
None, description='Zero-based starting index of the found text, inclusively.'
)
class ContentStructure(Enum):
CONTENT_STRUCTURE_UNSPECIFIED = 'CONTENT_STRUCTURE_UNSPECIFIED'
MESSAGE_JSON = 'MESSAGE_JSON'
class MessageView(Enum):
MESSAGE_VIEW_UNSPECIFIED = 'MESSAGE_VIEW_UNSPECIFIED'
RAW_ONLY = 'RAW_ONLY'
PARSED_ONLY = 'PARSED_ONLY'
FULL = 'FULL'
SCHEMATIZED_ONLY = 'SCHEMATIZED_ONLY'
BASIC = 'BASIC'
class GcsDestination(BaseModel):
contentStructure: Optional[ContentStructure] = Field(
None, description='The format of the exported HL7v2 message files.'
)
messageView: Optional[MessageView] = Field(
None,
description='Specifies the parts of the Message resource to include in the export. If not specified, FULL is used.',
)
uriPrefix: Optional[str] = Field(
None,
description='URI of an existing Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path.',
)
class GcsSource(BaseModel):
uri: Optional[str] = Field(
None,
description='Points to a Cloud Storage URI containing file(s) to import. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * `*` to match 0 or more non-separator characters * `**` to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .ndjson), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.ndjson` imports all files with `.ndjson` extensions in `my-directory/` and its sub-directories. * `?` to match 1 character Files matching the wildcard are expected to contain content only, no metadata.',
)
class SchemaType(Enum):
SCHEMA_TYPE_UNSPECIFIED = 'SCHEMA_TYPE_UNSPECIFIED'
SIMPLE = 'SIMPLE'
class WriteDisposition(Enum):
WRITE_DISPOSITION_UNSPECIFIED = 'WRITE_DISPOSITION_UNSPECIFIED'
WRITE_EMPTY = 'WRITE_EMPTY'
WRITE_TRUNCATE = 'WRITE_TRUNCATE'
WRITE_APPEND = 'WRITE_APPEND'
class GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination(BaseModel):
force: Optional[bool] = Field(
None,
description='Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.',
)
schemaType: Optional[SchemaType] = Field(
None, description='Specifies the schema format to export.'
)
tableUri: Optional[str] = Field(
None,
description='BigQuery URI to a table, up to 2000 characters long, must be of the form bq://projectId.bqDatasetId.tableId.',
)
writeDisposition: Optional[WriteDisposition] = Field(
None,
description='Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored.',
)
class GoogleCloudHealthcareV1beta1AnnotationGcsDestination(BaseModel):
uriPrefix: Optional[str] = Field(
None,
description='The Cloud Storage destination to export to. URI for a Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket referenced in `uri_prefix`.',
)
class GoogleCloudHealthcareV1beta1AnnotationGcsSource(BaseModel):
uri: Optional[str] = Field(
None,
description="Points to a Cloud Storage URI containing file(s) with content only. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: '*' to match 0 or more non-separator characters '**' to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .dcm), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.json` imports all files with .json extensions in `my-directory/` and its sub-directories. '?' to match 1 character All other URI formats are invalid. Files matching the wildcard are expected to contain content only, no metadata.",
)
class GoogleCloudHealthcareV1beta1ConsentGcsDestination(BaseModel):
uriPrefix: Optional[str] = Field(
None,
description='URI for a Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket and directory referenced in `uri_prefix`.',
)
class GoogleCloudHealthcareV1beta1ConsentPolicy(BaseModel):
authorizationRule: Optional[Expr] = Field(
None,
description='Required. The request conditions to meet to grant access. In addition to any supported comparison operators, authorization rules may have `IN` operator as well as at most 10 logical operators that are limited to `AND` (`&&`), `OR` (`||`).',
)
resourceAttributes: Optional[List[Attribute]] = Field(
None,
description='The resources that this policy applies to. A resource is a match if it matches all the attributes listed here. If empty, this policy applies to all User data mappings for the given user.',
)
class GoogleCloudHealthcareV1beta1DeidentifyDeidentifyDicomStoreSummary(BaseModel):
pass
class GoogleCloudHealthcareV1beta1DeidentifyDeidentifyFhirStoreSummary(BaseModel):
pass
class GoogleCloudHealthcareV1beta1DicomBigQueryDestination(BaseModel):
force: Optional[bool] = Field(
None,
description='Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.',
)
tableUri: Optional[str] = Field(
None,
description='BigQuery URI to a table, up to 2000 characters long, in the format `bq://projectId.bqDatasetId.tableId`',
)
writeDisposition: Optional[WriteDisposition] = Field(
None,
description='Determines whether the existing table in the destination is to be overwritten or appended to. If a write_disposition is specified, the `force` parameter is ignored.',
)
class GoogleCloudHealthcareV1beta1DicomGcsDestination(BaseModel):
mimeType: Optional[str] = Field(
None,
description='MIME types supported by DICOM spec. Each file is written in the following format: `.../{study_id}/{series_id}/{instance_id}[/{frame_number}].{extension}` The frame_number component exists only for multi-frame instances. Supported MIME types are consistent with supported formats in DICOMweb: https://cloud.google.com/healthcare/docs/dicom#retrieve_transaction. Specifically, the following are supported: - application/dicom; transfer-syntax=1.2.840.10008.1.2.1 (uncompressed DICOM) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50 (DICOM with embedded JPEG Baseline) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90 (DICOM with embedded JPEG 2000 Lossless Only) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.91 (DICOM with embedded JPEG 2000)h - application/dicom; transfer-syntax=* (DICOM with no transcoding) - application/octet-stream; transfer-syntax=1.2.840.10008.1.2.1 (raw uncompressed PixelData) - application/octet-stream; transfer-syntax=* (raw PixelData in whatever format it was uploaded in) - image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50 (Consumer JPEG) - image/png The following extensions are used for output files: - application/dicom -> .dcm - image/jpeg -> .jpg - image/png -> .png - application/octet-stream -> no extension If unspecified, the instances are exported in the original DICOM format they were uploaded in.',
)
uriPrefix: Optional[str] = Field(
None,
description='The Cloud Storage destination to export to. URI for a Cloud Storage directory where the server writes the result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`). If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket referenced in `uri_prefix`.',
)
class GoogleCloudHealthcareV1beta1DicomGcsSource(BaseModel):
uri: Optional[str] = Field(
None,
description="Points to a Cloud Storage URI containing file(s) with content only. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * '*' to match 0 or more non-separator characters * '**' to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .dcm), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.dcm` imports all files with .dcm extensions in `my-directory/` and its sub-directories. * '?' to match 1 character. All other URI formats are invalid. Files matching the wildcard are expected to contain content only, no metadata.",
)
class GoogleCloudHealthcareV1beta1DicomStreamConfig(BaseModel):
bigqueryDestination: Optional[
GoogleCloudHealthcareV1beta1DicomBigQueryDestination
] = Field(
None,
description="Results are appended to this table. The server creates a new table in the given BigQuery dataset if the specified table does not exist. To enable the Cloud Healthcare API to write to your BigQuery table, you must give the Cloud Healthcare API service account the bigquery.dataEditor role. The service account is: `service-{PROJECT_NUMBER}@gcp-sa-healthcare.iam.gserviceaccount.com`. The PROJECT_NUMBER identifies the project that the DICOM store resides in. To get the project number, go to the Cloud Console Dashboard. It is recommended to not have a custom schema in the destination table which could conflict with the schema created by the Cloud Healthcare API. Instance deletions are not applied to the destination table. The destination's table schema will be automatically updated in case a new instance's data is incompatible with the current schema. The schema should not be updated manually as this can cause incompatibilies that cannot be resolved automatically. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any instance that generates more than 1 MB of BigQuery data will not be streamed. If an instance cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).",
)
class GoogleCloudHealthcareV1beta1FhirExportResourcesResponse(BaseModel):
pass
class GoogleCloudHealthcareV1beta1FhirGcsDestination(BaseModel):
uriPrefix: Optional[str] = Field(
None,
description='URI for a Cloud Storage directory where result files should be written (in the format `gs://{bucket-id}/{path/to/destination/dir}`). If there is no trailing slash, the service appends one when composing the object path. The Cloud Storage bucket referenced in `uri_prefix` must exist or an error occurs.',
)
class GoogleCloudHealthcareV1beta1FhirGcsSource(BaseModel):
uri: Optional[str] = Field(
None,
description='Points to a Cloud Storage URI containing file(s) to import. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * `*` to match 0 or more non-separator characters * `**` to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .ndjson), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.ndjson` imports all files with `.ndjson` extensions in `my-directory/` and its sub-directories. * `?` to match 1 character Files matching the wildcard are expected to contain content only, no metadata.',
)
class GoogleCloudHealthcareV1beta1FhirImportResourcesResponse(BaseModel):
pass
class Hl7V2NotificationConfig(BaseModel):
filter: Optional[str] = Field(
None,
description='Restricts notifications sent for messages matching a filter. If this is empty, all messages are matched. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `"query text"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `"Comment = great"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it\'s just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields/functions available for filtering are: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = "ADT"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset\'s time_zone, from the MSH-7 segment. For example, `send_date < "2017-01-02"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < "2017-01-02T00:00:00-05:00"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < "2017-01-02T00:00:00-05:00"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = "ABC"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId("123456", "MRN")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels."priority"="high"`. The operator `:*` can be used to assert the existence of a label. For example, `labels."priority":*`.',
)
pubsubTopic: Optional[str] = Field(
None,
description="The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging).",
)
class HttpBody(BaseModel):
contentType: Optional[str] = Field(
None,
description='The HTTP Content-Type header value specifying the content type of the body.',
)
data: Optional[str] = Field(
None, description='The HTTP request/response body as raw binary.'
)
extensions: Optional[List[Dict[str, Any]]] = Field(
None,
description='Application specific response metadata. Must be set in the first response for streaming APIs.',
)
class Image(BaseModel):
gcsUri: Optional[str] = Field(
None,
description='Input only. Points to a Cloud Storage URI containing the consent artifact content. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location. The consent artifact content at this URI is copied to a Cloud Storage location managed by the Cloud Healthcare API. Responses to fetching requests return the consent artifact content in raw_bytes.',
)
rawBytes: Optional[str] = Field(
None,
description='Consent artifact content represented as a stream of bytes. This field is populated when returned in GetConsentArtifact response, but not included in CreateConsentArtifact and ListConsentArtifact response.',
)
class TextRedactionMode(Enum):
TEXT_REDACTION_MODE_UNSPECIFIED = 'TEXT_REDACTION_MODE_UNSPECIFIED'
REDACT_ALL_TEXT = 'REDACT_ALL_TEXT'
REDACT_SENSITIVE_TEXT = 'REDACT_SENSITIVE_TEXT'
REDACT_NO_TEXT = 'REDACT_NO_TEXT'
REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS = 'REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS'
class ImageConfig(BaseModel):
additionalInfoTypes: Optional[List[str]] = Field(
None,
description='Additional InfoTypes to redact in the images in addition to those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT`, `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS` or `TEXT_REDACTION_MODE_UNSPECIFIED`.',
)
excludeInfoTypes: Optional[List[str]] = Field(
None,
description='InfoTypes to skip redacting, overriding those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT` or `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS`.',
)
textRedactionMode: Optional[TextRedactionMode] = Field(
None, description='Determines how to redact text from image.'
)
class ImportAnnotationsRequest(BaseModel):
gcsSource: Optional[GoogleCloudHealthcareV1beta1AnnotationGcsSource] = None
class ImportAnnotationsResponse(BaseModel):
pass
class ImportDicomDataRequest(BaseModel):
gcsSource: Optional[GoogleCloudHealthcareV1beta1DicomGcsSource] = Field(
None,
description='Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location.',
)
class ImportDicomDataResponse(BaseModel):
pass
class ImportMessagesRequest(BaseModel):
gcsSource: Optional[GcsSource] = Field(
None,
description='Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location.',
)
class ImportMessagesResponse(BaseModel):
pass
class ContentStructure1(Enum):
CONTENT_STRUCTURE_UNSPECIFIED = 'CONTENT_STRUCTURE_UNSPECIFIED'
BUNDLE = 'BUNDLE'
RESOURCE = 'RESOURCE'
BUNDLE_PRETTY = 'BUNDLE_PRETTY'
RESOURCE_PRETTY = 'RESOURCE_PRETTY'
class ImportResourcesRequest(BaseModel):
contentStructure: Optional[ContentStructure1] = Field(
None,
description='The content structure in the source location. If not specified, the server treats the input source files as BUNDLE.',
)
gcsSource: Optional[GoogleCloudHealthcareV1beta1FhirGcsSource] = Field(
None,
description='Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location. The Healthcare Service Agent Each Cloud Storage object should be a text file that contains the format specified in ContentStructure.',
)
class InfoTypeConfig(BaseModel):
evaluateList: Optional[FilterList] = None
ignoreList: Optional[FilterList] = None
strictMatching: Optional[bool] = Field(
None,
description='If `TRUE`, infoTypes described by `filter` are used for evaluation. Otherwise, infoTypes are not considered for evaluation. For example: * Annotated text: "Toronto is a location" * Finding 1: `{"infoType": "PERSON", "quote": "Toronto", "start": 0, "end": 7}` * Finding 2: `{"infoType": "CITY", "quote": "Toronto", "start": 0, "end": 7}` * Finding 3: `{}` * Ground truth: `{"infoType": "LOCATION", "quote": "Toronto", "start": 0, "end": 7}` When `strict_matching` is `TRUE`: * Finding 1: 1 false positive * Finding 2: 1 false positive * Finding 3: 1 false negative When `strict_matching` is `FALSE`: * Finding 1: 1 true positive * Finding 2: 1 true positive * Finding 3: 1 false negative',
)
class KeepExtensionsConfig(BaseModel):
pass
class KeepField(BaseModel):
pass
class KeepTag(BaseModel):
pass
class KmsWrappedCryptoKey(BaseModel):
cryptoKey: Optional[str] = Field(
None,
description='Required. The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`.',
)
wrappedKey: Optional[str] = Field(
None, description='Required. The wrapped data crypto key.'
)
class LinkedEntity(BaseModel):
entityId: Optional[str] = Field(
None,
description='entity_id is a concept unique identifier. These are prefixed by a string that identifies the entity coding system, followed by the unique identifier within that system. For example, "UMLS/C0000970". This also supports ad hoc entities, which are formed by normalizing entity mention content.',
)
class ListAnnotationStoresResponse(BaseModel):
annotationStores: Optional[List[AnnotationStore]] = Field(
None,
description="The returned Annotation stores. Won't be more Annotation stores than the value of page_size in the request.",
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results or empty if there are no more results in the list.',
)
class ListAttributeDefinitionsResponse(BaseModel):
attributeDefinitions: Optional[List[AttributeDefinition]] = Field(
None,
description='The returned Attribute definitions. The maximum number of attributes returned is determined by the value of page_size in the ListAttributeDefinitionsRequest.',
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
class ListConsentStoresResponse(BaseModel):
consentStores: Optional[List[ConsentStore]] = Field(
None,
description='The returned consent stores. The maximum number of stores returned is determined by the value of page_size in the ListConsentStoresRequest.',
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
class ListDatasetsResponse(BaseModel):
datasets: Optional[List[Dataset]] = Field(
None, description='The first page of datasets.'
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
class Location(BaseModel):
displayName: Optional[str] = Field(
None,
description='The friendly name for this location, typically a nearby city name. For example, "Tokyo".',
)
labels: Optional[Dict[str, str]] = Field(
None,
description='Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}',
)
locationId: Optional[str] = Field(
None,
description='The canonical id for this location. For example: `"us-east1"`.',
)
metadata: Optional[Dict[str, Any]] = Field(
None,
description='Service-specific metadata. For example the available capacity at the given location.',
)
name: Optional[str] = Field(
None,
description='Resource name for the location, which may vary between implementations. For example: `"projects/example-project/locations/us-east1"`',
)
class NotificationConfig(BaseModel):
pubsubTopic: Optional[str] = Field(
None,
description="The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren't submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.",
)
sendForBulkImport: Optional[bool] = Field(
None,
description='Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.',
)
class PrimaryIds(Enum):
PRIMARY_IDS_OPTION_UNSPECIFIED = 'PRIMARY_IDS_OPTION_UNSPECIFIED'
KEEP = 'KEEP'
REGEN = 'REGEN'
class Options(BaseModel):
cleanDescriptors: Optional[CleanDescriptorsOption] = Field(
None, description='Set Clean Descriptors Option.'
)
cleanImage: Optional[ImageConfig] = Field(
None,
description='Apply `Action.clean_image` to [`PixelData`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html) as configured.',
)
primaryIds: Optional[PrimaryIds] = Field(
None,
description='Set `Action` for [`StudyInstanceUID`, `SeriesInstanceUID`, `SOPInstanceUID`, and `MediaStorageSOPInstanceUID`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html).',
)
class Version1(Enum):
PARSER_VERSION_UNSPECIFIED = 'PARSER_VERSION_UNSPECIFIED'
V1 = 'V1'
V2 = 'V2'
V3 = 'V3'
class PatientId(BaseModel):
type: Optional[str] = Field(None, description='ID type. For example, MRN or NHS.')
value: Optional[str] = Field(None, description="The patient's unique identifier.")
class ProgressCounter(BaseModel):
failure: Optional[str] = Field(
None, description='The number of units that failed in the operation.'
)
pending: Optional[str] = Field(
None, description='The number of units that are pending in the operation.'
)
success: Optional[str] = Field(
None, description='The number of units that succeeded in the operation.'
)
class QueryAccessibleDataRequest(BaseModel):
gcsDestination: Optional[GoogleCloudHealthcareV1beta1ConsentGcsDestination] = Field(
None,
description='The Cloud Storage destination. The Cloud Healthcare API service account must have the `roles/storage.objectAdmin` Cloud IAM role for this Cloud Storage location. The object name is in the following format: query-accessible-data-result-{operation_id}.txt where each line contains a single data_id.',
)
requestAttributes: Optional[Dict[str, str]] = Field(
None,
description='The values of request attributes associated with this access request.',
)
resourceAttributes: Optional[Dict[str, str]] = Field(
None,
description='Optional. The values of resource attributes associated with the type of resources being requested. If no values are specified, then all resource types are included in the output.',
)
class QueryAccessibleDataResponse(BaseModel):
gcsUris: Optional[List[str]] = Field(
None,
description='List of files, each of which contains a list of data_id(s) that are consented for a specified use in the request.',
)
class RecurseTag(BaseModel):
pass
class RedactConfig(BaseModel):
pass
class RegenUidTag(BaseModel):
pass
class RejectConsentRequest(BaseModel):
consentArtifact: Optional[str] = Field(
None,
description="Optional. The resource name of the Consent artifact that contains documentation of the user's rejection of the draft Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. If the draft Consent had a Consent artifact, this Consent artifact overwrites it.",
)
class RemoveField(BaseModel):
pass
class RemoveTag(BaseModel):
pass
class ReplaceWithInfoTypeConfig(BaseModel):
pass
class ResetTag(BaseModel):
pass
class ResourceAnnotation(BaseModel):
label: Optional[str] = Field(
None, description='A description of the annotation record.'
)
class Resources(BaseModel):
resources: Optional[List[str]] = Field(
None, description='List of resources IDs. For example, "Patient/1234".'
)
class Result(BaseModel):
consentDetails: Optional[Dict[str, ConsentEvaluation]] = Field(
None,
description='The resource names of all evaluated Consents mapped to their evaluation.',
)
consented: Optional[bool] = Field(
None, description='Whether the resource is consented for the given use.'
)
dataId: Optional[str] = Field(
None, description='The unique identifier of the evaluated resource.'
)
class RevokeConsentRequest(BaseModel):
consentArtifact: Optional[str] = Field(
None,
description="Optional. The resource name of the Consent artifact that contains proof of the user's revocation of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`.",
)
class SchemaType1(Enum):
SCHEMA_TYPE_UNSPECIFIED = 'SCHEMA_TYPE_UNSPECIFIED'
LOSSLESS = 'LOSSLESS'
ANALYTICS = 'ANALYTICS'
ANALYTICS_V2 = 'ANALYTICS_V2'
class SchematizedParsingType(Enum):
SCHEMATIZED_PARSING_TYPE_UNSPECIFIED = 'SCHEMATIZED_PARSING_TYPE_UNSPECIFIED'
SOFT_FAIL = 'SOFT_FAIL'
HARD_FAIL = 'HARD_FAIL'
class UnexpectedSegmentHandling(Enum):
UNEXPECTED_SEGMENT_HANDLING_MODE_UNSPECIFIED = (
'UNEXPECTED_SEGMENT_HANDLING_MODE_UNSPECIFIED'
)
FAIL = 'FAIL'
SKIP = 'SKIP'
PARSE = 'PARSE'
class SchemaSegment(BaseModel):
maxOccurs: Optional[int] = Field(
None,
description='The maximum number of times this segment can be present in this group. 0 or -1 means unbounded.',
)
minOccurs: Optional[int] = Field(
None,
description='The minimum number of times this segment can be present in this group.',
)
type: Optional[str] = Field(
None, description='The Segment type. For example, "PID".'
)
class SchematizedData(BaseModel):
data: Optional[str] = Field(None, description='JSON output of the parser.')
error: Optional[str] = Field(None, description='The error output of the parser.')
class SearchParameter(BaseModel):
canonicalUrl: Optional[str] = Field(
None, description='The canonical url of the search parameter resource.'
)
parameter: Optional[str] = Field(
None,
description='The versioned name of the search parameter resource. The format is projects/{project-id}/locations/{location}/datasets/{dataset-id}/fhirStores/{fhirStore-id}/fhir/SearchParameter/{resource-id}/_history/{version-id} For fhir stores with disable_resource_versioning=true, the format is projects/{project-id}/locations/{location}/datasets/{dataset-id}/fhirStores/{fhirStore-id}/fhir/SearchParameter/{resource-id}/',
)
class SearchResourcesRequest(BaseModel):
resourceType: Optional[str] = Field(
None,
description='The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).',
)
class Segment(BaseModel):
fields: Optional[Dict[str, str]] = Field(
None,
description='A mapping from the positional location to the value. The key string uses zero-based indexes separated by dots to identify Fields, components and sub-components. A bracket notation is also used to identify different instances of a repeated field. Regex for key: (\\d+)(\\[\\d+\\])?(.\\d+)?(.\\d+)? Examples of (key, value) pairs: * (0.1, "hemoglobin") denotes that the first component of Field 0 has the value "hemoglobin". * (1.1.2, "CBC") denotes that the second sub-component of the first component of Field 1 has the value "CBC". * (1[0].1, "HbA1c") denotes that the first component of the first Instance of Field 1, which is repeated, has the value "HbA1c".',
)
segmentId: Optional[str] = Field(
None,
description='A string that indicates the type of segment. For example, EVN or PID.',
)
setId: Optional[str] = Field(
None,
description="Set ID for segments that can be in a set. This can be empty if it's missing or isn't applicable.",
)
class Signature(BaseModel):
image: Optional[Image] = Field(
None, description="Optional. An image of the user's signature."
)
metadata: Optional[Dict[str, str]] = Field(
None,
description="Optional. Metadata associated with the user's signature. For example, the user's name or the user's title.",
)
signatureTime: Optional[str] = Field(
None, description='Optional. Timestamp of the signature.'
)
userId: Optional[str] = Field(
None, description="Required. User's UUID provided by the client."
)
class Status(BaseModel):
code: Optional[int] = Field(
None,
description='The status code, which should be an enum value of google.rpc.Code.',
)
details: Optional[List[Dict[str, Any]]] = Field(
None,
description='A list of messages that carry the error details. There is a common set of message types for APIs to use.',
)
message: Optional[str] = Field(
None,
description='A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.',
)
class TagFilterList(BaseModel):
tags: Optional[List[str]] = Field(
None,
description='Tags to be filtered. Tags must be DICOM Data Elements, File Meta Elements, or Directory Structuring Elements, as defined at: http://dicom.nema.org/medical/dicom/current/output/html/part06.html#table_6-1,. They may be provided by "Keyword" or "Tag". For example, "PatientID", "00100010".',
)
class TestIamPermissionsRequest(BaseModel):
permissions: Optional[List[str]] = Field(
None,
description='The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).',
)
class TestIamPermissionsResponse(BaseModel):
permissions: Optional[List[str]] = Field(
None,
description='A subset of `TestPermissionsRequest.permissions` that the caller is allowed.',
)
class ProfileType2(Enum):
PROFILE_TYPE_UNSPECIFIED = 'PROFILE_TYPE_UNSPECIFIED'
EMPTY = 'EMPTY'
BASIC = 'BASIC'
class TextSpan(BaseModel):
beginOffset: Optional[int] = Field(
None, description='The unicode codepoint index of the beginning of this span.'
)
content: Optional[str] = Field(
None, description='The original text contained in this span.'
)
class Type1(Enum):
PARTITION_TYPE_UNSPECIFIED = 'PARTITION_TYPE_UNSPECIFIED'
HOUR = 'HOUR'
DAY = 'DAY'
MONTH = 'MONTH'
YEAR = 'YEAR'
class TimePartitioning(BaseModel):
expirationMs: Optional[str] = Field(
None,
description='Number of milliseconds for which to keep the storage for a partition.',
)
type: Optional[Type1] = Field(None, description='Type of partitioning.')
class Primitive(Enum):
PRIMITIVE_UNSPECIFIED = 'PRIMITIVE_UNSPECIFIED'
STRING = 'STRING'
VARIES = 'VARIES'
UNESCAPED_STRING = 'UNESCAPED_STRING'
class Type(BaseModel):
fields: Optional[List[FieldModel]] = Field(
None, description='The (sub) fields this type has (if not primitive).'
)
name: Optional[str] = Field(
None,
description='The name of this type. This would be the segment or datatype name. For example, "PID" or "XPN".',
)
primitive: Optional[Primitive] = Field(
None,
description='If this is a primitive type then this field is the type of the primitive For example, STRING. Leave unspecified for composite types.',
)
class UserDataMapping(BaseModel):
archiveTime: Optional[str] = Field(
None,
description='Output only. Indicates the time when this mapping was archived.',
)
archived: Optional[bool] = Field(
None, description='Output only. Indicates whether this mapping is archived.'
)
dataId: Optional[str] = Field(
None, description='Required. A unique identifier for the mapped resource.'
)
name: Optional[str] = Field(
None,
description='Resource name of the User data mapping, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/userDataMappings/{user_data_mapping_id}`.',
)
resourceAttributes: Optional[List[Attribute]] = Field(
None,
description='Attributes of the resource. Only explicitly set attributes are displayed here. Attribute definitions with defaults set implicitly apply to these User data mappings. Attributes listed here must be single valued, that is, exactly one value is specified for the field "values" in each Attribute.',
)
userId: Optional[str] = Field(
None, description="Required. User's UUID provided by the client."
)
class ValidationConfig(BaseModel):
disableFhirpathValidation: Optional[bool] = Field(
None,
description='Whether to disable FHIRPath validation for incoming resources. Set this to true to disable checking incoming resources for conformance against FHIRPath requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.',
)
disableProfileValidation: Optional[bool] = Field(
None,
description='Whether to disable profile validation for this FHIR store. Set this to true to disable checking incoming resources for conformance against StructureDefinitions in this FHIR store.',
)
disableReferenceTypeValidation: Optional[bool] = Field(
None,
description='Whether to disable reference type validation for incoming resources. Set this to true to disable checking incoming resources for conformance against reference type requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.',
)
disableRequiredFieldValidation: Optional[bool] = Field(
None,
description='Whether to disable required fields validation for incoming resources. Set this to true to disable checking incoming resources for conformance against required fields requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.',
)
enabledImplementationGuides: Optional[List[str]] = Field(
None,
description='A list of ImplementationGuide URLs in this FHIR store that are used to configure the profiles to use for validation. For example, to use the US Core profiles for validation, set `enabled_implementation_guides` to `["http://hl7.org/fhir/us/core/ImplementationGuide/ig"]`. If `enabled_implementation_guides` is empty or omitted, then incoming resources are only required to conform to the base FHIR profiles. Otherwise, a resource must conform to at least one profile listed in the `global` property of one of the enabled ImplementationGuides. The Cloud Healthcare API does not currently enforce all of the rules in a StructureDefinition. The following rules are supported: - min/max - minValue/maxValue - maxLength - type - fixed[x] - pattern[x] on simple types - slicing, when using "value" as the discriminator type When a URL cannot be resolved (for example, in a type assertion), the server does not return an error.',
)
class VersionSource(BaseModel):
mshField: Optional[str] = Field(
None,
description='The field to extract from the MSH segment. For example, "3.1" or "18[1].1".',
)
value: Optional[str] = Field(
None,
description='The value to match with the field. For example, "My Application Name" or "2.3".',
)
class Vertex(BaseModel):
x: Optional[float] = Field(None, description='X coordinate.')
y: Optional[float] = Field(None, description='Y coordinate.')
class FieldXgafv(Enum):
field_1 = '1'
field_2 = '2'
class Alt(Enum):
json = 'json'
media = 'media'
proto = 'proto'
class View(Enum):
MESSAGE_VIEW_UNSPECIFIED = 'MESSAGE_VIEW_UNSPECIFIED'
RAW_ONLY = 'RAW_ONLY'
PARSED_ONLY = 'PARSED_ONLY'
FULL = 'FULL'
SCHEMATIZED_ONLY = 'SCHEMATIZED_ONLY'
BASIC = 'BASIC'
class View2(Enum):
ANNOTATION_VIEW_UNSPECIFIED = 'ANNOTATION_VIEW_UNSPECIFIED'
ANNOTATION_VIEW_BASIC = 'ANNOTATION_VIEW_BASIC'
ANNOTATION_VIEW_FULL = 'ANNOTATION_VIEW_FULL'
class View4(Enum):
MESSAGE_VIEW_UNSPECIFIED = 'MESSAGE_VIEW_UNSPECIFIED'
RAW_ONLY = 'RAW_ONLY'
PARSED_ONLY = 'PARSED_ONLY'
FULL = 'FULL'
SCHEMATIZED_ONLY = 'SCHEMATIZED_ONLY'
BASIC = 'BASIC'
class Ids(RootModel[List[str]]):
root: List[str]
class Action(BaseModel):
cleanImageTag: Optional[ImageConfig] = Field(
None,
description="Inspect image and transform sensitive burnt-in text. Doesn't apply to elements nested in a sequence, which revert to `Keep`. Supported [tags](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html): PixelData",
)
cleanTextTag: Optional[CleanTextTag] = Field(
None,
description='Inspect text and transform sensitive text. Configurable via TextConfig. Supported Value Representations: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS',
)
deleteTag: Optional[DeleteTag] = Field(None, description='Delete tag.')
keepTag: Optional[KeepTag] = Field(None, description='Keep tag unchanged.')
queries: Optional[List[str]] = Field(
None,
description='Select all tags with the listed tag IDs, names, or Value Representations (VRs). Examples: ID: "00100010" Keyword: "PatientName" VR: "PN"',
)
recurseTag: Optional[RecurseTag] = Field(
None,
description='Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ',
)
regenUidTag: Optional[RegenUidTag] = Field(
None,
description='Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI',
)
removeTag: Optional[RemoveTag] = Field(None, description='Replace with empty tag.')
resetTag: Optional[ResetTag] = Field(
None, description='Reset tag to a placeholder value.'
)
class AnnotationSource(BaseModel):
cloudHealthcareSource: Optional[CloudHealthcareSource] = Field(
None, description='Cloud Healthcare API resource.'
)
class AuditConfig(BaseModel):
auditLogConfigs: Optional[List[AuditLogConfig]] = Field(
None, description='The configuration for logging of each type of permission.'
)
service: Optional[str] = Field(
None,
description='Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.',
)
class Binding(BaseModel):
condition: Optional[Expr] = Field(
None,
description='The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).',
)
members: Optional[List[str]] = Field(
None,
description='Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.',
)
role: Optional[str] = Field(
None,
description='Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.',
)
class BoundingPoly(BaseModel):
label: Optional[str] = Field(None, description='A description of this polygon.')
vertices: Optional[List[Vertex]] = Field(
None, description='List of the vertices of this polygon.'
)
class CheckDataAccessRequest(BaseModel):
consentList: Optional[ConsentList] = Field(
None,
description='Optional. Specific Consents to evaluate the access request against. These Consents must have the same `user_id` as the evaluated User data mapping, must exist in the current `consent_store`, and have a `state` of either `ACTIVE` or `DRAFT`. A maximum of 100 Consents can be provided here. If no selection is specified, the access request is evaluated against all `ACTIVE` unexpired Consents with the same `user_id` as the evaluated User data mapping.',
)
dataId: Optional[str] = Field(
None,
description='Required. The unique identifier of the resource to check access for. This identifier must correspond to a User data mapping in the given consent store.',
)
requestAttributes: Optional[Dict[str, str]] = Field(
None,
description='The values of request attributes associated with this access request.',
)
responseView: Optional[ResponseView] = Field(
None,
description='Optional. The view for CheckDataAccessResponse. If unspecified, defaults to `BASIC` and returns `consented` as `TRUE` or `FALSE`.',
)
class CheckDataAccessResponse(BaseModel):
consentDetails: Optional[Dict[str, ConsentEvaluation]] = Field(
None,
description='The resource names of all evaluated Consents mapped to their evaluation.',
)
consented: Optional[bool] = Field(
None,
description='Whether the requested resource is consented for the given use.',
)
class Consent(BaseModel):
consentArtifact: Optional[str] = Field(
None,
description="Required. The resource name of the Consent artifact that contains proof of the end user's consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`.",
)
expireTime: Optional[str] = Field(
None, description='Timestamp in UTC of when this Consent is considered expired.'
)
metadata: Optional[Dict[str, str]] = Field(
None,
description='Optional. User-supplied key-value pairs used to organize Consent resources. Metadata keys must: - be between 1 and 63 characters long - have a UTF-8 encoding of maximum 128 bytes - begin with a letter - consist of up to 63 characters including lowercase letters, numeric characters, underscores, and dashes Metadata values must be: - be between 1 and 63 characters long - have a UTF-8 encoding of maximum 128 bytes - consist of up to 63 characters including lowercase letters, numeric characters, underscores, and dashes No more than 64 metadata entries can be associated with a given consent.',
)
name: Optional[str] = Field(
None,
description='Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.',
)
policies: Optional[List[GoogleCloudHealthcareV1beta1ConsentPolicy]] = Field(
None,
description="Optional. Represents a user's consent in terms of the resources that can be accessed and under what conditions.",
)
revisionCreateTime: Optional[str] = Field(
None, description='Output only. The timestamp that the revision was created.'
)
revisionId: Optional[str] = Field(
None,
description="Output only. The revision ID of the Consent. The format is an 8-character hexadecimal string. Refer to a specific revision of a Consent by appending `@{revision_id}` to the Consent's resource name.",
)
state: Optional[State] = Field(
None, description='Required. Indicates the current state of this Consent.'
)
ttl: Optional[str] = Field(
None,
description='Input only. The time to live for this Consent from when it is created.',
)
userId: Optional[str] = Field(
None, description="Required. User's UUID provided by the client."
)
class ConsentArtifact(BaseModel):
consentContentScreenshots: Optional[List[Image]] = Field(
None,
description="Optional. Screenshots, PDFs, or other binary information documenting the user's consent.",
)
consentContentVersion: Optional[str] = Field(
None,
description='Optional. An string indicating the version of the consent information shown to the user.',
)
guardianSignature: Optional[Signature] = Field(
None, description='Optional. A signature from a guardian.'
)
metadata: Optional[Dict[str, str]] = Field(
None,
description='Optional. Metadata associated with the Consent artifact. For example, the consent locale or user agent version.',
)
name: Optional[str] = Field(
None,
description='Resource name of the Consent artifact, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. Cannot be changed after creation.',
)
userId: Optional[str] = Field(
None, description="Required. User's UUID provided by the client."
)
userSignature: Optional[Signature] = Field(
None, description="Optional. User's signature."
)
witnessSignature: Optional[Signature] = Field(
None, description='Optional. A signature from a witness.'
)
class CryptoHashConfig(BaseModel):
cryptoKey: Optional[str] = Field(
None,
description='An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither `crypto_key` nor `kms_wrapped` is specified. Must not be set if `kms_wrapped` is set.',
)
kmsWrapped: Optional[KmsWrappedCryptoKey] = Field(
None, description='KMS wrapped key. Must not be set if `crypto_key` is set.'
)
class DateShiftConfig(BaseModel):
cryptoKey: Optional[str] = Field(
None,
description='An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If `crypto_key` is not set, then `kms_wrapped` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `kms_wrapped` is set.',
)
kmsWrapped: Optional[KmsWrappedCryptoKey] = Field(
None,
description='KMS wrapped key. If `kms_wrapped` is not set, then `crypto_key` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `crypto_key` is set.',
)
class DeidentifyOperationMetadata(BaseModel):
fhirOutput: Optional[FhirOutput] = Field(
None, description='Details about the FHIR store to write the output to.'
)
class Detail(BaseModel):
findings: Optional[List[Finding]] = None
class DicomConfig(BaseModel):
filterProfile: Optional[FilterProfile] = Field(
None,
description='Tag filtering profile that determines which tags to keep/remove.',
)
keepList: Optional[TagFilterList] = Field(
None, description='List of tags to keep. Remove all other tags.'
)
removeList: Optional[TagFilterList] = Field(
None, description='List of tags to remove. Keep all other tags.'
)
skipIdRedaction: Optional[bool] = Field(
None,
description='If true, skip replacing StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and MediaStorageSOPInstanceUID and leave them untouched. The Cloud Healthcare API regenerates these UIDs by default based on the DICOM Standard\'s reasoning: "Whilst these UIDs cannot be mapped directly to an individual out of context, given access to the original images, or to a database of the original images containing the UIDs, it would be possible to recover the individual\'s identity." http://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_E.3.9.html',
)
class DicomStore(BaseModel):
labels: Optional[Dict[str, str]] = Field(
None,
description='User-supplied key-value pairs used to organize DICOM stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.',
)
name: Optional[str] = Field(
None,
description='Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.',
)
notificationConfig: Optional[NotificationConfig] = Field(
None,
description='Notification destination for new DICOM instances. Supplied by the client.',
)
streamConfigs: Optional[List[GoogleCloudHealthcareV1beta1DicomStreamConfig]] = (
Field(
None,
description='A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.',
)
)
class DicomTagConfig(BaseModel):
actions: Optional[List[Action]] = Field(
None,
description='Specifies custom tag selections and `Actions` to apply to them. Overrides `options` and `profile`. Conflicting `Actions` are applied in the order given.',
)
options: Optional[Options] = Field(
None,
description='Specifies additional options to apply, overriding the base `profile`.',
)
profileType: Optional[ProfileType] = Field(
None, description='Base profile type for handling DICOM tags.'
)
class EntityMention(BaseModel):
certaintyAssessment: Optional[Feature] = Field(
None,
description='The certainty assessment of the entity mention. Its value is one of: LIKELY, SOMEWHAT_LIKELY, UNCERTAIN, SOMEWHAT_UNLIKELY, UNLIKELY, CONDITIONAL',
)
confidence: Optional[float] = Field(
None,
description="The model's confidence in this entity mention annotation. A number between 0 and 1.",
)
linkedEntities: Optional[List[LinkedEntity]] = Field(
None,
description='linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.',
)
mentionId: Optional[str] = Field(
None,
description='mention_id uniquely identifies each entity mention in a single response.',
)
subject: Optional[Feature] = Field(
None,
description='The subject this entity mention relates to. Its value is one of: PATIENT, FAMILY_MEMBER, OTHER',
)
temporalAssessment: Optional[Feature] = Field(
None,
description='How this entity mention relates to the subject temporally. Its value is one of: CURRENT, CLINICAL_HISTORY, FAMILY_HISTORY, UPCOMING, ALLERGY',
)
text: Optional[TextSpan] = Field(
None, description='text is the location of the entity mention in the document.'
)
type: Optional[str] = Field(
None,
description='The semantic type of the entity: UNKNOWN_ENTITY_TYPE, ALONE, ANATOMICAL_STRUCTURE, ASSISTED_LIVING, BF_RESULT, BM_RESULT, BM_UNIT, BM_VALUE, BODY_FUNCTION, BODY_MEASUREMENT, COMPLIANT, DOESNOT_FOLLOWUP, FAMILY, FOLLOWSUP, LABORATORY_DATA, LAB_RESULT, LAB_UNIT, LAB_VALUE, MEDICAL_DEVICE, MEDICINE, MED_DOSE, MED_DURATION, MED_FORM, MED_FREQUENCY, MED_ROUTE, MED_STATUS, MED_STRENGTH, MED_TOTALDOSE, MED_UNIT, NON_COMPLIANT, OTHER_LIVINGSTATUS, PROBLEM, PROCEDURE, PROCEDURE_RESULT, PROC_METHOD, REASON_FOR_NONCOMPLIANCE, SEVERITY, SUBSTANCE_ABUSE, UNCLEAR_FOLLOWUP.',
)
class EvaluateAnnotationStoreRequest(BaseModel):
bigqueryDestination: Optional[
GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination
] = Field(
None,
description='The BigQuery table where the server writes the output. BigQueryDestination requires the `roles/bigquery.dataEditor` and `roles/bigquery.jobUser` Cloud IAM roles.',
)
evalInfoTypeMapping: Optional[Dict[str, str]] = Field(
None,
description='Optional. InfoType mapping for `eval_store`. Different resources can map to the same infoType. For example, `PERSON_NAME`, `PERSON`, `NAME`, and `HUMAN` are different. To map all of these into a single infoType (such as `PERSON_NAME`), specify the following mapping: ``` info_type_mapping["PERSON"] = "PERSON_NAME" info_type_mapping["NAME"] = "PERSON_NAME" info_type_mapping["HUMAN"] = "PERSON_NAME" ``` Unmentioned infoTypes, such as `DATE`, are treated as identity mapping. For example: ``` info_type_mapping["DATE"] = "DATE" ``` InfoTypes are case-insensitive.',
)
goldenInfoTypeMapping: Optional[Dict[str, str]] = Field(
None,
description='Optional. Similar to `eval_info_type_mapping`, infoType mapping for `golden_store`.',
)
goldenStore: Optional[str] = Field(
None,
description='The Annotation store to use as ground truth, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.',
)
infoTypeConfig: Optional[InfoTypeConfig] = None
class EvaluateUserConsentsResponse(BaseModel):
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list. This token is valid for 72 hours after it is created.',
)
results: Optional[List[Result]] = Field(
None, description='The consent evaluation result for each `data_id`.'
)
class ExportAnnotationsRequest(BaseModel):
bigqueryDestination: Optional[
GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination
] = Field(
None,
description='The BigQuery output destination, which requires two IAM roles: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`.',
)
gcsDestination: Optional[GoogleCloudHealthcareV1beta1AnnotationGcsDestination] = (
Field(
None,
description='The Cloud Storage destination, which requires the `roles/storage.objectAdmin` Cloud IAM role.',
)
)
class ExportDicomDataRequest(BaseModel):
bigqueryDestination: Optional[
GoogleCloudHealthcareV1beta1DicomBigQueryDestination
] = Field(
None,
description="The BigQuery output destination. You can only export to a BigQuery dataset that's in the same project as the DICOM store you're exporting from. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`.",
)
filterConfig: Optional[DicomFilterConfig] = Field(
None, description='Specifies the filter configuration.'
)
gcsDestination: Optional[GoogleCloudHealthcareV1beta1DicomGcsDestination] = Field(
None,
description='The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location.',
)
class ExportMessagesRequest(BaseModel):
endTime: Optional[str] = Field(
None,
description='The end of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the time when the export is scheduled is used. This value has to come after the `start_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.',
)
gcsDestination: Optional[GcsDestination] = Field(
None, description='Exports to a Cloud Storage destination.'
)
startTime: Optional[str] = Field(
None,
description='The start of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the UNIX epoch (1970-01-01T00:00:00Z) is used. This value has to come before the `end_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.',
)
class FhirConfig(BaseModel):
defaultKeepExtensions: Optional[bool] = Field(
None,
description="The behaviour for handling FHIR extensions that aren't otherwise specified for de-identification. If true, all extensions are preserved during de-identification by default. If false or unspecified, all extensions are removed during de-identification by default.",
)
fieldMetadataList: Optional[List[FieldMetadata]] = Field(
None,
description='Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata is passed through to the output dataset unmodified. All extensions will be processed according to `default_keep_extensions`. If a field can be matched by more than one FieldMetadata, the first FieldMetadata.Action is applied.',
)
class FhirFilter(BaseModel):
resources: Optional[Resources] = Field(
None,
description='List of resources to include in the output. If this list is empty or not specified, all resources are included in the output.',
)
class GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata(BaseModel):
characterMaskField: Optional[CharacterMaskField] = Field(
None,
description="Replace the field's value with a masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml",
)
cleanTextField: Optional[CleanTextField] = Field(
None,
description="Inspect the field's text and transform sensitive text. Configure using `TextConfig`. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml",
)
cryptoHashField: Optional[CryptoHashField] = Field(
None,
description='Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml',
)
dateShiftField: Optional[DateShiftField] = Field(
None,
description='Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime',
)
keepField: Optional[KeepField] = Field(
None, description='Keep the field unchanged.'
)
paths: Optional[List[str]] = Field(
None,
description='List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR type name. All types begin with an upper case letter. For example, the resource field "Patient.Address.city", which uses a string type, can be matched by "Patient.Address.String". Path also supports partialkk matching. For example, "Patient.Address.city" can be matched by "Address.city" (Patient omitted). Partial matching and type matching can be combined, for example "Patient.Address.city" can be matched by "Address.String". For "choice" types (those defined in the FHIR spec with the form: field[x]), use two separate components. For example, "deceasedAge.unit" is matched by "Deceased.Age.unit". Supported [types](https://www.hl7.org/fhir/datatypes.html) are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName (for example HumanName.given, HumanName.family) can be omitted.',
)
removeField: Optional[RemoveField] = Field(None, description='Remove the field.')
class GoogleCloudHealthcareV1beta1DeidentifyOptions(BaseModel):
characterMaskConfig: Optional[CharacterMaskConfig] = Field(
None,
description='Character mask config for `CharacterMaskField` `FieldMetadatas`.',
)
contextualDeid: Optional[ContextualDeidConfig] = Field(
None, description='Configure contextual de-id.'
)
cryptoHashConfig: Optional[CryptoHashConfig] = Field(
None, description='Crypo hash config for `CharacterMaskField` `FieldMetadatas`.'
)
dateShiftConfig: Optional[DateShiftConfig] = Field(
None,
description='Date shifting config for `CharacterMaskField` `FieldMetadatas`.',
)
keepExtensions: Optional[KeepExtensionsConfig] = Field(
None, description='Configure keeping extensions by default.'
)
class Hl7TypesConfig(BaseModel):
type: Optional[List[Type]] = Field(None, description='The HL7v2 type definitions.')
version: Optional[List[VersionSource]] = Field(
None,
description='The version selectors that this config applies to. A message must match ALL version sources to apply.',
)
class ImageAnnotation(BaseModel):
boundingPolys: Optional[List[BoundingPoly]] = Field(
None,
description='The list of polygons outlining the sensitive regions in the image.',
)
frameIndex: Optional[int] = Field(
None,
description='0-based index of the image frame. For example, an image frame in a DICOM instance.',
)
class InfoTypeTransformation(BaseModel):
characterMaskConfig: Optional[CharacterMaskConfig] = Field(
None, description='Config for character mask.'
)
cryptoHashConfig: Optional[CryptoHashConfig] = Field(
None, description='Config for crypto hash.'
)
dateShiftConfig: Optional[DateShiftConfig] = Field(
None, description='Config for date shift.'
)
infoTypes: Optional[List[str]] = Field(
None,
description='`InfoTypes` to apply this transformation to. If this is not specified, this transformation becomes the default transformation, and is used for any `info_type` that is not specified in another transformation.',
)
redactConfig: Optional[RedactConfig] = Field(
None, description='Config for text redaction.'
)
replaceWithInfoTypeConfig: Optional[ReplaceWithInfoTypeConfig] = Field(
None, description='Config for replace with InfoType.'
)
class ListConsentArtifactsResponse(BaseModel):
consentArtifacts: Optional[List[ConsentArtifact]] = Field(
None,
description='The returned Consent artifacts. The maximum number of artifacts returned is determined by the value of page_size in the ListConsentArtifactsRequest.',
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
class ListConsentRevisionsResponse(BaseModel):
consents: Optional[List[Consent]] = Field(
None,
description='The returned Consent revisions. The maximum number of revisions returned is determined by the value of `page_size` in the ListConsentRevisionsRequest.',
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
class ListConsentsResponse(BaseModel):
consents: Optional[List[Consent]] = Field(
None,
description='The returned Consents. The maximum number of Consents returned is determined by the value of page_size in the ListConsentsRequest.',
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
class ListDicomStoresResponse(BaseModel):
dicomStores: Optional[List[DicomStore]] = Field(
None,
description="The returned DICOM stores. Won't be more DICOM stores than the value of page_size in the request.",
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results or empty if there are no more results in the list.',
)
class ListLocationsResponse(BaseModel):
locations: Optional[List[Location]] = Field(
None,
description='A list of locations that matches the specified filter in the request.',
)
nextPageToken: Optional[str] = Field(
None, description='The standard List next-page token.'
)
class ListUserDataMappingsResponse(BaseModel):
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results, or empty if there are no more results in the list.',
)
userDataMappings: Optional[List[UserDataMapping]] = Field(
None,
description='The returned User data mappings. The maximum number of User data mappings returned is determined by the value of page_size in the ListUserDataMappingsRequest.',
)
class Operation(BaseModel):
done: Optional[bool] = Field(
None,
description='If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.',
)
error: Optional[Status] = Field(
None,
description='The error result of the operation in case of failure or cancellation.',
)
metadata: Optional[Dict[str, Any]] = Field(
None,
description='Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.',
)
name: Optional[str] = Field(
None,
description='The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.',
)
response: Optional[Dict[str, Any]] = Field(
None,
description='The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.',
)
class OperationMetadata(BaseModel):
apiMethodName: Optional[str] = Field(
None, description='The name of the API method that initiated the operation.'
)
cancelRequested: Optional[bool] = Field(
None, description='Specifies if cancellation was requested for the operation.'
)
counter: Optional[ProgressCounter] = None
createTime: Optional[str] = Field(
None, description='The time at which the operation was created by the API.'
)
endTime: Optional[str] = Field(
None, description='The time at which execution was completed.'
)
logsUrl: Optional[str] = Field(
None,
description='A link to audit and error logs in the log viewer. Error logs are generated only by some operations, listed at [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging).',
)
class ParsedData(BaseModel):
segments: Optional[List[Segment]] = None
class Policy(BaseModel):
auditConfigs: Optional[List[AuditConfig]] = Field(
None, description='Specifies cloud audit logging configuration for this policy.'
)
bindings: Optional[List[Binding]] = Field(
None,
description='Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.',
)
etag: Optional[str] = Field(
None,
description='`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.',
)
version: Optional[int] = Field(
None,
description='Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).',
)
class SchemaConfig(BaseModel):
lastUpdatedPartitionConfig: Optional[TimePartitioning] = Field(
None,
description="The configuration for exported BigQuery tables to be partitioned by FHIR resource's last updated time column.",
)
recursiveStructureDepth: Optional[str] = Field(
None,
description='The depth for all recursive structures in the output analytics schema. For example, `concept` in the CodeSystem resource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called `concept.concept` but not `concept.concept.concept`. If not specified or set to 0, the server will use the default value 2. The maximum depth allowed is 5.',
)
schemaType: Optional[SchemaType1] = Field(
None, description='Specifies the output schema type. Schema type is required.'
)
class SearchConfig(BaseModel):
searchParameters: Optional[List[SearchParameter]] = Field(
None,
description='A list of search parameters in this FHIR store that are used to configure this FHIR store.',
)
class SensitiveTextAnnotation(BaseModel):
details: Optional[Dict[str, Detail]] = Field(
None,
description='Maps from a resource slice. For example, FHIR resource field path to a set of sensitive text findings. For example, Appointment.Narrative text1 --> {findings_1, findings_2, findings_3}',
)
class SetIamPolicyRequest(BaseModel):
policy: Optional[Policy] = Field(
None,
description='REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them.',
)
updateMask: Optional[str] = Field(
None,
description='OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: "bindings, etag"`',
)
class TextConfig(BaseModel):
additionalTransformations: Optional[List[InfoTypeTransformation]] = Field(
None,
description='Additional transformations to apply to the detected data, overriding `profile`.',
)
excludeInfoTypes: Optional[List[str]] = Field(
None, description='InfoTypes to skip transforming, overriding `profile`.'
)
profileType: Optional[ProfileType2] = Field(
None, description='Base profile type for text transformation.'
)
transformations: Optional[List[InfoTypeTransformation]] = Field(
None,
description='The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead.',
)
class AnalyzeEntitiesResponse(BaseModel):
entities: Optional[List[Entity]] = Field(
None,
description='The union of all the candidate entities that the entity_mentions in this response could link to. These are UMLS concepts or normalized mention content.',
)
entityMentions: Optional[List[EntityMention]] = Field(
None,
description='entity_mentions contains all the annotated medical entities that were mentioned in the provided document.',
)
relationships: Optional[List[EntityMentionRelationship]] = Field(
None,
description='relationships contains all the binary relationships that were identified between entity mentions within the provided document.',
)
class Annotation(BaseModel):
annotationSource: Optional[AnnotationSource] = Field(
None, description='Details of the source.'
)
customData: Optional[Dict[str, str]] = Field(
None,
description='Additional information for this annotation record, such as annotator and verifier information or study campaign.',
)
imageAnnotation: Optional[ImageAnnotation] = Field(
None, description='Annotations for images. For example, bounding polygons.'
)
name: Optional[str] = Field(
None,
description='Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.',
)
resourceAnnotation: Optional[ResourceAnnotation] = Field(
None, description='Annotations for resource. For example, classification tags.'
)
textAnnotation: Optional[SensitiveTextAnnotation] = Field(
None,
description='Annotations for sensitive texts. For example, a range that describes the location of sensitive text.',
)
class FhirFieldConfig(BaseModel):
fieldMetadataList: Optional[
List[GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata]
] = Field(
None,
description='Specifies FHIR paths to match and how to transform them. Any field that is not matched by a `FieldMetadata` is passed through to the output dataset unmodified. All extensions will be processed according to `keep_extensions`. If a field can be matched by more than one `FieldMetadata`, the first `FieldMetadata.Action` is applied. Overrides `options` and `profile`.',
)
options: Optional[GoogleCloudHealthcareV1beta1DeidentifyOptions] = Field(
None, description='Specifies additional options, overriding the base `profile`.'
)
profileType: Optional[ProfileType1] = Field(
None, description='Base profile type for handling FHIR fields.'
)
class GoogleCloudHealthcareV1beta1FhirBigQueryDestination(BaseModel):
datasetUri: Optional[str] = Field(
None,
description='BigQuery URI to an existing dataset, up to 2000 characters long, in the format `bq://projectId.bqDatasetId`.',
)
force: Optional[bool] = Field(
None,
description='Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.',
)
schemaConfig: Optional[SchemaConfig] = Field(
None, description='The configuration for the exported BigQuery schema.'
)
writeDisposition: Optional[WriteDisposition] = Field(
None,
description='Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored.',
)
class ListAnnotationsResponse(BaseModel):
annotations: Optional[List[Annotation]] = Field(
None,
description="The returned Annotations. Won't be more values than the value of page_size in the request. See `AnnotationView` in the request for populated fields.",
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results or empty if there are no more results in the list.',
)
class ListOperationsResponse(BaseModel):
nextPageToken: Optional[str] = Field(
None, description='The standard List next-page token.'
)
operations: Optional[List[Operation]] = Field(
None,
description='A list of operations that matches the specified filter in the request.',
)
class Message(BaseModel):
createTime: Optional[str] = Field(
None,
description='Output only. The datetime when the message was created. Set by the server.',
)
data: Optional[str] = Field(None, description='Raw message bytes.')
labels: Optional[Dict[str, str]] = Field(
None,
description='User-supplied key-value pairs used to organize HL7v2 stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.',
)
messageType: Optional[str] = Field(
None, description='The message type for this message. MSH-9.1.'
)
name: Optional[str] = Field(
None,
description='Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.',
)
parsedData: Optional[ParsedData] = Field(
None, description='Output only. The parsed version of the raw message data.'
)
patientIds: Optional[List[PatientId]] = Field(
None,
description='All patient IDs listed in the PID-2, PID-3, and PID-4 segments of this message.',
)
schematizedData: Optional[SchematizedData] = Field(
None,
description="The parsed version of the raw message data schematized according to this store's schemas and type definitions.",
)
sendFacility: Optional[str] = Field(
None, description='The hospital that this message came from. MSH-4.'
)
sendTime: Optional[str] = Field(
None,
description='The datetime the sending application sent this message. MSH-7.',
)
class BatchGetMessagesResponse(BaseModel):
messages: Optional[List[Message]] = Field(
None,
description='The returned Messages. See `MessageView` for populated fields.',
)
class CreateMessageRequest(BaseModel):
message: Optional[Message] = Field(None, description='HL7v2 message.')
class DeidentifyConfig(BaseModel):
annotation: Optional[AnnotationConfig] = Field(
None,
description='Configures how annotations, meaning that the location and infoType of sensitive information findings, are created during de-identification. If unspecified, no annotations are created.',
)
dicom: Optional[DicomConfig] = Field(
None,
description='Configures de-id of application/DICOM content. Deprecated. Use `dicom_tag_config` instead.',
)
dicomTagConfig: Optional[DicomTagConfig] = Field(
None, description='Configures de-id of application/DICOM content.'
)
fhir: Optional[FhirConfig] = Field(
None,
description='Configures de-id of application/FHIR content. Deprecated. Use `fhir_field_config` instead.',
)
fhirFieldConfig: Optional[FhirFieldConfig] = Field(
None, description='Configures de-id of application/FHIR content.'
)
image: Optional[ImageConfig] = Field(
None,
description='Configures the de-identification of image pixels in the source_dataset. Deprecated. Use `dicom_tag_config.options.clean_image` instead.',
)
operationMetadata: Optional[DeidentifyOperationMetadata] = Field(
None, description='Details about the work the de-identify operation performed.'
)
text: Optional[TextConfig] = Field(
None,
description='Configures de-identification of text wherever it is found in the source_dataset.',
)
class DeidentifyDatasetRequest(BaseModel):
config: Optional[DeidentifyConfig] = Field(
None,
description='Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified.',
)
destinationDataset: Optional[str] = Field(
None,
description='The name of the dataset resource to create and write the redacted data to. * The destination dataset must not exist. * The destination dataset must be in the same location as the source dataset. De-identifying data across multiple locations is not supported.',
)
gcsConfigUri: Optional[str] = Field(
None,
description="Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.",
)
class DeidentifyDicomStoreRequest(BaseModel):
config: Optional[DeidentifyConfig] = Field(
None,
description='Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified.',
)
destinationStore: Optional[str] = Field(
None,
description='The name of the DICOM store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination DICOM store must not exist. * The caller must have the necessary permissions to create the destination DICOM store.',
)
filterConfig: Optional[DicomFilterConfig] = Field(
None, description='Filter configuration.'
)
gcsConfigUri: Optional[str] = Field(
None,
description="Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.",
)
class DeidentifyFhirStoreRequest(BaseModel):
config: Optional[DeidentifyConfig] = Field(
None,
description='Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified.',
)
destinationStore: Optional[str] = Field(
None,
description='The name of the FHIR store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination FHIR store must exist. * The caller must have the healthcare.fhirResources.update permission to write to the destination FHIR store.',
)
gcsConfigUri: Optional[str] = Field(
None,
description="Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.",
)
resourceFilter: Optional[FhirFilter] = Field(
None,
description='A filter specifying the resources to include in the output. If not specified, all resources are included in the output.',
)
skipModifiedResources: Optional[bool] = Field(
None,
description='If true, skips resources that are created or modified after the de-identify operation is created.',
)
class ExportResourcesRequest(BaseModel):
field_since: Optional[str] = Field(
None,
alias='_since',
description='If provided, only resources updated after this time are exported. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.',
)
field_type: Optional[str] = Field(
None,
alias='_type',
description='String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are exported.',
)
bigqueryDestination: Optional[
GoogleCloudHealthcareV1beta1FhirBigQueryDestination
] = Field(
None,
description='The BigQuery output destination. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`. The output is one BigQuery table per resource type. Unlike when setting `BigQueryDestination` for `StreamConfig`, `ExportResources` does not create BigQuery views.',
)
gcsDestination: Optional[GoogleCloudHealthcareV1beta1FhirGcsDestination] = Field(
None,
description='The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location. The exported outputs are organized by FHIR resource types. The server creates one object per resource type. Each object contains newline delimited JSON, and each line is a FHIR resource.',
)
class IngestMessageRequest(BaseModel):
message: Optional[Message] = Field(None, description='HL7v2 message to ingest.')
class IngestMessageResponse(BaseModel):
hl7Ack: Optional[str] = Field(None, description='HL7v2 ACK message.')
message: Optional[Message] = Field(None, description='Created message resource.')
class ListMessagesResponse(BaseModel):
hl7V2Messages: Optional[List[Message]] = Field(
None,
description="The returned Messages. Won't be more Messages than the value of page_size in the request. See view for populated fields.",
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results or empty if there are no more results in the list.',
)
class DeidentifiedStoreDestination(BaseModel):
config: Optional[DeidentifyConfig] = Field(
None,
description='The configuration to use when de-identifying resources that are added to this store.',
)
store: Optional[str] = Field(
None,
description='The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.',
)
class StreamConfig(BaseModel):
bigqueryDestination: Optional[
GoogleCloudHealthcareV1beta1FhirBigQueryDestination
] = Field(
None,
description='The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types, e.g. "Patient", "Observation". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn\'t align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any resource mutation that generates more than 1 MB of BigQuery data will not be streamed. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).',
)
deidentifiedStoreDestination: Optional[DeidentifiedStoreDestination] = Field(
None,
description="The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, you must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enable_update_create to true. The destination store must have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).",
)
resourceTypes: Optional[List[str]] = Field(
None,
description='Supply a FHIR resource type (such as "Patient" or "Observation"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store.',
)
class FhirStore(BaseModel):
complexDataTypeReferenceParsing: Optional[ComplexDataTypeReferenceParsing] = Field(
None,
description='Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.',
)
defaultSearchHandlingStrict: Optional[bool] = Field(
None,
description='If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.',
)
disableReferentialIntegrity: Optional[bool] = Field(
None,
description='Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.',
)
disableResourceVersioning: Optional[bool] = Field(
None,
description='Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.',
)
enableUpdateCreate: Optional[bool] = Field(
None,
description='Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.',
)
labels: Optional[Dict[str, str]] = Field(
None,
description='User-supplied key-value pairs used to organize FHIR stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.',
)
name: Optional[str] = Field(
None,
description='Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.',
)
notificationConfig: Optional[NotificationConfig] = Field(
None,
description='If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource". Deprecated. Use `notification_configs` instead.',
)
notificationConfigs: Optional[List[FhirNotificationConfig]] = Field(
None,
description='Specifies where and whether to send notifications upon changes to a Fhir store.',
)
searchConfig: Optional[SearchConfig] = Field(
None, description='Configuration for how FHIR resources can be searched.'
)
streamConfigs: Optional[List[StreamConfig]] = Field(
None,
description="A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.",
)
validationConfig: Optional[ValidationConfig] = Field(
None,
description='Configuration for how to validate incoming FHIR resources against configured profiles.',
)
version: Optional[Version] = Field(
None,
description='Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.',
)
class ListFhirStoresResponse(BaseModel):
fhirStores: Optional[List[FhirStore]] = Field(
None,
description="The returned FHIR stores. Won't be more FHIR stores than the value of page_size in the request.",
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results or empty if there are no more results in the list.',
)
class GroupOrSegment(BaseModel):
group: Optional[SchemaGroup] = None
segment: Optional[SchemaSegment] = None
class Hl7SchemaConfig(BaseModel):
messageSchemaConfigs: Optional[Dict[str, SchemaGroup]] = Field(
None,
description='Map from each HL7v2 message type and trigger event pair, such as ADT_A04, to its schema configuration root group.',
)
version: Optional[List[VersionSource]] = Field(
None,
description='Each VersionSource is tested and only if they all match is the schema used for the message.',
)
class Hl7V2Store(BaseModel):
labels: Optional[Dict[str, str]] = Field(
None,
description='User-supplied key-value pairs used to organize HL7v2 stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.',
)
name: Optional[str] = Field(
None,
description='Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.',
)
notificationConfig: Optional[NotificationConfig] = Field(
None,
description='The notification destination all messages (both Ingest & Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.',
)
notificationConfigs: Optional[List[Hl7V2NotificationConfig]] = Field(
None,
description='A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.',
)
parserConfig: Optional[ParserConfig] = Field(
None,
description='The configuration for the parser. It determines how the server parses the messages.',
)
rejectDuplicateMessage: Optional[bool] = Field(
None,
description='Determines whether to reject duplicate messages. A duplicate message is a message with the same raw bytes as a message that has already been ingested/created in this HL7v2 store. The default value is false, meaning that the store accepts the duplicate messages and it also returns the same ACK message in the IngestMessageResponse as has been returned previously. Note that only one resource is created in the store. When this field is set to true, CreateMessage/IngestMessage requests with a duplicate message will be rejected by the store, and IngestMessageErrorDetail returns a NACK message upon rejection.',
)
class ListHl7V2StoresResponse(BaseModel):
hl7V2Stores: Optional[List[Hl7V2Store]] = Field(
None,
description="The returned HL7v2 stores. Won't be more HL7v2 stores than the value of page_size in the request.",
)
nextPageToken: Optional[str] = Field(
None,
description='Token to retrieve the next page of results or empty if there are no more results in the list.',
)
class ParserConfig(BaseModel):
allowNullHeader: Optional[bool] = Field(
None, description='Determines whether messages with no header are allowed.'
)
schema_: Optional[SchemaPackage] = Field(
None,
alias='schema',
description='Schemas used to parse messages in this store, if schematized parsing is desired.',
)
segmentTerminator: Optional[str] = Field(
None,
description="Byte(s) to use as the segment terminator. If this is unset, '\\r' is used as segment terminator, matching the HL7 version 2 specification.",
)
version: Optional[Version1] = Field(
None,
description='Immutable. Determines the version of both the default parser to be used when `schema` is not given, as well as the schematized parser used when `schema` is specified. This field is immutable after HL7v2 store creation.',
)
class SchemaGroup(BaseModel):
choice: Optional[bool] = Field(
None,
description='True indicates that this is a choice group, meaning that only one of its segments can exist in a given message.',
)
maxOccurs: Optional[int] = Field(
None,
description='The maximum number of times this group can be repeated. 0 or -1 means unbounded.',
)
members: Optional[List[GroupOrSegment]] = Field(
None, description='Nested groups and/or segments.'
)
minOccurs: Optional[int] = Field(
None,
description='The minimum number of times this group must be present/repeated.',
)
name: Optional[str] = Field(
None, description='The name of this group. For example, "ORDER_DETAIL".'
)
class SchemaPackage(BaseModel):
ignoreMinOccurs: Optional[bool] = Field(
None,
description='Flag to ignore all min_occurs restrictions in the schema. This means that incoming messages can omit any group, segment, field, component, or subcomponent.',
)
schemas: Optional[List[Hl7SchemaConfig]] = Field(
None,
description='Schema configs that are layered based on their VersionSources that match the incoming message. Schema configs present in higher indices override those in lower indices with the same message type and trigger event if their VersionSources all match an incoming message.',
)
schematizedParsingType: Optional[SchematizedParsingType] = Field(
None, description='Determines how messages that fail to parse are handled.'
)
types: Optional[List[Hl7TypesConfig]] = Field(
None,
description='Schema type definitions that are layered based on their VersionSources that match the incoming message. Type definitions present in higher indices override those in lower indices with the same type name if their VersionSources all match an incoming message.',
)
unexpectedSegmentHandling: Optional[UnexpectedSegmentHandling] = Field(
None,
description='Determines how unexpected segments (segments not matched to the schema) are handled.',
)
GroupOrSegment.model_rebuild()
Hl7SchemaConfig.model_rebuild()
Hl7V2Store.model_rebuild()
ParserConfig.model_rebuild()