HIPAA Power BI Dashboards That Pass an OCR Audit
HIPAA Power BI dashboards built by Petronella Technology Group, Inc., Raleigh, NC, Cyber AB RPO #1449, in business since 2002. BAA-aware deployments, Row-Level Security mapped to clinical and billing roles, Microsoft Information Protection sensitivity labels, 6-year audit log retention, and Publish-to-Web disabled at the tenant level on day one.
Is Power BI HIPAA Compliant?
Yes, with the right configuration. Power BI becomes HIPAA-compliant when five things are in place: a signed Microsoft Business Associate Agreement, Row-Level Security mapped to clinical roles, Microsoft Information Protection sensitivity labels, audit logs forwarded to a SIEM with 6-year retention, and Publish-to-Web disabled at the tenant level. Out of the box, Power BI is not HIPAA-compliant. The covered entity owns the configuration work.
The rest of this page walks through exactly how Petronella Technology Group, Inc. builds and operates HIPAA Power BI dashboards for medical practices, multi-specialty groups, billing companies, behavioral health, MSOs, and healthcare technology vendors.
Ready to make Power BI safe for ePHI? Request a quote or call us at (919) 348-4912.
Why Most Healthcare Power BI Deployments Fail HIPAA
Healthcare leaders adopt Power BI because the alternative, month-end PDFs from the EHR, manual spreadsheets from the billing service, no near-real-time view of utilization or denials, is unsustainable. The problem is that the same speed-to-insight Power BI offers can also create speed-to-breach. We have audited Power BI tenants at medical practices, MSOs, and billing companies where every one of the following was true in production:
- Publish to Web was enabled at the tenant level. Most of the time nobody is actively using it, but the feature is a single click away from being the #1 unforced HIPAA violation in modern healthcare IT.
- Reports were shared via "Anyone with the link." Even when the underlying dataset has Row-Level Security, links that bypass authentication defeat the protection.
- RLS roles were never defined. Every viewer saw every patient, every payer, every clinician. This violates HIPAA's minimum necessary standard at 45 CFR §164.502(b).
- Audit logs were not forwarded. Power BI's native activity log retains 30-90 days. HIPAA requires six years. The gap was invisible until a complaint or audit triggered the request.
- Service principals had hardcoded secrets. Dataflow refresh accounts had broad permissions and were stored in plaintext in Power Query M code.
- Embed tokens used legacy "embed for your customers" without Entra ID identity passing. The RLS chain broke at the embed boundary and audit logs lost the actor identity.
- No sensitivity labels existed. Reports containing ePHI looked identical to reports containing low-sensitivity data. Users could not visually distinguish what they were sharing.
None of this is exotic. These are the same findings the HHS Office for Civil Rights (OCR) calls out in its resolution agreements and the same patterns Microsoft documents in its Power BI security best practices. The fix is not complicated, it is just rarely done by accident. That is what this page is about.
Already running Power BI on patient data? Request a HIPAA Power BI configuration audit, we will identify your specific findings and remediation effort in two weeks.
Microsoft's HIPAA BAA: What It Does and Does Not Cover
Before any ePHI touches Power BI, the covered entity must have a Business Associate Agreement (BAA) executed with Microsoft. The BAA establishes Microsoft as a business associate under 45 CFR §164.502(e) and §164.504(e). Microsoft publishes the HIPAA-eligible services list and the BAA itself in the Service Trust Portal at servicetrust.microsoft.com.
What the Microsoft BAA covers
- Power BI service (Premium and Pro)
- Microsoft Entra ID (Azure AD)
- Microsoft 365 mail, Teams, OneDrive, SharePoint, Exchange Online
- Azure SQL Database, Azure Storage, Azure Data Lake
- Microsoft Sentinel and Microsoft Purview
- On-Premises Data Gateway
Verify the eligibility list against your tenant license in the M365 admin center. The "HIPAA/HITECH" BAA is a single agreement covering all eligible services in the tenant.
What the BAA does not do
- It does not configure RLS, sensitivity labels, sharing controls, or audit log forwarding, that is the customer's responsibility under the shared-responsibility model.
- It does not extend to non-eligible Microsoft services (e.g., consumer Bing, consumer OneDrive).
- It does not absolve the covered entity of breach notification duties if a misconfiguration causes impermissible disclosure.
- It does not cover third-party connectors and visuals that send data outside the Microsoft service boundary, a custom visual that calls an external API is the covered entity's responsibility.
The takeaway: the Microsoft BAA is necessary but not sufficient. Your team, or ours, owns the configuration work that turns BAA coverage into actual HIPAA compliance.
Encrypting ePHI in Power BI: TLS, AES-256, and Customer-Managed Keys
The HIPAA Security Rule requires that covered entities implement technical safeguards to protect ePHI in transit and at rest (45 CFR §164.312(a)(2)(iv) and §164.312(e)(2)(ii)). Power BI's encryption defaults satisfy the baseline; for higher-assurance healthcare environments we recommend the more conservative posture below.
| Layer | Default | Higher assurance | How we configure it |
|---|---|---|---|
| In transit | TLS 1.2 or higher between client and Power BI service; between gateway and source | Enforce TLS 1.2 minimum at the tenant; reject TLS 1.0/1.1 connections from gateways | Tenant setting + gateway-level cipher policy |
| At rest (Power BI) | AES-256 with Microsoft-managed keys | Customer-Managed Keys (CMK / "Bring Your Own Key") backed by Azure Key Vault | Requires Power BI Premium / Fabric capacity; we provision Key Vault, RSA 2048-bit key, rotation policy |
| Gateway | On-Premises Data Gateway encrypts source-to-cloud over TLS | Gateway clustered for HA, recovery key escrowed in Petronella encrypted enclave | Standard mode gateway on a hardened Windows Server; not Personal mode |
| Exports | Inherit MIP label encryption when label is set | Block unprotected exports via Purview DLP policy | Sensitivity label + DLP rule "block on PHI label external share" |
| Backups | Microsoft maintains backups inside the service boundary | PBIX source-of-truth stored in Git with branch protection + CMK-encrypted storage | Azure DevOps Repos or GitHub with branch protection + signed commits |
Customer-Managed Keys are not free, they require Power BI Premium or Microsoft Fabric capacity (F64 or higher in the modern SKU lineup), and they introduce operational responsibility for key rotation and recovery. For most medical practices the Microsoft-managed-key default is appropriate. For large MSOs, behavioral health systems, and any organization with a documented threat model where Microsoft-as-administrator is a residual concern, CMK is the right move and we set it up properly.
Minimum Necessary, Enforced: Row-Level Security by Clinical Role
HIPAA's minimum necessary standard at 45 CFR §164.502(b) requires that workforce members access only the protected health information they need to perform their assigned tasks. In Power BI, Row-Level Security (RLS) is the mechanism. We build dynamic RLS, bound to Microsoft Entra ID group membership, so that role changes in HR propagate to the data layer without manual intervention.
Example role matrix for a multi-specialty practice
| Role | Data they see | Data they cannot see | RLS DAX pattern |
|---|---|---|---|
| Front-desk staff | Appointment status, copay due, eligibility check result for their assigned location | Clinical notes, lab results, diagnosis codes, billing AR detail | [Location] IN LOOKUPGROUP(USERPRINCIPALNAME()) |
| Nurse / MA | Their provider's patients only, vitals, medication list, problem list, visit notes | Patients outside their pod; financial / AR data | Dynamic by Entra group, filtered to [PodID] |
| Clinician | Their panel of patients, full clinical record, encounter history, lab trends | Other clinicians' panels; payroll; partner-level financials | Dynamic by NPI match against signed-in user |
| Billing specialist | Claims, denials, AR aging by payer and CPT, without ICD-10 description text | Clinical notes, lab values, mental health detail | OLS hides clinical-note column; RLS filters by assigned payer book |
| Practice manager | Throughput, utilization, denial rate, no-show rate, payer mix, aggregated | Patient-level identifiers; clinical notes | De-identified semantic model, Safe Harbor |
| Compliance officer | Audit-trail dashboard: access reviews, sharing exceptions, label violations | Clinical content (compliance role does not need it) | Workspace-level access; no RLS on audit data; OLS on clinical columns |
| Owner / partner | Practice-level financials, partner compensation, provider productivity | Patient-identifiable clinical data without documented operational need | Dual semantic models, one financial, one de-identified clinical |
A few non-obvious patterns we apply on every HIPAA engagement:
- Power BI workspace admins bypass RLS by default. This is documented Microsoft behavior. We minimize the admin/member roster to two named individuals and audit it quarterly.
- Test "View as Role" before deploy. We use Power BI Desktop's "View as" function plus a service-side test pass against each role before any new semantic model is promoted from Test to Prod.
- RLS roles live in source control. The DAX role expressions are stored in TMSL/TMDL alongside the model, not in screenshots or someone's notebook.
- RLS is paired with Object-Level Security (OLS) for column sensitivity. When a billing specialist needs the claim but not the clinical note, OLS hides the column entirely, DAX measures over the hidden column return blank.
Safe Harbor De-Identification in Power Query
The HIPAA Privacy Rule recognizes two methods of de-identification at 45 CFR §164.514: Expert Determination and Safe Harbor. The Safe Harbor method removes 18 specific identifiers; data that has been Safe-Harbored is no longer Protected Health Information and is outside the scope of the Privacy Rule. For operational and financial analytics, utilization, denials, payer mix, throughput, length of stay, we strip these identifiers in Power Query before the data ever lands in a semantic model.
The 18 Safe Harbor identifiers (per 45 CFR §164.514(b)(2))
- Names
- Geographic subdivisions smaller than a state (street, city, county, ZIP code, except first 3 digits of ZIP when population > 20,000)
- All elements of dates (except year) directly related to an individual
- Telephone numbers
- Fax numbers
- Email addresses
- Social Security numbers
- Medical record numbers
- Health plan beneficiary numbers
- Account numbers
- Certificate / license numbers
- Vehicle identifiers and serial numbers, including license plate
- Device identifiers and serial numbers
- Web URLs
- IP addresses
- Biometric identifiers (finger, voice, retinal)
- Full-face photographs and any comparable images
- Any other unique identifying number, characteristic, or code
Plus the actual-knowledge test: the covered entity must have no actual knowledge that the remaining information could be used alone or in combination with other information to re-identify the individual.
Power Query M pattern for date generalization
// Patient-age generalization: 90+ collapses to single bucket
let
Source = Sql.Database(EHR_Server, "ClinicalReporting"),
Stripped = Table.SelectColumns(Source, {"EncounterID_Hash", "ProviderNPI_Hash", "DiagnosisCode", "ProcedureCode", "PayerCategory", "EncounterDate", "PatientAge"}),
DateGen = Table.TransformColumns(Stripped, {"EncounterDate", each #date(Date.Year(_), 1, 1)}),
AgeBucket = Table.TransformColumns(DateGen, {"PatientAge", each if _ >= 90 then "90+" else Number.ToText(Number.IntegerDivide(_, 5) * 5) & "-" & Number.ToText(Number.IntegerDivide(_, 5) * 5 + 4)})
in
AgeBucket
The hash columns (EncounterID_Hash, ProviderNPI_Hash) are HMAC-SHA256 with a per-tenant salt stored in the Petronella encrypted enclave, see Petronella encrypted data and email system. The salt is never stored in the Power BI workspace, the gateway, or any artifact a workspace admin can reach. If a regulator ever asks how we re-identify a specific record for a documented operational reason, we have a controlled process; without the salt, the data is irreversible.
BLOCK "Publish to Web" at the Tenant Level: Day One
This is the single most-common HIPAA violation we see in healthcare Power BI tenants. "Publish to Web" creates a publicly accessible URL for a report. If that report contains any ePHI, even indirectly through DirectQuery to a database that contains ePHI, the URL becomes an impermissible disclosure under 45 CFR §164.502(a). Microsoft's own documentation explicitly warns against using Publish to Web for any data that should not be public on the internet.
The remediation is one tenant setting. The risk of leaving it enabled is unbounded.
Day-one configuration steps
- Sign in to the Power BI admin portal as a Global Administrator or Power BI Administrator.
- Navigate to Tenant settings → Export and sharing settings → Publish to web.
- Set to Disabled. Do not use "Allow existing codes", that grandfathers in any historical publish-to-web link and is an immediate finding.
- Document the change in the SSP / HIPAA Security Risk Assessment. Capture the screenshot in your evidence repository.
- Add the setting to your monthly tenant-configuration drift check. If it ever flips back to enabled, by an admin who did not understand the impact, it must be detected and reverted within hours, not weeks.
Petronella Technology Group, Inc. disables Publish to Web at the tenant level for every healthcare client during the first hour of engagement and treats any future enablement as a P0 incident.
Concerned about your current tenant settings? Request a Power BI HIPAA configuration audit. We surface every misconfiguration in two weeks with a remediation plan you can execute.
Sharing Controls and Entra ID Embed Tokens
Beyond Publish-to-Web, three other sharing patterns cause the bulk of HIPAA exposure in Power BI:
External sharing
Disabled by default for healthcare clients. When a specific business need exists (e.g., sharing a denial dashboard with a credentialed billing partner), we enable allow-list sharing to specific Entra ID B2B guest accounts, never "anyone with the link."
Embed for your customers
The legacy pattern (sometimes called "App Owns Data") generates an embed token that lives outside the user's identity. For patient-facing portals we use Microsoft Entra ID identity-passing with effective identity, RLS stays bound to a real user, audit logs capture the actor.
Workspace memberships
Workspace Admin and Member roles bypass RLS. We minimize the admin roster to two named people, enforce access reviews quarterly via Microsoft Entra Access Reviews, and require an internal change ticket to add any new member.
For applications that need a Power BI visual but cannot subject every viewer to Entra ID authentication, for instance, a partially-public marketing page that shows aggregate volumes, we use a separate de-identified semantic model. The embed environment never carries ePHI in the first place, so the embed token security model is no longer a HIPAA question.
Audit Logging and 6-Year Retention
The HIPAA Security Rule requires covered entities to retain documentation of policies, procedures, and audit activities for six years from the date of creation or the date when it was last in effect (45 CFR §164.316(b)(2)). Power BI's native activity log retains 30-90 days. Microsoft 365 Audit (Standard) retains 180 days; Audit (Premium) on E5 extends to one year, and Microsoft 365 Audit Long-Term Retention extends to ten years with the appropriate add-on. None of these defaults satisfy six years natively unless you specifically configure the long-term retention add-on.
Our audit-log pipeline for HIPAA Power BI tenants
- Enable the Microsoft 365 unified audit log at the tenant level. Power BI activity events flow into it.
- Forward to Microsoft Sentinel via the Microsoft 365 connector. Sentinel becomes the canonical audit store for HIPAA evidence.
- Apply a 6-year retention policy in Sentinel (warm storage for the first 90 days, cold archive for the remaining 5 years 9 months). Archive cost is typically less than $10/GB/month at the volumes a typical practice generates.
- Build a Compliance Officer workspace in Power BI that consumes the Sentinel data. The compliance officer can see who viewed what, when, and from where, without seeing the underlying clinical content.
- Set Sentinel analytics rules for high-risk events: external sharing, mass downloads, embed-token issuance, RLS-bypass admin access, and any attempt to enable Publish-to-Web.
- Configure cross-product correlation with the customer's Petronella Extended Detection and Response (XDR) if they subscribe to our managed SOC, Power BI sharing events become a triggerable alert path.
Audit-log pipelines are not glamorous, but they are the difference between "we believe nothing was disclosed" and "we have evidence." OCR audits and breach investigations care about evidence.
For Highest-Sensitivity Workloads: The Petronella Encrypted Enclave
Some healthcare workloads, behavioral health, substance use disorder records subject to 42 CFR Part 2, HIV / STI registries, specialty pharmacy data, carry sensitivity beyond the standard HIPAA baseline. For these workloads we use a pattern modeled on the same enclave architecture deployed in our CMMC work (see CMMC Power BI Reporting's Pattern B): the regulated source data lives inside the Petronella encrypted data and email system, the data that flows into Power BI is de-identified or strictly aggregated, and the salt / mapping table for any potential re-identification lives only inside the enclave.
When to use the enclave pattern
- 42 CFR Part 2 substance use disorder records (stricter than HIPAA)
- Behavioral health practices with separate state-level confidentiality regimes
- Specialty pharmacies with manufacturer / patient-assistance program data
- Healthcare data partnerships where one party does not want the other to ever hold raw PHI
- Research or QI workflows where IRB approval limits identifier exposure
What you gain
- Power BI workspace and dataset never contain raw identifiers
- Workspace admin compromise does not expose ePHI
- Exports and screenshots from Power BI cannot be re-identified by the recipient
- Salt rotation under Petronella Technology Group control; client never has to manage HSM operations directly
- Cross-functional reporting (clinical, financial, operational) without the highest-risk identifiers crossing the analytics boundary
The enclave is operated by Petronella Technology Group, Inc. as a single-tenant logical service per client. It is not a shared SaaS, there is no co-tenant from whose error or compromise your data is at risk.
AI on PHI: Private LLM vs. Copilot in Power BI
Healthcare leaders ask the same question every month: can we use Microsoft Copilot in Power BI to ask natural-language questions of our data? Microsoft's position is that Copilot for Power BI does not use customer prompts or data to train its base models, and Copilot runs inside the Microsoft 365 service boundary covered by the HIPAA BAA. For most healthcare clients that posture is acceptable.
For more conservative clients, and for any workload where a Microsoft subprocessor would create a compliance question on principle, we offer two alternatives:
Option 1: Copilot on de-identified models only
Enable Copilot in Power BI but only on semantic models that have already been de-identified per Safe Harbor. The natural-language query experience is identical; the underlying data carries no PHI.
Option 2: Penny-on-your-data (private LLM)
Petronella's private LLM stack runs on isolated GPU infrastructure. We connect Penny to the Power BI semantic model via API; prompts and responses never leave the client's HIPAA boundary. Useful for clinical Q&A where Copilot's subprocessor footprint is not acceptable.
Option 3: Block AI entirely
For a small subset of clients (typically those with active OCR investigations or extraordinarily sensitive boards), we configure Microsoft Purview DLP to block Copilot from accessing PHI-labeled datasets. Reporting continues; AI Q&A is paused.
We recommend Option 2, Penny-on-your-data, for the majority of mid-sized healthcare clients who want AI Q&A capability without the ongoing subprocessor disclosure conversation. See our Petronella AI services page for the underlying private-AI architecture.
Vertical Use Cases We Build For
Clinical operations dashboards
Throughput by clinic, wait-time medians, no-show rates, scheduling efficiency, encounter coding accuracy, panel-size balance across providers. Built on de-identified semantic models so practice managers and operations leads can collaborate without RLS friction.
Revenue cycle and billing dashboards
AR aging by payer, denial rate and root-cause by CPT, days-in-AR, clean-claim rate, charge lag, payer mix shift. Critical for both in-house billing teams and billing-company clients where the dashboard is the client deliverable. RLS by assigned payer book so each biller sees only their queue.
HIPAA compliance reporting dashboards
Audit-event volume, access-review status, label-coverage rate, sharing-exception count, encryption posture, gateway-patch status. Built for the practice's HIPAA Security Officer with read-only access to the Sentinel audit feed.
Billing-company multi-tenant dashboards
Billing companies operating across many practices need per-client portals. We build with Power BI Embedded + Entra ID identity passing + RLS by tenant so a billing company can serve dozens of practices from a single semantic model with each practice seeing only their own data, no cross-tenant leakage.
Behavioral health and 42 CFR Part 2
Substance use disorder records have separate, stricter confidentiality regimes. We deploy the encrypted enclave pattern by default for behavioral health practices and treat the substance-use data as ePHI plus.
MSO and physician-group rollups
Management services organizations and multi-entity physician groups need to roll up performance across practice locations without exposing one practice's clinical data to another's leadership. RLS by entity, OLS on clinical columns, and de-identified aggregate views for executive committees.
Healthcare technology vendor dashboards
HealthTech vendors who present analytics to their healthcare customers as a productized feature need their BAA in order, their RLS bullet-proof, and their embed-token model audited. We build the embedded analytics layer so the vendor can sell to enterprise health systems without security reviews stalling deals.
How an Engagement Works
Most HIPAA Power BI engagements follow a similar arc. Pricing depends on data-source count, role count, EHR complexity, BAA review scope, and whether the encrypted enclave is required. We do not publish flat pricing because the variance across healthcare clients is large; we return a fixed-fee proposal within five business days after a 30-minute scoping call.
Phase 1: Discovery and BAA review
- BAA verification with Microsoft + verification with the EHR vendor
- Existing tenant configuration audit (Publish-to-Web, sharing, sensitivity labels, RLS roles, service principals)
- Data-source inventory: EHR, billing system, practice management, lab interface, FHIR endpoints
- Role catalog: which workforce members need which data, mapped to Entra ID groups
- Deliverable: gap report + remediation plan + Phase 2 fixed-fee proposal
Phase 2: Build and harden
- Disable Publish-to-Web and enforce tenant settings baseline
- Configure sensitivity labels, Purview DLP for PHI, audit log forwarding to Sentinel with 6-year retention
- Build semantic model(s) with RLS by role + OLS on clinical-note columns
- Build the agreed dashboards (clinical operations, revenue cycle, compliance) and harden refresh schedules
- Deploy through Dev → Test → Prod via Power BI Deployment Pipelines
- Deliverable: live dashboards + SSP-ready evidence package + workforce training
Phase 3: Managed reporting (optional)
- Monthly tenant-configuration drift check (catches Publish-to-Web re-enablement, role sprawl)
- Quarterly access review reports via Microsoft Entra Access Reviews
- New-dashboard requests handled inside a fixed monthly retainer
- Patch and incident response on the gateway tier
- Coordination with Petronella vCISO for HIPAA Security Risk Assessment cycles
HIPAA advisory retainer (optional)
- Senior HIPAA advisory hours for breach triage, OCR response, audit prep
- BAA review on new vendors and subprocessors before they touch ePHI
- Annual HIPAA Security Risk Assessment as part of the retainer
- Led by our team, including a dedicated Petronella vCISO, see Petronella vCISO services
For ongoing HIPAA monitoring across the entire Microsoft 365 + Power BI estate, our Petronella Extended Detection and Response (XDR) service correlates Power BI sharing events, Entra ID identity events, and endpoint telemetry into a single SOC view. HIPAA tenants benefit from XDR substantially more than commercial-only tenants because the threat surface of "user shared the wrong report" is high in healthcare.
Need both Power BI and the HIPAA advisory layer? Request a combined quote, we will scope Power BI build + advisory retainer + XDR together so the security architecture is coherent rather than bolted on.
Petronella Technology Group vs. the Alternatives
| Option | HIPAA fluency | Power BI depth | Healthcare data fluency | What can go wrong |
|---|---|---|---|---|
| Petronella Technology Group, Inc. | Cyber AB RPO #1449; 4 CMMC-RP practitioners; HIPAA Security Risk Assessment cadence | Power BI + Fabric + Copilot; gateway hardening; RLS / OLS / MIP; Sentinel forwarding | Worked with Epic, Oracle Health (Cerner), athenahealth, eClinicalWorks, NextGen, Allscripts/Veradigm, Greenway | , |
| General Power BI consulting firm | Often light or contractually disclaimed | Strong | Variable | Builds beautiful dashboards on top of a misconfigured tenant; compliance owner inherits the gap |
| EHR vendor's analytics module | BAA-covered | Limited to vendor's analytics scope | High (their own data) | Cannot combine EHR + billing + scheduling + lab; locked to vendor schema; expensive add-ons |
| In-house data analyst | Usually no specific HIPAA training | Depends on hire | Builds it over time | Single point of failure; turnover destroys institutional knowledge; tenant configuration drift |
| Tableau / Looker / Qlik | BAA-eligible varies by product / hosting | Strong (different stack) | Variable | Healthcare clients already paying for M365 typically pay twice; integration with Entra ID identity weaker than native Power BI |
HIPAA Power BI FAQ: 12 Questions, Direct Answers
1. Is Power BI HIPAA compliant?
Power BI can be HIPAA compliant when deployed correctly. Microsoft offers a Business Associate Agreement (BAA) that covers Power BI as part of its Microsoft 365 and Azure online services. Customers must execute the BAA, configure encryption, enforce role-based access via Row-Level Security (RLS), apply Microsoft Information Protection sensitivity labels, disable Publish-to-Web, forward audit logs to a SIEM for 6-year retention, and operate under their HIPAA Privacy and Security policies. Power BI by itself is not HIPAA compliant out of the box.
2. Does Microsoft's HIPAA BAA cover Power BI?
Yes. Microsoft's HIPAA Business Associate Agreement covers Power BI when it is provisioned within an eligible Microsoft 365 or Azure subscription. The BAA is offered to covered entities and business associates and is accepted through the Microsoft 365 admin center or the Service Trust Portal. Verify your specific tenant has the executed BAA on file before processing ePHI.
3. What is the #1 HIPAA violation you see in Power BI tenants?
Publish to Web. This feature creates a publicly accessible URL for a report. If that report contains any ePHI, it constitutes an impermissible disclosure under the HIPAA Privacy Rule. We disable Publish to Web at the tenant level on day one for every healthcare client and treat any enabled instance as a P0 finding.
4. How does Row-Level Security enforce HIPAA's minimum necessary standard?
Row-Level Security filters rows in a semantic model based on the signed-in user's identity. A nurse sees only their assigned patients, a billing specialist sees only their assigned payer book, a clinical director sees only their department. We use Dynamic RLS bound to Microsoft Entra ID group membership so role changes propagate immediately. We never use static role lists in production HIPAA tenants.
5. Do you offer de-identified Power BI dashboards for higher assurance?
Yes. For analytics that do not require patient-level identifiers, utilization, throughput, denial rates, payer mix, length of stay, we strip the 18 HIPAA Safe Harbor identifiers in Power Query before the data lands in the semantic model. The result is de-identified per 45 CFR §164.514(b)(2), which removes the dataset from the regulated scope of the Privacy Rule.
6. What encryption does Power BI use for ePHI at rest and in transit?
Power BI encrypts data in transit using TLS 1.2 or higher and at rest using AES-256. Microsoft manages the keys by default. For higher assurance, customers can enable Customer-Managed Keys (CMK) backed by Azure Key Vault, also known as Bring Your Own Key, which requires Power BI Premium or Fabric capacity and puts the covered entity in control of the master key.
7. How long must HIPAA audit logs be retained for Power BI?
The HIPAA Security Rule requires covered entities to retain documentation related to security policies, procedures, and audit activities for six years (45 CFR §164.316(b)(2)). Power BI's native activity log retains 30-90 days. We forward all Power BI and M365 audit events to Microsoft Sentinel with a 6-year warm/cold storage policy to meet the requirement.
8. Can we embed Power BI dashboards in a patient portal or EHR?
Yes, using Power BI Embedded with Microsoft Entra ID embed tokens. We never use the legacy "embed for your customers" pattern without Entra ID identity passing, that breaks the RLS chain and creates an audit gap. For patient-facing embeds, we use a separate de-identified semantic model so the embed environment never carries ePHI.
9. Can clinicians use Copilot in Power BI on ePHI?
Microsoft has stated Copilot in Power BI does not use customer prompts or data to train its base models. For most healthcare clients we still recommend a more conservative posture: enable Copilot only on de-identified semantic models, or replace Copilot with Penny-on-your-data, Petronella's private LLM running on isolated GPU infrastructure, for clinical natural-language Q&A.
10. How do you handle sensitivity labels for ePHI in Power BI?
We provision Microsoft Information Protection (MIP) sensitivity labels such as "PHI - Confidential" and "PHI - Highly Restricted" in Microsoft Purview, then apply them to Power BI datasets, reports, and dashboards. When a user exports a labeled report to PDF or Excel, the file is encrypted and the label travels with it. Purview DLP policies block sharing of PHI-labeled content with external recipients.
11. Do you work with our EHR: Epic, Cerner / Oracle Health, athenahealth, eClinicalWorks, NextGen?
Yes. We have integrated Power BI with Epic (Clarity / Caboodle), Oracle Health (formerly Cerner), athenahealth, eClinicalWorks, NextGen, Allscripts / Veradigm, and Greenway. We typically work against the vendor's reporting database or FHIR / HL7 export rather than the live transactional EHR. We have experience with FHIR R4 endpoints for newer EHR integrations.
12. What does a HIPAA-compliant Power BI engagement cost?
Engagements are scoped against data source count, role count, EHR complexity, BAA review, and whether de-identification or a Petronella encrypted enclave is required. Pricing also varies based on whether the client needs ongoing managed reporting and an HIPAA advisory retainer. Request a quote and we will return a fixed-fee proposal within five business days after a 30-minute scoping call.
About the Author
Ready to put Power BI to work?
Tell us what you need. Blake or Craig replies within 4 business hours, often sooner.
Make Power BI Safe for ePHI
Whether you are launching Power BI in healthcare for the first time, inheriting a tenant with unknown configuration, or replacing an underperforming consulting firm, Petronella Technology Group, Inc. will scope a fixed-fee engagement and deliver dashboards that pass an OCR audit. We work with practices and healthcare organizations across the United States.
Related Petronella Technology Group, Inc. services: Power BI Consulting (the pillar) · Copilot for Power BI Consulting · CMMC Power BI Reporting · Compliance Services · Petronella Extended Detection and Response (XDR) · Petronella vCISO · Petronella AI Services · Our Team.