medplum· 56 findings · 8 confirmed high · ELEVATED RISK
Compliance Risk Analysis
medplum
https://github.com/medplum/medplum
Scanned 2026-03-23 · OpenDocket V1 · Primary: Claude Sonnet · Review: Gemini 2.5 Flash
Important Limitations of This Report
This report is not legal advice and is not defensible in court. It provides directional guidance only. To obtain a defensible compliance assessment, engage a licensed attorney and certified auditor.

Scope limitations: Only public repository content was analyzed. Infrastructure configuration, deployment settings, operational policies, vendor contracts, and staff training are outside scope.

A true compliance audit would also review: vendor contracts and BAAs, staff training records, incident response procedures, physical security controls, and system audit logs — none of which are visible in source code.
Risk Assessment

This analysis identified 56 compliance patterns across GDPR, HIPAA, PCI-DSS, SOC2, SOX, TCPA. After independent verification by Gemini 2.5 Flash, 8 high-severity findings were confirmed and 45 were identified as possible false positives — likely pattern matches in documentation or configuration files rather than application source code. The 8 confirmed findings represent the primary areas requiring attention.

ELEVATED RISK
8 confirmed high-severity findings
47 total patterns identified · 45 flagged as possible false positives by independent review
What This Means If Unaddressed
FrameworkRegulatory BodyMax PenaltyEnforcement Trend
GDPR (9 high)EU DPAsUp to EUR 20M or 4% turnoverCross-border enforcement rising
TCPA (8 high)FCC$500-$1,500 per violationClass action filings at record levels
PCI-DSS (8 high)PCI SSCFines $5K-$100K/monthv4.0 enforcement accelerating
HIPAA (8 high)HHS / OCRFines up to $1.5M/year per categoryIncreasing enforcement, record penalties in 2024
SOX (7 high)SEC / PCAOBCriminal penalties, delistingIT controls under increased scrutiny
SOC2 (7 high)AICPALoss of enterprise contractsMandatory for enterprise SaaS sales
Top Findings
High RiskGDPRGDPR-001SECURITY.md:15 · Review: CONFIRMED
The development team must conduct a comprehensive data processing audit to identify all personal data processing activities within the system, then document the specific lawful basis under GDPR Articl
High RiskHIPAAHIPAA-008.github/labeler.yml:41 · Review: CONFIRMED
Implement documentation and configuration controls that demonstrate BAA compliance for all third-party integrations. This should include: (1) adding configuration files or code comments that reference
High RiskPCI-DSSPCIDSS-007.vscode/settings.json:24 · Review: CONFIRMED
Implement comprehensive audit logging that captures: (1) all individual access attempts to cardholder data with user identification, timestamps, and data elements accessed; (2) all actions performed b
Gemini Verification Layer
How to read this: The confirmed count is your action list. The false positive count shows where the scanner found keyword patterns in documentation rather than application source code. Click any finding to see exactly what evidence was found and why Gemini made its determination.
10Confirmed
1Context dependent
45Possible false positives
0Additional risk
Primary: Claude Sonnet (Anthropic). Verification: Gemini 2.5 Flash (Google). Neither constitutes legal advice.
Recommended Actions
High
Review the specific consent mechanisms found in `examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx` and across the Medplum system, to verify they meet GDPR Article 6 requirements for all identified data processing activities. Document the explicit lawful basis for each personal data processing activity to avoid severe penalties for non-compliance.
GDPR · GDPR-001 · Confirmed
High
For the processing of patient health data, specifically BMI tracking as described in `examples/medplum-demo-bots/src/bmi-calculation-bot/bmi-calculation-bot.ts` and its `README.md`, conduct and document a comprehensive Data Protection Impact Assessment. This is required to evaluate privacy risks and demonstrate compliance with GDPR Article 35.
GDPR · GDPR-009 · Confirmed
High
Update `.github/workflows/build-agent.yml` to include explicit comments or configuration entries affirming the existence of a Business Associate Agreement with Azure for any PHI processing enabled by the `azure/login` action. Similarly, ensure the `medplum-photon-integration` example, referenced in `.github/labeler.yml`, is updated with BAA documentation if it handles PHI, as omitting such details constitutes a HIPAA violation.
HIPAA · HIPAA-008 · Confirmed
High
Before allowing the `membership-and-billing` route and its associated functionality in `examples/foomedical/src/Router.tsx` to process or store live cardholder data, the development team must integrate a PCI-DSS compliant payment gateway or verify that any stored Primary Account Numbers (PANs) are rendered unreadable via strong cryptography, as mandated by PCI DSS Requirement 3.5 to prevent data breaches.
PCI-DSS · PCIDSS-001 · Confirmed
High
Verify that the `AuditEvent` objects referenced in `examples/medplum-demo-bots/src/resource-usage/resource-usage.ts` and related logging mechanisms comprehensively capture all individual access to cardholder data, administrative actions, and access to audit trails. Failure to do so results in non-compliance with PCI DSS Requirement 10.
PCI-DSS · PCIDSS-007 · Confirmed
+ 6 more recommendations in the Findings tab
Risk Scorecard
FrameworkHigh RiskConfirmedFalse Pos.MediumConcernNo Issue
GDPR936100
HIPAA828200
PCI-DSS828110
SOC2719120
SOX717100
TCPA817000
Domains Detected
Saas
92.2%
Healthcare
90.0%
Ecommerce
69.8%
Fintech
53.0%
Communication
41.1%
Gdpr
14.2%
Framework:
Severity:
GDPR
EU DPAs · Up to EUR 20M or 4% turnover
10 findings · 6 possible FP
GDPR-001
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The evidence from `PatientIntakeQuestionnairePage.tsx` directly demonstrates personal data processing and an explicit attempt to establish a lawful basis via consent for treatment, confirming the system's relevance to GDPR Article 6 requirements.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[DOCS] SECURITY.md:15 - Data Handling - Medplum is in full compliance with GDPR and has support for data deletion. [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:470 linkId: 'consent-for-treatment', [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:471 text: 'Consent for Treatment', [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:475 linkId: 'consent-for-treatment-signature', [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:476 text: 'I the undersigned patient (or authorized representative, or parent/guardian), consent to and [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:480 linkId: 'consent-for-treatment-date', [CONFIG] examples/medplum-chat-demo/data/example/example-data.json:2687 "display": "consent overrider" [CONFIG] examples/medplum-chat-demo/data/example/example-data.json:2735 "display": "legal guardian consent author"
Finding
Does this system process personal data of EU residents, and if so, is there evidence that a lawful basis for processing under Article 6 GDPR has been identified and implemented for each processing activity?
Remediation
Review the specific consent mechanisms found in `examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx` and across the Medplum system, to verify they meet GDPR Article 6 requirements for all identified data processing activities. Document the explicit lawful basis for each personal data processing activity to avoid severe penalties for non-compliance.
Remediation refined by Gemini review
GDPR-009
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The repository, operating in the healthcare domain, explicitly processes and tracks sensitive personal health data (BMI) as evidenced in the application source code and documentation, which necessitates a Data Protection Impact Assessment under GDPR Article 35 due to the inherent high risk.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .gitignore:105 # 0x profiling data [DOCS] LICENSE.txt:57 and issue tracking systems that are managed by, or on behalf of, the [DOCS] examples/medplum-demo-bots/src/bmi-calculation-bot/README.md:21 - Allows tracking BMI changes over time [DOCS] examples/medplum-demo-bots/src/bmi-calculation-bot/README.md:59 - **If BMI calculation succeeds**: The bot creates a new BMI observation with the calculated value ( [SOURCE] examples/medplum-demo-bots/src/bmi-calculation-bot/bmi-calculation-bot.ts:179 // Create a new BMI observation (allows tracking BMI over time) [SOURCE] examples/medplum-demo-bots/src/pre-commit-hook-bot-boolean.ts:33 * tracking purposes. [SOURCE] examples/medplum-demo-bots/src/pre-commit-hook-bot-boolean.ts:42 // Add Medplum identifier to the patient for tracking [SOURCE] examples/medplum-demo-bots/src/pre-commit-hook-bot-resource.ts:17 * - Adds bidirectional identifiers for tracking
Finding
Does the system process personal data in a manner likely to result in high risk to data subjects, and if so, is there evidence that a Data Protection Impact Assessment has been considered, as required under Article 35?
Remediation
For the processing of patient health data, specifically BMI tracking as described in `examples/medplum-demo-bots/src/bmi-calculation-bot/bmi-calculation-bot.ts` and its `README.md`, conduct and document a comprehensive Data Protection Impact Assessment. This is required to evaluate privacy risks and demonstrate compliance with GDPR Article 35.
Remediation refined by Gemini review
GDPR-008
High Risk
Regulatory Standard
Gemini Verification
CONTEXT DEPENDENT
The finding identifies the use of a secret for `aws-region` in CI/CD configuration, which means the actual geographic location of data processing (and thus the necessity of cross-border data transfer safeguards) cannot be determined from the code repository alone.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .github/workflows/build-deb.yml:67 aws-region: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/build-deb.yml:67 aws-region: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/build-helm-charts.yml:44 aws-region: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/build-helm-charts.yml:44 aws-region: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/deploy.yml:55 aws-region: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/deploy.yml:74 AWS_REGION: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/deploy.yml:55 aws-region: ${{ secrets.AWS_REGION }} [CONFIG] .github/workflows/deploy.yml:74 AWS_REGION: ${{ secrets.AWS_REGION }}
Finding
Does the system implement appropriate safeguards for transfers of personal data to third countries or international organizations, such as Standard Contractual Clauses or adequacy decisions, as required under Chapter V?
Remediation
For the `aws-region` variable used in .github/workflows/build-deb.yml, .github/workflows/build-helm-charts.yml, and .github/workflows/deploy.yml, verify the specific AWS region configured via `secrets.AWS_REGION`. If any non-EEA region is used for processing personal data, formal GDPR Chapter V transfer mechanisms (e.g., SCCs, adequacy decisions) must be fully established and documented to avoid violations of international data transfer rules.
Remediation refined by Gemini review
GDPR-005
Medium Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The primary analysis identified a medium risk regarding GDPR Article 25's requirement for data protection by design and default, specifically concerning data minimization; the evidence found (e.g., encryption, notice of privacy practices in source code) demonstrates some privacy considerations but does not comprehensively confirm technical and organizational measures specifically designed to ensure only necessary personal data is processed, thus supporting the finding.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .github/workflows/scorecard.yml:2 # by a third-party and are governed by separate terms of service, privacy [DOCS] SECURITY.md:70 We consider security research conducted under this policy to be authorized and will not pursue or su [DOCS] SECURITY.md:13 - Encryption - Data is encrypted in transit with TLS 1.2 and 1.3. Data is encrypted at rest with AES [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:504 linkId: 'notice-of-privacy-practices', [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:505 text: 'Notice of Privacy Practices', [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:509 linkId: 'notice-of-privacy-practices-help', [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:510 text: 'Sample Hospital Notice of Privacy Practices gives information about how Sample Hospital may u [SOURCE] examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx:514 linkId: 'notice-of-privacy-practices-signature',
Finding
Does the system demonstrate evidence of data protection by design and by default, implementing appropriate technical and organizational measures to ensure only necessary personal data is processed, as required under Article 25?
Remediation
Review data collection points within `examples/foomedical/src/pages/PatientIntakeQuestionnairePage.tsx` and similar files to integrate automated data minimization controls, ensuring that only personal data strictly necessary for stated purposes is collected and processed. This enhancement is crucial for demonstrating compliance with GDPR Article 25 on data protection by design and by default.
Remediation refined by Gemini review
Possible False Positives (6)Gemini flagged these as likely pattern matches in non-source-code files. Review before acting.
HIPAA
HHS / OCR · Fines up to $1.5M/year per category
10 findings · 8 possible FP
HIPAA-008
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The repository's healthcare domain, combined with evidence of third-party integrations (Azure login in CI/CD and a Photon integration example), directly triggers the HIPAA BAA requirement; the absence of BAA-related configuration or code indicates a clear risk.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .github/labeler.yml:41 - examples/medplum-photon-integration/src/**/* [CONFIG] .github/labeler.yml:43 integration: [CONFIG] .github/workflows/build-agent.yml:31 id-token: write # Required for OIDC authentication with Azure Trusted Signing [CONFIG] .github/workflows/build-agent.yml:137 - name: Login to Azure [CONFIG] .github/workflows/build-agent.yml:139 uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0 [CONFIG] .github/workflows/build-agent.yml:141 client-id: ${{ secrets.AZURE_CLIENT_ID }} [CONFIG] .github/workflows/build-agent.yml:142 tenant-id: ${{ secrets.AZURE_TENANT_ID }} [CONFIG] .github/workflows/build-agent.yml:143 subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Finding
Does the system integrate with third-party services that may receive, maintain, or transmit Protected Health Information, and if so, is there evidence that Business Associate Agreement requirements are addressed in the code or configuration?
Remediation
Update `.github/workflows/build-agent.yml` to include explicit comments or configuration entries affirming the existence of a Business Associate Agreement with Azure for any PHI processing enabled by the `azure/login` action. Similarly, ensure the `medplum-photon-integration` example, referenced in `.github/labeler.yml`, is updated with BAA documentation if it handles PHI, as omitting such details constitutes a HIPAA violation.
Remediation refined by Gemini review
HIPAA-006
Medium Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The application source code (`examples/medplum-demo-bots/src/resource-usage/resource-usage.ts`) directly references 'AuditEvent', indicating the system's explicit engagement with audit event tracking for healthcare resources, which is central to HIPAA audit controls.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .vscode/settings.json:24 "cSpell.words": ["auditevent", "bullmq", "FHIR", "Fhircast", "Medplum"] [DOCS] SECURITY.md:7 Medplum uses enterprise-grade security and regular audits to ensure you're always protected. We unde [DOCS] SECURITY.md:24 - Third-Party Audits - Our organization undergoes independent third-party assessments to test our se [CONFIG] charts/templates/backendconfig.yaml:23 logging: [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:70 const auditEventCount = counts['AuditEvent'] || 0; [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:71 const totalResourcesMinusAuditEvent = totalResources - auditEventCount; [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:80 ['Counted Resources (total excluding AuditEvent)', totalResourcesMinusAuditEvent.toString()], [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:152 'AuditEvent',
Finding
Does the system implement hardware, software, and procedural mechanisms that record and examine activity in information systems that contain or use electronic Protected Health Information, as required under the audit controls standard?
Remediation
The system must ensure that the `AuditEvent` generation, as hinted by `counts['AuditEvent']` in `examples/medplum-demo-bots/src/resource-usage/resource-usage.ts`, fully and automatically records all PHI access, creation, modification, and deletion events, including user, timestamp, and detailed action context. This is crucial for satisfying HIPAA audit controls (HIPAA-006) for ePHI activity logging.
Remediation refined by Gemini review
Possible False Positives (8)Gemini flagged these as likely pattern matches in non-source-code files. Review before acting.
PCI-DSS
PCI SSC · Fines $5K-$100K/month
10 findings · 8 possible FP
PCIDSS-001
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The 'MembershipAndBilling' route in `examples/foomedical/src/Router.tsx` strongly indicates the application's intent to handle payment-related information, which, given the detected `fintech` and `ecommerce` domains, makes the potential for processing or storing cardholder data highly likely and directly relevant to PCI DSS Requirement 3.5.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .github/workflows/scorecard.yml:52 # repo_token: ${{ secrets.SCORECARD_TOKEN }} [CONFIG] charts/templates/_helpers.tpl:2 Expand the name of the chart. [CONFIG] charts/templates/_helpers.tpl:17 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming s [SOURCE] examples/foomedical/src/Router.tsx:6 import { MembershipAndBilling } from './pages/account/MembershipAndBilling'; [SOURCE] examples/foomedical/src/Router.tsx:66 <Route path="membership-and-billing" element={<MembershipAndBilling />} /> [SOURCE] examples/foomedical/src/components/SideMenu.tsx:29 <span>{item.name}</span> [SOURCE] examples/foomedical/src/components/SideMenu.tsx:34 <span>{subItem.name}</span>
Finding
Does this system store, process, or transmit cardholder data including primary account numbers (PAN), and if so, are adequate protections in place to render stored PAN unreadable, as required under PCI DSS Requirement 3.5?
Remediation
Before allowing the `membership-and-billing` route and its associated functionality in `examples/foomedical/src/Router.tsx` to process or store live cardholder data, the development team must integrate a PCI-DSS compliant payment gateway or verify that any stored Primary Account Numbers (PANs) are rendered unreadable via strong cryptography, as mandated by PCI DSS Requirement 3.5 to prevent data breaches.
Remediation refined by Gemini review
PCIDSS-007
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The source code reference to `AuditEvent` in `examples/medplum-demo-bots/src/resource-usage/resource-usage.ts` confirms that auditing is a concept within the application, making the primary analysis question about the comprehensiveness of audit logging for cardholder data under PCI DSS Requirement 10 a relevant and valid risk.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .vscode/settings.json:24 "cSpell.words": ["auditevent", "bullmq", "FHIR", "Fhircast", "Medplum"] [DOCS] SECURITY.md:7 Medplum uses enterprise-grade security and regular audits to ensure you're always protected. We unde [DOCS] SECURITY.md:24 - Third-Party Audits - Our organization undergoes independent third-party assessments to test our se [CONFIG] charts/templates/backendconfig.yaml:23 logging: [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:70 const auditEventCount = counts['AuditEvent'] || 0; [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:71 const totalResourcesMinusAuditEvent = totalResources - auditEventCount; [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:80 ['Counted Resources (total excluding AuditEvent)', totalResourcesMinusAuditEvent.toString()], [SOURCE] examples/medplum-demo-bots/src/resource-usage/resource-usage.ts:152 'AuditEvent',
Finding
Does the system implement audit trail mechanisms that record all individual access to cardholder data, all actions taken by any individual with root or administrative privileges, and all access to audit trails, as required under PCI DSS Requirement 10?
Remediation
Verify that the `AuditEvent` objects referenced in `examples/medplum-demo-bots/src/resource-usage/resource-usage.ts` and related logging mechanisms comprehensively capture all individual access to cardholder data, administrative actions, and access to audit trails. Failure to do so results in non-compliance with PCI DSS Requirement 10.
Remediation refined by Gemini review
Possible False Positives (8)Gemini flagged these as likely pattern matches in non-source-code files. Review before acting.
SOC2
AICPA · Loss of enterprise contracts
10 findings · 9 possible FP
SOC2-010
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The README.md serves as a principal entry point for the Medplum repository. Given the highly regulated domains (healthcare, SaaS, GDPR), the absence of clear references or links to security policies (acceptable use, data classification, access management) within this prominent documentation is a direct failure to "demonstrate evidence of documented security policies" as required by SOC2 CC1.1. Therefore, the .md file, by its omission, serves as direct evidence of this compliance gap.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[DOCS] README.md:17 - [Contributing](#contributing) [DOCS] README.md:23 ## Contributing [DOCS] README.md:28 limited scope -- it's our entire product. Our [Contributing documentation](https://medplum.com/docs/ [DOCS] README.md:49 Did you learn how to do something using Medplum that wasn't obvious on your first try? By contributi [DOCS] README.md:67 **Ready to get started writing code?** Follow the [local setup instructions](https://www.medplum.com [DOCS] packages/app/README.md:44 For more information, refer to the [Developer Instructions](https://www.medplum.com/docs/contributin [DOCS] packages/cdk/README.md:16 See [Developer Setup](https://www.medplum.com/docs/contributing) for cloning the repository and inst [DOCS] packages/docs/blog/2025-05-15-so-youre-thinking-about-forking.md:31 | **Talent attraction** | Engineers prefer contributing to widely‑used projects; recruiting for a
Finding
Does the system demonstrate evidence of documented security policies, including acceptable use, data classification, and access management policies, as required under CC1.1 for the entity's commitment to integrity and ethical values?
Remediation
The README.md (lines 17, 23, 28, 49, 67) must be updated to clearly reference or link to the organization's formal security policies, including those for acceptable use, data classification, and access management. Failure to demonstrably document these policies through accessible means like the README.md violates SOC2 CC1.1 requirements for demonstrating integrity and ethical values.
Remediation refined by Gemini review
Possible False Positives (9)Gemini flagged these as likely pattern matches in non-source-code files. Review before acting.
SOX
SEC / PCAOB · Criminal penalties, delisting
8 findings · 7 possible FP
SOX-001
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The application's source code explicitly handles data related to 'financialStrain' in `examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx`, which, in a healthcare/fintech context, constitutes financial data highly relevant to SOX Section 302, despite the presence of database transaction isolation settings like 'REPEATABLE READ' in `docker-compose.full-stack.yml`.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[CONFIG] .github/workflows/publish-meta.yml:63 # Check if asset already exists in S3 (idempotent check) [CONFIG] docker-compose.full-stack.yml:18 - 'default_transaction_isolation=REPEATABLE READ' [SOURCE] examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx:1062 code: 'financialStrain', [SOURCE] examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx:1063 display: 'Financial Strain', [SOURCE] examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx:1067 linkId: '/supplementalQuestions/financialStrain', [SOURCE] examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx:1068 text: 'Financial Strain', [SOURCE] examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx:1096 linkId: '/supplementalQuestions/financialStrain/11', [CONFIG] examples/medplum-chat-demo/data/example/example-data.json:2602 "display": "Anatomic pathologist (occupation)"
Finding
Does the system implement controls to ensure the integrity, accuracy, and completeness of financial data and transactions, consistent with SOX Section 302 requirements for management certification of financial statements?
Remediation
For financial data like 'financialStrain' identified in `examples/foomedical/src/pages/ScreeningQuestionnairePage.tsx`, establish comprehensive validation rules, robust audit logging for all modifications, and role-based access controls. These measures are crucial to ensure the integrity, accuracy, and completeness of financial data, aligning with SOX Section 302 requirements.
Remediation refined by Gemini review
Possible False Positives (7)Gemini flagged these as likely pattern matches in non-source-code files. Review before acting.
TCPA
FCC · $500-$1,500 per violation
8 findings · 7 possible FP
TCPA-006
High Risk
Regulatory Standard
Gemini Verification
CONFIRMED
The evidence confirms the existence of consent record-keeping mechanisms in application source code, and the finding highlights a legitimate compliance risk regarding the sufficiency of recorded details for TCPA, which the provided snippets do not fully address.
Gemini 2.5 Flash · Confidence: HIGH
Evidence
[SOURCE] packages/server/src/migrations/schema/v1.ts:773 await client.query(`CREATE TABLE IF NOT EXISTS "Consent_History" ( [SOURCE] packages/server/src/migrations/schema/v14.ts:154 await client.query('CREATE INDEX ON "Consent_History" ("id")'); [SOURCE] packages/server/src/migrations/schema/v14.ts:155 await client.query('CREATE INDEX ON "Consent_History" ("lastUpdated")'); [SOURCE] packages/server/src/migrations/schema/v42.ts:707 'CREATE INDEX CONCURRENTLY IF NOT EXISTS "Consent_sourceReference_idx" ON "Consent" ("sourceReferenc
Finding
Does the system maintain records of consent that would be sufficient to demonstrate compliance in the event of a dispute, including the date, time, method of consent, and the specific consent language presented to the consumer?
Remediation
In `packages/server/src/migrations/schema/v1.ts:773`, the `Consent_History` table schema, and any related `Consent` table schema, must be updated to include fields for a precise `consent_timestamp`, the `consent_method` (e.g., 'web_form', 'sms'), and the `consent_language_text` or `consent_language_version_id` to link to the exact wording presented. This modification is critical to provide adequate proof of consent and avoid substantial fines for TCPA violations.
Remediation refined by Gemini review
Possible False Positives (7)Gemini flagged these as likely pattern matches in non-source-code files. Review before acting.
What This Analysis Covers

OpenDocket scans source code patterns — specifically whether code handles regulated data in compliance-aware ways. It searches for evidence of encryption, access controls, consent mechanisms, audit logging, and other patterns that regulators look for.

What It Does Not Cover
  • Only public repository content is analyzed
  • Files in .gitignore are not scanned
  • Infrastructure, deployment, and cloud configuration are outside scope
  • Operational policies and procedures are outside scope
  • This analysis covers code at time of scan — changes after scan date are not reflected
Legal Limitations
  • This report is not defensible in court
  • It does not constitute legal advice
  • It does not satisfy regulatory audit requirements
  • To obtain a defensible compliance assessment, engage a licensed compliance attorney and certified auditor
  • OpenDocket provides directional guidance only
How Findings Are Generated
  • Primary analysis by Claude Sonnet (Anthropic)
  • Verification by Gemini 2.5 Flash (Google)
  • Question libraries are open source and community-maintained
  • All questions cite regulatory source text
  • Questions have not been validated by a licensed attorney
Why Two Models?

Claude Sonnet scans broadly — it finds every pattern that could indicate a compliance risk. This produces a comprehensive set of findings but includes noise from documentation files, config references, and test data.

Gemini 2.5 Flash then challenges each finding independently. It asks: is this evidence from actual application code? Would a regulator actually find this concerning? Is the severity appropriate?

The result is a tiered output:

  • CONFIRMED — Gemini agrees this is a real risk
  • CONTEXT DEPENDENT — Risk depends on deployment/infrastructure
  • POSSIBLE FALSE POSITIVE — Likely noise, review before acting

The confirmed count is the number you should act on. The total count shows the full scope of what was examined.

Evidence Tiers

Evidence is classified into three tiers based on file type:

  • [SOURCE] — Application source code (.ts, .py, .go, .rs, etc.) — strongest evidence
  • [CONFIG] — Configuration files (.yml, .json, .toml, Dockerfile) — moderate evidence
  • [DOCS] — Documentation (.md, .txt, .html) — context only, cannot produce High Risk findings

A finding is only classified as High Risk if supported by at least two source code files with matching evidence. Documentation references alone produce Pattern of Concern at most.

How to Use This Report
  • Share with your engineering lead for remediation planning
  • Share with your attorney as a starting point for compliance review
  • Re-scan after remediation to track progress
  • Do not present this as proof of compliance