diff --git a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md index f8d6c7dd0f8c..118383527b15 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md +++ b/sdk/textanalytics/azure-ai-textanalytics/CHANGELOG.md @@ -11,6 +11,7 @@ **New Features** - Added `catagories_filter` to `RecognizePiiEntitiesAction` +- Added `HealthcareEntityCategory` ## 5.1.0b7 (2021-05-18) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py index d3627c340139..5ba8901bbfa2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/__init__.py @@ -44,15 +44,15 @@ HealthcareRelation, HealthcareRelationRole, HealthcareEntityAssertion, - AnalyzeSentimentAction -) -from ._generated.v3_1.models import ( - PiiCategory as PiiEntityCategoryType, - RelationType as HealthcareEntityRelationType, - Conditionality as EntityConditionality, - Certainty as EntityCertainty, - Association as EntityAssociation + AnalyzeSentimentAction, + PiiEntityCategoryType, + HealthcareEntityRelationType, + EntityConditionality, + EntityCertainty, + EntityAssociation, + HealthcareEntityCategory ) + from ._lro import AnalyzeHealthcareEntitiesLROPoller, AnalyzeActionsLROPoller __all__ = [ @@ -102,6 +102,7 @@ "AnalyzeSentimentAction", "AnalyzeHealthcareEntitiesLROPoller", "AnalyzeActionsLROPoller", + "HealthcareEntityCategory" ] __version__ = VERSION diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py index 3e5955d32f40..c1ffe70dc3b5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_models.py @@ -69,6 +69,270 @@ def get(self, key, default=None): return self.__dict__[key] return default + +class EntityAssociation(str, Enum): + """Describes if the entity is the subject of the text or if it describes someone else. + """ + + SUBJECT = "subject" + OTHER = "other" + + +class EntityCertainty(str, Enum): + """Describes the entities certainty and polarity. + """ + + POSITIVE = "positive" + POSITIVE_POSSIBLE = "positivePossible" + NEUTRAL_POSSIBLE = "neutralPossible" + NEGATIVE_POSSIBLE = "negativePossible" + NEGATIVE = "negative" + + +class EntityConditionality(str, Enum): + """Describes any conditionality on the entity. + """ + + HYPOTHETICAL = "hypothetical" + CONDITIONAL = "conditional" + + +class HealthcareEntityRelationType(str, Enum): + """Type of relation. Examples include: ``DosageOfMedication`` or 'FrequencyOfMedication', etc. + """ + + ABBREVIATION = "Abbreviation" + DIRECTION_OF_BODY_STRUCTURE = "DirectionOfBodyStructure" + DIRECTION_OF_CONDITION = "DirectionOfCondition" + DIRECTION_OF_EXAMINATION = "DirectionOfExamination" + DIRECTION_OF_TREATMENT = "DirectionOfTreatment" + DOSAGE_OF_MEDICATION = "DosageOfMedication" + FORM_OF_MEDICATION = "FormOfMedication" + FREQUENCY_OF_MEDICATION = "FrequencyOfMedication" + FREQUENCY_OF_TREATMENT = "FrequencyOfTreatment" + QUALIFIER_OF_CONDITION = "QualifierOfCondition" + RELATION_OF_EXAMINATION = "RelationOfExamination" + ROUTE_OF_MEDICATION = "RouteOfMedication" + TIME_OF_CONDITION = "TimeOfCondition" + TIME_OF_EVENT = "TimeOfEvent" + TIME_OF_EXAMINATION = "TimeOfExamination" + TIME_OF_MEDICATION = "TimeOfMedication" + TIME_OF_TREATMENT = "TimeOfTreatment" + UNIT_OF_CONDITION = "UnitOfCondition" + UNIT_OF_EXAMINATION = "UnitOfExamination" + VALUE_OF_CONDITION = "ValueOfCondition" + VALUE_OF_EXAMINATION = "ValueOfExamination" + + +class PiiEntityCategoryType(str, Enum): + + ABA_ROUTING_NUMBER = "ABARoutingNumber" + AR_NATIONAL_IDENTITY_NUMBER = "ARNationalIdentityNumber" + AU_BANK_ACCOUNT_NUMBER = "AUBankAccountNumber" + AU_DRIVERS_LICENSE_NUMBER = "AUDriversLicenseNumber" + AU_MEDICAL_ACCOUNT_NUMBER = "AUMedicalAccountNumber" + AU_PASSPORT_NUMBER = "AUPassportNumber" + AU_TAX_FILE_NUMBER = "AUTaxFileNumber" + AU_BUSINESS_NUMBER = "AUBusinessNumber" + AU_COMPANY_NUMBER = "AUCompanyNumber" + AT_IDENTITY_CARD = "ATIdentityCard" + AT_TAX_IDENTIFICATION_NUMBER = "ATTaxIdentificationNumber" + AT_VALUE_ADDED_TAX_NUMBER = "ATValueAddedTaxNumber" + AZURE_DOCUMENT_DB_AUTH_KEY = "AzureDocumentDBAuthKey" + AZURE_IAAS_DATABASE_CONNECTION_AND_SQL_STRING = "AzureIAASDatabaseConnectionAndSQLString" + AZURE_IO_T_CONNECTION_STRING = "AzureIoTConnectionString" + AZURE_PUBLISH_SETTING_PASSWORD = "AzurePublishSettingPassword" + AZURE_REDIS_CACHE_STRING = "AzureRedisCacheString" + AZURE_SAS = "AzureSAS" + AZURE_SERVICE_BUS_STRING = "AzureServiceBusString" + AZURE_STORAGE_ACCOUNT_KEY = "AzureStorageAccountKey" + AZURE_STORAGE_ACCOUNT_GENERIC = "AzureStorageAccountGeneric" + BE_NATIONAL_NUMBER = "BENationalNumber" + BE_NATIONAL_NUMBER_V2 = "BENationalNumberV2" + BE_VALUE_ADDED_TAX_NUMBER = "BEValueAddedTaxNumber" + BRCPF_NUMBER = "BRCPFNumber" + BR_LEGAL_ENTITY_NUMBER = "BRLegalEntityNumber" + BR_NATIONAL_IDRG = "BRNationalIDRG" + BG_UNIFORM_CIVIL_NUMBER = "BGUniformCivilNumber" + CA_BANK_ACCOUNT_NUMBER = "CABankAccountNumber" + CA_DRIVERS_LICENSE_NUMBER = "CADriversLicenseNumber" + CA_HEALTH_SERVICE_NUMBER = "CAHealthServiceNumber" + CA_PASSPORT_NUMBER = "CAPassportNumber" + CA_PERSONAL_HEALTH_IDENTIFICATION = "CAPersonalHealthIdentification" + CA_SOCIAL_INSURANCE_NUMBER = "CASocialInsuranceNumber" + CL_IDENTITY_CARD_NUMBER = "CLIdentityCardNumber" + CN_RESIDENT_IDENTITY_CARD_NUMBER = "CNResidentIdentityCardNumber" + CREDIT_CARD_NUMBER = "CreditCardNumber" + HR_IDENTITY_CARD_NUMBER = "HRIdentityCardNumber" + HR_NATIONAL_ID_NUMBER = "HRNationalIDNumber" + HR_PERSONAL_IDENTIFICATION_NUMBER = "HRPersonalIdentificationNumber" + HR_PERSONAL_IDENTIFICATION_OIB_NUMBER_V2 = "HRPersonalIdentificationOIBNumberV2" + CY_IDENTITY_CARD = "CYIdentityCard" + CY_TAX_IDENTIFICATION_NUMBER = "CYTaxIdentificationNumber" + CZ_PERSONAL_IDENTITY_NUMBER = "CZPersonalIdentityNumber" + CZ_PERSONAL_IDENTITY_V2 = "CZPersonalIdentityV2" + DK_PERSONAL_IDENTIFICATION_NUMBER = "DKPersonalIdentificationNumber" + DK_PERSONAL_IDENTIFICATION_V2 = "DKPersonalIdentificationV2" + DRUG_ENFORCEMENT_AGENCY_NUMBER = "DrugEnforcementAgencyNumber" + EE_PERSONAL_IDENTIFICATION_CODE = "EEPersonalIdentificationCode" + EU_DEBIT_CARD_NUMBER = "EUDebitCardNumber" + EU_DRIVERS_LICENSE_NUMBER = "EUDriversLicenseNumber" + EUGPS_COORDINATES = "EUGPSCoordinates" + EU_NATIONAL_IDENTIFICATION_NUMBER = "EUNationalIdentificationNumber" + EU_PASSPORT_NUMBER = "EUPassportNumber" + EU_SOCIAL_SECURITY_NUMBER = "EUSocialSecurityNumber" + EU_TAX_IDENTIFICATION_NUMBER = "EUTaxIdentificationNumber" + FI_EUROPEAN_HEALTH_NUMBER = "FIEuropeanHealthNumber" + FI_NATIONAL_ID = "FINationalID" + FI_NATIONAL_IDV2 = "FINationalIDV2" + FI_PASSPORT_NUMBER = "FIPassportNumber" + FR_DRIVERS_LICENSE_NUMBER = "FRDriversLicenseNumber" + FR_HEALTH_INSURANCE_NUMBER = "FRHealthInsuranceNumber" + FR_NATIONAL_ID = "FRNationalID" + FR_PASSPORT_NUMBER = "FRPassportNumber" + FR_SOCIAL_SECURITY_NUMBER = "FRSocialSecurityNumber" + FR_TAX_IDENTIFICATION_NUMBER = "FRTaxIdentificationNumber" + FR_VALUE_ADDED_TAX_NUMBER = "FRValueAddedTaxNumber" + DE_DRIVERS_LICENSE_NUMBER = "DEDriversLicenseNumber" + DE_PASSPORT_NUMBER = "DEPassportNumber" + DE_IDENTITY_CARD_NUMBER = "DEIdentityCardNumber" + DE_TAX_IDENTIFICATION_NUMBER = "DETaxIdentificationNumber" + DE_VALUE_ADDED_NUMBER = "DEValueAddedNumber" + GR_NATIONAL_ID_CARD = "GRNationalIDCard" + GR_NATIONAL_IDV2 = "GRNationalIDV2" + GR_TAX_IDENTIFICATION_NUMBER = "GRTaxIdentificationNumber" + HK_IDENTITY_CARD_NUMBER = "HKIdentityCardNumber" + HU_VALUE_ADDED_NUMBER = "HUValueAddedNumber" + HU_PERSONAL_IDENTIFICATION_NUMBER = "HUPersonalIdentificationNumber" + HU_TAX_IDENTIFICATION_NUMBER = "HUTaxIdentificationNumber" + IN_PERMANENT_ACCOUNT = "INPermanentAccount" + IN_UNIQUE_IDENTIFICATION_NUMBER = "INUniqueIdentificationNumber" + ID_IDENTITY_CARD_NUMBER = "IDIdentityCardNumber" + INTERNATIONAL_BANKING_ACCOUNT_NUMBER = "InternationalBankingAccountNumber" + IE_PERSONAL_PUBLIC_SERVICE_NUMBER = "IEPersonalPublicServiceNumber" + IE_PERSONAL_PUBLIC_SERVICE_NUMBER_V2 = "IEPersonalPublicServiceNumberV2" + IL_BANK_ACCOUNT_NUMBER = "ILBankAccountNumber" + IL_NATIONAL_ID = "ILNationalID" + IT_DRIVERS_LICENSE_NUMBER = "ITDriversLicenseNumber" + IT_FISCAL_CODE = "ITFiscalCode" + IT_VALUE_ADDED_TAX_NUMBER = "ITValueAddedTaxNumber" + JP_BANK_ACCOUNT_NUMBER = "JPBankAccountNumber" + JP_DRIVERS_LICENSE_NUMBER = "JPDriversLicenseNumber" + JP_PASSPORT_NUMBER = "JPPassportNumber" + JP_RESIDENT_REGISTRATION_NUMBER = "JPResidentRegistrationNumber" + JP_SOCIAL_INSURANCE_NUMBER = "JPSocialInsuranceNumber" + JP_MY_NUMBER_CORPORATE = "JPMyNumberCorporate" + JP_MY_NUMBER_PERSONAL = "JPMyNumberPersonal" + JP_RESIDENCE_CARD_NUMBER = "JPResidenceCardNumber" + LV_PERSONAL_CODE = "LVPersonalCode" + LT_PERSONAL_CODE = "LTPersonalCode" + LU_NATIONAL_IDENTIFICATION_NUMBER_NATURAL = "LUNationalIdentificationNumberNatural" + LU_NATIONAL_IDENTIFICATION_NUMBER_NON_NATURAL = "LUNationalIdentificationNumberNonNatural" + MY_IDENTITY_CARD_NUMBER = "MYIdentityCardNumber" + MT_IDENTITY_CARD_NUMBER = "MTIdentityCardNumber" + MT_TAX_ID_NUMBER = "MTTaxIDNumber" + NL_CITIZENS_SERVICE_NUMBER = "NLCitizensServiceNumber" + NL_CITIZENS_SERVICE_NUMBER_V2 = "NLCitizensServiceNumberV2" + NL_TAX_IDENTIFICATION_NUMBER = "NLTaxIdentificationNumber" + NL_VALUE_ADDED_TAX_NUMBER = "NLValueAddedTaxNumber" + NZ_BANK_ACCOUNT_NUMBER = "NZBankAccountNumber" + NZ_DRIVERS_LICENSE_NUMBER = "NZDriversLicenseNumber" + NZ_INLAND_REVENUE_NUMBER = "NZInlandRevenueNumber" + NZ_MINISTRY_OF_HEALTH_NUMBER = "NZMinistryOfHealthNumber" + NZ_SOCIAL_WELFARE_NUMBER = "NZSocialWelfareNumber" + NO_IDENTITY_NUMBER = "NOIdentityNumber" + PH_UNIFIED_MULTI_PURPOSE_ID_NUMBER = "PHUnifiedMultiPurposeIDNumber" + PL_IDENTITY_CARD = "PLIdentityCard" + PL_NATIONAL_ID = "PLNationalID" + PL_NATIONAL_IDV2 = "PLNationalIDV2" + PL_PASSPORT_NUMBER = "PLPassportNumber" + PL_TAX_IDENTIFICATION_NUMBER = "PLTaxIdentificationNumber" + PLREGON_NUMBER = "PLREGONNumber" + PT_CITIZEN_CARD_NUMBER = "PTCitizenCardNumber" + PT_CITIZEN_CARD_NUMBER_V2 = "PTCitizenCardNumberV2" + PT_TAX_IDENTIFICATION_NUMBER = "PTTaxIdentificationNumber" + RO_PERSONAL_NUMERICAL_CODE = "ROPersonalNumericalCode" + RU_PASSPORT_NUMBER_DOMESTIC = "RUPassportNumberDomestic" + RU_PASSPORT_NUMBER_INTERNATIONAL = "RUPassportNumberInternational" + SA_NATIONAL_ID = "SANationalID" + SG_NATIONAL_REGISTRATION_IDENTITY_CARD_NUMBER = "SGNationalRegistrationIdentityCardNumber" + SK_PERSONAL_NUMBER = "SKPersonalNumber" + SI_TAX_IDENTIFICATION_NUMBER = "SITaxIdentificationNumber" + SI_UNIQUE_MASTER_CITIZEN_NUMBER = "SIUniqueMasterCitizenNumber" + ZA_IDENTIFICATION_NUMBER = "ZAIdentificationNumber" + KR_RESIDENT_REGISTRATION_NUMBER = "KRResidentRegistrationNumber" + ESDNI = "ESDNI" + ES_SOCIAL_SECURITY_NUMBER = "ESSocialSecurityNumber" + ES_TAX_IDENTIFICATION_NUMBER = "ESTaxIdentificationNumber" + SQL_SERVER_CONNECTION_STRING = "SQLServerConnectionString" + SE_NATIONAL_ID = "SENationalID" + SE_NATIONAL_IDV2 = "SENationalIDV2" + SE_PASSPORT_NUMBER = "SEPassportNumber" + SE_TAX_IDENTIFICATION_NUMBER = "SETaxIdentificationNumber" + SWIFT_CODE = "SWIFTCode" + CH_SOCIAL_SECURITY_NUMBER = "CHSocialSecurityNumber" + TW_NATIONAL_ID = "TWNationalID" + TW_PASSPORT_NUMBER = "TWPassportNumber" + TW_RESIDENT_CERTIFICATE = "TWResidentCertificate" + TH_POPULATION_IDENTIFICATION_CODE = "THPopulationIdentificationCode" + TR_NATIONAL_IDENTIFICATION_NUMBER = "TRNationalIdentificationNumber" + UK_DRIVERS_LICENSE_NUMBER = "UKDriversLicenseNumber" + UK_ELECTORAL_ROLL_NUMBER = "UKElectoralRollNumber" + UK_NATIONAL_HEALTH_NUMBER = "UKNationalHealthNumber" + UK_NATIONAL_INSURANCE_NUMBER = "UKNationalInsuranceNumber" + UK_UNIQUE_TAXPAYER_NUMBER = "UKUniqueTaxpayerNumber" + USUK_PASSPORT_NUMBER = "USUKPassportNumber" + US_BANK_ACCOUNT_NUMBER = "USBankAccountNumber" + US_DRIVERS_LICENSE_NUMBER = "USDriversLicenseNumber" + US_INDIVIDUAL_TAXPAYER_IDENTIFICATION = "USIndividualTaxpayerIdentification" + US_SOCIAL_SECURITY_NUMBER = "USSocialSecurityNumber" + UA_PASSPORT_NUMBER_DOMESTIC = "UAPassportNumberDomestic" + UA_PASSPORT_NUMBER_INTERNATIONAL = "UAPassportNumberInternational" + ORGANIZATION = "Organization" + EMAIL = "Email" + URL = "URL" + AGE = "Age" + PHONE_NUMBER = "PhoneNumber" + IP_ADDRESS = "IPAddress" + DATE = "Date" + PERSON = "Person" + ADDRESS = "Address" + ALL = "All" + DEFAULT = "Default" + + +class HealthcareEntityCategory(str, Enum): + """Healthcare Entity Category. + """ + + BODY_STRUCTURE = "BodyStructure" + AGE = "Age" + GENDER = "Gender" + EXAMINATION_NAME = "ExaminationName" + DATE = "Date" + DIRECTION = "Direction" + FREQUENCY = "Frequency" + MEASUREMENT_VALUE = "MeasurementValue" + MEASUREMENT_UNIT = "MeasurementUnit" + RELATIONAL_OPERATOR = "RelationalOperator" + TIME = "Time" + GENE_OR_PROTEIN = "GeneOrProtein" + VARIANT = "Variant" + ADMINISTRATIVE_EVENT = "AdministrativeEvent" + CARE_ENVIRONMENT = "CareEnvironment" + HEALTHCARE_PROFESSION = "HealthcareProfession" + DIAGNOSIS = "Diagnosis" + SYMPTOM_OR_SIGN = "SymptomOrSign" + CONDITION_QUALIFIER = "ConditionQualifier" + MEDICATION_CLASS = "MedicationClass" + MEDICATION_NAME = "MedicationName" + DOSAGE = "Dosage" + MEDICATION_FORM = "MedicationForm" + MEDICATION_ROUTE = "MedicationRoute" + FAMILY_RELATION = "FamilyRelation" + TREATMENT_NAME = "TreatmentName" + + class PiiEntityDomainType(str, Enum): """The different domains of PII entities that users can filter by""" PROTECTED_HEALTH_INFORMATION = "phi" # See https://aka.ms/tanerpii for more information. @@ -495,8 +759,8 @@ class HealthcareEntity(DictMixin): :ivar str text: Entity text as appears in the document. :ivar str normalized_text: Optional. Normalized version of the raw `text` we extract from the document. Not all `text`s have a normalized version. - :ivar str category: Entity category, see the following link for health's named - entity types: https://aka.ms/text-analytics-health-entities + :ivar str category: Entity category, see the :class:`~azure.ai.textanalytics.HealthcareEntityCategory` + type for possible healthcare entity categories. :ivar str subcategory: Entity subcategory. :ivar assertion: Contains various assertions about this entity. For example, if an entity is a diagnosis, is this diagnosis 'conditional' on a symptom?