<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Healthcare on Mike Hacker</title>
        <link>https://blog.mikehacker.net/categories/healthcare/</link>
        <description>Recent content in Healthcare on Mike Hacker</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Thu, 04 Jun 2026 15:41:08 +0000</lastBuildDate><atom:link href="https://blog.mikehacker.net/categories/healthcare/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Turning Clinical Notes Into Structured Data: A Technical Deep-Dive on Text Analytics for health</title>
            <link>https://blog.mikehacker.net/p/turning-clinical-notes-into-structured-data-a-technical-deep-dive-on-text-analytics-for-health/</link>
            <pubDate>Thu, 04 Jun 2026 15:41:08 +0000</pubDate>
            <guid>https://blog.mikehacker.net/p/turning-clinical-notes-into-structured-data-a-technical-deep-dive-on-text-analytics-for-health/</guid>
            <description>&lt;img src=&#34;https://blog.mikehacker.net/p/turning-clinical-notes-into-structured-data-a-technical-deep-dive-on-text-analytics-for-health/cover.png&#34; alt=&#34;Featured image of post Turning Clinical Notes Into Structured Data: A Technical Deep-Dive on Text Analytics for health&#34; /&gt;&lt;p&gt;Health and human services (HHS) agencies sit on mountains of unstructured clinical text: intake notes, discharge summaries, case worker narratives, eligibility documentation, and OCR-extracted correspondence. Azure Language in Foundry Tools includes the Text Analytics for health capability, which helps turn that free text into structured clinical data through a managed API or a self-hosted container.&lt;/p&gt;&#xA;&lt;p&gt;This post reflects current Microsoft Learn documentation, including the Text Analytics for health overview last updated March 30, 2026, and the PII overview last updated June 2, 2026.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;Important Microsoft disclaimer:&lt;/strong&gt; Text Analytics for health is provided &amp;ldquo;AS IS&amp;rdquo; and &amp;ldquo;WITH ALL FAULTS.&amp;rdquo; It is not a medical device, clinical support, diagnostic tool, or substitute for professional medical judgment. Agencies must keep humans in the loop for decisions that affect individuals or resource allocation, and must separately license any UMLS Metathesaurus source vocabularies they use. See the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/text-analytics-for-health/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;overview documentation&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;what-the-capability-actually-does&#34;&gt;What the capability actually does&#xA;&lt;/h2&gt;&lt;p&gt;Text Analytics for health performs four functions in one call:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Named Entity Recognition (NER)&lt;/strong&gt; - extracts medical concepts such as diagnosis, medication name, dosage, frequency, symptom/sign, and age. The model can also surface Social Determinants of Health (SDOH) and ethnicity mentions, while not drawing inferences from them.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Relation extraction&lt;/strong&gt; - identifies connections such as &lt;code&gt;DosageOfMedication&lt;/code&gt;, &lt;code&gt;FrequencyOfMedication&lt;/code&gt;, and &lt;code&gt;TimeOfCondition&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Entity linking&lt;/strong&gt; - maps extracted entities to preferred names and codes in biomedical vocabularies supported by the &lt;a class=&#34;link&#34; href=&#34;https://www.nlm.nih.gov/research/umls/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;UMLS Metathesaurus&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Assertion detection&lt;/strong&gt; - adds context such as certainty, conditionality, association, and temporality, which helps distinguish a denied condition from a positive finding.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Language support depends on deployment. The hosted API supports English, Spanish, French, German, Italian, and Portuguese. The Docker container supports those languages plus Hebrew when the appropriate language-family image tag is used. The service can also return a Fast Healthcare Interoperability Resources (FHIR) bundle when &lt;code&gt;fhirVersion&lt;/code&gt; is included in the healthcare task parameters with the supported value &lt;code&gt;4.0.1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;calling-it-from-the-net-sdk&#34;&gt;Calling it from the .NET SDK&#xA;&lt;/h2&gt;&lt;p&gt;The healthcare entities operation is asynchronous and batch-oriented. The Microsoft Learn quickstart currently pins the &lt;code&gt;Azure.AI.TextAnalytics&lt;/code&gt; NuGet package to version &lt;code&gt;5.2.0&lt;/code&gt;; the NuGet gallery lists newer package versions, and the current .NET API reference shows different long-running operation method names. Keep the sample pinned to the quickstart version, or update the code deliberately when you upgrade the package.&lt;/p&gt;&#xA;&lt;p&gt;With the quickstart&amp;rsquo;s pinned package, the core loop looks like this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Collections.Generic&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Azure&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Azure.AI.TextAnalytics&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureKeyCredential&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetEnvironmentVariable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;LANGUAGE_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;endpoint&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Uri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetEnvironmentVariable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;LANGUAGE_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;TextAnalyticsClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;endpoint&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;batchInput&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;List&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Prescribed 100mg ibuprofen, taken twice daily.&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;AnalyzeHealthcareEntitiesOperation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;operation&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;StartAnalyzeHealthcareEntitiesAsync&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;batchInput&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;operation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WaitForCompletionAsync&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AnalyzeHealthcareEntitiesResultCollection&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;operation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AnalyzeHealthcareEntitiesResult&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;doc&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;doc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HasError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;Console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteLine&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&amp;#34;Error: {doc.Error.ErrorCode} - {doc.Error.Message}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entity&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;doc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Entities&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;Console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteLine&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&amp;#34;{entity.Text} | {entity.Category} | {entity.NormalizedText}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;relation&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;doc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EntityRelations&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;Console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteLine&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&amp;#34;Relation: {relation.RelationType}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;For this sample, the quickstart output shows &lt;code&gt;100mg&lt;/code&gt; as &lt;code&gt;Dosage&lt;/code&gt;, &lt;code&gt;ibuprofen&lt;/code&gt; as &lt;code&gt;MedicationName&lt;/code&gt; with normalized text &lt;code&gt;ibuprofen&lt;/code&gt;, &lt;code&gt;twice daily&lt;/code&gt; as &lt;code&gt;Frequency&lt;/code&gt;, and the &lt;code&gt;DosageOfMedication&lt;/code&gt; and &lt;code&gt;FrequencyOfMedication&lt;/code&gt; relations.&lt;/p&gt;&#xA;&lt;p&gt;If your pipeline needs FHIR bundles, follow the FHIR structuring documentation for your chosen access path and pinned SDK version. The REST request pattern adds the FHIR version to the healthcare task parameters:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Healthcare&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;parameters&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;fhirVersion&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;4.0.1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;The result includes a &lt;code&gt;fhirBundle&lt;/code&gt; property for each processed document when the request completes successfully.&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-recommended-architecture-pattern&#34;&gt;A recommended architecture pattern&#xA;&lt;/h2&gt;&lt;p&gt;For an HHS document-processing pipeline, use a durable, event-driven design:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ingestion&lt;/strong&gt; - documents land in Azure Blob Storage. Use a Government storage endpoint such as &lt;code&gt;blob.core.usgovcloudapi.net&lt;/code&gt; in Azure Government.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Orchestration&lt;/strong&gt; - Event Grid fans documents into Azure Functions or Durable Functions. The hosted Text Analytics for health API supports up to 25 documents per request, subject to the documented character and request-size limits.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;De-identification first&lt;/strong&gt; - run an appropriate PII or PHI redaction pass before text is persisted to a broader analytics store.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clinical extraction&lt;/strong&gt; - call Text Analytics for health and request FHIR output where downstream systems consume it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Persistence&lt;/strong&gt; - write normalized entities, relations, and UMLS codes to your data platform for cohort analysis and reporting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Human review&lt;/strong&gt; - surface low-confidence or high-impact extractions for case-worker or clinical review rather than auto-acting on them.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Authenticate the Language resource with Microsoft Entra ID and managed identities where possible. Microsoft recommends Microsoft Entra ID authentication with managed identities for Azure resources to avoid storing credentials in cloud applications. Assign the appropriate Azure RBAC role, such as Cognitive Services User, to the managed identity. If you must use keys, store them in Azure Key Vault, rotate them, and restrict access with RBAC and network rules.&lt;/p&gt;&#xA;&lt;h2 id=&#34;phi-de-identification&#34;&gt;PHI de-identification&#xA;&lt;/h2&gt;&lt;p&gt;Azure Language&amp;rsquo;s PII detection capability identifies, classifies, and redacts sensitive data across text, conversations, and native documents. It has three feature types:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Text PII&lt;/strong&gt; - synchronous, string-based processing for fields, prompts, logs, and other text values. The &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/how-to/redact-text-pii&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;feature-specific documentation&lt;/a&gt; lists stable &lt;code&gt;2026-05-01&lt;/code&gt; as generally available and &lt;code&gt;2026-05-15-preview&lt;/code&gt; as preview.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Conversation PII&lt;/strong&gt; - asynchronous, transcript-aware processing for contact center and intake-call transcripts. Current feature-specific documentation distinguishes GA English support from preview API and model paths. Use the GA path for production English workloads, and treat preview API versions, preview models, and preview-only options as preview unless the documentation changes before deployment.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Document-based PII&lt;/strong&gt; - asynchronous native-document processing for &lt;code&gt;.pdf&lt;/code&gt;, &lt;code&gt;.docx&lt;/code&gt;, and &lt;code&gt;.txt&lt;/code&gt; files. The &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/document-based-pii-overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;document-based PII overview&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/how-to/redact-document-pii&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;native-document how-to&lt;/a&gt; currently mark this capability as preview, so treat it as preview unless the feature-specific documentation has moved it to GA by the time you deploy.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For compliance workflows where you must produce a redacted artifact that still resembles the original, Document-based PII can be a strong fit after you accept the preview terms and risk profile. For production workloads that cannot use preview features, use generally available API versions and avoid mixing request payloads across API versions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;keeping-data-on-your-infrastructure-with-containers&#34;&gt;Keeping data on your infrastructure with containers&#xA;&lt;/h2&gt;&lt;p&gt;When data governance rules will not allow calling a remote endpoint for clinical text, Text Analytics for health is available as a Docker container. For English, Spanish, Italian, French, German, and Portuguese container workloads, the language support page documents the &lt;code&gt;latin&lt;/code&gt; tag. For Hebrew, use the documented &lt;code&gt;semitic&lt;/code&gt; tag.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:latin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it -p 5000:5000 --cpus &lt;span class=&#34;m&#34;&gt;6&lt;/span&gt; --memory 12g mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:latin &lt;span class=&#34;nv&#34;&gt;Eula&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;accept &lt;span class=&#34;nv&#34;&gt;rai_terms&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;accept &lt;span class=&#34;nv&#34;&gt;Billing&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;={&lt;/span&gt;ENDPOINT_URI&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ApiKey&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;={&lt;/span&gt;API_KEY&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;The container still connects to Azure to send billing metering, but the content of your requests and responses is not visible to Microsoft and is not used for training. Minimum host specs for one document per request are 4 cores and 12 GB of memory; 6 cores and 12 GB are recommended. Once running, it exposes a local REST endpoint:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -X POST &lt;span class=&#34;s1&#34;&gt;&amp;#39;http://localhost:5000/text/analytics/v3.1/entities/health&amp;#39;&lt;/span&gt; --header &lt;span class=&#34;s1&#34;&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; --header &lt;span class=&#34;s1&#34;&gt;&amp;#39;accept: application/json&amp;#39;&lt;/span&gt; --data-binary @example.json&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;There is also a built-in visualization UI at &lt;code&gt;http://localhost:5000/demo&lt;/code&gt;. You can host the container on Azure Kubernetes Service, Azure Container Instances, a Kubernetes cluster deployed to Azure Stack, or Web App for Containers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;azure-government-and-compliance-considerations&#34;&gt;Azure Government and compliance considerations&#xA;&lt;/h2&gt;&lt;p&gt;Azure and Azure Government maintain FedRAMP High Provisional Authorizations to Operate for in-scope services. That is a strong assurance signal, but it is not an automatic authorization for an agency application. Agencies still need to validate the specific services, regions, configurations, and application controls in their own authorization process.&lt;/p&gt;&#xA;&lt;p&gt;Azure Government adds contractual commitments for US public sector agencies: customer data stored in the United States and potential access to systems processing customer data limited to screened US persons. In Azure Government, Text Analytics uses the &lt;code&gt;cognitiveservices.azure.us&lt;/code&gt; endpoint suffix rather than &lt;code&gt;cognitiveservices.azure.com&lt;/code&gt;. Confirm Government endpoints with &lt;code&gt;az cloud show --name AzureUSGovernment&lt;/code&gt; or &lt;code&gt;Get-AzEnvironment -Name AzureUSGovernment&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Not every Azure Language feature is available in every region or cloud at the same time. Validate the specific feature and region against the &lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/concepts/regional-support&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Azure Language region support&lt;/a&gt; page and &lt;a class=&#34;link&#34; href=&#34;https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Products available by region&lt;/a&gt;. Where a cloud-hosted feature is not yet available in your target Government region, the self-hosted container can be a practical bridge.&lt;/p&gt;&#xA;&lt;p&gt;For HIPAA workloads, confirm that the Azure services you use are in scope for Microsoft&amp;rsquo;s HIPAA Business Associate Agreement and that your own application controls meet HIPAA and HITECH obligations. Microsoft documentation is explicit that a BAA supports compliance, but does not automatically make an application compliant.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-this-matters-for-government&#34;&gt;Why This Matters for Government&#xA;&lt;/h2&gt;&lt;p&gt;HHS agencies are accountable for outcomes that depend on understanding what is actually in a case file, not just that a file exists. Structuring that text changes the economics:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Better cohort visibility&lt;/strong&gt; - normalized UMLS codes let analysts ask population-health and program-eligibility questions across documents that were previously opaque.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Faster, more consistent processing&lt;/strong&gt; - automating concept and relation extraction reduces the abstraction burden on scarce clinical and case-work staff.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Privacy by design&lt;/strong&gt; - PII and PHI redaction helps agencies share and analyze data with sensitive identifiers removed, supporting minimum-necessary principles.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Interoperability&lt;/strong&gt; - FHIR-structured output can support downstream health data exchange patterns instead of creating another data silo.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Government-cloud assurance&lt;/strong&gt; - FedRAMP High P-ATOs for in-scope services, US data residency commitments, and US-person access controls in Azure Government align with the compliance posture many public sector agencies already operate under.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The guardrails are as important as the capability. Keep a human in the loop, treat output as assistive rather than authoritative, redact PHI early, and validate region, API version, preview status, and compliance coverage before production.&lt;/p&gt;&#xA;&lt;h3 id=&#34;further-reading&#34;&gt;Further reading&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/text-analytics-for-health/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;What is Text Analytics for health?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/text-analytics-for-health/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Text Analytics for health quickstart&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/text-analytics-for-health/concepts/fhir&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;FHIR structuring in Text Analytics for health&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/text-analytics-for-health/how-to/use-containers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Use Text Analytics for health containers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;PII detection overview&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/conversation-pii-overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Conversation PII overview&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/document-based-pii-overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Document-based PII overview&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/azure-government/compare-azure-government-global-azure&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Compare Azure Government and global Azure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/compliance/offerings/offering-fedramp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;FedRAMP and Azure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/azure/compliance/offerings/offering-hipaa-us&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;HIPAA and Azure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
