Ejemplo n.º 1
0
        public async Task RecognizeHealthcareEntitiesBatchConvenienceWithStatisticsTest()
        {
            TextAnalyticsClient client = GetClient();
            var documents = batchConvenienceDocuments;

            HealthcareOptions options = new HealthcareOptions()
            {
                IncludeStatistics = true
            };

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(documents, "en", options);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(documents.Count, resultCollection.Statistics.DocumentCount);

            Assert.AreEqual(48, resultCollection[0].Statistics.Value.CharacterCount);
            Assert.AreEqual(1, resultCollection[0].Statistics.Value.TransactionCount);

            Assert.Greater(resultCollection.Statistics.DocumentCount, 0);
            Assert.AreEqual(2, resultCollection.Statistics.DocumentCount);
            Assert.AreEqual(2, resultCollection.Statistics.TransactionCount);
            Assert.AreEqual(0, resultCollection.Statistics.InvalidDocumentCount);
            Assert.AreEqual(2, resultCollection.Statistics.ValidDocumentCount);
        }
Ejemplo n.º 2
0
        public async Task RecognizeHealthcareEntitiesTest()
        {
            TextAnalyticsClient client = GetClient();
            string document            = singleEnglish;

            HealthcareOperation operation = await client.StartHealthcareAsync(document);

            await operation.WaitForCompletionAsync();

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(1, resultCollection.Count);

            DocumentHealthcareResult result = resultCollection.Single();

            var entitiesList = new List <string> {
                "100mg", "ibuprofen", "twice daily"
            };

            Assert.AreEqual(3, result.Entities.Count);
            Assert.IsNotNull(result.Id);
            Assert.AreEqual("0", result.Id);

            foreach (HealthcareEntity entity in result.Entities)
            {
                Assert.IsTrue(entitiesList.Contains(entity.Text));

                if (entity.Text == "ibuprofen")
                {
                    var linksList = new List <string> {
                        "UMLS", "AOD", "ATC", "CCPSS", "CHV", "CSP", "DRUGBANK", "GS", "LCH_NW", "LNC", "MEDCIN", "MMSL", "MSH", "MTHSPL", "NCI", "NCI_CTRP", "NCI_DCP", "NCI_DTP", "NCI_FDA", "NCI_NCI-GLOSS", "NDDF", "PDQ", "RCD", "RXNORM", "SNM", "SNMI", "SNOMEDCT_US", "USP", "USPMG", "VANDF"
                    };

                    foreach (HealthcareEntityLink link in entity.Links)
                    {
                        Assert.IsTrue(linksList.Contains(link.DataSource));
                    }
                }
            }

            foreach (HealthcareRelation relation in result.Relations)
            {
                if (relation.RelationType == "DosageOfMedication")
                {
                    Assert.AreEqual(relation.Source.Text, "100mg");
                    Assert.AreEqual(relation.Source.Category, "Dosage");
                    Assert.AreEqual(relation.Source.ConfidenceScore, 1);
                    Assert.AreEqual(relation.Source.Length, 5);
                    Assert.AreEqual(relation.Source.Offset, 18);


                    Assert.AreEqual(relation.Target.Text, "ibuprofen");
                    Assert.AreEqual(relation.Target.Category, "MedicationName");
                    Assert.AreEqual(relation.Target.ConfidenceScore, 1);
                    Assert.AreEqual(relation.Target.Length, 9);
                    Assert.AreEqual(relation.Target.Offset, 27);
                }
            }
        }
Ejemplo n.º 3
0
        public async Task HealthcareBatchConvenienceAsync()
        {
            string endpoint = TestEnvironment.Endpoint;
            string apiKey   = TestEnvironment.ApiKey;

            var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(apiKey));

            #region Snippet:TextAnalyticsSampleHealthcareBatchConvenienceAsync
            string document = @"RECORD #333582770390100 | MH | 85986313 | | 054351 | 2/14/2001 12:00:00 AM | CORONARY ARTERY DISEASE | Signed | DIS | \
                                Admission Date: 5/22/2001 Report Status: Signed Discharge Date: 4/24/2001 ADMISSION DIAGNOSIS: CORONARY ARTERY DISEASE. \
                                HISTORY OF PRESENT ILLNESS: The patient is a 54-year-old gentleman with a history of progressive angina over the past several months. \
                                The patient had a cardiac catheterization in July of this year revealing total occlusion of the RCA and 50% left main disease ,\
                                with a strong family history of coronary artery disease with a brother dying at the age of 52 from a myocardial infarction and \
                                another brother who is status post coronary artery bypass grafting. The patient had a stress echocardiogram done on July , 2001 , \
                                which showed no wall motion abnormalities , but this was a difficult study due to body habitus. The patient went for six minutes with \
                                minimal ST depressions in the anterior lateral leads , thought due to fatigue and wrist pain , his anginal equivalent. Due to the patient's \
                                increased symptoms and family history and history left main disease with total occasional of his RCA was referred for revascularization with open heart surgery.";

            List <string> batchInput = new List <string>()
            {
                document,
            };

            AnalyzeHealthcareEntitiesOperation healthOperation = await client.StartHealthcareBatchAsync(batchInput, "en");

            await healthOperation.WaitForCompletionAsync();

            RecognizeHealthcareEntitiesResultCollection results = healthOperation.Value;

            Console.WriteLine($"Results of Azure Text Analytics \"Healthcare Async\" Model, version: \"{results.ModelVersion}\"");
            Console.WriteLine("");

            foreach (DocumentHealthcareResult result in results)
            {
                Console.WriteLine($"    Recognized the following {result.Entities.Count} healthcare entities:");

                foreach (HealthcareEntity entity in result.Entities)
                {
                    Console.WriteLine($"    Entity: {entity.Text}");
                    Console.WriteLine($"    Category: {entity.Category}");
                    Console.WriteLine($"    Offset: {entity.Offset}");
                    Console.WriteLine($"    Length: {entity.Length}");
                    Console.WriteLine($"    IsNegated: {entity.IsNegated}");
                    Console.WriteLine($"    Links:");

                    foreach (HealthcareEntityLink healthcareEntityLink in entity.Links)
                    {
                        Console.WriteLine($"        ID: {healthcareEntityLink.Id}");
                        Console.WriteLine($"        DataSource: {healthcareEntityLink.DataSource}");
                    }
                }
                Console.WriteLine("");
            }
        }
Ejemplo n.º 4
0
        public async Task RecognizeHealthcareEntitiesBatchTest()
        {
            TextAnalyticsClient      client    = GetClient();
            List <TextDocumentInput> documents = batchDocuments;

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(documents);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(2, resultCollection.Count);
        }
Ejemplo n.º 5
0
        public async Task RecognizeHealthcareEntitiesBatchConvenienceTest()
        {
            TextAnalyticsClient client = GetClient();
            var documents = batchConvenienceDocuments;

            HealthcareOperation operation = await client.StartHealthcareBatchAsync(documents);

            await operation.WaitForCompletionAsync();

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(2, resultCollection.Count);
        }
Ejemplo n.º 6
0
        public async Task RecognizeHealthcareEntitiesWithLanguageTest()
        {
            TextAnalyticsClient client = GetClient();
            string document            = singleEnglish;

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(new List <string>() { document }, "en");

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            foreach (DocumentHealthcareResult result in resultCollection)
            {
                Assert.AreEqual(3, result.Entities.Count);
                Assert.IsNotNull(result.Id);
            }
        }
Ejemplo n.º 7
0
        public async Task RecognizeHealthcareEntitiesBatchWithErrorTest()
        {
            TextAnalyticsClient client = GetClient();
            var documents = new List <string>
            {
                "Subject is taking 100mg of ibuprofen twice daily",
                "Can cause rapid or irregular heartbeat, delirium, panic, psychosis, and heart failure.",
                "",
            };

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(documents);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.IsNotNull(resultCollection[2].Id);
            Assert.IsNotNull(resultCollection[2].TextAnalyticsError);
            Assert.AreEqual("Document text is empty.", resultCollection[2].TextAnalyticsError.Message);
            Assert.AreEqual(TextAnalyticsErrorCode.InvalidDocument, resultCollection[2].TextAnalyticsError.ErrorCode.ToString());
        }
Ejemplo n.º 8
0
        public async Task RecognizeHealthcareEntitiesWithTopParameter()
        {
            TextAnalyticsClient client = GetClient();

            HealthcareOptions options = new HealthcareOptions()
            {
                Top = 1
            };

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(batchDocuments, options);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(1, resultCollection.Count);
            Assert.AreEqual(3, resultCollection[0].Entities.Count);
            Assert.IsNotNull(resultCollection[0].Id);
            Assert.AreEqual("1", resultCollection[0].Id);
            Assert.AreEqual("100mg", resultCollection[0].Entities.FirstOrDefault().Text);
            Assert.AreEqual("Dosage", resultCollection[0].Entities.FirstOrDefault().Category);
        }
Ejemplo n.º 9
0
        public async Task RecognizeHealthcareEntitiesBatchWithStatisticsTest()
        {
            TextAnalyticsClient client = GetClient();
            var documents = batchDocuments;

            HealthcareOptions options = new HealthcareOptions()
            {
                IncludeStatistics = true
            };

            HealthcareOperation operation = await client.StartHealthcareBatchAsync(documents, options);

            await operation.WaitForCompletionAsync();

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(2, resultCollection.Count);

            Assert.AreEqual(2, resultCollection.Statistics.DocumentCount);
            Assert.AreEqual(2, resultCollection.Statistics.TransactionCount);
            Assert.AreEqual(0, resultCollection.Statistics.InvalidDocumentCount);
        }
        public async Task RecognizeHealthcareEntitiesWithSkipParameter()
        {
            TextAnalyticsClient client = GetClient();

            HealthcareOptions options = new HealthcareOptions()
            {
                Skip = 1
            };

            HealthcareOperation operation = await client.StartHealthcareBatchAsync(batchDocuments, options);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.IsNotNull(resultCollection[0].TextAnalyticsError);
            Assert.IsNotNull(resultCollection[0].Warnings);
            Assert.AreEqual(1, resultCollection.Count);
            Assert.AreEqual(6, resultCollection[0].Entities.Count);
            Assert.IsNotNull(resultCollection[0].Id);
            Assert.AreEqual("2", resultCollection[0].Id);
            Assert.AreEqual("rapid", resultCollection[0].Entities.FirstOrDefault().Text);
            Assert.AreEqual("SymptomOrSign", resultCollection[0].Entities.FirstOrDefault().Category);
        }